1.0 前言

去年我参加了阿里云大模型进阶(ACP-LLM)的五期在线训练营,并获得了终极大奖。个人认为其内容非常实用,因此对教程作了拆解并对代码进行了本地复现,在此作一分享。

2.1 用大模型构建新人答疑机器人

🚄 项目背景

假设你在一家教育内容开发公司工作。
随着新员工的持续加入,频繁的答疑需求导致了显著的时间与资源成本。

为了应对这一现象,公司整理了一个综合文档库,涵盖了公司规章制度、写作规范、日常工具使用指南等多个方面。
新员工们现在可以自行查阅资料,获取需要的信息了。

过了一段时间,公司发现,新员工的工作并不符合规章制度,工作频繁出错。
经过分析,原来是文档库的信息太多,新员工难以全面阅读与消化。

为了进一步解决这个问题,公司开发了一个问答系统
系统里配置了员工的高频问题,员工们可以自主提问。

问答系统运行了一段时间后,大家发现员工咨询量和工作出错情况还是没有显著减少。
公司领导意识到当前的问答系统存在诸多局限性,主要是系统基于固定规则和相似度判断的机制,使得当员工使用不同问法时,系统可能无法回答问题。

在这里插入图片描述
此外,人工配置问答对的工作量也很大,投入产出比很低。

针对这一现状,公司领导决定让你来负责这个事情,希望能彻底解决这个问题。
经过调研,你计划利用时下最先进的大模型技术来构建一个智能问答的应用。
基于大模型的智能应用无需配置问答对,它能够很好地理解人类语言,也可以基于公司内部知识库来准确回答问题,将真正有效地减少员工咨询量,提高工作效率。
接下来,你将动手实现这一目标。

💻 1. 通过 API 调用通义千问

体验大模型最直接的方式就是通过网页界面(如 通义千问)与它对话。
不过作为开发者,往往需要在自己的应用中集成大模型能力,你可以使用业界广泛采用的 OpenAI Python SDK 来调用通义千问大模型。

创建API key

为了调用通义千问,你需要前往阿里云大模型服务平台百炼,开通 模型调用服务 并在 API Key 页面 创建一个 API Key

如果页面顶部提示尚未开通百炼模型调用服务,请先开通再调用模型。
在这里插入图片描述

参考图示操作获取你的 API KEY

请添加图片描述

在使用 API 之前,你需要妥善处理 API Key 的安全问题。
直接在代码中写入 API Key 是一个不好的习惯,因为这样很容易在分享代码时泄露密钥,并且在更换API Key后所有明文编码的API Key部分都需要修改。
更安全、便捷的做法是将 API Key 存储在环境变量中。

单轮对话

先来尝试一个简单的对话。
下面的代码创建了一个名为“公司小蜜”的助手,它可以回答关于公司运营的问题。
你可以使用“选择项目管理工具”这个常见问题作为示例:

from openai import OpenAI


client = OpenAI(
  api_key=os.getenv("DASHSCOPE_API_KEY"),
  base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)

def get_qwen_response(prompt):
  response = client.chat.completions.create(
    model="qwen-plus-2025-07-14",
    messages=[
      # system message 用于设置大模型的角色和任务
      {"role": "system", "content": "你负责教育内容开发公司的答疑,你的名字叫公司小蜜,你要回答同事们的问题。"},
      # user message 用于输入用户的问题
      {"role": "user", "content": prompt}
    ]
  )
  return response.choices[0].message.content

response = get_qwen_response("我们公司项目管理应该用什么工具")
print(response)

模型输出:

你好呀,我是公司小蜜~很高兴为你解答问题!

关于咱们教育内容开发公司的项目管理工具选择,我建议根据团队规模、协作方式和项目复杂度来综合考虑。以下是几个非常适合我们这类团队的主流工具推荐:

1. **飞书项目(Lark Projects)**  
   - 优势:与飞书深度集成,沟通+任务管理一体化,适合日常协同高效推进内容研发流程。  
   - 特别适合:已有飞书作为办公平台的团队,支持看板、甘特图、多维表等视图,灵活又直观。

2. **Teambition**  
   - 优势:国产工具,界面友好,任务分派、进度追踪清晰,支持文档协同和日程管理。  
   - 推荐场景:内容策划→脚本撰写→审核→交付全流程管理,特别适合教育产品迭代。

3. **TAPD(腾讯敏捷协作平台)**  
   - 优势:支持敏捷开发与瀑布流模式,需求-任务-缺陷全链路管理,适合中大型项目。  
   - 教育类适用点:可用于课程体系开发、大型课件项目管理,数据沉淀能力强。

