跳转到主要内容

异步API设计最佳实践:用于实时通信的服务器端事件(SSE)

在现代应用程序开发领域,实时通信不再是奢侈品,而是必需品。异步API设计是实现这一目标的关键,使应用程序能够在不受传统请求响应模式限制的情况下提供及时的更新和通知。

在本文中,我们将探讨异步API设计的四种强大技术:回调、WebSockets、消息队列和服务器事件(SSE)。这些方法提供了独特的优势,使它们对于创建响应迅速的实时应用程序非常重要。

为什么异步API设计很重要:


API设计中的传统请求响应模式有其局限性。当客户端向服务器发送请求时,通常必须等待响应,这可能会导致延迟和用户体验降低,尤其是在实时更新至关重要的情况下。

异步API设计通过允许服务器异步处理耗时的任务并立即响应确认,从而摆脱了这些限制。这使客户端能够在不等待的情况下继续其操作,并在任务完成后立即接收更新。

基本异步API工作流:


在异步API设计中,

Server-Sent Events in Spring

1.概述


在本教程中,我们将看到如何使用Spring实现基于服务器发送事件的API。

简单地说,Server Sent Events(简称SSE)是一种HTTP标准,它允许web应用程序处理单向事件流,并在服务器发出数据时接收更新。

Spring4.2版本已经支持它,但从Spring5开始,我们现在有了一种更惯用、更方便的方法来处理它。

2.带Spring 6 Webflux的SSE


为了实现这一点,我们可以使用Reactor库提供的Flux类等实现,或者潜在的ServerSentEvent实体,它使我们能够控制事件元数据。

2.1. 使用通量的流事件


Flux是事件流的反应性表示——它根据指定的请求或响应媒体类型进行不同的处理。

要创建SSE流式端点,我们必须遵循W3C规范,并将其MIME类型指定为文本/事件流:

用Spring实现服务器发送事件(SSE)——快速指南

介绍


服务器发送事件(SSE)是一种允许服务器实时向客户端推送更新的技术。这对于需要实时通信的应用程序非常有用,例如实时通知、聊天应用程序和股票行情器。在本文中,我们将探讨如何使用流行的基于Java的框架Spring来实现SSE。

先决条件:

 

  • 对Java和Spring框架的基本理解
  • Java开发环境(JDK 8或更高版本)和文本编辑器或IDE
  • Gradle或Maven用于依赖关系管理

步骤1:设置项目


首先,让我们创建一个新的Spring Boot项目。您可以使用Spring Initializer生成具有以下依赖项的基本项目:

  • Web(用于构建Web应用程序)
  • Lombok (减少样板代码)


步骤2:添加必要的依赖项


将以下依赖项添加到build.gradle或pom.xml中:

Gradle:

Oracle数字助理

本页汇集了一组关于Oracle数字助理交付和使用的演示,包括产品功能和开发技能和数字助理的最佳实践的说明。
学习


入门


本节全面概述了数字助理平台的功能,并介绍了如何理解对话项目的挑战以及如何设计对话。

  • 对话人工智能入门
  • 对话式人工智能数字助理的最佳选择
  • 对话设计项目剖析
  • 会话设计基础
  • Oracle数字助理概述


技能发展-NLP模型


本材料涵盖构建技能的核心技能,包括领域知识的基础知识、如何最好地培训您的模型以及如何设计常见问题解答的技能。

  • 设计意图的最佳实践
  • 设计话语的最佳实践
  • 构建智能FAQ数字助理的策略
  •  

技能发展-实体


本节帮助您掌握使用实体从用户输入中提取关键信息的方法。

介绍Phi-3:重新定义SLM的可能性

我们很高兴介绍Phi-3,这是一个由微软开发的开放式人工智能模型家族。Phi-3模型是可用的功能最强大、成本效益最高的小型语言模型(SLM),在各种语言、推理、编码和数学基准测试中都优于相同大小和下一大小的模型。此版本为客户扩展了高质量模型的选择范围,在他们编写和构建生成型人工智能应用程序时提供了更实用的选择。

从今天开始,Phi-3-mini,一种3.8B语言模型,可在Microsoft Azure AI Studio、Hugging Face和Ollama上使用。

