【SpringAI 入门05】调用大模型

deepseek官方API文档 自己详细看看

在这里插入图片描述

先看一段deepseek官方调用对话 API文档给出的一段代码:

java 复制代码
# Please install OpenAI SDK first: `pip3 install openai`
import os
from openai import OpenAI
// 初始化OpenAI客户端
client = OpenAI(
    api_key=os.environ.get('DEEPSEEK_API_KEY'),
    base_url="https://api.deepseek.com")

// 发送hhtp请求到大模型
response = client.chat.completions.create(
    model="deepseek-v4-pro",
    messages=[
        {"role": "system", "content": "You are a helpful assistant"},
        {"role": "user", "content": "Hello"},
    ],
    stream=False,
    reasoning_effort="high",
    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_key=os.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"。

stream=False:关闭流式输出模式,接口会等模型完整生成全部回复内容后一次性返回,而非逐块推送内容。

reasoning_effort="high":指定模型使用最高等级的推理算力,适合需要深度逻辑推导的复杂任务,模型会分配更多资源来保证输出结果的准确性。

extra_body={"thinking": {"type": "enabled"}}:开启DeepSeek模型的"思考过程输出"功能,模型会在返回结果中附带它内部推理的完整思路,帮助你排查它的推导逻辑是否合理。

打印最终返回结果‌

print(response.choices0.message.content):从接口返回的响应对象中,取出第一条生成结果里的模型回复内容,并在控制台打印输出。

通过postman调用ollama接口,帮你发送到大模型

ollama API: http://localhost:11434/api/chat post请求

入参:

java 复制代码
{
    "model": "deepseek-r1:latest",
    "messages": [
        {
            "role": "system",
            "content": "你是一个智能的AI助手,你的名字叫毛毛虫,请以毛毛虫的身份回答用户的问题"
        },
        {
            "role": "user",
            "content": "你是谁?"
        }
    ],
    "stream":false
}

返回值:

java 复制代码
{
    "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

相关推荐
thesky1234565 小时前
27届大模型岗面试准备(十四):多模态大模型 VLM——从视觉编码器到多模态推理的完整链路
人工智能·ai·大模型
aqi0011 小时前
15天学会AI应用开发(十八)使用LangGraph实现精确记忆功能
人工智能·python·大模型·ai编程·ai应用
小白跃升坊11 小时前
WorkBuddy最新动态:V5.3.5上线人机双写,AI办公进入同屏协作时代
大模型
煎饼学大模型12 小时前
从 Harness 工程到 Loop 工程落地实践
人工智能·大模型·harness
gsls20080813 小时前
大模型供应商API端点兼容协议
大模型·api·协议·兼容
小白跃升坊1 天前
倒反天罡!DeepSeek V4-Flash 正式版悄然上线:130亿激活参数,把自家1.6万亿旗舰「以下克上」
ai·大模型·agent·deepseek·v4
才鲸嵌入式1 天前
JEPA具身智能或自动驾驶路线的公司
人工智能·机器学习·大模型·自动驾驶·具身智能·通用人工智能·jepa
安逸sgr1 天前
ReAct 是什么?Thought、Action、Observation 分别代表什么?
人工智能·ai·大模型·agent·智能体
安逸sgr2 天前
Prompt 优化和微调有什么区别?什么场景优先用 Prompt?
人工智能·ai·大模型·prompt·agent·智能体
thesky1234562 天前
27届大模型岗面试准备(十一):模型蒸馏与稀疏化——从软标签到结构化剪枝的压缩全景
面试·大模型·剪枝·知识蒸馏·模型蒸馏·稀疏化