AI Services:是如何工作的?

在前面的进阶篇中,介绍了 AI Services 的用法,下面将介绍 AI Services 是如何工作的?

在前面的示例中,你将接口的类以及底层组件提供给 AiServices,AiServices 会创建一个实现该接口的代理对象。如下:

// 使用 AiServices 创建服务
Assistant assistant = AiServices.builder(Assistant.class)
    .chatModel(chatModel)
    .build();

上面代码中,assistant 对象是一个 Assistant 类型的代理对象。

目前,LangChain4j 使用反射,但我们也在考虑其他替代方案。这个代理对象会处理所有输入和输出的转换。在这种情况下,输入是一个单一的字符串(String),但我们使用的是一个以 ChatMessage 类型作为 ChatModel 的输入参数。因此,AiService 会自动将其转换为用户消息(UserMessage)并调用聊天模型(ChatModel)。

Quarkus 应用程序中的 AI 服务

LangChain4j Quarkus 扩展极大地简化了在 Quarkus 应用程序中使用 AI 服务的过程。

Quarkus LangChain4j 扩展将大型语言模型(LLMs)集成到你的 Quarkus 应用程序中,支持诸如摘要生成、分类、文档提取、智能聊天机器人等用例,所有这些都具备 Quarkus 原生的性能和开发者体验。

AI Services:是如何工作的?

更多信息可以在这里找到。

后续将专题介绍,这里不在进行更多介绍。

Spring Boot 应用程序中的 AI 服务

LangChain4j Spring Boot 启动器极大地简化了在 Spring Boot 应用程序中使用 AI 服务的过程。

LangChain4j 提供了一个 Spring Boot 启动器,用于自动配置 AI 服务检索增强生成(RAG)工具等。假设您已经导入了其中一个集成启动器(见上文),请导入langchain4j-spring-boot-starter:

<dependency>
  <groupId>dev.langchain4j</groupId>
  <artifactId>langchain4j-spring-boot-starter</artifactId>
  <version>1.10.0-beta18</version>
</dependency>

现在你可以定义 AI 服务接口,并使用@AiService对其进行注解:

@AiService
interface Assistant {

    @SystemMessage("You are a polite assistant")
    String chat(String userMessage);
}

可以把它看作是一个标准的 Spring Boot @Service,但具有 AI 功能。

当应用程序启动时,LangChain4j 启动器会扫描类路径,找出所有用@AiService注解的接口。对于找到的每个 AI 服务,它会利用应用程序上下文中所有可用的 LangChain4j 组件创建该接口的实现,并将其注册为一个 bean,这样你就可以在需要的地方自动装配它:

@RestController
class AssistantController {

    @Autowired
    Assistant assistant;

    @GetMapping("/chat")
    public String chat(String message) {
        return assistant.chat(message);
    }
}

后续将专题介绍,这里不在进行更多介绍。

 

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
其他应用
公众号