【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

相关推荐
重庆小透明3 小时前
今日收获(一些个人思考)
java·spring·大模型·springai·prompt注入
汤姆yu4 小时前
面向具身智能的物理视频模拟器:蚂蚁灵波LingBot-Video开源模型全解析
java·大数据·人工智能·gpt·开源·大模型·音视频
aqi0016 小时前
15天学会AI应用开发(十七)使用LangGraph实现会话记忆功能
人工智能·python·大模型·ai编程·ai应用
xixixi7777716 小时前
三大 AI 安全里程碑:Akamai 高危风险预警、智能体水印强制落地、PQC 量子安全全产业链统一
大数据·人工智能·安全·ai·大模型·智能体·政策
AI小码1 天前
WAIC 2026前瞻:AI产业进入拼落地的下半场
人工智能·算法·ai·程序员·大模型·编程·智能体
故乡de云1 天前
gemini-3-pro-preview 调用 generateContent 完整配置与排错:REST / Python SDK / Code0 兼容接入
人工智能·大模型·api·claude
zzzll11111 天前
LangChain实战-RAG问答机器人
学习·计算机·程序员·大模型