基于RAG的数字分身项目构建

近年来,**大语言模型(LLM)**技术的持续突破推动人工智能在人机对话、内容生成、知识问答等领域取得了显著成果,成功实现了 AI 从工具型系统向 “类人交互” 系统的重要演进,为各类智能交互场景提供了强大的技术支撑。然而,当前主流大语言模型多为通用型设计,存在两大核心短板:一方面缺乏对特定人物语言风格、个性特征与情感状态的精准建模,难以满足用户日益增长的个性化与情感化交互需求;另一方面普遍存在长期记忆能力不足的问题,无法有效捕捉并模仿特定对象的表达习惯、知识背景与记忆特征,导致传统聊天机器人系统的交互体验缺乏真实性与深度连接。​

这一技术局限在多个关键场景中尤为突出:在情感陪伴领域,用户渴望通过数字方式与逝去的亲友实现 “对话”,延续情感联结;在历史文化传承场景中,人们期待与历史名人进行沉浸式交流,直观感受其思想魅力与语言风格;在个性化服务领域,用户也需要能够精准匹配自身表达习惯、理解长期需求的智能交互伙伴。这些深层次的精神连接与个性化交互需求,在现有通用型 AI 系统中尚难以得到满足,成为当前人工智能技术落地过程中亟待填补的空白。​

在此背景下,本项目依托香橙派硬件平台openGauss 数据库openEuler操作系统等,融合**大语言模型(LLM)检索增强生成(RAG)**技术,构建多模态数字分身交互系统。系统通过整合文本、语音、图像等多源数据,结合向量数据库的高效检索能力、知识图谱的结构化信息支撑、情感计算与强化学习方法,一方面借助向量检索技术从海量历史对话中提取相关上下文,让 AI 生成的回复更贴合特定对象的表达习惯;另一方面实现对特定人物语言风格、知识背景、情绪反应与记忆特征的高度还原与动态进化,最终为用户提供兼具连贯对话、个性化语气、共情能力与记忆回溯功能的数字分身交互体验,填补通用型 AI 在个性化、情感化、记忆化交互领域的短板。

项目目的如下:

1. 技术深度探索​

聚焦检索增强生成(RAG)技术的核心原理与实践逻辑,深入钻研其在个性化对话场景中的优化应用方案;重点探索 RAG 技术在华为鲲鹏香橙派硬件环境下的适配性改造、部署流程与性能调优路径,形成兼具技术创新性与硬件兼容性的实现方案,夯实个性化 AI 交互的技术基础。

2. 创新应用突破​

以 “精准还原特定对象个性化交互特征” 为核心目标,构建能够深度学习、动态模仿特定用户语言风格、表达习惯、知识背景与情感倾向的 “数字分身” 系统。通过技术创新打破生成式 AI 在个性化交互领域的应用瓶颈,推动生成式 AI 从通用型服务向定制化、情感化、专属化交互场景延伸,实现技术落地的应用突破。​

3. 工程能力落地​

秉持工程化思维,完成前后端分离架构的 Web 应用系统设计与全流程实现。涵盖需求分析、架构设计、接口开发、前端可视化、系统测试与部署上线等全生命周期环节,锤炼复杂系统的工程设计、开发协作与问题解决能力,打造功能完备、体验流畅的实际应用产品。​

4. 数据库实践强化​

深入掌握以 OpenGauss 为代表的向量数据库核心技术,重点攻克其在 AI 对话场景中的数据存储、向量索引构建、检索性能优化等关键问题。通过真实业务场景的实战应用,熟练运用数据库调优策略,强化向量数据库与 AI 工程的融合应用能力,为系统高效检索与数据管理提供坚实支撑。​

5. AI 技术集成优化​

开展大语言模型(LLM)API 的高效集成实践,攻克模型调用效率、数据传输稳定性、接口兼容性等技术难点;同时深入研究提示词工程的优化方法,通过场景化提示词设计、交互逻辑优化,提升模型对个性化需求的理解精度与响应质量,实现大语言模型与个性化对话系统的深度、高效融合。

项目亮点:

一、创新RAG 检索策略

以提升历史对话检索的精准性与关联性为目标,设计多维度协同的 RAG 检索机制,为个性化交互提供数据支撑:​

1.双重检索机制:融合语义与时间维度,实现历史对话的全面、精准调取​

1).**向量相似度检索**:基于深度学习模型将对话文本转化为语义向量,通过向量空间距离计算,快速定位与当前对话语义匹配度最高的历史记录,确保检索结果贴合用户核心表达意图;​

