新闻详情

新闻详情

首页 / 资讯中心 / 详情

DeepSeek 的定位和价值

发布时间:2026/10/2 17:38:26来源:尧图网络
DeepSeek 的定位和价值
关键要点:选对模型:通用对话用deepseek-chat,代码专项用deepseek-coder;管好密钥与上下文:密钥走环境变量注入,多轮对话需控制messages长度;按场景调参:代码与事实任务调低temperature(0.20.5),创作发散任务调高(0.70.9),并善用流式输出提升体验。最近在做项目时,团队里关于如何高效接入大模型能力的讨论越来越多。很多开发者面对琳琅满目的模型接口,往往卡在“不知道从何下手”或者“担心集成成本太高”这两个问题上。其实,只要选对工具并掌握正确的调用方式,将智能对话能力嵌入现有系统并没有想象中那么复杂。DeepSeek 系列模型凭借其在代码生成、逻辑推理以及长文本处理上的出色表现,成为了不少技术团队的首选方案。对于一线开发人员来说,最关心的莫过于如何快速跑通第一个 Hello World,以及如何稳定地处理生产环境中的多轮对话和复杂上下文。很多时候,我们不需要深究模型背后的万亿参数训练细节,而是更需要一份清晰、可落地的实操指南,帮助我们从环境搭建到异常排查一路顺畅通关。这篇文章就是基于我最近的实战经验,梳理出的一套完整接入流程,希望能帮你少走弯路,快速把大模型能力转化为实际生产力。无论你是想构建智能客服助手,还是需要辅助代码编写的 Copilot 工具,亦或是处理海量文档的分析系统,接下来的内容都将围绕这些真实场景展开。我们将跳过繁琐的理论铺垫,直接深入代码层面,一步步拆解从密钥配置到参数调优的每一个关键环节,确保你读完就能动手实施。📑 目录导航① DeepSeek 核心定位与适用场景解析② 开发环境搭建与依赖库快速安装③ API 密钥获取与安全配置指南④ 首个对话实例:基础调用代码实现⑤ 多轮对话上下文管理实操步骤⑥ 长文本处理与文件上传功能演示⑦ 代码生成与调试辅助实战案例⑧ 常见报错代码解析与排查方法⑨ 响应速度优化与参数调整技巧⑩ 实战案例:构建智能客服助手⑪ 实际应用中的注意事项与最佳实践⑫ 结语与常见问题(FAQ)⑬ 参考资料与官方文档① DeepSeek 核心定位与适用场景解析在开始编码之前,明确 DeepSeek 的核心定位至关重要。它并非一个通用的聊天机器人,而是一个专注于深度推理与代码生成的开发者友好型模型。其底层架构经过特殊优化,特别擅长处理逻辑严密的数学问题、复杂的算法实现以及长上下文的代码库理解。这意味着,如果你的应用场景集中在技术研发辅助、自动化测试脚本生成、遗留代码重构或是需要理解数千行代码文件的场景,DeepSeek 能展现出远超普通对话模型的性能。相比之下,对于一些简单的闲聊或创意写作任务,虽然它也能胜任,但其真正的价值在于“解决难题”。例如,在金融风控系统中分析复杂的交易链路,或在教育领域批改包含详细解题步骤的理科作业,DeepSeek 的逻辑链条清晰度往往能给出更可信的结果。理解这一点,能帮助我们在后续的参数设置和提示词工程中,更好地引导模型发挥其特长,避免用它的短板去硬碰硬。一句话总结:把 DeepSeek 当“解题专家”用,而不是“聊天搭子”用。日常问答它也能做,但真正拉开差距的地方,是代码、推理和长文本这三类硬核任务。适合率先落地的场景如果你还在犹豫从哪里开始用,下面这几个场景最容易快速见到效果,建议作为第一站:代码生成与调试:写函数、补全逻辑、重构老旧代码、根据报错信息定位 Bug。这类任务建议直接用deepseek-coder模型。技术问答与文档分析:阅读几百上千行的技术文档、日志文件、接口文档,快速提取关键信息,适合替换“人工翻资料”的重复劳动。逻辑推理类任务:金融风控链路分析、理科作业批改、数据异常归因等,看重推导过程是否清晰、结论是否可信。智能客服或助手:结合外部知识库或系统提示词,处理高频咨询并保留多轮对话记忆,适合直接嵌入现有业务系统。需要谨慎使用的场景DeepSeek 的能力很强,但也不是万能钥匙。下面这些场景要么不是它的主战场,要么需要额外约束,接入前要有合理预期:纯闲聊与情感陪伴:能聊,但相比专门调优的对话模型,语气和“人味”可能不是强项,不适合作为产品的核心卖点。纯创意写作:写诗、小说、营销文案可以用,但若要追求强文学性或高度发散的内容,需要搭配较高的temperature并反复人工润色。多模态任务:如图片识别、语音合成等,需要先确认具体版本是否支持相关能力,不要默认 DeepSeek 能“看懂图”。两个主模型的快速选择DeepSeek 目前最常用的两个模型,选错会直接影响效果:模型定位优先使用场景deepseek-chat通用对话模型智能客服、内容生成、技术问答、日常对话deepseek-coder代码专项模型代码生成、Bug 修复、代码重构、算法实现新手建议:刚开始接入时,统一用deepseek-chat跑通全流程;等到代码相关任务明显变多、且对生成质量有更高要求时,再把代码场景切到deepseek-coder,逐个场景对比效果,避免一上来同时维护两个模型配置。为了更直观地理解 DeepSeek 的差异化优势,下表从几个关键维度对比了 DeepSeek 与通用大模型(如 GPT-4、文心一言)的差异:对比维度DeepSeek通用大模型(GPT-4 / 文心一言)代码生成深度优化,擅长算法实现、代码重构与调试,deepseek-coder版本针对性更强能力全面但偏通用,复杂工程代码的精准度略逊一筹逻辑推理数学与逻辑链条清晰,适合金融风控、理科批改等严谨场景推理能力优秀,但面对极端复杂逻辑时稳定性稍弱长文本处理超长上下文窗口,可一次性处理整本小说或大型技术文档上下文窗口相对有限,超长文本常需分块或摘要处理成本定价更具竞争力,Token 消耗性价比高,适合高频调用商业模型通常按量计费,大规模调用成本相对更高适用场景技术研发辅助、自动化测试、代码库理解、专业文档分析通用对话、创意写作、跨领域问答、多模态任务等掌握这节内容后,后面所有示例都会围绕这些“能发挥 DeepSeek 特长”的场景展开:少走弯路的秘诀,就是把力气花在它最擅长的地方。② 开发环境搭建与依赖库快速安装工欲善其事,必先利其器。接入 DeepSeek 最直接的方式是通过 Python 进行开发,因为它拥有最完善的社区支持和丰富的生态库。在动手之前,请先确认本机已经安装了Python 3.8 及以上版本。可以在终端执行以下命令查看版本号:python--version# 输出示例:Python 3.11.6如果返回的版本低于 3.8,建议先到 Python 官网 下载并安装更新版本。部分 Linux 发行版或 macOS 环境可能需要使用python3命令:python3--version2.1 创建并激活虚拟环境为了避免不同项目之间的依赖互相干扰,强烈建议为 DeepSeek 项目单独创建一个虚拟环境。在项目根目录下执行:# 创建虚拟环境python-mvenv deepseek_env# Windows 系统激活deepseek_env\Scripts\activate# macOS/Linux 系统激活sourcedeepseek_env/bin/activate激活成功后,终端提示符前通常会出现(deepseek_env)字样,说明当前已进入独立的 Python 环境。后续所有pip安装和脚本运行都应在这个环境中进行。2.2 安装核心依赖库环境准备就绪后,我们来安装官方推荐的 SDK 库。目前主流的做法是使用兼容 OpenAI 格式的客户端库,这样不仅可以复用现有的代码结构,还能轻松切换不同的模型后端。安装命令非常简单:pipinstallopenai除了openai之外,建议一并安装以下两个常用库:依赖库用途是否必须openai兼容 OpenAI 格式的 Python 客户端,用于发起 DeepSeek 对话请求✅ 必须python-dotenv从.env文件读取密钥等敏感配置,避免硬编码在代码中✅ 强烈建议aiohttp异步 HTTP 客户端,适合高并发或异步调用场景⚠️ 按需安装可以使用一条命令一次性安装全部依赖:pipinstallopenai python-dotenv aiohttp如果你希望项目依赖更规范、便于团队协作和部署复现,推荐在项目根目录创建requirements.txt,内容如下:openai=1.0.0 python-dotenv=1.0.0 aiohttp=3.9.0然后执行:pipinstall-rrequirements.txt2.3 国内镜像加速(可选)如果默认的 PyPI 源下载速度较慢,可以在安装命令后追加-i参数指定国内镜像,例如使用清华源:pipinstallopenai python-dotenv aiohttp-ihttps://pypi.tuna.tsinghua.edu.cn/simple2.4 验证安装结果所有依赖安装完成后,可以执行下面的命令快速验证核心库能否正常导入,并查看其版本号:python-c"import openai; print('openai version:', openai.__version__)"如果控制台正常输出版本号而没有报ModuleNotFoundError,说明核心依赖已经安装成功,可以进入下一节配置 API 密钥。若提示找不到模块,请确认虚拟环境已激活,或者检查pip是否指向了正确的 Python 环境。到这里,我们的开发环境就搭建完成了。后面所有 Python 示例都会基于这个虚拟环境运行。如果你同时需要了解 Java 技术栈,只需额外准备 JDK 8 及以上版本,并在 Maven 的pom.xml中加入 OpenAI Java 客户端依赖即可,具体配置将在「④ 首个对话实例:基础调用代码实现」一节给出。③ API 密钥获取与安全配置指南安全是工程落地的第一道防线。在正式调用接口前,你需要登录开发者平台获取专属的 API Key。这个密钥相当于你的身份凭证,一旦泄露可能导致额度被盗用或服务被滥用。因此,获取密钥后的第一原则是:永远不要把密钥直接写进代码文件,更不要提交到 Git 仓库。3.1 获取 API Key 的具体步骤首次接入时,按下面步骤获取密钥:登录 DeepSeek 开放平台(需先注册并完成实名认证)。进入控制台,在左侧菜单找到「API Keys」或「密钥管理」页面。点击「创建 API Key」,按提示填写名称(如local-dev、prod-server),便于区分不同环境用途。创建成功后,立即复制并保存。平台通常只在创建时完整展示一次密钥,关闭页面后将无法再次查看。重要:如果密钥不小心丢失或怀疑已泄露,不要犹豫,直接到平台「吊销(Revoke)」旧密钥并重新生成一个新的,旧密钥会立即失效。3.2 用 .env 文件管理密钥获取密钥后,最佳实践是利用环境变量或.env文件进行管理。在项目根目录下创建一个名为.env的文件,内容如下:DEEPSEEK_API_KEY=sk-your-actual-api-key-here DEEPSEEK_BASE_URL=https://api.deepseek.com/v1然后在 Python 代码中通过os模块或python-dotenv库读取。这样做不仅保证了代码的安全性,还便于在不同环境(开发、测试、生产)之间切换配置。下面是一个最简验证示例,确认环境变量能被正确读取:importosfromdotenvimportload_dotenv# 加载当前目录下的 .env 文件load_dotenv()api_key=os.getenv("DEEPSEEK_API_KEY")base_url=os.getenv("DEEPSEEK_BASE_URL")ifnotapi_key:raiseSystemExit("❌ 未找到 DEEPSEEK_API_KEY,请检查 .env 文件是否存在且内容正确。")print("✅ API Key 读取成功,长度:",len(api_key))print("✅ Base URL:",base_url)注意,python-dotenv只会把.env中的变量注入到当前进程,不会污染系统环境。团队项目推荐统一使用.env文件管理,保证每位开发者拿到项目后都能快速恢复同一套配置。3.3 用 .gitignore 防止密钥进入版本库很多密钥泄露事故都发生在git push之后。即使你只在本地使用.env,也要在第一时间把它加入.gitignore,防止误提交。在项目根目录创建.gitignore文件,至少包含:.env .env.* deepseek_env/ __pycache__/添加后可以执行git status确认.env不再出现在未跟踪列表中。如果已经误提交过,不仅要从仓库删除文件,还应立即吊销并重新生成密钥,因为 Git 历史中仍可能保留旧值。3.4 Java 项目如何读取密钥如果你使用 Java 技术栈,System.getenv("DEEPSEEK_API_KEY")同样可以读取环境变量。你需要先确保.env中的变量被导出到环境,或者在 IDEA、运行脚本、容器编排中直接注入环境变量。核心校验逻辑如下:StringapiKey=System.getenv("DEEPSEEK_API_KEY");if(apiKey==null||apiKey.isEmpty()){thrownewIllegalStateException("请先设置环境变量 DEEPSEEK_API_KEY");}3.5 服务器部署与 CI/CD 中的密钥注入如果需要在服务器上部署,不要在代码包中携带.env文件,而是通过部署平台或 CI/CD 流程将密钥作为**秘密变量(Secret)**注入,例如 GitHub Actions 的 Secrets、Docker 的--env-file、Kubernetes 的 Secret 等。生产环境建议为不同环境申请不同密钥,并设置额度告警,一旦发现异常调用立即吊销。到这里,API 密钥的安全配置就完成了。下一节将基于这份.env配置,编写第一个可运行的对话脚本。④ 首个对话实例:基础调用代码实现配置完成后,我们来编写第一个可运行的对话脚本。这段代码将演示如何初始化客户端、构建消息列表并发送请求,这是后续所有高级功能的基础。为了便于新手调试,整个调用过程可以概括为三步:初始化客户端 → 构建消息列表 → 发起请求并解析回复。4.1 Python 版:三步完成基础调用建议新建一个first_chat.py文件,把下面的代码完整复制进去:importosfromdotenvimportload_dotenvfromopenaiimportOpenAI# 加载环境变量load_dotenv()# 1. 初始化客户端:密钥与基础地址均从 .env 读取,避免硬编码泄露client=OpenAI(api_key=os.getenv("DEEPSEEK_API_KEY"),base_url=os.getenv("DEEPSEEK_BASE_URL"))# 2. 封装一个简单函数:接收用户输入,返回模型回答defsimple_chat(user_input):# 3. 构建消息列表:system 设定助手基调,user 传入用户问题messages=[{"role":"system","content":"你是一个专业的编程助手,擅长提供简洁准确的代码建议。"},{"role":"user","content":user_input}]try:# 4. 发起对话请求:指定模型、消息与温度参数response=client.chat.completions.create(model="deepseek-chat",messages=messages,temperature=0.7)# 5. 从返回对象中取出回复文本returnresponse.choices[0].message.contentexceptExceptionase:returnf"请求失败:{str(e)}"if__name__=="__main__":result=simple_chat("如何用 Python 快速读取 CSV 文件的前十行?")print(result)4.2 代码逐行解读对新手来说,只要抓住下面五个关键点,整段代码就完全读通了:load_dotenv():加载项目根目录.env中的DEEPSEEK_API_KEY与DEEPSEEK_BASE_URL,把密钥从代码中彻底分离出去。OpenAI(...):初始化客户端。这里的核心是base_url必须指向 DeepSeek 的兼容接口地址https://api.deepseek.com/v1,否则请求会被发到其他服务上。messages列表:DeepSeek 的一次对话本质上就是一个消息数组。system消息给模型定“人设”,user消息才是你的真实提问。client.chat.completions.create(...):发起请求的核心方法。model指定模型名,temperature控制回答的随机性,这里 0.7 属于比较均衡的取值。response.choices[0].message.content:响应结构中可能包含多个候选回答,这里取出第一个候选的正文内容,就是模型给出的最终答案。新手提示:client变量是整个脚本中全局共享的核心对象。后面「⑤ 多轮对话上下文管理」一节会直接复用这个client,所以请把它定义在函数外面,而不是每次调用都重新创建一次。4.3 运行方式与预期输出把代码保存为first_chat.py后,确认虚拟环境已激活,然后在项目目录下执行:python first_chat.py正常情况下,终端会在几秒后输出一段类似下面的回答(实际内容由模型动态生成,不必完全一致):你可以使用 Python 内置的 csv 模块来快速读取 CSV 文件的前十行,示例代码如下:……如果控制台打印的是请求失败:...,请先检查三件事:.env文件是否存在且与脚本同目录、DEEPSEEK_API_KEY是否已替换为真实密钥、DEEPSEEK_BASE_URL是否保持https://api.deepseek.com/v1不变。详细的报错排查可以跳转到「⑧ 常见报错代码解析与排查方法」查阅。4.4 关键参数速查第一次调用只需要关注model、messages和temperature这三个参数即可,其他参数保持默认。下面把最常用的几个参数一并列出来,供后续调整时快速查阅:参数作用本示例取值说明model指定使用的模型deepseek-chat通用对话模型;代码专项可换deepseek-codermessages对话消息数组system+user数组越长,上下文越完整,但 Token 消耗越高temperature控制输出随机性0.7取值 0~2,越低越确定,越高越发散max_tokens限制最大输出长度未设置可选;过小会截断回答,过大增加成本stream是否流式输出默认False置为True可逐字返回,详见「⑨ 响应速度优化」4.5 三种消息角色分别是什么理解system、user、assistant三种角色,是后续做好多轮对话的基础:system:系统提示词,用来定义助手的身份、语气和行为边界。它不会被视为“用户说的话”,但对回答风格影响最大。user:用户输入,也就是你真正想问的问题。assistant:模型的历史回复。单轮调用时可以不填;多轮对话时需把之前的回复回填进来,模型才能“记住”上文。4.6 Java 版:完整调用示例如果你更熟悉 Java 技术栈,同样可以轻松接入 DeepSeek。下面给出一个完整的 Java 版本调用示例,包含 Maven 依赖配置、环境变量读取、同步调用与异常处理。整体逻辑和上面的 Python 版完全一致:读取密钥 → 构建消息 → 同步调用 → 打印结果。首先,在pom.xml中添加 OpenAI Java 客户端依赖(DeepSeek 兼容 OpenAI 接口格式):dependencygroupIdcom.theokanning.openai-gpt3-java/groupIdartifactIdclient/artifactIdversion0.18.2/version/dependency然后,编写主程序,通过环境变量读取密钥并完成一次同步对话调用:importcom.theokanning.openai.completion.chat.ChatCompletionRequest;importcom.theokanning.openai.completion.chat.ChatMessage;importcom.theokanning.openai.completion.chat.ChatCompletionResult;importcom.theokanning.openai.service.OpenAiService;importjava.time.Duration;importjava.util.Arrays;importjava.util.List;publicclassDeepSeekDemo{publicstaticvoidmain(String[]args){// 1. 从环境变量读取密钥与基础地址,避免硬编码泄露敏感信息StringapiKey=System.getenv("DEEPSEEK_API_KEY");StringbaseUrl=System.getenv("DEEPSEEK_BASE_URL");if(apiKey==null||apiKey.isEmpty()){thrownewIllegalStateException("请先设置环境变量 DEEPSEEK_API_KEY");}// 2. 初始化客户端:设置超时时间,并指定 DeepSeek 兼容接口地址OpenAiServiceservice=newOpenAiService(apiKey,Duration.ofSeconds(30),baseUrl);// 3. 构建消息列表:system 设定角色基调,user 传入用户问题ListChatMessagemessages=Arrays.asList(newChatMessage("system","你是一个专业的编程助手,擅长提供简洁准确的代码建议。"),newChatMessage("user","如何用 Java 快速读取 CSV 文件的前十行?"));// 4. 构建请求:指定模型、消息与温度参数ChatCompletionRequestrequest=ChatCompletionRequest.builder().model("deepseek-chat").messages(messages).temperature(0.7).build();try{// 5. 同步调用并打印模型回复ChatCompletionResultresult=service.createChatCompletion(request);Stringreply=result.getChoices().get(0).getMessage().getContent();System.out.println("DeepSeek 回复:"+reply);}catch(Exceptione){// 6. 统一捕获异常,便于排查网络、鉴权或限流问题System.err.println("请求失败:"+e.getMessage());}finally{// 7. 释放客户端资源service.shutdown();}}}这段 Java 代码与 Python 版的关键差异只在客户端库的写法上:OpenAiService(apiKey, Duration.ofSeconds(30), baseUrl):创建客户端的同时设置连接与读取超时,并直接把base_url指向 DeepSeek 的兼容地址,与本节的.env配置完全对应。ChatCompletionRequest.builder():采用 Builder 模式构建请求体,和 Python 里的关键字参数一一对应。try-catch-finally:catch统一捕获网络、鉴权和限流异常,finally中的service.shutdown()保证即使请求失败也能释放底层连接池资源,适合直接嵌入 Spring Boot 等企业级项目。兼容性提示:不同版本的openai-gpt3-java客户端构造器签名可能略有差异。如果你使用的版本不支持带baseUrl的构造器,可将其改为new OpenAiService(apiKey, Duration.ofSeconds(30)),再通过客户端提供的 API 配置方式设置 DeepSeek 地址;如果使用 Spring Boot,也可以改用RestTemplate或WebClient直接请求 DeepSeek 的 REST 接口,只需把DEEPSEEK_BASE_URL拼在请求路径前即可。到这里,你已经成功跑通了 DeepSeek 的第一个对话实例。下一节会在此基础上解决一个更实际的问题:如何在多轮对话中让模型记住上文,而不是每次“失忆”。⑤ 多轮对话上下文管理实操步骤真实的交互往往不是一问一答就结束了,而是连续的对话流。要实现多轮对话,关键在于维护好messages列表的历史记录。每次用户发起新问题时,都需要将之前的对话历史(包括用户的提问和模型的回答)一并发送给服务器,这样模型才能“记住”上文的内容。5.1 核心原理:为什么模型会“失忆”DeepSeek 的接口本身是无状态的——它不会自动保存任何历史对话。每次调用chat.completions.create时,你传入的messages就是模型看到的全部信息。所谓“多轮对话”,本质上是客户端自己维护历史,把之前的问答逐条回填到messages里再发给模型。因此,多轮对话的成败完全取决于你如何维护这个messages列表。下面我们用一个可复用的ChatSession类来演示完整的管理流程。5.2 基础版:一个可复用的会话管理类在实际操作中,我们需要动态更新这个列表。以下是一个简单的管理类示例:importosfromdotenvimportload_dotenvfromopenaiimportOpenAI# 加载环境变量load_dotenv()# 初始化客户端(全局复用,不要每次调用都重新创建)client=OpenAI(api_key=os.getenv("DEEPSEEK_API_KEY"),base_url=os.getenv("DEEPSEEK_BASE_URL"))classChatSession:def__init__(self,system_prompt="你是一个有用的助手。"):# 会话初始化:以 system 消息打底,设定助手基调self.messages=[{"role":"system","content":system_prompt}]defsend_message(self,user_content):# 1. 追加用户消息到历史self.messages.append({"role":"user","content":user_content})# 2. 携带完整历史调用模型response=client.chat.completions.create(model="deepseek-chat",messages=self.messages)# 3. 取出模型回复assistant_content=response.choices[0].message.content# 4. 把模型回复也追加到历史,供下一轮使用self.messages.append({"role":"assistant","content":assistant_content})returnassistant_content# 使用示例session=ChatSession()print(session.send_message("我想学 Python。"))print(session.send_message("那有没有适合初学者的项目推荐?"))5.3 代码逐行解读self.messages:这是整个会话的“记忆仓库”。system消息永远放在第一位,之后按时间顺序追加user与assistant消息。先追加user再调用:每次提问前,先把用户的新问题追加进历史,这样模型能看到完整的上下文。调用后追加assistant:拿到模型回复后,立即把它也存进历史。这一步最容易遗漏——如果不回填模型回复,下一轮模型就看不到自己上一轮说了什么,对话会“断片”。client定义在类外:客户端对象全局共享,避免每次对话都重新初始化,浪费连接资源。5.4 进阶版:控制上下文长度(防止超限)需要注意的是,随着对话轮数增加,messages列表会越来越长,最终可能超出模型的上下文窗口限制。因此,在生产环境中,通常需要设计一种策略,比如只保留最近的 N 轮对话,或者对早期的历史记录进行摘要压缩,以平衡记忆长度与 Token 消耗。下面是在基础版上增加历史裁剪与Token 统计的进阶实现:classChatSessionWithMemory:def__init__(self,system_prompt="你是一个有用的助手。",max_history=6):self.messages=[{"role":"system","content":system_prompt}]self.max_history=max_history# 最多保留最近 N 条消息(不含 system)def_trim_history(self):"""裁剪历史:保留 system 消息 + 最近 max_history 条消息。"""iflen(self.messages)self.max_history+1:# 保留第 0 条 system,再保留末尾 max_history 条self.messages=[self.messages[0]]+self.messages[-self.max_history:]defsend_message(self,user_content):self.messages.append({"role":"user","content":user_content})response=client.chat.completions.create(model="deepseek-chat",messages=self.messages)assistant_content=response.choices[0].message.content self.messages.append({"role":"assistant","content":assistant_content})# 调用后裁剪,避免历史无限膨胀self._trim_history()# 打印 Token 消耗,便于成本监控usage=response.usageprint(f"[成本] prompt_tokens={usage.prompt_tokens}, "f"completion_tokens={usage.completion_tokens}")returnassistant_content# 使用示例:只保留最近 4 条消息session=ChatSessionWithMemory(max_history=4)print(session.send_message(
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

