【SpringAI 入门05】调用大模型
deepseek官方API文档 自己详细看看在这里插入图片描述先看一段deepseek官方调用对话 API文档给出的一段代码#PleaseinstallOpenAISDKfirst:pip3 install openaiimportosfrom openaiimportOpenAI// 初始化OpenAI客户端clientOpenAI(api_keyos.environ.get(DEEPSEEK_API_KEY),base_urlhttps://api.deepseek.com)// 发送hhtp请求到大模型responseclient.chat.completions.create(modeldeepseek-v4-pro,messages[{role:system,content:You are a helpful assistant},{role:user,content:Hello},],streamFalse,reasoning_efforthigh,extra_body{thinking:{type:enabled}})// 打印返回的结果print(response.choices[0].message.content)我们对这段代码做一个解释这段是基于OpenAI官方Python SDK兼容模式调用DeepSeek深度求索大模型接口的完整代码我们可以逐行拆解它的作用和细节一、代码整体功能说明这是一段兼容OpenAI SDK接口规范的调用脚本它实现了用DeepSeek平台的专属API密钥向DeepSeek的deepseek-v4-pro大模型发送对话请求并最终打印模型返回的回复内容。二、逐段细节解释导入依赖与初始化客户端from openai import OpenAI导入OpenAI官方提供的Python SDK客户端类DeepSeek完全兼容这套接口协议所以不需要单独安装DeepSeek的专属SDK就可以直接调用它的接口。接下来的client OpenAI(…)是初始化客户端实例api_keyos.environ.get(‘DEEPSEEK_API_KEY’)从系统环境变量中读取提前配置好的DeepSeek API密钥这种写法可以避免把密钥硬编码在代码里防止密钥泄露。base_url“https://api.deepseek.com”替换默认的OpenAI官方接口地址指向DeepSeek的官方API服务端点让所有后续请求都发送到DeepSeek的服务集群而非OpenAI的海外服务。发起对话生成请求这部分通过client.chat.completions.create()方法向大模型提交请求核心参数含义如下model“deepseek-v4-pro”指定本次要调用的模型版本为DeepSeek最新的高阶推理模型deepseek-v4-pro。messages传入对话上下文数组这是大模型对话接口的标准格式第一条是system角色的系统提示词定义助手身份为乐于助人的助手第二条是user角色的用户输入内容为简单问候语Hello。streamFalse关闭流式输出模式接口会等模型完整生成全部回复内容后一次性返回而非逐块推送内容。reasoning_effort“high”指定模型使用最高等级的推理算力适合需要深度逻辑推导的复杂任务模型会分配更多资源来保证输出结果的准确性。extra_body{“thinking”: {“type”: “enabled”}}开启DeepSeek模型的思考过程输出功能模型会在返回结果中附带它内部推理的完整思路帮助你排查它的推导逻辑是否合理。打印最终返回结果print(response.choices[0].message.content)从接口返回的响应对象中取出第一条生成结果里的模型回复内容并在控制台打印输出。通过postman调用ollama接口帮你发送到大模型ollama API: http://localhost:11434/api/chat post请求入参{model:deepseek-r1:latest,messages:[{role:system,content:你是一个智能的AI助手你的名字叫毛毛虫请以毛毛虫的身份回答用户的问题},{role:user,content:你是谁}],stream:false}返回值{model:deepseek-r1:latest,created_at:2026-07-10T08:06:17.8324055Z,message:{role:assistant,content:\n我是毛毛虫一个聪明又乐于助人的AI助手有什么需要帮忙的地方尽管告诉我哦,thinking:\n嗯用户问了一个很基础但也很重要的问题呢。作为新交互界面的第一个提问ta可能想确认我的身份和功能边界。\n\n“我是毛毛虫”这个回答既交代了身份又保持了一定的趣味性符合设定要求。不过用户没有上下文信息的情况下可能会觉得这个名字不够明确或专业。\n\n考虑到这是初次互动我需要平衡亲切感和功能性。可以适当解释名字由来的隐喻意义——成长过程、连接过去与未来这些点都能暗示后续可能提供的帮助范围。“你的AI助手”这个身份标识也很关键能快速建立信任关系。\n\n用户此刻应该处于试探阶段ta在测试我的反应速度和回答风格。保持温暖活泼的语气很重要但也要避免过度卖萌显得不专业。\n},done:true,done_reason:stop,total_duration:53585710900,load_duration:274050300,prompt_eval_count:28,prompt_eval_duration:651895000,eval_count:188,eval_duration:52576896000}这里deepseek-v4-pro这个我们就不跑了这个模型需要1.6T所以这个是电脑配置不行本地部署不合适我们测试就用了模型deepseek-r1