LangChain4J入门实战:快速集成Chat API及常用配置详解

LangChain4J是什么?

官网地址: https://docs.langchain4j.dev/intro
在这里插入图片描述

快速开始:创建你的第一个Chat Demo

导入依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>dev.langchain4j</groupId>
            <artifactId>langchain4j-open-ai</artifactId>
        </dependency>
        <dependency>
            <groupId>dev.langchain4j</groupId>
            <artifactId>langchain4j</artifactId>
        </dependency>

配置类

@Configuration(proxyBeanMethods = false)
public class ChatLanguageModelConfig {
    @Bean
    public ChatLanguageModel chatLanguageModel() {
        return OpenAiChatModel.builder()
                .apiKey(System.getenv("API-KEY")) //配置在环境变变量
                .modelName("model-name")
                .baseUrl("base-url")
                .logRequests(true)
                .logResponses(true)
                .maxRetries(3) // 默认三次
                .maxTokens(500)// 限制响应长度
                .timeout(Duration.ofSeconds(15))
                .temperature(0.7)         // 控制生成随机性
                .build();
    }
}

控制层

@RestController
@Slf4j
public class ChatLanguageModelController {
    @Resource
    private ChatLanguageModel chatLanguageModel;

    @GetMapping("/v1/prompt")
    public String generateV1(@RequestParam(value = "prompt", defaultValue = "你是谁?") String prompt){
        String result = chatLanguageModel.generate(prompt);
        return result;
    }

    @GetMapping("/v1/userMessage")
    public String generateViaUseMessageV1(@RequestParam(value = "prompt")String prompt){
        UserMessage userMessage = UserMessage.from(prompt);
        Response<AiMessage> result = chatLanguageModel.generate(userMessage);
        return result.toString();
    }
}

测试结果

测试地址: http://localhost/v1/userMessage
返回结果

Response { 
content = AiMessage { text = "xxxxxxx" toolExecutionRequests = null },
tokenUsage = TokenUsage { inputTokenCount = 11, outputTokenCount = 17,totalTokenCount = 28 },
finishReason = STOP,
metadata = {} 
}

注意:tokenUsage 计算消耗的token,包含input和output的

其他参数

参考链接: https://github.com/langchain4j/langchain4j-spring/blob/main/langchain4j-open-ai-spring-boot-starter/src/main/java/dev/langchain4j/openai/spring/AutoConfig.java
在这里插入图片描述

一句话

配置最佳实践

  1. 超时设置:根据网络状况设置合理超时(建议15-30秒)
  2. 温度参数:
    创造性场景:0.7~1.0
    确定性答案:0.1~0.3
  3. 异常处理:建议添加统一异常拦截器(后面可以使用 .listeners(List.of(new XXXListener())))
  4. 敏感信息:API密钥应通过环境变量注入
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值