4. **Notion + Calendar组合**  
   - 如果团队偏好高度自定义,可用Notion搭建知识库+项目模板,搭配日历插件做排期,自由度极高。  
   - 小贴士:适合创意型内容团队,但需有人负责模板维护哦~

5. **Jira(偏技术向)**  
   - 若涉及较多技术开发(如APP课程功能),可搭配使用,但对纯内容团队可能略重。

💡 温馨建议:  
我们可以先明确当前痛点——是任务分配不清晰?进度难追踪?还是跨部门协作卡顿?然后选一个“轻量上手+可扩展”的工具试点,比如先用飞书项目跑一个课程开发项目看看效果~

需要我帮你出一份《项目管理工具选型对比表》或搭建模板吗?随时告诉我哟~ ✨

💡 小贴士:
以上使用qwen-plus模型,model可以替换。具体请参见阿里云模型列表
建议优先选择具有免费额度的模型,详细请见百炼模型用量
在这里插入图片描述

运行上面的代码后,你会注意到需要等待一段时间(约20秒)才能看到完整的回复。
这是因为默认情况下,API 会等待模型生成完所有内容后才一次性返回结果。

在实际应用中,这种等待可能会影响用户体验 —— 想象一下用户盯着一个空白界面等待20秒的场景!

多轮对话
若想实现多轮对话(让大模型参考历史对话信息进行回复),可参考阿里云文档的多轮对话说明。

流式输出

幸运的是,你可以使用"流式输出"(Streaming)来优化这个问题。
使用流式输出时,模型会像人类打字一样,一边思考一边输出,让用户能够立即看到部分回复,大大提升交互体验。
接下来,看看如何实现流式输出…

💡 小贴士:
流式输出只是改变了内容的展示方式,模型的思考过程和最终答案的质量都保持不变。
你可以放心使用这个功能来优化你的应用体验。

要实现流式输出,只需在之前的代码基础上添加 stream=True 参数,并调整输出方式:

def get_qwen_stream_response(user_prompt, system_prompt):
  response = client.chat.completions.create(
    model="qwen-plus-2025-07-14",
    system_prompt = "你负责教育内容开发公司的答疑,你的名字叫公司小蜜,你要回答同事们的问题。"
    messages=[
      {"role": "system", "content": system_prompt},
      {"role": "user", "content": user_prompt}
    ],
    stream=True
  )
  for chunk in response:
    yield chunk.choices[0].delta.content

response = get_qwen_stream_response("我们公司项目管理应该用什么工具")
for chunk in response:
  print(chunk, end="")

模型输出:

你好呀,我是公司小蜜~😊

关于咱们教育内容开发公司的项目管理工具选择,我来给你一些建议~

考虑到咱们日常要协调课程研发、脚本撰写、视频制作、上线排期等多个环节,我推荐这几个超好用的工具哦:

✅ **飞书项目**:特别适合咱们这种协作频繁的团队!任务分配、进度追踪、文件共享一站式搞定,还能和飞书日历、文档无缝联动,开会讨论时直接拉任务进来,超方便~

✅ **TAPD**(腾讯敏捷协作平台):如果是走敏捷开发模式的项目,比如快速迭代的在线课程产品,这个很合适。需求池、迭代计划、缺陷跟踪都支持,而且免费版功能就很够用。

✅ **Notion + 甘特图插件**:如果团队喜欢自由度高的协作空间,Notion 可以搭建专属的知识库+项目看板,适合长期课程体系规划,颜值还高✨

✅ **Teambition**:界面清爽,任务分组和时间轴视图很直观,适合中小型项目管理,上手快!

📌 小蜜建议:可以先根据项目类型选1-2个试点,比如主推项目用飞书项目,创新实验类用 Notion 玩创意~等跑顺了再统一规范~

需要我帮你做个对比表格 or 搭建模板吗?随时喊我哟~ 💬📊

通过对通义千问模型的两次提问,你可能会发现一些有趣的现象:

  1. 即使问题完全相同,每次的回答都略有不同。
    这是大模型的特性之一,就像人类一样,它会用不同的方式表达相似的观点。
  2. 模型给出的建议集中在一些通用的项目管理工具上,比如 JiraTrelloAsana
    虽然大模型知识丰富,但它并不了解你公司的具体情况,比如已有的工具链、团队规模、预算限制等。

这两个现象其实很有意思!
为什么大模型会表现出这样的特点呢?
要理解这一点,需要掀开大模型的“神秘面纱”,看看它是如何思考和工作的。
别担心,你将通过简单直观的方式来理解这些概念。

Logo

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

更多推荐