前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何利用AI构建第二个大脑

如何利用AI构建第二个大脑

作者头像
renhai
发布2024-05-27 16:22:12
1390
发布2024-05-27 16:22:12
举报

构建您的个人知识库

在信息爆炸的时代,我们每天接触到的数据量惊人,记忆所有信息几乎不可能。因此,一个个人知识库显得至关重要。它就像你的第二个大脑,帮您储存和整理重要信息,随时随地轻松访问。

检索增强生成(RAG,Retrieval-Augmented Generation) 是一种创新技术,外部数据源的相关信息整合到语言模型的输出中,增强了语言模型的输出能力。

这意味着 RAG 能查询更广泛的资源,提供比仅依赖训练数据的模型更准确和全面的答案。

RAG 的过程可以简化为两个主要步骤:

  1. 检索:当提出问题,RAG 首先在知识库中检索相关文档或信息。这类似于在图书馆中快速定位书籍,RAG 能迅速找到最相关信息。
  2. 生成:检索到信息后,RAG 结合这些信息和 LLM 生成详细准确的答案。这涉及到分析、整合信息,并以自然语言形式呈现。

RAG 的构建工具

技术进步使得构建和使用 RAG 系统变得简单,无需编写复杂代码。以下是两个推荐的平台,Dify.AI[1]FastGPT[2]

FastGPT

简单易用的可视化界面

FastGPT是一个功能强大的平台,支持创建 RAG 系统,提供数据可视化、自动化工作流程等功能。

感兴趣的可以去它的 Github 主页查看。 以及官方文档:快速了解 FastGPT | FastGPT[3]

  • 知识库构建:FastGPT 支持多种数据源,简化知识库构建。
  • 深入查询与使用:FastGPT 提供强大查询功能,支持自定义仪表板,直观展示数据。
Dify.AI

Dify.AI 一款开源的大语言模型(LLM) 应用开发平台,支持快速创建和部署基于 AI 的应用,包括对数百个模型的支持、直观的 Prompt 编排界面、高质量的 RAG 引擎以及灵活的 Agent 框架,并同时提供了一套易用的界面和 API。

你可以直接使用Dify.AI云平台[4]而无需自己部署,并且新用户还提供 200 次 GPT 免费试用额度,真正做到开箱即用。

云平台页面

应用模板

工具页面

下面我用一个实例来演示一下 Dify.AIFastGPT 两个平台如何构建知识库问答:

实例:基于我的博客知识的问答

实例中的Dify.AI 使用的的Dify 云平台[5],版本号是0.6.8[6], FastGPT 是部署在DigitalOcean[7]的云服务器上,用的是 2c4g(2cpu 核心 4Gb 内容)的 Ubuntu 系统,FastGPT 采用的版本号是 4.8[8],使用我的DigitalOcean 推荐链接[9]可以获得$200 额度。以上平台都为免费使用的是社区版。

无论是选择 Dify.AI 还是 FastGPT, 都需要准备对应的文本内容来构建知识库。

Dify.AI 构建知识问答

Dify.AI 支持的数据格式比较多,有 TXT、 MARKDOWN、 PDF、 HTML、 XLSX、 XLS、 DOCX、 CSV、 EML、 MSG、 PPTX、 PPT、 XML、 EPUB 等内容,也支持 Notion 同步,而 Web 站点同步还在开发中。

对于我的博客站点,同步文档要么使用Dify.AI 的 API [10],要么等到 Dify.AI 更新站点同步功能之后使用。

我的使用的 halo 博客系统,有相应的获取博客文档的API[11],我可以先通过 API 获取所有的公开文章链接,再进行内容提取。

同时保证每次有新增文章都会发送通知触发自动化,然后会将内容增加到数据库,修改文章也会将修改内容同步到数据库。

博客文章

解析文章内容可以使用JinaReader[12],他会将你的网页内容转化为 markdown 格式,只需要在你的网页链接前面加上“https://r.jina.ai/”就可以获取内容,例如文章使用Python城市交通大数据分析与可视化的研究案例[13]可以通过访问https://r.jina.ai/https://blog.renhai-lab.tech/archives/city-transportation-big-data-analytics-and-visualization-with-python来获取内容,如下:

image-20240519131951720

所以我们需要创建一个提供博客所有文章链接并且载入到数据库的自动化工作流。

使用自动化软件Make[14]实现可视化工作流是一个好办法,或者你也可以直接使用 Python 或者 JS 脚本来实现。

准备好所有的 url 之后,利用 Dify 的 API 将文件批量导入:

代码语言:javascript
复制
from pathlib import Path
from dotenv import load_dotenv
import os
import requests

# 加载环境变量
load_dotenv()

# 获取 Dify API 相关信息
dataset_id = os.getenv('DIFY_DATASET_ID') # <<< 填入你的数据库id 在链接中获得
token = os.getenv('DIFY_TOKEN') # <<< 填入你的token 同样在API数据库的右上角获取
url = f"https://api.dify.ai/v1/datasets/{dataset_id}/document/create_by_file"

# 设置 Dify 数据处理参数 indexing_technique选择high_quality会选择
payload = {'data': '{"indexing_technique":"high_quality","process_rule":{"rules":{"pre_processing_rules":[{"id":"remove_extra_spaces","enabled":true},{"id":"remove_urls_emails","enabled":true}],"segmentation":{"separator":"###","max_tokens":500}},"mode":"custom"}}'}

# 获取所有 Markdown 文件
files_to_process = Path('./output/mk').rglob('*.md')

