【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

相关推荐
Flynn Liang9 小时前
同一需求三套写法:用 Spring AI、LangChain4j、AgentScope Java 各实现一个带工具调用的 RAG 助手(实战对比)
java·人工智能·大模型·架构设计·spring ai·langchain4j·agentscope
莽夫搞战术16 小时前
【量化实战】单卡3090部署Hy-SimulMT-30B-A3B-Interleave同传大模型
大模型·量化·混元·语音翻译·simulmt·ai同传
东姬AI20 小时前
迪士尼联手Adobe自训“片场专用“AI模型:当内容工业按下生产线开关,角色“开口“这道工序还没自动化
大模型·数字人·多模态·ai视频生成·内容生产
承渊政道2 天前
LangChainAI应用开发框架【LangChain与LangGraph介绍】
langchain·大模型·langgraph·ai应用开发
Flynn Liang2 天前
LangChain4j 1.23 架构全景:Java 大模型应用的 6 层抽象
java·langchain·大模型·rag·ai agent·langchain4j
武雄(小星Ai)2 天前
Ollama报llama-server binary not found排坑实录:服务活着引擎没了
人工智能·windows·大模型·ollama·排坑
小田学Python2 天前
工具调用:让 Agent 从“说”到“做”
大数据·大模型·agent·ai工具·deepseek
小田学Python3 天前
DeepSeek Harness 完整上手指南:安装部署 + 必装插件 + 用一周就回不去的功能
大数据·大模型·agent·ai工具·deepseek
aicat_cn4 天前
json-render 接入 Chat SDK:Agent 在 Slack 和 Teams 里直接回表格和按钮
ai·大模型
神奇的代码在哪里4 天前
Agent 记忆的组成部分:Anthropic The components of agent memory 文章的简要解读
大模型·claude·ai agent·上下文工程·agent记忆