2).**时序上下文检索**:同步引入时间维度筛选逻辑,优先获取与当前对话时间相近的聊天记录,有效规避因语义孤立导致的回复逻辑断层,保障对话交互的连贯性与自然度。​

2.智能上下文扩展:针对单一检索结果信息碎片化问题,构建动态扩展策略,最大化挖掘历史对话价值​

1).**关联上下文自动补全**:对双重检索筛选出的每条相似记录,系统自动追溯其前后 N 条关联消息,构建完整的对话场景片段,避免因信息缺失导致的回复偏差;​

2).**扩展上限弹性管控**:设置最大可检索 50 条上下文记录的阈值,在确保为数字分身提供充分历史交互依据的同时,通过数量管控避免冗余信息占用资源,平衡信息充分性与检索效率。

二、增强对话质量

围绕 “贴近真实人际交互” 的核心目标,从语言风格、回复形态、上下文管理三方面优化对话生成能力:​

  1. 个性化语言模仿:通过场景化、精细化的系统提示词设计,引导 AI 深度学习目标用户的语气特征、常用词汇与表达习惯(如口语化用词、特定句式偏好等),实现对用户语言风格的精准复刻,让数字分身的表达更具专属感;​

  2. 自然对话生成:优化回复生成逻辑,摒弃生硬的历史对话引用格式,通过语义融合技术将检索到的历史信息自然融入当前回复,生成符合日常交流习惯的口语化内容,提升交互体验的舒适度;​

  3. 动态上下文管理:构建上下文长度自适应调节机制,结合对话场景需求自动调整上下文输入长度,设置最大 2000 字符的上限,在保障 AI 获取充足交互信息的同时,避免因文本过长导致的响应延迟,平衡信息量与响应速度。

三、高性能架构设计

从数据存储、并发处理两方面构建高效、稳定的系统架构,支撑大规模、高频率的个性化交互需求:​

  1. 向量数据库优化:基于 OpenGauss 数据库的原生向量扩展功能,构建适配对话语义向量的存储与检索体系,支持高效的相似度计算与向量搜索,大幅提升历史对话数据的调取速度,为实时交互提供底层性能支撑;​

  2. 会话管理机制:设计多会话并发处理架构,支持多用户同时发起交互请求,同时实现会话历史记录的自动化管理(包括存储、更新、清理等),既保障系统在高并发场景下的稳定运行,又确保用户每一次交互都能基于完整的历史上下文展开。

四、项目部署

下载项目源码:

数字分身: 鲲鹏创新大赛–高校赛–北京邮电大学专场开源项目

环境搭建

安装Python依赖库

本项目使用Python 3.8及以上版本,通过pip包管理器安装所需依赖,安装命令:

Bash

pip install -r requirements.txt

启动OpenGauss数据库

本项目采用华为OpenGauss向量数据库作为语义存储核心。

Bash

gs_ctl start -D /home/openEuler/opt/openGauss/data/single_node -Z single_node

2.环境变量配置

数据库配置

构建向量数据库和进行数据库检索都使用相同的数据库连接配置,默认值如下:

python

OPENGAUSS_HOST = “localhost”

OPENGAUSS_PORT = 5432

OPENGAUSS_DB = “rag_db_1”

OPENGAUSS_USER = “euler”

OPENGAUSS_PASSWORD = “fenshen19645_”

OPENGAUSS_COLLECTION = “wechat_embeddings”

可以通过环境变量覆盖默认配置:

bash

export OPENGAUSS_HOST=“your_host”

export OPENGAUSS_PORT=“5432”

export OPENGAUSS_DB=“rag_db_1”

export OPENGAUSS_USER=“your_username”

export OPENGAUSS_PASSWORD=“your_password”

3.API 密钥配置

DashScope API Key 已在代码中配置,如需更改有以下两种方法:

方式一:修改代码(对应行数)

rag_db_opengauss/api_service.py:20

flask_chatbot/app.py:30

方式二:更改环境变量

bash

export QWEN_API_KEY=“your_api_key_here”

export DASHSCOPE_API_KEY=“your_api_key_here”

实验操作

4.连接openGauss并创建数据库

连接数据库

Bash

gsql -d postgres -p 5432

在 gsql 中创建数据库:

Sql1

-- 创建数据库

CREATE DATABASE rag_db_1;

5.数据导入

将微信聊天记录 CSV 文件放置在以下目录中:

/home/openEuler/shuzifenshen/rag_db_opengauss/csv/

CSV 文件应包含以下字段:

- `CreateTime`: 创建时间

- `talker`: 说话者

- `msg`: 消息内容

- `type_name`: 消息类型

初次导入数据

cd /shuzifenshen/rag_db_opengauss

# 执行数据导入脚本