Phi-3 Mini是一款3.8B参数、重量轻、最先进的开放式模型

Phi-3 Mini


Phi-3 Mini是一个3.8B参数、轻量级、最先进的开放模型,使用Phi-3数据集进行训练,包括合成数据和过滤后的公开网站数据,重点关注高质量和推理密集的属性。
该模型经过了一个后期训练过程,其中包括监督微调和直接偏好优化,以确保精确的指令遵守和稳健的安全措施。
当根据测试常识、语言理解、数学、代码、长上下文和逻辑推理的基准进行评估时,Phi-3 Mini-4K-Instruction在参数不到130亿的模型中展示了稳健和最先进的性能。

预期用途


主要使用案例


该模型旨在以英语进行商业和研究用途。该模型为需要1)内存/计算受限环境2)延迟受限场景3)强推理(尤其是数学和逻辑)4)长上下文的应用程序提供了用途
我们的模型旨在加速对语言和多模式模型的研究,用作生成人工智能功能的构建块。

OpenAI与开源多语言嵌入模型

选择最适合您的数据的模型

OpenAI最近发布了他们的新一代嵌入模型,称为嵌入v3,他们将其描述为性能最高的嵌入模型,具有更高的多语言性能。这些模型分为两类:一类较小,称为text-embedding-3-small,另一类较大,功能更强大,称为text-embedding-3-large。

关于这些模型的设计和训练方式,披露的信息很少。作为他们之前发布的嵌入模型(2022年12月,ada-002模型类),OpenAI再次选择了一种封闭源方法,其中模型只能通过付费的API访问。

但是,这些表演是否如此之好,以至于值得付出代价?

这篇文章的动机是将这些新模型的性能与开源模型的性能进行实证比较。我们将依赖于数据检索工作流,在该工作流中,必须在给定用户查询的情况下找到语料库中最相关的文档。

我们的语料库将是《欧洲人工智能法案》,该法案目前正处于最后的验证阶段。这个语料库的一个有趣的特点是,除了是世界上第一个人工智能的法律框架外,它还有24种语言。这使得可以比较不同语言族的数据检索准确性。

该职位将经历以下两个主要步骤:

langchain屏蔽解析器和转换器是一个用于屏蔽和重新水合字符串的可扩展模块。

屏蔽


实验掩蔽解析器和转换器是一个可扩展的模块,用于掩蔽和重新水合字符串。该模块的主要用例之一是在调用llm之前,从字符串中编辑PII(个人标识信息)。


真实世界场景​


客户支持系统接收包含敏感客户信息的消息。系统必须解析这些消息,屏蔽任何PII(如姓名、电子邮件地址和电话号码),并在遵守隐私法规的同时将其记录下来进行分析。在记录转录本之前,将使用llm生成摘要。
开始​


基本示例​


使用RegexMaskingTransformer为电子邮件和电话创建一个简单的掩码。

TIP

See this section for general instructions on installing integration packages.

Ally Financial与LangChain合作,提供关键编码模块,以合规和安全的方式屏蔽个人身份信息

Ally Financial是美国最大的纯数字银行和领先的汽车贷款机构,最近与LangChain合作发布了第一个初始编码模块,该模块解决了在高度监管、以消费者为中心的行业中使用个人身份信息(PII)的人工智能开发人员面临的重大挑战。此处提供的PII屏蔽模块为在正常业务过程中经常处理客户PII的组织(包括金融服务、医疗保健和零售业的组织)提供了一个起点,以构建生成性人工智能应用程序,同时保护客户数据。

发布使用LangChain构建的Ally.ai


在LangChain的支持下构建的PII屏蔽模块是为Ally.ai创建的,Ally.ai是该公司专有的基于云的人工智能平台,将成为Ally数据和商用LLM之间的安全桥梁。Ally是金融服务行业生成人工智能的早期采用者,于2023年9月推出了该平台。该公司与Ally.ai的第一个用例利用平台的力量,帮助客户关怀与体验团队每天与数千名客户互动。

Ally.ai协助700多名客户服务助理总结他们与Ally客户之间的对话。该平台连接到商业级LLM,通过共享每个客户电话的完整记录来帮助他们,然后由LLM汇总。在高度监管的银行业,在LLM进行总结之前,应将PII剔除。