AI专题—LangChain4j系列 :LangChain4j -Spring Boot集成
一、Spring Boot starter 通用集成
1、引入依赖
Spring Boot starters通过属性帮助创建和配置语言模型、嵌入模型、嵌入存储和其他核心LangChain4j组件。
要使用Spring Boot starters,请导入相应的依赖关系。
Spring Boot启动器依赖项的命名约定是:langchain4j-{integration-name}-spring-boot-starter.
例如,对于OpenAI(langchain4j open-ai),依赖项名称将是langchain4j open ai spring bootstarter:
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai-spring-boot-starter</artifactId>
<version>0.35.0</version>
</dependency>
2、参数配置
然后,您可以在application.properties文件中配置模型参数,如下所示:
langchain4j.open-ai.chat-model.api-key=${OPENAI_API_KEY}
langchain4j.open-ai.chat-model.model-name=gpt-4o
langchain4j.open-ai.chat-model.log-requests=true
langchain4j.open-ai.chat-model.log-responses=true
...
在这种情况下,将自动创建OpenAiChatModel的实例(ChatLanguageModel的实现),您可以在需要时自动连接它:
@RestController
public class ChatController {
ChatLanguageModel chatLanguageModel;
public ChatController(ChatLanguageModel chatLanguageModel) {
this.chatLanguageModel = chatLanguageModel;
}
@GetMapping("/chat")
public String model(@RequestParam(value = "message", defaultValue = "Hello") String message) {
return chatLanguageModel.generate(message);
}
}
如果您需要StreamingChatLanguageModel的实例,请使用流式聊天模型而不是聊天模型属性:
langchain4j.open-ai.streaming-chat-model.api-key=${OPENAI_API_KEY}
...
二、Spring Boot starter声明式AI服务的集成
LangChain4j提供了一个Spring Boot starters,用于自动配置AI服务、RAG、工具等。
假设您已经导入了一个集成启动器(见上文),请导入langchain4j spring boot starter:
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-spring-boot-starter</artifactId>
<version>0.35.0</version>
</dependency>
现在,您可以定义AI服务接口并用@AiService对其进行注释:
@AiService
interface Assistant {
@SystemMessage("You are a polite assistant")
String chat(String userMessage);
}
将其视为标准的Spring Boot@Service,但具有AI功能。
当应用程序启动时,LangChain4j starter将扫描类路径并找到所有用@AiService注释的接口。对于找到的每个AI服务,它将使用应用程序上下文中可用的所有LangChain4j组件创建此接口的实现,并将其注册为bean,以便您可以在需要时自动连接它:
@RestController
class AssistantController {
@Autowired
Assistant assistant;
@GetMapping("/chat")
public String chat(String message) {
return assistant.chat(message);
}
}
原文地址:https://blog.csdn.net/leesinbad/article/details/142825815
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!