乐于分享
好东西不私藏

Dify 实战 08 | 创建第一个 AI 助手-A股年报分析助手

Dify 实战 08 | 创建第一个 AI 助手-A股年报分析助手

前面的章节解决的是环境、平台和模型接入问题。这一篇开始,目标转向应用层:把已经可用的模型能力,封装成一个别人可以直接使用的助手。

第一个 AI 助手不要追求功能全,而要优先追求场景边界清楚、效果可测、价值易验证。

一、先选一个边界明确的场景

第一版助手最适合满足三个条件:

问题范围清楚、资料(数据)来源、回答对错容易判断。

问题范围清楚:是什么业务的助手,该助手是解决什么问题,在解决问题方面一定要聚焦。资料来源稳定:回答对错容易判断:

资料(数据)来源:助手业务的质量是除了大模型加持外,最重要是基础数据,资料的来源一定要准确,有些说做AI知识库,需要先治理知识库数据,这句话一点也不假。

回答对错容易判断:怎么判断回答的问题是否正确时,需要有出处,需要有来源,如果回答问题不准确,助手肯定是用不起来的。

做什么业务助手?

可以做内部知识问答、固定业务话术助手、FAQ 助手、培训资料助手,这个都是单一的业务助手,比较聚焦。这些业务助手比“做一个全能 AI”更适合,全能AI一般企业没有能力做,架构太复杂了。

场景边界越清楚,后面的提示词、知识库和测试集就越容易收敛。

这次咱们做的是“A股年报分析助手"。

为了便于测试,咱们这次只选择2025年部分软件的年报数据。

二、收集知识库的资料数据

收集年报数据,我使用workbuddy,创建工作区后,直接发送指令就可以了,下载的是上市公司的PDF版本(关于workbuddy的使用,咱们有空再详细讲一下。workbuddy是现阶段windows平台下比较好用的Agent工具)

1)给workbuddy下指令

2)等待执行结果,最终在一顿编写脚本,一顿下载,最终下载成功(期间不需要人关注他)
3)这些是下载的pdf文件(一共250份)

三、创建AI助手-A股年报分析助手

回到Dify中,我们来创建咱们的A股年报分析助手。

1)创建应用,咱们这次使用模板,点击“从应用模板创建”,

应用名称填写:A股年报分析助手

创建后直接来到这个页面,需要配置知识库和LLM

2)我们先创建一个知识库,知识库*的右侧有一个+号,点击进入知识库创建。
咱们先创建一个空的知识库,一会再来填充数据。
出问题了兄弟,创建空知识库的前端页面有些问题,不能拖动这个对话框,咱们先上传一个文件试试,成功了。
配置一下咱们higress里面的模型,一个是embedding,一个是rerank。然后保存
又报错了,鼠标移动到红色的小圈圈,查看错误信息:原来是aliyun的免费额度没有了。
我一会将云上的算力切换到本地ollama的算力,我们先继续,点击“前进文档”,然后修改一下知识库的名称。
知识库选择一下“A股年报知识库”
3)配置LLM
在LLM模型中选择higress中的deepseek-v4-flash
SYSTEM先用默认的提示词,这个是引导大模型来作为角色扮演,去年提示词工程还比较火,现在随着大模型基础能力提升,现在不是那么重要了,但是还是需要引导一下。

四、修改算力为本地算力,使用ollama+xinference

咱们之前介绍过,我本地有两个4090的卡,运行着ollama,ollama可以运行LLM的模型和embedding,但是不能运行不能使用Rerank,需要部署xinference工具加载rerank模型(xinference安装就不用细说了,DeepSeek查询一下就可以,很简单

1)先运行一下对外提供的服务

xinference-local --host 0.0.0.0 --port 9997

2)运行加载rerank模型的命令

xinference launch --model-name bge-reranker-large --model-type rerank --model_path /home/user/soft/xinference_models/bge-reranker-large --model-uid  bge-reranker-large --gpu-idx 1

3)测试一下是否可以用,用大模型可以帮着生成测试命令

