介紹FastWiki
FastWiki是一個高性能、基于最新技術(shù)棧的知識庫系統(tǒng),旨在為大規(guī)模信息檢索和智能搜索提供解決方案。它采用微軟Semantic Kernel進(jìn)行深度學(xué)習(xí)和自然語言處理,在后端使用MasaFramework
,前端采用MasaBlazor
框架,實(shí)現(xiàn)了一個高效、易用、可擴(kuò)展的智能向量搜索平臺。其目標(biāo)是幫助用戶快速準(zhǔn)確地獲取所需信息,具有智能搜索、高性能、現(xiàn)代化前端、強(qiáng)大的后端等特點(diǎn)。除此之外,FastWiki
是開源和社區(qū)驅(qū)動的項(xiàng)目,采用Apache-2.0許可證,鼓勵開發(fā)者和企業(yè)使用和貢獻(xiàn)。
部署FastWiki
下面部署FastWiki
將使用docker-compose進(jìn)行部署,如果不存在環(huán)境則先安裝docker和docker-compose的環(huán)境,由于postgresql需要使用向量插件,自己打包向量插件會過于麻煩,所以FastWiki提供了一鍵docker-compose的文件,內(nèi)部提供的postgresql自帶了vector
插件了,我們只需要執(zhí)行腳本即可
部署One-Api
One-Api是干什么的:
- One-Api用于AI的中轉(zhuǎn)站,由于大部分的AI工具僅支持openai的api格式,但是國內(nèi)的AI的接口格式五花八門,所以我們需要通過One-Api將國內(nèi)的AI轉(zhuǎn)換成openai的接口格式下面我們開始部署我們的One-Api
將下面的內(nèi)容復(fù)制到一個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/
登錄系統(tǒng),默認(rèn)賬號為 root
,密碼為 123456
。
-
添加渠道
-
添加星火大模型的渠道
-
獲取星火大模型的密鑰
- 控制臺-訊飛開放平臺 (xfyun.cn) 在這里申請一個應(yīng)用和產(chǎn)品,3.5個人用戶可以免費(fèi)領(lǐng)取200萬的Token對于測試基本是夠用的
-
獲取到密鑰 安裝APPID|APISecret|APIKey的格式填寫到上面One-Api的密鑰當(dāng)中即可,
-
創(chuàng)建One-Api的Token,設(shè)置無限額度,然后點(diǎn)擊提交。
-
點(diǎn)擊復(fù)制key,然后將key修改下面的compose文件中的OPENAI_CHAT_TOKEN的環(huán)境變量的值,OPENAI_CHAT_ENDPOINT的地址則修改成fast-wiki-service能訪問的地址,比如你局域網(wǎng)的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
文件,知識庫依賴了第三方服務(wù)所以不能直接運(yùn)行,需要修改部分參數(shù)。
version: '3.8' # 可以根據(jù)需要使用不同的版本
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: # 當(dāng)前compose服務(wù)名
image: registry.cn-shenzhen.aliyuncs.com/fast-wiki/pgvector:v0.5.0 # 拉取的數(shù)據(jù)庫鏡像
container_name: postgres # 容器運(yùn)行的容器名稱
restart: always # 開機(jī)自啟動
environment: # 環(huán)境變量
POSTGRES_USER: token # 默認(rèn)賬號
POSTGRES_PASSWORD: dd666666 # 默認(rèn)密碼
POSTGRES_DB: wiki # 默認(rèn)數(shù)據(jù)庫
TZ: Asia/Shanghai # 數(shù)據(jù)庫時區(qū)
volumes:
- ./postgresql:/var/lib/postgresql/data # 將PostgreSql數(shù)據(jù)持久化
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環(huán)境變量參數(shù):
- QUANTIZE_MAX_TASK:量化任務(wù)的最大并發(fā)數(shù),默認(rèn)為3
- OPENAI_CHAT_ENDPOINT:OpenAI API的地址
- OPENAI_CHAT_EMBEDDING_ENDPOINT: Embedding API的地址
- OPENAI_CHAT_TOKEN: OpenAI API的Token
- OPENAI_CHAT_MODEL: 對話的模型,默認(rèn)gpt-3.5-turbo
- OPENAI_EMBEDDING_MODEL: Embedding的模型,默認(rèn)text-embedding-3-small
- OPENAI_EMBEDDING_TOKEN: Embedding的Token, 默認(rèn)為空,為空則使用對話的Token
FastWiki.Web.Server環(huán)境變量參數(shù):
- FAST_WIKI_SERVICE:FastWikiService的地址,默認(rèn)為http://localhost:5124
請注意FAST_WIKI_SERVICE環(huán)境變量一定是得外網(wǎng)能訪問到的地址,否則在回復(fù)知識庫內(nèi)容的時候會導(dǎo)致引用的文件出現(xiàn)404.
FastWiki為你提供了免費(fèi)的向量Api,這個地址和token僅支持向量(并且對于ip進(jìn)行限流)。
創(chuàng)建自定義模型的json以便支持國產(chǎn)模型,文件需要于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
則是星火大模型。
上面文件創(chuàng)建好了以后執(zhí)行,然后就可以訪問http://localhost:2180/
docker-compose up -d
登錄系統(tǒng)默認(rèn)賬號admin密碼Aa123456
-
點(diǎn)擊知識庫->創(chuàng)建知識庫 點(diǎn)擊添加。
-
點(diǎn)擊創(chuàng)建的知識庫:
-
點(diǎn)擊導(dǎo)入文件
-
拖動需要上傳的.md/.pdf/.txt的文件到這里,然后點(diǎn)擊下一步,一直到上傳數(shù)據(jù),
-
上傳數(shù)據(jù),點(diǎn)擊上傳,上傳完成關(guān)閉彈窗。
-
數(shù)據(jù)上傳以后服務(wù)會在后臺進(jìn)行量化,等待上傳完成以后點(diǎn)擊應(yīng)用,然后創(chuàng)建應(yīng)用
-
創(chuàng)建應(yīng)用,然后打開創(chuàng)建的應(yīng)用
1. -
綁定知識庫,點(diǎn)擊選擇知識庫然后點(diǎn)擊需要綁定的知識庫,在關(guān)閉彈窗,然后點(diǎn)擊保存修改即可。
-
修改電話基礎(chǔ)模型,修改為添加的
SparkDesk-v3.5
然后點(diǎn)擊保存修改即可 -
打開聊天然后提問上傳的文檔的內(nèi)容,這樣就可以針對性規(guī)范AI了,還可以設(shè)置超出知識庫返回的時候回復(fù)內(nèi)容!
開源地址
Github: https://github.com/239573049/fast-wiki
Gitee: https://gitee.com/hejiale010426/fast-wiki
在線文檔:https://docs.token-ai.cn/
體驗(yàn)地址:https://chat.token-ai.cn/chat/share-chat?id=939b3ad2f853422db0d781bcb19a8bf1文章來源:http://www.zghlxwxcb.cn/news/detail-837911.html
知識庫微信交流群加:文章來源地址http://www.zghlxwxcb.cn/news/detail-837911.html
到了這里,關(guān)于智能AI知識庫,增強(qiáng)AI知識的開源項(xiàng)目的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!