Navigate to WaytoAGI Wiki →
Home/Question List/Question Detail

构建自己的知识库

Answer

构建自己的知识库可以通过以下方式实现:

  1. 利用 GPT 打造个人知识库:
    • GPT-3.5 免费版的 ChatGPT 一次交互支持的 Token 有限,对于多数领域知识容量不够。
    • OpenAI 提供了 embedding API 解决方案,embeddings 是浮点数字的向量,向量间距离衡量关联性,小距离表示高关联度。
    • 参考 OpenAI embedding documents 了解更多。
  2. 本地部署大模型以及搭建个人知识库:
    • 若要更灵活掌控知识库,可使用额外软件 AnythingLLM,其包含 Open WebUI 的能力,并支持选择文本嵌入模型和向量数据库。
    • 安装地址:https://useanything.com/download 。
    • 安装完成后进入配置页面,主要分为三步:选择大模型、选择文本嵌入模型、选择向量数据库。
    • 在 AnythingLLM 中创建独有的 Workspace 与其他项目数据隔离,包括创建工作空间、上传文档并进行文本嵌入、选择对话模式(Chat 模式综合给出答案,Query 模式仅依靠文档数据给出答案),配置完成后可进行测试对话。
  3. 了解 RAG 技术:
    • 利用大模型搭建知识库是 RAG 技术的应用。
    • 在进行本地知识库搭建实操前,需对 RAG 有大概了解。
    • RAG 应用可抽象为 5 个过程:文档加载(从多种来源加载文档,LangChain 提供 100 多种文档加载器)、文本分割(把 Documents 切分为指定大小的块)、存储(包括将文档块嵌入转换成向量形式和将向量数据存储到向量数据库)、检索(通过检索算法找到与输入问题相似的嵌入片)、输出(把问题及检索出的嵌入片提交给 LLM 生成答案)。
    • 文本加载器是将用户提供的文本加载到内存中以便后续处理。
Content generated by AI large model, please carefully verify (powered by aily)

References

从零开始,用GPT打造个人知识库

要搭建基于GPT API的定制化知识库,涉及到给GPT输入(投喂)定制化的知识。但GPT-3.5,也就是当前免费版的ChatGPT一次交互(输入和输出)只支持最高4096个Token,约等于3000个单词或2300个汉字。这点容量对于绝大多数领域知识根本不够。为了使用GPT的语言能力来处理大量的领域知识,OpenAI提供了embedding API解决方案。参考OpenAI embedding documents。[heading2]理解embeddings[content]embeddings(直译为嵌入)是一个浮点数字的向量(列表)。两个向量之间的距离衡量它们的关联性。小距离表示高关联度,大距离表示低关联度。进一步解释:向量(列表):向量是数学中表示大小和方向的一个量,通常用一串数字表示。在计算机科学和数据科学中,向量通常用列表(list)来表示。列表是一种数据结构,它包含一组有序的元素。例如,一个二维向量可以表示为[2,3],这意味着沿着两个轴的分量分别为2和3。在这里,"list"是一种编程术语,意味着一系列有序的数据。向量之间的距离:向量之间的距离是一种度量两个向量相似性的方法。有多种方式可以计算两个向量之间的距离,最常见的是欧几里得距离。欧几里得距离计算方法是将两个向量的对应元素相减,然后取平方和,再开平方。例如,向量A=[1,2]和向量B=[4,6]之间的欧几里得距离为sqrt((4-1)^2+(6-2)^2)=5。较小距离意味着高相关性,因为向量间相似度高。在OpenAI词嵌入中,靠近向量的词语在语义上相似。例如,“猫”和“狗”距离近,它们都是宠物,与“汽车”距离远,相关性低。文档上给了创建embeddings的示例上面的命令访问embeddings API接口,将input语句,转化成下面这一串浮点数字。

手把手教你本地部署大模型以及搭建个人知识库

