本次基于云工作台开展大模型智能体开发实操,核心围绕 DeepSeek API 调用、基础智能体代码编写与调试展开,过程中解决了多项基础编程报错问题,同时厘清了大模型问答程序与真正智能体的技术边界,完成了从基础 API 调用到智能体核心概念落地的技术实践,现将本次实操的技术要点、问题解决、核心认知及技术总结梳理如下。

一、实操技术环境与核心框架

本次开发实操基于阿里云 DSW 云端开发环境,该环境集成代码编辑、运行、调试全流程功能,无需本地配置 Python 环境及相关依赖,可直接实现代码编写与执行,大幅降低了大模型应用开发的环境搭建门槛。核心技术框架以 Python 为开发语言,调用 OpenAI 风格的 DeepSeek 大模型 API,通过自定义类封装大模型调用逻辑,实现基础的问答交互功能,核心依赖为openai库,用于与 DeepSeek API 建立通信并完成请求与响应的处理。

二、核心开发步骤与技术实现

  1. 类的自定义封装:创建QAgent类,通过__init__方法初始化 OpenAI 客户端,传入 DeepSeek 的 API Key 和官方接口地址,建立与大模型的通信连接,实现客户端的复用。
  2. 问答方法实现:在QAgent类中定义ask方法,接收用户问题作为参数,通过客户端调用chat.completions.create接口,指定大模型基座(deepseek-chat)、对话消息体、温度等参数,发起同步请求(stream=False)。
  3. 响应结果解析:从大模型返回的响应数据中,提取choices列表中的结果,解析出消息内容并返回,实现用户问题到模型答案的转化。
  4. 调用与展示:实例化QAgent类,传入有效 API Key,调用ask方法传入具体问题,通过print或 Markdown 组件实现答案的输出展示。

三、实操中典型问题与技术解决方案

本次开发过程中遇到两类典型的 Python 运行时错误,均为基础开发细节问题,通过针对性的语法修正和逻辑调整实现解决,具体问题与方案如下:

  1. NameError: name 'e' is not defined
    • 问题成因:响应结果解析时,错误将索引值0写为未定义变量e,Python 解释器无法识别未声明的变量,导致报错。
    • 解决方案:将response.choices[e].message.content修正为response.choices[0].message.content,因 DeepSeek API 同步请求返回的choices列表仅有一个结果,固定索引0即可正确提取。
  2. NameError: name 'Markdown' is not defined
    • 问题成因:计划通过 Markdown 美化展示结果,但将from IPython.display import Markdown导入代码误写在注释中,未完成模块的有效导入,导致调用时未识别该类。
    • 解决方案:两种方式可实现解决,一是直接删除 Markdown 展示代码,仅保留print基础输出;二是在代码顶部显式导入Markdowndisplay组件,完成依赖加载后再进行调用。

此外,开发前需提前确保 DeepSeek API Key 的有效性,避免出现 401 认证错误,需从官方平台获取并正确复制,无字符缺失、空格等问题。

四、核心技术认知:问答程序与大模型智能体的本质区别

本次实操的基础代码仅实现了大模型的单轮问答功能,属于大模型 API 调用程序,并非真正意义上的大模型智能体,二者在技术能力和设计逻辑上存在本质区别,核心差异如下:

  1. 功能维度:基础问答程序仅支持单轮的问题输入与答案返回,无上下文记忆、无自主决策能力;大模型智能体具备记忆能力、工具调用能力、任务规划能力、自主执行能力,可实现多轮对话上下文关联,面对复杂问题时能拆解为多个子步骤,自主判断是否调用外部工具(如搜索、计算、代码运行),并循环执行直至完成任务。
  2. 设计逻辑:问答程序的核心逻辑是 “请求 - 响应” 的单向交互,仅实现 API 的简单封装与调用;大模型智能体的核心逻辑是 “感知 - 思考 - 行动 - 反馈” 的闭环,以大模型为核心大脑,结合记忆模块、工具库、规划模块,实现从 “被动回答” 到 “主动解决问题” 的转变。
  3. 应用场景:问答程序仅适用于简单的知识查询、信息解答等场景;大模型智能体可落地于复杂的业务场景,如智能办公、数据分析、自动化运维等,能够解决多步骤、跨工具的复合性问题。
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