在人工智能时代,企业或个人需要高效管理私有知识,并通过智能问答系统快速获取信息。本文将介绍如何结合 DeepSeek-R1 大模型 和 Dify 平台,快速构建一个支持私有知识库的智能问答系统。
# 拉取 DeepSeek-R1 镜像(以 7B 模型为例)
docker pull deepseek-ai/deepseek-r1-7b-chat
# 启动容器
docker run -d \
--name deepseek-r1 \
-p 8000:8000 \
-e MODEL_NAME=deepseek-r1-7b-chat \
deepseek-ai/deepseek-r1-7b-chat
# 克隆模型仓库
git clone https://github.com/deepseek-ai/DeepSeek-R1.git
cd DeepSeek-R1
# 安装依赖
pip install -r requirements.txt
# 启动服务(默认端口 8000)
python app.py --model deepseek-r1-7b-chat
验证服务
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-r1-7b-chat",
"messages": [{"role": "user", "content": "你好,介绍一下自己"}],
"temperature": 0.7
}'
# 拉取 Dify 镜像
docker pull langgenius/dify-api
docker pull langgenius/dify-web
# 启动后端 API
docker run -d \
--name dify-api \
-p 5001:5001 \
-v dify-data:/app/data \
-e DATABASE_URL="sqlite:app/data/dify.db" \
langgenius/dify-api
# 启动前端 Web
docker run -d \
--name dify-web \
-p 8188:80 \
-e API_BASE_URL="http://localhost:5001" \
langgenius/dify-web
http://localhost:8188
,完成初始配置。创建 knowledge_base.jsonl
文件,格式如下:
{"content": "公司成立于2010年,专注于AI技术研发。", "metadata": {"source": "公司官网"}}
{"content": "核心产品包括智能客服、数据分析平台。", "metadata": {"source": "产品手册"}}
{"content": "2023年获得国家科技进步奖。", "metadata": {"source": "新闻报道"}}
knowledge_base.jsonl
文件,完成向量化存储。deepseek-r1-private
http://localhost:8000/v1/chat/completions
私有知识库问答
deepseek-r1-private
你是一个智能助手,负责回答关于公司私有知识的问题。
请基于以下知识库内容回答:
{{knowledge}}
如果问题无法回答,请回复:"抱歉,我无法提供相关信息。"
设置完毕,保存并发布应用。
在 Dify 的 「测试」 页面输入问题:
公司的主要产品是什么?
核心产品包括智能客服、数据分析平台。
如果需要更复杂的请求逻辑,可以修改 Dify 的模型配置:
{
"url": "http://localhost:8000/v1/chat/completions",
"headers": {"Content-Type": "application/json"},
"body": {
"model": "deepseek-r1-7b-chat",
"messages": [
{"role": "system", "content": "你是一个专业助手。"},
{"role": "user", "content": "{{query}}"}
],
"temperature": 0.5
}
}
在 Dify 的模型配置中启用流式响应:
{
"stream": true
}
start_deepseek.sh
)#!/bin/bash
docker run -d \
--name deepseek-r1 \
-p 8000:8000 \
-e MODEL_NAME=deepseek-r1-7b-chat \
deepseek-ai/deepseek-r1-7b-chat
echo "DeepSeek-R1 服务已启动,访问 http://localhost:8000"
2. Dify 启动脚本 (start_dify.sh
)
#!/bin/bash
docker run -d \
--name dify-api \
-p 5001:5001 \
-v dify-data:/app/data \
-e DATABASE_URL="sqlite:app/data/dify.db" \
langgenius/dify-api
docker run -d \
--name dify-web \
-p 8188:80 \
-e API_BASE_URL="http://localhost:5001" \
langgenius/dify-web
echo "Dify 平台已启动,访问 http://localhost:8188"
generate_knowledge.py
)import json
# 示例知识库数据
knowledge_entries = [
{"content": "公司总部位于北京,拥有200名员工。", "metadata": {"source": "公司年报"}},
{"content": "2024年计划推出新一代AI芯片。", "metadata": {"source": "内部会议纪要"}},
]
# 保存为 JSONL 文件
with open("knowledge_base.jsonl", "w") as f:
for entry in knowledge_entries:
f.write(json.dumps(entry) + "\n")
print("知识库数据已生成到 knowledge_base.jsonl")
通过 DeepSeek-R1 + Dify 的组合,可以快速构建一个高效、低成本的私有知识库问答系统。
附:完整项目结构
private-knowledge-base/ |
|
├── start_deepseek.sh # DeepSeek 启动脚本 |
|
├── start_dify.sh # Dify 启动脚本 |
|
├── generate_knowledge.py # 知识库数据生成脚本 |
|
└── knowledge_base.jsonl # 知识库数据文件 |