【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

相关推荐
vibecoding7719 分钟前
AI 大模型广场选型完整指南:七大平台模型矩阵、接口兼容与定价横向对比(2026 年)
人工智能·大模型·ai编程
AI_Gump1 小时前
网关篇 · 02|LiteLLM 深度解读
大模型
海带紫菜菠萝汤2 小时前
开源大模型出海开始收费:许可证里的三条路线与真实影响
人工智能·ai·开源·大模型
程序猿编码2 小时前
纯C++轻量计算机视觉推理引擎:基于GGML的端侧CV模型部署技术全解析
开发语言·c++·计算机视觉·大模型·transformer
长谷深风1113 小时前
Agent 跑了 30 分钟宕机,如何从断点继续?
java·大数据·人工智能·ai·大模型·memory·aiagent
长谷深风1115 小时前
Checkpoint设计的三大生死关
大数据·人工智能·ai·大模型·ai智能体·tool·aiagent
Web3&Basketball6 小时前
DeepSeek V4.1 Flash 多模态 OCR 实战:把扫描件变成结构化 JSON
深度学习·大模型·ai技术
kaixin_啊啊7 小时前
中国研究生数学建模竞赛(华为杯)学习笔记——数据预处理全流程
人工智能·笔记·学习·数学建模·ai·大模型·数据预处理
dozenyaoyida17 小时前
AI与大模型新闻日报 | 2026-09-09
人工智能·ai·chatgpt·大模型·新闻
thesky12345621 小时前
27届大模型面试准备(八十四):大模型统一 API 网关与多模型接入工程——路由、降级、计费与多供应商容灾
大模型·面试准备