python test_csv_final.py

导入过程会:

  • 读取 csv/ 目录下的所有 CSV 文件

  • 生成向量 embeddings (使用 DashScope text-embedding-v3)

  • 存储到 OpenGauss 数据库

  • 创建 import_tracking.json 跟踪已导入记录

注意: 首次导入可能需要较长时间,取决于数据量。

6.数据的增量更新

后续添加新数据后,再次运行相同命令即可自动增量更新:

bash

python test_csv_final.py

选择功能2系统会自动跳过已导入的记录,仅处理新数据。

7.执行

启动服务

进入项目目录

bash

cd /shuzifenshen/flask_chatbot

执行项目主文件

python app.py

服务启动后会显示:

* Running on http://127.0.0.1:8080

* Running on http://当前地址:端口号

访问应用

在浏览器中打开:

http://127.0.0.1:8080

http://当前地址:端口号

1). 在左侧选择分身

2). 在聊天输入框输入问题

3). 系统会自动:

  • 从向量数据库检索相关聊天记录

  • 结合检索结果调用通义千问生成回答

  • 显示 AI 回复进行对话

8.表现效果

检索精准度+对话自然度

上下文精准锚定,告别“金鱼记忆”

**效果描述**:系统能够像真人一样,在长达数轮甚至跨越不同会话的对话中,始终记住并关联起之前的讨论话题、个人经历和共同回忆。用户无需反复解释背景信息,体验无缝衔接的深度交流。

**典型场景**:当用户提到“还记得我们上次在西湖边聊的那件事吗?”,系统能准确回忆起具体情境,并基于当时的情绪和细节展开对话,而不是回答“你指的是哪件事?”。

对话流畅自然,实现“类人式”交流

**效果描述**:生成的回复逻辑连贯、语气自然,彻底摆脱传统聊天机器人的机械感与突兀感。对话节奏符合人类习惯,能够进行自然而深入的多轮互动。

**典型场景**:在讨论一个复杂话题时,系统能够承上启下,进行追问、表达共情或提出自己的见解,使整个对话过程如同与一位真实的朋友交谈。

个性化还原度

语言风格克隆,再现“口头禅”与“神韵”

**效果描述**:数字分身不仅能复现目标人物的知识背景,更能精准捕捉其独特的语言“指纹”——包括常用的口头禅、标志性的语气词、特定的句式结构甚至幽默方式。

**典型场景**:一个习惯用“简直了”表达惊叹的人物,其数字分身在遇到类似情境时,会自然地使用“简直了”作为回应,让熟悉他的人会心一笑,产生强烈的真实感和亲切感。当前作为样例的分身,经常使用“哈哈”,下方是对聊天记录常用语气词的统计。

知识体系与价值观的深度复刻

**效果描述**:系统内化了目标人物的知识储备、观点立场与价值判断。在其专业领域能展现深度,在其信仰和原则问题上能保持一致性,从而建立起深厚的信任感。

**典型场景**:一个真实存在的人的数字分身,在回答相关历史问题时,不仅能给出事实,还能体现出其独特的想法;在讨论伦理问题时,能坚守其生前一贯秉持的价值观。

系统性能

低延迟实时交互,感受“零等待”的流畅

**效果描述**:基于香橙派边缘算力与深度优化的模型,系统能够实现毫秒级的记忆检索和秒级的回复生成,确保对话过程无卡顿,用户体验如行云流水。

**典型场景**:用户提出问题后,系统几乎在瞬间即可开始生成回复,没有任何明显的延迟感,保障了交互的沉浸感和即时性。
  1. 高并发可靠服务,支持“始终在线”的陪伴

    效果描述:系统架构稳健,能够在一定规模的用户并发请求下保持稳定运行,提供7x24小时不间断的可靠服务,满足情感陪伴等场景的长期性需求。

用户体验和技术落地

直击用户深层需求,提供“情感慰藉”与“价值连接”

**效果描述**:本系统超越了工具属性,为用户提供了不可替代的情感价值。无论是用于缅怀亲人、与历史对话还是获得个性化陪伴,它都能满足用户对深度精神联结的渴望。

软硬一体优化,彰显“国产化”与“落地性”

**效果描述**:项目成功将前沿的LLM与RAG技术,与香橙派、openEuler、openGauss等国产自主平台深度融合,证明了在资源受限的边缘设备上也能实现复杂的AI应用,为大规模、低成本、高隐私保护的商业化推广铺平了道路。

**产业意义**:为情感计算、智慧文旅、个人AI助理等领域提供了一个可复制、可推广的“技术-硬件-场景”一体化解决方案,具备高度的实际落地适配性。