Skip to content

独立部署、ChatGPT 驱动、支持全文语义搜索、聊天机器人的 AI 协同知识库。

License

Notifications You must be signed in to change notification settings

YaoApp/yao-knowledge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Jun 13, 2023
c47d108 · Jun 13, 2023

History

68 Commits
Apr 17, 2023
May 28, 2023
May 23, 2023
May 24, 2023
May 23, 2023
May 14, 2023
May 24, 2023
May 23, 2023
May 26, 2023
Apr 8, 2023
Apr 8, 2023
May 24, 2023
May 23, 2023
May 24, 2023
May 27, 2023
May 28, 2023
May 26, 2023
May 15, 2023
May 30, 2023
Jun 13, 2023
May 23, 2023
May 28, 2023
May 28, 2023

Repository files navigation

AI 知识库

屏幕截图

⚠️ ⚠️ ⚠️ 本项目为一个 YAO 应用的演示示例,主要介绍 YAO 如何对接向量数据库、客户端、自定义网页、 Neo DSL 中如何使用私有数据及如何将应用打包为独立制品等。

⚠️ ⚠️ ⚠️ 在开始前需要了解 YAO 的基本使用方式。 建议熟悉 YAO 之后尝试。 官方文档: https://yaoapps.com/doc

⚠️ ⚠️ ⚠️ 如需在生产环境中使用,可联系商务。联系方式: https://yaoapps.com/contact

仓库说明

仓库 说明
https://github.com/YaoApp/yao-knowledge 知识库 API 接口, 管理后台
https://github.com/YaoApp/yao-knowledge-web 知识库网站源码 (Build 之后放在 public 目录)
https://github.com/YaoApp/yao-knowledge-desktop 文档上传客户端(当前支持 PDF 文件格式)
https://github.com/YaoApp/yao-knowledge-pdf YAO PDF 文档阅读器插件 (支持 Linux / MacOS)

项目依赖

依赖 版本 说明
YAO v0.10.3+ (#45f83c0) Yao 应用引擎
Weaviate v0.19.6+ Weaviate 向量数据库
OpenAI gpt-3.5-turbo, text-embedding-ada-002 OpenAI 接口

安装配置

安装准备

安装 YAO

参考文档: 安装调试

⚠️ 确认 YAO 的版本为 v0.10.3+ , Git Commit: #45f83c0, Built: 2023-05-28T13:29:38+0000

运行 yao version 查看

yao version --all
Version:	  0.10.3
Go version:	  go1.19.2
Git commit:	  45f83c08fe59
Built:	      2023-05-28T13:29:38+0000
OS/Arch:	  linux/amd64

安装 Weaviate

Docker Compose: compose.yml

version: "3.4"
services:
  weaviate:
    command:
      - --host
      - 0.0.0.0
      - --port
      - "5080"
      - --scheme
      - http
    image: semitechnologies/weaviate:latest
    ports:
      - 5080:5080
    restart: unless-stopped
    environment:
      QUERY_DEFAULTS_LIMIT: 25
      AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: "true"
      PERSISTENCE_DATA_PATH: "/var/lib/weaviate"
      DEFAULT_VECTORIZER_MODULE: "text2vec-openai"
      ENABLE_MODULES: "text2vec-openai,generative-openai,qna-openai"
      CLUSTER_HOSTNAME: "node1"
      all_proxy: socks5://172.17.0.1:7890
      http_proxy: http://172.17.0.1:7890
      https_proxy: http://172.17.0.1:7890

⚠️⚠️⚠️ http_proxy、https_proxy、all_proxy 需修改为代理服务器,确保在容器内可访问 OpenAI 接口。

启动服务

docker compose up -d

安装应用

第一步: 下载源码

git clone https://github.com/YaoApp/yao-knowledge.git

第二步: 配置环境变量

⚠️⚠️⚠️ 将 /data/app 替换为你自己的目录

⚠️⚠️⚠️ 将 WEAVIATE HOST、 WEAVIATE PORT 替换为你的 Weaviate

⚠️⚠️⚠️ 如没有 /data/app/db 目录,需手动创建

⚠️⚠️⚠️ 将 PDF 阅读扩展插件复制到 YAO 扩展目录

/data/app/.env 文件

YAO_DB_DRIVER="sqlite3"
YAO_DB_PRIMARY="/data/app/db/yao.db"
YAO_ENV="production"
YAO_HOST="0.0.0.0"
YAO_LANG="zh-cn"
YAO_LOG="/data/app/logs/application.log"
YAO_LOG_MODE="TEXT"
YAO_PORT="5099"
YAO_SESSION_FILE="/data/app/db/.session"
YAO_SESSION_STORE="file"
YAO_STUDIO_PORT="5077"

# YAO_EXTENSION_ROOT 设置 YAO 扩展目录; 插件目录为 $YAO_EXTENSION_ROOT/plugins。
# 将对应架构的 .so 文件复制到 /data/yao-exts/plugins/pdf.so
# PDF 文件阅读插件 https://github.com/YaoApp/yao-knowledge-pdf
YAO_EXTENSION_ROOT="/data/yao-exts"

WEAVIATE_HOST="http://<WEAVIATE HOST>:<WEAVIATE PORT>"
OPENAI_KEY=sk-xxxx
YAO_JWT_SECRET=LiQDE1kOnvv6Qv3if2KhEJ7Ihzz1XZ

第三步: 启动服务

初始化数据

yao migrate --reset && yao run scripts.doc.SchemaReset

启动服务

yao start

独立制品

打包为独立制品

⚠️⚠️⚠️ 将 /data/app 替换为你自己的目录

⚠️⚠️⚠️ PACK_FLAG="-l 123456" 可替换为你自己的密码

docker run -it --rm \
      -v /data/app:/app \
      -e APP_NAME="knowledge" \
      -e PACK_FLAG="-l 123456" \
      -e PACK_ENV="/app/pack.build.yao" \
      yaoapp/yao-build:0.10.3-amd64 make

打包好的制品在 dist 目录下

dist
├── knowledge-0.10.3-linux-amd64
└── knowledge-0.10.3-linux-arm64

启动服务

⚠️⚠️⚠️ 首次运行需初始化数据

mkdir /data/empty
cd /data/empty

# 首次运行初始化数据
knowledge-0.10.3-linux-amd64 -k 123456 migrate --reset && knowledge-0.10.3-linux-amd64 -k 123456 run scripts.doc.SchemaReset

# 启动服务
knowledge-0.10.3-linux-amd64 -k 123456 start

文件上传客户端

仓库: https://github.com/YaoApp/yao-knowledge-desktop

配置文件: config.js

module.exports = { url: "http://127.0.0.1", port: 5099 };
参数 说明
url 知识库 API 地址
port 端口号

制品打包参考 release workflow

知识库网站

仓库: https://github.com/YaoApp/yao-knowledge-web

可将打包后的文件,放到 public 目录

npm run build
cp -r dist/* /data/app/public/