无需新增依赖,复用原有 即可:

替换为你的百度千帆 API Key/Secret Key(注意:文心一言需拼接 API Key 和 Secret Key):

新增 (处理文心一言的 API Key 拼接逻辑):
package com.example.langchain4jdemo.config;
import dev.langchain4j.model.chat.ChatLanguageModel;
import dev.langchain4j.model.openai.OpenAiChatModel;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
/
* 文心一言(ERNIE)专属配置
*/
@Configuration
public class ErnieConfig {
@Value(”\({langchain4j.open-ai.chat-model.api-key}")
private String apiKey;
@Value("\){langchain4j.open-ai.chat-model.base-url}“)
private String baseUrl;
@Value(”\({langchain4j.open-ai.chat-model.model-name}")
private String modelName;
@Value("\){langchain4j.open-ai.chat-model.temperature:0.0}“)
private Double temperature;
/
* 文心一言聊天模型(处理API Key拼接)
*/
@Bean
@Primary // 优先使用文心一言模型
public ChatLanguageModel ernieChatModel() {
// 文心一言兼容接口需要将 API Key 和 Secret Key 用逗号拼接后作为 apiKey
return OpenAiChatModel.builder()
.apiKey(apiKey)
.baseUrl(baseUrl)
.modelName(modelName)
.temperature(temperature)
.maxTokens(2000)
.timeout(30_000) // 超时时间30秒
.build();
}
}
步骤 4:application.yml 配置
spring:
application:
name: langchain4j-demo
# 文心一言兼容配置
langchain4j:
open-ai:
chat-model:
api-key: \({OPENAI_API_KEY}
base-url: \){OPENAI_BASE_URL}
model-name: \({AI_MODEL_NAME:ernie-4.0}
temperature: 0.0
max-tokens: 2000
embedding-model:
api-key: \){OPENAI_API_KEY}
base-url: https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/embeddings/embedding
model-name: ${EMBEDDING_MODEL_NAME:ernie-text-embedding}
步骤 5:测试用例(ErnieChatTest.java)
package com.example.langchain4jdemo.test;
import com.example.langchain4jdemo.service.BasicChatService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
/
* 文心一言测试用例
*/
@SpringBootTest
public class ErnieChatTest {
@Autowired
private BasicChatService basicChatService;
@Test
void testErnieChat() {
// 测试问题(贴合文心一言的中文场景)
String question = “用Java和LangChain4j对接文心一言的核心步骤是什么?”;
try {
String answer = basicChatService.chatWithAi(question);
System.out.println(“===== 文心一言(ERNIE 4.0)回答 =====”);
System.out.println(“问题:” + question);
System.out.println(“回答:” + answer);
} catch (Exception e)
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/219963.html