Deepseek官方API没法用?用硅基流动啊,满血版深度思考

270 阅读2分钟

DeepseekR1大模型火了之后,我们专业AI应用开发者就用不上Deepseek了。。。接口天天崩,天天无法访问,这不闹嘛!

然后同事就给推荐了硅基流动平台,我只想说:真香~~~~

来看一下硅基流动平台的接口 文档:

  1. 请求参数 model,一眼看过去也快三十个了,挺好,有我们想用的R1大模型

  2. 再研究下它的响应结构

OK,通过reasoning_content 字段获取思考内容。

接下来开始扩展我们的JBoltAI框架,接上硅基流动平台,让小伙伴们可以用上它。

开整

  1. 新增一个AI大模型类型:SILICONFLOW
       public static final AIModel SILICONFLOW = new AIModel(SN_SILICONFLOW, "硅基流动",  SiliconflowAIImpl.INSTANCE, null)

2. 为硅基流动写一个AI实现类:

使用

上代码:

//1. 将大模型注册为全局资源
ResourceCenter.registerAI("id1", AIModel.SILICONFLOW, JBoltAITestConfig.SILICONFLOW_API_KEY);
 
//2.指定使用SILICONFLOW大模型发起聊天,会自动从全局资源中调取SILICONFLOW的资源
JBoltAI.chat(AIModel.SILICONFLOW).setModelName("Pro/deepseek-ai/DeepSeek-R1")
        .contextMessages(Arrays.asList(
                new AIMessage(AIMessageRole.user, "你好,我叫张三丰,请问你是谁?"),
                new AIMessage(AIMessageRole.assistant, "你好,我是人工智能大模型,有什么我可以帮你的")
        ))
        .prompt("请你重复下我的名字")
        .onThinking((e, think, status) -> {
            if (status == ThinkStatus.START) {
                System.out.println("===== 思考开始 =============");
            } else if (status == ThinkStatus.RUNNING) {
                System.out.print(think);
            } else if (status == ThinkStatus.COMPLETE) {
                System.out.print(think);
                System.out.println("===== 思考结束 =============");
                System.out.println("===== 开始回答 =============");
            }
        })
        .onSuccess((e,msg) -> {
            System.out.print(msg.getContent());
        }).publish().await();

在上面的例子中,我们模拟构造了一个上下文环境,让AI基于历史消息进行回答。

成功!

通过onThinking 回调我们可以获取到R1大模型的思考过程,status代表当前思考过程的进度。

onSuccess 回调中我们可以获取到R1大模型的正式回答内容。

欢迎大家使用的JBoltAI 开发框架,来加速开发你的AI应用和知识库应用。