# 遍历处理每个文件
for file in files_to_process:
    # 跳过 README.md 文件
    if file.name == 'README.md':
        continue

    # 获取文件名和路径
    filename = file.name
    filepath = file.absolute()
    print(f'处理文件: {filename}, 路径: {filepath}')

    # 构建文件上传数据
    files = [('file', (filename, open(filepath, 'rb'), 'application/octet-stream'))]

    # 设置请求头
    headers = {'Authorization': f'Bearer {token}'}

    # 发送请求到 Dify API
    response = requests.request("POST", url, headers=headers, data=payload, files=files)

    # 检查请求是否成功
    if response.status_code != 200:
        print(f'文件 {filename} 处理失败')
    else:
        print(f'文件 {filename} 处理完成')
        print(response.text)  # 打印 API 返回的信息

        # 将文件移动到已处理文件夹
        Path('已处理').mkdir(exist_ok=True)

不过因为社区办免费用户文档的数据库上传配额只有 50 个文档,达到限额程序会报错显示“You have reached the limit of your subscription”。

dify 定价

接下来针对数据库构建知识问答。我们从模版中选择【知识库+聊天机器人】:

知识库+聊天机器人模版

在【知识检索】节点中添加我的博客数据库,

【知识检索】

在【LLM】对话模型选择模型,并且填入提示词。

image-20240519153629330

保存之后来测试一下:

以上就实现了最简单了一个问答流程了。

FastGPT 构建知识文档

而 FastGPT 支持导入 txt, docx, csv, xlsx, pdf, md, html, pptx 文件,支持 url 读取静态网页内容、CSV 批量导入,仅商用版支持 Web 站点同步。同时,FastGPT 还支持手动输入一段文本。

来源

选择网页链接,每次只能选择 10 个链接,并且根据 css 选择器来定义你的文章的主要部分:

后面默认上传导入就行了。

对于我的博客站点,我希望他能实时同步,现在可以选择 FastGPT 导入博客文章的链接之后手动同步,或者

FastGPT 的手动同步

目前貌似只能手动导入和同步,希望官方能推出自动同步的方法。并且删除文章的时候,也不能批量删除,要么删除整个数据库,要么一篇篇删除。所以建议将一类文章放在同一个文件夹。

数据库处理完之后,新建一个应用:

新建应用

同样的,我们在简单编排中配置关联数据库和引导词。在右侧可以进行对话测试。

关于如何将飞书、钉钉、微信号、企业微信号或者微信公众号接入可以查看下列文章:

  • 接入飞书(社区文章) | FastGPT[15]
  • 对接 chatgpt-on-wechat | FastGPT[16]
  • 接入微信和企业微信 | FastGPT[17]

优化

RAG 数据检索的回答优化主要是优化提示词和提高(知识)召回率,即问题问得好以及参考资料找的准。

比如 FastGPT 提供了【问题优化】功能,你可以将问题限定在某一领域,这样回答就更准确。

更多优化技巧以后再说,欢迎关注。

Dify 和 FastGPT 构建知识库总结

整体来说,Dify 和 FastGPT 都是适合初学者的大语言模型(LLM) 应用开发平台,简单易用。而 Dify 给新用户提供了免费的云平台,初期可以免费使用对话功能。FastGPT 更专注专注知识库训练,提供多种方法来提高(知识)召回率。并且 FastGPTd 的 API 接口更丰富。而 Dify 在知识库训练方面还较弱,但是 Dify 还提供了构建 AI 自动化的可能,并且支持 Agent。

根据我的需求,我在博客知识库构建会选择 FastGPT。AI 工作流会选择 Dify。

后续:

[[AI 工作流——以会议纪要和每周总结为例]]

参考资料

[1]

Dify.AI: https://dify.ai/

[2]

FastGPT: https://doc.fastai.site/docs/intro/

[3]

快速了解 FastGPT | FastGPT: https://doc.fastai.site/docs/intro/

[4]

云平台: http://cloud.dify.ai/

[5]

Dify 云平台: http://cloud.dify.ai/

[6]

0.6.8: https://github.com/langgenius/dify/releases

[7]

DigitalOcean: https://m.do.co/c/c827c2651db2

[8]

4.8: https://github.com/labring/FastGPT/releases/tag/v4.8

[9]

DigitalOcean 推荐链接: https://m.do.co/c/c827c2651db2

[10]

Dify.AI 的 API : https://docs.dify.ai/v/zh-hans/guides/knowledge-base/maintain-dataset-via-api

[11]

API: https://demo.halo.run/webjars/swagger-ui/index.html?urls.primaryName=api.halo.run

[12]

JinaReader: https://jina.ai/reader

[13]

文章使用Python城市交通大数据分析与可视化的研究案例: https://blog.renhai-lab.tech/archives/city-transportation-big-data-analytics-and-visualization-with-python

[14]

Make: https://www.make.com/

[15]

接入飞书(社区文章) | FastGPT: https://doc.fastai.site/docs/use-cases/feishu/

[16]

对接 chatgpt-on-wechat | FastGPT: https://doc.fastai.site/docs/use-cases/onwechat/

[17]

接入微信和企业微信 | FastGPT: https://doc.fastai.site/docs/use-cases/wechat/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-05-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 renhailab 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 构建您的个人知识库
    • RAG 的构建工具
      • FastGPT
      • Dify.AI
    • 实例:基于我的博客知识的问答
      • Dify.AI 构建知识问答
        • FastGPT 构建知识文档
          • 优化
            • Dify 和 FastGPT 构建知识库总结
              • 参考资料
              相关产品与服务
              数据库
              云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档