如果想要对知识库进行更加灵活的掌控,我们需要一个额外的软件:AnythingLLM。这个软件包含了所有Open WebUI的能力,并且额外支持了以下能力选择文本嵌入模型选择向量数据库[heading2]AnythingLLM安装和配置[content]安装地址:https://useanything.com/download当我们安装完成之后,会进入到其配置页面,这里面主要分为三步1.第一步:选择大模型1.第二步:选择文本嵌入模型1.第三步:选择向量数据库[heading2]构建本地知识库[content]AnythingLLM中有一个Workspace的概念,我们可以创建自己独有的Workspace跟其他的项目数据进行隔离。1.首先创建一个工作空间1.上传文档并且在工作空间中进行文本嵌入1.选择对话模式AnythingLLM提供了两种对话模式:Chat模式:大模型会根据自己的训练数据和我们上传的文档数据综合给出答案Query模式:大模型仅仅会依靠文档中的数据给出答案1.测试对话当上述配置完成之后,我们就可以跟大模型进行对话了[heading1]六、写在最后[content]我非常推崇的一句话送给大家:看十遍不如实操一遍,实操十遍不如分享一遍如果你也对AI Agent技术感兴趣,可以联系我或者加我的免费知识星球(备注AGI知识库)

手把手教你本地部署大模型以及搭建个人知识库

因为利用大模型的能力搭建知识库本身就是一个RAG技术的应用。所以在进行本地知识库的搭建实操之前,我们需要先对RAG有一个大概的了解。以下内容会有些干,我会尽量用通俗易懂的描述进行讲解。我们都知道大模型的训练数据是有截止日期的,那当我们需要依靠不包含在大模型训练集中的数据时,我们该怎么做呢?实现这一点的主要方法就是通过检索增强生成RAG(Retrieval Augmented Generation)。在这个过程中,首先检索外部数据,然后在生成步骤中将这些数据传递给LLM。我们可以将一个RAG的应用抽象为下图的5个过程:文档加载(Document Loading):从多种不同来源加载文档。LangChain提供了100多种不同的文档加载器,包括PDF在内的非结构化的数据、SQL在内的结构化的数据,以及Python、Java之类的代码等文本分割(Splitting):文本分割器把Documents切分为指定大小的块,我把它们称为“文档块”或者“文档片”存储(Storage):存储涉及到两个环节,分别是:将切分好的文档块进行嵌入(Embedding)转换成向量的形式将Embedding后的向量数据存储到向量数据库检索(Retrieval):一旦数据进入向量数据库,我们仍然需要将数据检索出来,我们会通过某种检索算法找到与输入问题相似的嵌入片Output(输出):把问题以及检索出来的嵌入片一起提交给LLM,LLM会通过问题和检索出来的提示一起来生成更加合理的答案[heading2]文本加载器(Document Loaders)[content]文本加载器就是将用户提供的文本加载到内存中,便于进行后续的处理

Others are asking
如何用AI工具做一个个人工作知识库
以下是使用 AI 工具创建个人工作知识库的方法: 1. 使用 AnythingLLM 软件: 安装地址:https://useanything.com/download 。 安装完成后进入配置页面,主要分为三步: 第一步:选择大模型。 第二步:选择文本嵌入模型。 第三步:选择向量数据库。 在 AnythingLLM 中创建自己独有的 Workspace 与其他项目数据隔离。 首先创建一个工作空间,上传文档并在工作空间中进行文本嵌入,选择对话模式。 AnythingLLM 提供了两种对话模式:Chat 模式(大模型会根据自己的训练数据和上传的文档数据综合给出答案)和 Query 模式(大模型仅仅会依靠文档中的数据给出答案)。 完成配置后即可与大模型进行对话。 2. 基于 Coze 免费打造: 确定功能范围,编写 prompt 提示词,设定 Bot 的身份和目标。 创建知识库,整理“关键字”与“AI 相关资料链接”的对应关系,并将信息存储起来。创建知识库路径:个人空间 知识库 创建知识库。知识库文档类型支持本地文档、在线数据、飞书文档、Notion 等,本次使用【本地文档】。按照操作指引上传文档、分段设置、确认数据处理。小技巧:在内容中加上一些特殊分割符,比如“”,以便于自动切分数据。分段标识符号要选择“自定义”,内容填“”。 创建工作流,告诉 AI 机器人应该按什么流程处理信息。创建工作流路径:个人空间 工作流 创建工作流。工作流设计好后,先点击右上角“试运行”,测试工作流无误后,就可以点击发布。如果任务和逻辑复杂,可以结合左边“节点”工具来实现。 私人知识库中的内容一般有两种:日常从互联网收集的优质信息和个人日常的思考以及分享。如果想基于这套知识库打造个人专属的 ChatGPT,常见的有两种技术方案:训练专有大模型和利用 RAG(检索增强生成)技术。训练专有大模型效果虽好,但存在高成本、更新难度大等缺陷,并非当下主流方案。
2025-02-04
lmstudio可以支持联网搜索和本地知识库rag吗?如何实现?
LMStudio 能否支持联网搜索和本地知识库 RAG 以及如何实现的问题如下: 实现本地知识库 RAG 需加载所需的库和模块,如用于解析 RSS 订阅源的 feedparse,用于在 Python 程序中跑大模型的 ollama(使用前需确保 ollama 服务已开启并下载好模型)。 从订阅源获取内容,通过特定函数从指定的 RSS 订阅 URL 提取内容,若需接收多个 URL 稍作改动即可。然后用专门的文本拆分器将长文本拆分成较小的块,并附带相关元数据,最终合并成列表返回用于后续处理或提取。 为文档内容生成向量,可使用文本向量模型 bgem3(从 hf 下载好模型假设放置在某个路径,通过函数利用 FAISS 创建高效的向量存储)。 实现 RAG 包括文档加载(从多种来源加载文档,LangChain 提供 100 多种文档加载器)、文本分割(把 Documents 切分为指定大小的块)、存储(将切分好的文档块嵌入转换成向量形式并存储到向量数据库)、检索(通过检索算法找到与输入问题相似的嵌入片)、Output(把问题及检索出的嵌入片提交给 LLM 生成答案)。 基于用户问题从向量数据库中检索相关段落,根据设定阈值过滤,让模型参考上下文信息回答,从而实现 RAG。 还可创建网页 UI 并进行评测,对于同样的问题和上下文,基于不同模型进行多次测试,其中 GPT4 表现最好,Mixtral 次之,Qwen7b 第三,Gemma 和 Mistral 表现一般。总结来说,本文展示了如何使用 Langchain 和 Ollama 技术栈在本地部署资讯问答机器人,结合 RSSHub 处理和提供资讯,上下文数据质量和大模型性能决定 RAG 系统性能上限,RAG 能提升答案质量和相关性,但不能完全消除大模型幻觉和信息滞后问题。
2025-02-04
飞书文档如何作为知识库输入到coze平台
要将飞书文档作为知识库输入到 Coze 平台,主要有以下步骤: 1. 在线知识库: 点击创建知识库,创建一个画小二课程的 FAQ 知识库。 选择飞书文档,选择自定义的自定义,输入。 飞书的文档内容会以区分开来,可以点击编辑修改和删除。 点击添加 Bot,添加好可以在调试区测试效果。 2. 本地文档: 注意如何拆分内容,提高训练数据准确度,将海报的内容训练的知识库里面。 画小二这个课程 80 节课程,分为了 11 个章节,不能一股脑全部放进去训练。 正确的方法是首先将 11 章的大的章节名称内容放进来,章节内详细内容按固定方式进行人工标注和处理。 然后选择创建知识库自定义清洗数据。 3. 发布应用: 点击发布,确保在 Bot 商店中能够搜到。 此外,创建知识库并上传文本内容有以下方式: 1. 在线数据: 自动采集方式:适用于内容量大,需要批量快速导入的场景。 在文本格式页签下,选择在线数据,然后单击下一步。 单击自动采集。 单击新增 URL。在弹出的页面完成输入要上传的网站地址、选择是否需要定期同步网站内容及周期等操作。 当上传完成后单击下一步,系统会自动根据网站的内容进行内容分片。 手动采集方式:适用于需要精准采集网页上指定内容的场景。 安装扩展程序,详情请参考。 在文本格式页签下,选择在线数据,然后单击下一步。 点击手动采集,然后在弹出的页面点击权限授予完成授权。 在弹出的页面输入要采集内容的网址,然后单击确认。 在弹出的页面上,点击页面下方文本标注按钮,开始标注要提取的内容,然后单击文本框上方的文本或链接按钮。 单击查看数据查看已采集的内容,确认无误后再点击完成并采集。 Coze 的知识库功能不仅支持上传和存储外部知识内容,还提供了多样化的检索能力,主要包括两大核心能力:一是能够存储和管理外部数据;二是增强检索能力。Coze 支持从多种数据源,如本地文档、在线数据、Notion、飞书文档等渠道上传文本和表格数据。上传后,系统会自动将知识内容切分成多个片段进行存储,并允许用户自定义内容分片规则。Coze 还提供了多种检索方式来对存储的内容片段进行高效检索,例如全文检索可以通过关键词快速找到相关的内容片段并召回。基于这些召回的内容片段,大模型将生成最终的回复内容。Coze 支持上传文本内容及结构化表格数据,以适应各种使用场景。
2025-02-04
如何建立个人领域的个人知识库
以下是建立个人领域个人知识库的方法: 1. 使用 embeddings: 将文本转换成向量(一串数字),可理解为索引,能节省空间。 把大文本拆分成若干小文本块(chunk),通过 embeddings API 将其转换成 embeddings 向量,与文本块语义相关。 在向量储存库保存 embeddings 向量和文本块,作为问答的知识库。 当用户提问时,将问题转换成向量,与向量储存库的向量比对,提取关联度高的文本块,与问题组合成新的 prompt 发送给 GPT API。 例如,对于“此文作者是谁?”的问题,可提取关联度高的文本块,如“本文作者:越山。xxxx。”“《反脆弱》作者塔勒布xxxx。” 2. 理解 embeddings: embeddings 是浮点数字的向量(列表),向量之间的距离衡量关联性,小距离表示高关联度,大距离表示低关联度。 向量是用一串数字表示大小和方向的量,在计算机科学中常用列表表示。 常见的计算向量距离的方法是欧几里得距离。 在 OpenAI 词嵌入中,靠近的向量词语在语义上相似。 3. GPT 模型索引库 LlamaIndex: LlamaIndex 是更高一层 LangChain 的抽象,之前叫 GPT Index。 它简化了 LangChain 对文本分割和查询的接口,提供了更丰富的 Data Connector。 LlamaIndex 只针对 GPT Model 做 Index,而 LangChain 可对接多个 LLMs,可扩展性更强。 需要注意的是,GPT3.5 一次交互支持的 Token 有限,OpenAI 提供了 embedding API 解决方案。随着技术发展,AI 的开发和使用门槛会降低,垂直领域知识库的搭建和优化更多是业务问题。
2025-02-03
大模型搭建知识库的逻辑是什么
大模型搭建知识库的逻辑主要包括以下几个方面: 1. 理解 RAG 技术:利用大模型搭建知识库本质上是 RAG 技术的应用。在大模型训练数据有截止日期或不包含所需数据时,通过检索增强生成(RAG)来解决。RAG 可抽象为 5 个过程: 文档加载:从多种来源加载包括非结构化、结构化和代码等不同类型的文档。 文本分割:把文档切分为指定大小的块。 存储:包括将切分好的文档块嵌入转换成向量形式,并将向量数据存储到向量数据库。 检索:通过检索算法找到与输入问题相似的嵌入片。 输出:把问题及检索出来的嵌入片一起提交给大模型,生成更合理的答案。 2. 构建知识库各个流程: 从用户提出问题开始,经历用户问题的理解、路由、初步检索、重排序等环节,最终将重排序后的结果和用户的查询意图组合成上下文输入给大模型生成输出结果。需要注意重排序结果的使用限制,如设置阈值进行截断或筛选相关性分数等。 后置处理包括敏感内容检测和移除、格式化输出等。 3. 知识库的需求:大模型并非 100%准确,存在数据日期限制和无法感知公司内部私有数据等问题,知识库的出现就是为解决大模型的数据准确性问题。例如在客服系统中,公司将用户问题及答案记录在文档中以知识库形式投喂给大模型,使其能更准确回答用户自然语言询问的问题。
2025-02-03
怎么把通往AGI之路的网站加入飞书知识库当中?
要将通往 AGI 之路的网站加入飞书知识库,您可以参考以下步骤: 1. 请填写下面问卷进群,群内会分享最新 AI 信息、社区活动。 2. 加入群后,欢迎大家积极分享,我们也会吸收进知识库,因为有您的参与才让知识库更加完善。 3. 飞书群内置 AI 智能机器人,可以回复任何与 AI 相关的问题,欢迎加入。 4. 如果您对「飞书」这款效率工具感兴趣,或者您希望结交各行各业志同道合的朋友和他们交流企业/个人效率的提升,诚邀您访问「飞书官方社区——飞行社」。 5. 如需下载研究报告,我们诚邀您加入知识星球:数百份涵盖 AI 各个方面的报告,并提供内容概要。自 2023 年上半年建立以来,保持长期活跃更新。扫码右侧二维码,加入知识星球。更多合作与咨询,请访问:https://waytoagi.feishu.cn/wiki/Wj77wBWjbi0yUAkyJWdc2TKFnmd 。 此外,关于 WaytoAGI 还有以下相关信息: 我是 WaytoAGI 专属问答机器人,基于 Aily 和云雀大模型。「飞书智能伙伴创建平台」(英文名:Aily)是飞书团队旗下的企业级 AI 应用开发平台,提供了一个简单、安全且高效的环境,帮助企业轻松构建和发布 AI 应用,推动业务创新和效率提升。云雀是一款由字节跳动研发的语言模型,通过便捷的自然语言交互,能够高效的完成互动对话、信息获取、协助创作等任务。 WaytoAGI 知识库就像一位 24 小时在线的 AI 老师、一个永不嫌烦的知识管家、一个不断成长的智慧宝库。里面有 AI 工具的“傻瓜式说明书”、大神们的“踩坑经验分享”、实用的“一招制胜”秘籍等。开启宝藏的步骤:第一步,点击飞书链接(对,就是那个网址啦:)。里面的界面就像一张藏宝图,左边的导航栏是您的指南针,上面的搜索框是您的探宝雷达,中间的内容区是知识的海洋。
2025-02-01
我现在需要根据一系列的 yaml 和 markdown 构建一个知识库,并且需要支持 AI 问答,每次 AI 问答的结果都要保存成一个新的内容放到知识库中,请问从经济效益来看,有哪些服务可以使用?
目前从经济效益的角度来看,以下一些服务可能有助于您构建这样的知识库并支持 AI 问答以及结果保存: 1. 云服务提供商,如阿里云、腾讯云、AWS 等,它们提供可扩展的计算和存储资源,您可以根据实际需求灵活配置,避免过度投入硬件成本。 2. 开源的知识管理和问答系统框架,例如使用 Elasticsearch 结合相关插件来实现问答功能,成本相对较低,但可能需要一定的技术投入进行搭建和维护。 3. 一些专门针对知识管理和 AI 应用的 SaaS 服务,它们通常按使用量计费,初期投入较小,适合小规模应用。 需要注意的是,具体选择哪种服务取决于您的业务规模、技术能力、预算以及对性能和功能的要求。
2025-02-01
系统学习agent构建
以下是一些关于系统学习 Agent 构建的内容: 一些 Agent 构建平台: Coze:新一代一站式 AI Bot 开发平台,适用于构建基于 AI 模型的各类问答 Bot,集成丰富插件工具拓展 Bot 能力边界。 Microsoft 的 Copilot Studio:主要功能包括外挂数据、定义流程、调用 API 和操作,以及将 Copilot 部署到各种渠道。 文心智能体:百度推出的基于文心大模型的智能体平台,支持开发者根据需求打造产品能力。 MindOS 的 Agent 平台:允许用户定义 Agent 的个性、动机、知识,以及访问第三方数据和服务或执行工作流。 斑头雁:2B 基于企业知识库构建专属 AI Agent 的平台,适用于客服、营销、销售等场景,提供多种成熟模板,功能强大且开箱即用。 钉钉 AI 超级助理:依托钉钉强大的场景和数据优势,提供环境感知和记忆功能,在处理高频工作场景表现出色。 搭建工作流驱动的 Agent 简单情况可分为 3 个步骤: 规划:制定任务的关键方法,总结任务目标与执行形式,将任务分解为可管理的子任务,确立逻辑顺序和依赖关系,设计每个子任务的执行方法。 实施:分步构建和测试 Agent 功能,在 Coze 上搭建工作流框架,设定每个节点的逻辑关系,详细配置子任务节点,并验证每个子任务的可用性。 完善:全面评估并优化 Agent 效果,整体试运行 Agent,识别功能和性能的卡点,通过反复测试和迭代,优化至达到预期水平。
2025-01-30
怎样构建一个自己专业的AI小模型
构建一个自己专业的 AI 小模型可以参考以下步骤: 1. 搭建 OneAPI:这是为了汇聚整合多种大模型接口,方便后续更换使用各种大模型,同时了解如何白嫖大模型接口。 2. 搭建 FastGpt:这是一个知识库问答系统,将知识文件放入,接入上面的大模型作为分析知识库的大脑,最后回答问题。如果不想接到微信,搭建完此系统就可以,它也有问答界面。 3. 搭建 chatgptonwechat 并接入微信,配置 FastGpt 把知识库问答系统接入到微信,建议先用小号以防封禁风险。若想拓展功能,可参考 Yaki.eth 同学的教程,里面的 cow 插件能进行文件总结、MJ 绘画等。 部署和训练自己的 AI 开源模型的主要步骤如下: 1. 选择合适的部署方式,包括本地环境部署、云计算平台部署、分布式部署、模型压缩和量化、公共云服务商部署等,根据自身的资源、安全和性能需求进行选择。 2. 准备训练所需的数据和计算资源,确保有足够的训练数据覆盖目标应用场景,并准备足够的计算资源,如 GPU 服务器或云计算资源。 3. 选择合适的预训练模型作为基础,可以使用开源的预训练模型如 BERT、GPT 等,也可以自行训练一个基础模型。 4. 针对目标任务进行模型微调训练,根据具体应用场景对预训练模型进行微调训练,优化模型结构和训练过程以提高性能。 5. 部署和调试模型,将训练好的模型部署到生产环境,并对部署的模型进行在线调试和性能优化。 6. 注意安全性和隐私保护,大模型涉及大量数据和隐私信息,需要重视安全性和合规性。 大模型的构建过程包括: 1. 收集海量数据:像教孩子成为博学多才的人一样,让模型阅读大量的文本数据,如互联网上的文章、书籍、维基百科条目、社交媒体帖子等。 2. 预处理数据:清理和组织收集到的数据,如删除垃圾信息,纠正拼写错误,将文本分割成易于处理的片段。 3. 设计模型架构:为模型设计“大脑”结构,通常是一个复杂的神经网络,如使用 Transformer 架构。 4. 训练模型:让模型“阅读”提供的数据,通过反复尝试预测句子中的下一个词等方式,逐渐学会理解和生成人类语言。
2025-01-29
如何构建企业AI知识库
构建企业 AI 知识库可以参考以下步骤: 1. 结合企业私有数据与 RAG 模型的私有化部署。如有特殊需求,还可以进行模型的 Finetuning(微调),以优化性能。基础模型负责提供推理提示,RAG 用于整合新知识,实现快速迭代和定制化信息检索。 2. 确定功能范围,包括编写【prompt】提示词,设定 Bot 的身份和目标。 3. 创建【知识库】: 整理“关键字”与“AI 相关资料链接”的对应关系,并将信息存储起来。 选择创建知识库路径,如个人空间知识库创建知识库。 支持的知识库文档类型包括本地文档、在线数据、飞书文档、Notion 等,可根据需求选择,如本次使用【本地文档】。 按照操作指引上传文档、分段设置、确认数据处理。 小技巧:知识库的好用程度与内容切分粒度有关,可以在内容中加上特殊分割符,如“”,便于自动切分数据。分段标识符号选择“自定义”,内容填“”。如果内容有误需要编辑,可以点击具体内容,鼠标右键会看到“编辑”和“删除”按钮进行相应操作。 在构建过程中,KnowHow 很重要,同时工作流不必复杂,能实现目的即可,所以在设计 Bot 前“确定目的”和“确定功能范围”很关键。
2025-01-23
本地怎么构建知识库
以下是关于本地构建知识库的详细步骤和相关知识: 一、硬件配置要求 运行大模型需要较高的机器配置,个人玩家可能负担不起。 生成文字大模型: 最低配置:8G RAM + 4G VRAM 建议配置:16G RAM + 8G VRAM 理想配置:32G RAM + 24G VRAM(如果要跑 GPT3.5 差不多性能的大模型) 生成图片大模型(比如跑 SD): 最低配置:16G RAM + 4G VRAM 建议配置:32G RAM + 12G VRAM 生成音频大模型: 最低配置:8G VRAM 建议配置:24G VRAM 二、RAG 技术 利用大模型的能力搭建知识库本身就是一个 RAG 技术的应用。在进行本地知识库的搭建实操之前,需要先对 RAG 有大概的了解。 RAG 是指检索增强生成(Retrieval Augmented Generation),当需要依靠不包含在大模型训练集中的数据时,通过以下 5 个过程实现: 1. 文档加载(Document Loading):从多种不同来源加载文档。LangChain 提供了 100 多种不同的文档加载器,包括 PDF 在内的非结构化的数据、SQL 在内的结构化的数据,以及 Python、Java 之类的代码等。 2. 文本分割(Splitting):文本分割器把 Documents 切分为指定大小的块。 3. 存储:涉及将切分好的文档块进行嵌入(Embedding)转换成向量的形式,并将 Embedding 后的向量数据存储到向量数据库。 4. 检索:通过某种检索算法找到与输入问题相似的嵌入片。 5. Output(输出):把问题以及检索出来的嵌入片一起提交给 LLM,LLM 会通过问题和检索出来的提示一起来生成更加合理的答案。 三、本地知识库搭建步骤 如果想要对知识库进行更加灵活的掌控,需要一个额外的软件:AnythingLLM。 1. 安装 AnythingLLM 安装地址:https://useanything.com/download 安装完成后,会进入到其配置页面,主要分为三步: 第一步:选择大模型 第二步:选择文本嵌入模型 第三步:选择向量数据库 2. 构建本地知识库 AnythingLLM 中有一个 Workspace 的概念,可以创建自己独有的 Workspace 跟其他的项目数据进行隔离。 首先创建一个工作空间。 上传文档并且在工作空间中进行文本嵌入。 选择对话模式。AnythingLLM 提供了两种对话模式: Chat 模式:大模型会根据自己的训练数据和上传的文档数据综合给出答案。 Query 模式:大模型仅仅会依靠文档中的数据给出答案。 测试对话:当上述配置完成之后,就可以跟大模型进行对话了。 四、写在最后 “看十遍不如实操一遍,实操十遍不如分享一遍”。如果对 AI Agent 技术感兴趣,可以联系作者或者加作者的免费知识星球(备注 AGI 知识库)。
2025-01-22
我能否借助开源社区力量构建高质量的 AI 数字人
您可以借助开源社区力量构建高质量的 AI 数字人。 构建数字人的躯壳有多种方式: 1. 2D 引擎:风格偏向二次元,亲和力强,定制化成本低,代表是 Live2D Cubism。 2. 3D 引擎:风格偏向超写实的人物建模,拟真程度高,定制化成本高,代表是 UE、Unity、虚幻引擎 MetaHuman 等,但个人学习在电脑配置和学习难度上有一定门槛。 3. AIGC:省去建模流程直接生成数字人的展示图片,但存在算法生成的数字人很难保持 ID 一致性、帧与帧连贯性差等弊端。如果对人物模型真实度要求不高,可以使用,典型项目有 wav2lip、videoretalking 等。AIGC 还有直接生成 2D/3D 引擎模型的方向,但仍在探索中。 构建数字人的灵魂需要注意以下几个工程关键点: 1. AI Agent:要让数字人像人一样思考就需要写一个像人一样的 Agent,工程实现所需的记忆模块、工作流模块、各种工具调用模块的构建都是挑战。 2. 驱动躯壳的实现:灵魂部分通过定义接口由躯壳部分通过 API 调用,调用方式可以是 HTTP、webSocket 等。但包含情绪的语音表达以及如何保证躯壳的口型、表情、动作和语音的同步及匹配,目前主流方案只能做到预设一些表情动作,再做一些逻辑判断来播放预设,语音驱动口型相对成熟但闭源。 3. 实时性:由于算法部分组成庞大,几乎不能实现单机部署,特别是大模型部分,所以算法一般会部署到额外的集群或者调用提供出来的 API,这里面就会涉及到网络耗时和模型推理耗时,如果响应太慢就会体验很差,所以低延时也是亟需解决的一个问题。 4. 多元跨模态:不仅仅是语音交互,还可以通过添加摄像头数据获取数据,再通过系列 CV 算法做图像解析等。 5. 拟人化场景:正常和人交流时不是线性对话,会有插话、转移话题等情况,这些情景需要通过工程丝滑处理。 如果都要自建代码实现各模块,开发工作量巨大,迭代难度也很高,对于个人开发者来讲不现实。因此推荐借助开源社区的力量,现在开源社区已经有了像 dify、fastgpt 等等成熟的高质量 AI 编排框架,它们有大量的开源工作者维护,集成各种主流的模型供应商、工具以及算法实现等等。我们可以通过这些框架快速编排出自己的 AI Agent,赋予数字人灵魂。在笔者的开源项目中,使用了 dify 的框架,利用其编排和可视化交互任意修改流程,构造不同的 AI Agent,并且实现相对复杂的功能,比如知识库的搭建、工具的使用等都无需任何的编码和重新部署工作。同时 Dify 的 API 暴露了 audiototext 和 texttoaudio 两个接口,基于这个两个接口就可以将数字人的语音识别和语音生成都交由 Dify 控制,从而低门槛做出来自己高度定制化的数字人。具体的部署过程参考 B 站视频:https://www.bilibili.com/video/BV1kZWvesE25 。如果有更加高度定制的模型,也可以在 Dify 中接入 XInference 等模型管理平台,然后部署自己的模型。此外,数字人 GUI 工程中仍然保留了 LLM、ASR、TTS、Agent 等多个模块,能够保持更好的扩展,比如实现更加真实性感的语音转换、或者如果有更加 Geek 的 Agent 实现也可以选择直接后端编码扩展实现。 使用 Dify 接口需要注意: 1. 必须在应用编排功能中打开文字转语音和语音转文字功能,否则接口会返回未使能的错误。 2. 只有接入了支持 TTS 和 SPEECH2TEXT 的模型供应商,才会在功能板块中展示出来,Dify 的模型供应商图标下标签有展示该供应商支持哪些功能,这里可以自行选择自己方便使用的。对于 TTS,不同的模型供应商支持的语音人物不同,可以根据个人喜好添加。
2025-01-21