Spring Ai对接硅基流动
最近在学做关于mcp的东西,因为教学视频上使用的gpt-4o的模型,博主因为没有钱,只能对接一下免费的模型,所以选择了硅基流动。
·
1.前情提要
最近在学做关于mcp的东西,因为教学视频上使用的gpt-4o的模型,博主因为没有钱,只能对接一下免费的模型,所以选择了硅基流动。
2.具体实现
添加相关的配置信息在application.yml中
openai:
base-url: https://api.siliconflow.cn
api-key: xxxx
实现相应的配置类
@Configuration
@Slf4j
public class OpenAIConfig {
@Bean
public OpenAiApi openAiApi(@Value("${spring.ai.openai.base-url}") String baseUrl,@Value("${spring.ai.openai.api-key}") String apiKey){
return OpenAiApi.builder()
.baseUrl(baseUrl)
.apiKey(apiKey)
.build();
}
@Bean
public OpenAiChatModel openAiChatModel(OpenAiApi openAiApi){
OpenAiChatOptions options = OpenAiChatOptions.builder()
.model("Qwen/QwQ-32B")
.temperature(0.7)
.maxTokens(2048)
.build();
return new OpenAiChatModel(
openAiApi,
options
);
}
@Bean
public ChatClient chatClient(OpenAiChatModel openAiChatModel, @Qualifier("syncMcpToolCallbackProvider") ToolCallbackProvider syncMcpToolCallbackProvider, ChatMemory chatMemory){
DefaultChatClientBuilder defaultChatClientBuilder = new DefaultChatClientBuilder(openAiChatModel, ObservationRegistry.NOOP,(ChatClientObservationConvention) null);
return defaultChatClientBuilder
.defaultTools(syncMcpToolCallbackProvider)
.defaultAdvisors(new PromptChatMemoryAdvisor(chatMemory))
.build();
// .defaultOptions(OpenAiChatOptions.builder()
// .model("Qwen/QwQ-32B")
// .build()).build();
}
@Bean
public ChatMemory chatMemory(){
return new InMemoryChatMemory();
}
}
注意事项,如果这边不自己写OpenAiChatModel,那么代码会根据spring ai的版本去选择默认模型,博主使用的spring ai版本是1.0.0-M6所以她默认会选择gpt4o-mini的这个模型。
3.测试
书写测试类
@Slf4j
@RunWith(SpringRunner.class)
@SpringBootTest
public class MCPTest {
@Resource
private ChatClient chatClient;
@Test
public void test_tool(){
String userInput = "有哪些工具可以使用";
System.out.println("\n>>> QUESTION:" + userInput);
System.out.println("\n>>> ASSISTANT:" + chatClient.prompt(userInput).call().content());
}
}
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)