MES系统技术方案模板:从业务蓝图到落地避坑指南 2026/10/2 18:28:29

MES系统技术方案模板:从业务蓝图到落地避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Zotero深度配置指南:构建稳定跨平台学术工作流 2026/10/2 18:28:22

Zotero深度配置指南:构建稳定跨平台学术工作流

1. Zotero配置:不是装完就完事,而是学术工作流的起点 Zotero这东西,我最早接触是在写硕士论文那会儿,导师甩给我一个PDF文献列表,说“你得管好这些参考文献”。当时用Word手动编号、手动更新页码、手动核对作者年份&am…

阅读更多 →
AI一行命令画流程图:从需求文本到图片的全自动实践 2026/10/2 18:28:22

AI一行命令画流程图:从需求文本到图片的全自动实践

说实话,我过去最烦的一件事,就是在对话式 AI 工具里画流程图。明明需求就一句话的事,我要先打开代码编辑器截图,再切到聊天窗口粘贴,等模型识别完,还得自己动手调节点、拉箭头。改一次需求,整套…

阅读更多 →
YOLOv8 ONNX模型C++部署实战:预处理与后处理全链路解析 2026/10/2 18:28:16

YOLOv8 ONNX模型C++部署实战:预处理与后处理全链路解析

简介:本资源是一套基于ONNX Runtime与OpenCV在C环境下部署YOLOv8系列模型的完整工程,面向计算机视觉方向的本科生、研究生及算法工程师,解决目标检测、实例分割、姿态估计与旋转框检测(OBB)等多任务推理的跨平台落地难…

阅读更多 →
OpenPose 1.7.0 Win64 GPU+FLIR 3D 部署实操指南 2026/10/2 18:28:03

OpenPose 1.7.0 Win64 GPU+FLIR 3D 部署实操指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
深度学习入门实战:从零搭建多层感知机训练MNIST手写数字识别 2026/10/2 18:28:03

深度学习入门实战:从零搭建多层感知机训练MNIST手写数字识别

我翻了翻自己前两篇《从零开始的深度学习》的留言区,发现一个很有意思的现象:环境配置那篇评论全是“终于装好了”“conda又炸了”,第二篇线性回归那篇评论变成了“懂了,但好像又没完全懂”“然后呢?这能干啥&#xff…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