从零到一:用华为云 AI DevSpace + CodeArts 构建一个可用的智能问答助手

举报
yd_296918324 发表于 2026/10/30 08:03:27 2026/10/30
【摘要】 以构建企业知识库智能问答助手为例,完整记录在华为云 AI DevSpace 上完成环境搭建、模型接入、RAG 检索增强、提示词工程、联调与发布的全过程,附关键代码与踩坑总结。

一、为什么要写这篇

很多同学在拿到“AI 开发”相关任务时,第一反应是去找一个现成的 Demo,但真正的能力成长来自“从需求到上线”的完整闭环。本文以构建一个面向企业内部知识库的智能问答助手为例,完整记录在华为云 AI DevSpace 上完成环境搭建、模型接入、检索增强(RAG)、提示词工程、联调与发布的全过程,并给出可直接复用的关键代码与踩坑总结,帮助你把“会用工具”变成“能交付作品”。

二、整体方案与技术选型

系统的核心链路是:用户提问 → 意图理解 → 向量检索召回相关文档片段 → 拼接上下文交给大模型生成 → 返回带引用的答案。技术选型上:

  • 开发环境:华为云 AI DevSpace,开箱即用,省去本地配环境的成本,内置常用工具链与模型调用能力;
  • 模型服务:通过平台提供的模型接口调用对话模型,避免自建推理集群;
  • 检索层:对知识文档做切分与向量化,落地为轻量向量索引,实现 RAG;
  • 应用层:一个轻量 Web 服务,提供提问接口与前端交互页面。

三、关键实现步骤

3.1 文档切分与向量化

RAG 效果的好坏,很大程度取决于切分策略。我们不采用“定长截断”,而是按语义段落切分并保留重叠,避免把一句话切成两半导致语义丢失。核心思路:先按标题层级与空行分段,再对超长段落做带 overlap 的二次切分。

def split_docs(text, max_len=500, overlap=80):
    paras = [p.strip() for p in text.split("\n\n") if p.strip()]
    chunks = []
    for p in paras:
        if len(p) <= max_len:
            chunks.append(p)
        else:
            start = 0
            while start < len(p):
                chunks.append(p[start:start + max_len])
                start += max_len - overlap
    return chunks

3.2 提示词工程:让模型“只依据检索内容作答”

智能问答最大的坑是幻觉。我们通过系统提示词强约束:只能依据提供的上下文回答,找不到就说不知道,并要求给出引用来源。一个经过实践打磨的提示词模板如下:

你是一名严谨的企业知识助手。请仅依据【参考资料】回答问题:
1) 若资料无法回答,请直接回复“根据现有资料无法确定”,不要编造;
2) 回答后用 [序号] 标注引用来源;
3) 语言简洁、条理清晰,必要时分点说明。

【参考资料】
{context}

【用户问题】
{question}

3.3 检索 + 生成的编排

把“召回”和“生成”串起来,形成一次完整问答。伪代码如下,重点是控制送入模型的上下文长度,避免超出窗口:

def answer(question, top_k=4):
    hits = vector_store.search(question, top_k=top_k)
    context = build_context(hits)          # 拼接并去重
    prompt  = PROMPT_TEMPLATE.format(context=context, question=question)
    return llm.chat(prompt)

四、联调与效果验证

联调阶段建议准备一组“金标准问题”,覆盖三类场景:能被资料直接回答、需要跨文档综合、资料中没有答案。前两类验证检索与整合能力,第三类专门检验是否会“胡说”。实测中,加入引用约束后,第三类问题的“编造率”显著下降;对跨文档问题,把 top_k 从 3 调到 5 并加入重排(re-rank)后,答案完整度提升明显。

五、踩坑与经验总结

  1. 切分比模型更重要:多数“答非所问”其实是检索没召回对,先优化切分与召回,再考虑换更大的模型。
  2. 上下文不是越多越好:塞太多片段会稀释关键信息,控制 top_k 并做去重、重排收益更大。
  3. 把“不知道”当成一等公民:一个能诚实说不知道的助手,比一个自信胡说八道的助手更可信。
  4. 开发环境用云上:AI DevSpace 免去环境配置,把时间留给真正重要的算法与产品逻辑。

六、小结

用一个可交付的小作品串起“环境—模型—检索—提示词—联调—发布”的完整链路,是提升 AI 工程能力最有效的方式。本文的方案可以直接迁移到客服问答、内部知识库、文档助手等场景。欢迎在评论区交流你的实现,一起把作品打磨得更好。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。