~curl -X 'POST' \>   'http://localhost:9997/v1/rerank' \>   -H 'accept: application/json' \>   -H 'Content-Type: application/json' \>   -d '{>   "model": "bge-reranker-large",>   "query": "什么是机器学习?",>   "documents": [>     "机器学习是人工智能的一个分支。",>     "今天天气很好,适合出去散步。",>     "深度学习是机器学习的一个子领域。",>     "我喜欢吃披萨。">   ]> }'{"id":"81ee4378-67f1-11f1-9743-c4cbe1aefb3a","results":[{"index":0,"relevance_score":0.9994064569473267,"document":null},{"index":2,"relevance_score":0.2259484976530075,"document":null},{"index":1,"relevance_score":0.00007631722110090777,"document":null},{"index":3,"relevance_score":0.00007630384061485529,"document":null}],"meta":{"api_version":null,"billed_units":null,"tokens":null,"warnings":null}}

测试是成功的,咱们就可以使用这个模型服务了。

4)在higress里面增加AI服务提供者

先看一下higress现有的配置

增加一下xinference的配置:http://ip地址:端口/v1/rerank

5)在higress中配置路由,将llm、embedding、rerank指向本地

Dify中llm的参数不需要修改,higress中需要做模型映射,具体看上一篇的介绍(挂羊头卖狗肉)。(当然也可以直接修改Dify的配置,我主要是想着测试Higress)

Dify中embedding的参数需要修改一下,之前没有添加/v1/embeddings的地址,如果不增加就匹配不到embedding的路由,也就转发不到ollama的服务中。咱们之前使用云服务是没有问题,因为他是匹配了/v1的路由,直接上云端服务了。

Dify中rerank的参数也需要修改一下,因为Dify中使用higress组件,再选择rerank协议只有一个阿里云百炼文本排序,这个排序的API与正常的不太一样,测试半天一直不成功。所以使用通用的组件,直接对接Higress。

使用OpenAI-API-compatible组件,在Dify中增加一下rerank模型。
地址是http://host.docker.internal:8080/v1/,模型名称:bge-reranker-large
6)设置完成模型的映射后,在知识库里面修改咱们新创建的模型:bge-reranker-large
修改完成后,别忘记点击上面的发布,不然修改就不会生效。
五、重试检索失败的文件
再次来到知识库,点击进入知识库
来到之前上传失败的文件,点击重试,重新做检索,如下图所示嵌入处理中
处理成功后,右下角有处理的数据(段落数量 503 paragraphs、嵌入花费 560,060 tokens)
重试检索文件成功,这地方最大的问题是rerank的模型的对接。如果嵌入处理中的进度全部跑完才报错,那就是rerank配置的问题。如果开始处理就报错,就是embedding模型的问题。
这些问题需要检查,网络是否联通,模型是否可以正常提供服务。测试这些文档可以通过curl测试本地模型(算力的机器),还有网络测试算力模型(直接调用higress)
六、新增年报文件到知识库
点击知识库增加文件,但是每批最多5个文件,每个文件不超过15MB。
点击“下一步”,开始进行处理。我单独多增加几个公司。
七、测试AI助手的功能
1)点击探索,在web apps里面找到“A股年报分析助手”,我们通过chat的模型里面做简单的问答
2)再问一下财务的信息。
这个时间消耗比较久,查询比较慢,本地的算力还是太小了。
3)理清一下这个助手是怎么处理的。
咱们可以通过编排可以看到以下步骤
(1)开始
(2)知识检索
    在知识库中搜索与用户问题最相关的内容,并将结果传递给 LLM。
(3)LLM
    AI 基于检索到的知识库内容结合用户问题,生成清晰、有帮助的回答。
(4)Answe
将 AI 生成的最终回复展示给用户。
4)在编排页面,点击预览,可以看到整个过程的调试过程。
先找知识库,然后将知识库找到的信息,丢给LLM模型,然后等着LLM模型返回。
咱们再查询一下2026年的信息
知识库查询到的还是2025年的信息,将2025年的数据丢给了大模型,看看大模型怎么返回的。
大模型返回:这个问题我暂时没有把握,能否换个方式描述一下?
证明知识库已经检索到这个数据,丢给大模型处理,大模型根据知识库的部分数据,不能检索出来2026年年报的数据,所以不能返回。
八、结束语
知识性的AI助手,比较难的是知识库的治理(清洗、分段、入库、还有怎么提问者的话术),实际上现阶段不担心大模型的能力,最担心是第一步知识检索不能检索出来,或者检索出来的知识库的信息不够精确。

咱们下一篇讲Dify的Workflow,是否可以通过Workflow的设定,将知识库的检索成功率提升一下呢,让 AI 从回答问题升级到执行流程,才算真正开始接近业务系统。