介紹FastWiki FastWiki是一個高性能、基於最新技術棧的知識庫系統,旨在為大規模信息檢索和智能搜索提供解決方案。它採用微軟Semantic Kernel進行深度學習和自然語言處理,在後端使用MasaFramework,前端採用MasaBlazor框架,實現了一個高效、易用、可擴展的智能向 ...
介紹FastWiki
FastWiki是一個高性能、基於最新技術棧的知識庫系統,旨在為大規模信息檢索和智能搜索提供解決方案。它採用微軟Semantic Kernel進行深度學習和自然語言處理,在後端使用MasaFramework
,前端採用MasaBlazor
框架,實現了一個高效、易用、可擴展的智能向量搜索平臺。其目標是幫助用戶快速準確地獲取所需信息,具有智能搜索、高性能、現代化前端、強大的後端等特點。除此之外,FastWiki
是開源和社區驅動的項目,採用Apache-2.0許可證,鼓勵開發者和企業使用和貢獻。
部署FastWiki
下麵部署FastWiki
將使用docker-compose進行部署,如果不存在環境則先安裝docker和docker-compose的環境,由於postgresql需要使用向量插件,自己打包向量插件會過於麻煩,所以FastWiki提供了一鍵docker-compose的文件,內部提供的postgresql自帶了vector
插件了,我們只需要執行腳本即可
部署One-Api
One-Api是乾什麼的:
- One-Api用於AI的中轉站,由於大部分的AI工具僅支持openai的api格式,但是國內的AI的介面格式五花八門,所以我們需要通過One-Api將國內的AI轉換成openai的介面格式下麵我們開始部署我們的One-Api
將下麵的內容複製到一個docker-compose.yml
文件中
version: '3.8'
services:
one-api:
image: justsong/one-api
container_name: one-api
restart: always
ports:
- "3000:3000"
environment:
- TZ=Asia/Shanghai
volumes:
- ./data/one-api:/data
我們使用最輕量級的Sqlite版本,啟動容器以後打開瀏覽器訪問:http://localhost:3000/
登錄系統,預設賬號為 root
,密碼為 123456
。
-
添加渠道
-
添加星火大模型的渠道
-
獲取星火大模型的密鑰
- 控制台-訊飛開放平臺 (xfyun.cn) 在這裡申請一個應用和產品,3.5個人用戶可以免費領取200萬的Token對於測試基本是夠用的
-
獲取到密鑰 安裝APPID|APISecret|APIKey的格式填寫到上面One-Api的密鑰當中即可,
-
創建One-Api的Token,設置無限額度,然後點擊提交。
-
點擊複製key,然後將key修改下麵的compose文件中的OPENAI_CHAT_TOKEN的環境變數的值,OPENAI_CHAT_ENDPOINT的地址則修改成fast-wiki-service能訪問的地址,比如你區域網的ip加埠
OPENAI_CHAT_ENDPOINT=http://ip:埠
這樣即可。
下載docker-compose.yml
curl -o docker-compose.yml https://raw.githubusercontent.com/239573049/fast-wiki/master/docker-compose.yml
然後打開下載的docker-compose.yml
文件,知識庫依賴了第三方服務所以不能直接運行,需要修改部分參數。
version: '3.8' # 可以根據需要使用不同的版本
services:
fast-wiki-service:
image: registry.cn-shenzhen.aliyuncs.com/fast-wiki/fast-wiki-service
container_name: fast-wiki-service
user: root
restart: always
ports:
- "8080:8080"
build:
context: .
dockerfile: ./src/Service/FastWiki.Service/Dockerfile
volumes:
- ./wwwroot:/app/wwwroot/
environment:
- OPENAI_CHAT_ENDPOINT=https://api.openai.com
- OPENAI_CHAT_EMBEDDING_ENDPOINT=https://ai-api.token-ai.cn/
- OPENAI_CHAT_TOKEN={您的TokenKey}
- OPENAI_CHAT_MODEL=gpt-3.5-turbo
- OPENAI_EMBEDDING_MODEL=text-embedding-3-small
- ASPNETCORE_ENVIRONMENT=Development
- OPENAI_EMBEDDING_TOKEN=sk-CpKIlADEESeOdoXnF58e72A2C8Af4e0c8b52Eb6eE7116c7a
postgres: # 當前compose服務名
image: registry.cn-shenzhen.aliyuncs.com/fast-wiki/pgvector:v0.5.0 # 拉取的資料庫鏡像
container_name: postgres # 容器運行的容器名稱
restart: always # 開機自啟動
environment: # 環境變數
POSTGRES_USER: token # 預設賬號
POSTGRES_PASSWORD: dd666666 # 預設密碼
POSTGRES_DB: wiki # 預設資料庫
TZ: Asia/Shanghai # 資料庫時區
volumes:
- ./postgresql:/var/lib/postgresql/data # 將PostgreSql數據持久化
fast-wiki-server:
image: registry.cn-shenzhen.aliyuncs.com/fast-wiki/fast-wiki-server
container_name: fast-wiki-server
restart: always
ports:
- "2180:8080"
build:
context: .
dockerfile: ./src/Web/FastWiki.Web.Server/Dockerfile
environment:
- FAST_WIKI_SERVICE=http://知識庫api的ip:8080
volumes:
- ./model.json:/app/model.json
FastWikiService環境變數參數:
- QUANTIZE_MAX_TASK:量化任務的最大併發數,預設為3
- OPENAI_CHAT_ENDPOINT:OpenAI API的地址
- OPENAI_CHAT_EMBEDDING_ENDPOINT: Embedding API的地址
- OPENAI_CHAT_TOKEN: OpenAI API的Token
- OPENAI_CHAT_MODEL: 對話的模型,預設gpt-3.5-turbo
- OPENAI_EMBEDDING_MODEL: Embedding的模型,預設text-embedding-3-small
- OPENAI_EMBEDDING_TOKEN: Embedding的Token, 預設為空,為空則使用對話的Token
FastWiki.Web.Server環境變數參數:
- FAST_WIKI_SERVICE:FastWikiService的地址,預設為http://localhost:5124
請註意FAST_WIKI_SERVICE環境變數一定是得外網能訪問到的地址,否則在回覆知識庫內容的時候會導致引用的文件出現404.
FastWiki為你提供了免費的向量Api,這個地址和token僅支持向量(並且對於ip進行限流)。
創建自定義模型的json以便支持國產模型,文件需要於docker-compose.yml同級:
model.json
{
"ChatModel": [
{
"label": "gpt-3.5-turbo",
"value": "gpt-3.5-turbo"
},
{
"label": "gpt-4-0125-preview",
"value": "gpt-4-0125-preview"
},
{
"label": "gpt-4-1106-preview",
"value": "gpt-4-1106-preview"
},
{
"label": "gpt-4-1106-vision-preview",
"value": "gpt-4-1106-vision-preview"
},
{
"label": "gpt-4",
"value": "gpt-4"
},
{
"label": "gpt-4-32k",
"value": "gpt-4-32k"
},
{
"label": "gpt-3.5-turbo-0125",
"value": "gpt-3.5-turbo-0125"
},
{
"label": "SparkDesk-v3.5",
"value": "SparkDesk-v3.5"
}
],
"EmbeddingModel": [
{
"label": "text-embedding-3-small",
"value": "text-embedding-3-small"
}
]
}
SparkDesk-v3.5
則是星火大模型。
上面文件創建好了以後執行,然後就可以訪問http://localhost:2180/
docker-compose up -d
登錄系統預設賬號admin密碼Aa123456
-
點擊知識庫->創建知識庫 點擊添加。
-
點擊創建的知識庫:
-
點擊導入文件
-
拖動需要上傳的.md/.pdf/.txt的文件到這裡,然後點擊下一步,一直到上傳數據,
-
上傳數據,點擊上傳,上傳完成關閉彈窗。
-
數據上傳以後服務會在後臺進行量化,等待上傳完成以後點擊應用,然後創建應用
-
創建應用,然後打開創建的應用
1. -
綁定知識庫,點擊選擇知識庫然後點擊需要綁定的知識庫,在關閉彈窗,然後點擊保存修改即可。
-
修改電話基礎模型,修改為添加的
SparkDesk-v3.5
然後點擊保存修改即可 -
打開聊天然後提問上傳的文檔的內容,這樣就可以針對性規範AI了,還可以設置超出知識庫返回的時候回覆內容!
開源地址
Github: https://github.com/239573049/fast-wiki
Gitee: https://gitee.com/hejiale010426/fast-wiki
線上文檔:https://docs.token-ai.cn/
體驗地址:https://chat.token-ai.cn/chat/share-chat?id=939b3ad2f853422db0d781bcb19a8bf1
知識庫微信交流群加: