AnythingLLM的Docker使用方式
AnythingLLM的Docker使用
AnythingLLM是使用大語言模型LLM的一站式簡便框架。
官網(wǎng)的介紹如下:
AnythingLLM is the easiest to use, all-in-one AI application that can do RAG, AI Agents, and much more with no code or infrastructure headaches.
1. 使用官方docker
最方便的方法是使用 docker.
1.1 拉取鏡像
docker pull mintplexlabs/anythingllm
1.2 創(chuàng)建db目錄和配置文件
- Linux:
export STORAGE_LOCATION=/var/lib/anythingllm && \ mkdir -p $STORAGE_LOCATION && \ touch "$STORAGE_LOCATION/.env"
- Windows:
$env:STORAGE_LOCATION="$HOME\Documents\anythingllm"; ` If(!(Test-Path $env:STORAGE_LOCATION)) {New-Item $env:STORAGE_LOCATION -ItemType Directory}; ` If(!(Test-Path "$env:STORAGE_LOCATION\.env")) {New-Item "$env:STORAGE_LOCATION\.env" -ItemType File};
1.3 運(yùn)行docker
docker run -d \ --name anythingllm \ --add-host=host.docker.internal:host-gateway \ --env STORAGE_DIR=/app/server/storage \ --health-cmd "/bin/bash /usr/local/bin/docker-healthcheck.sh || exit 1" \ --health-interval 60s \ --health-start-period 60s \ --health-timeout 10s \ -p 3001:3001/tcp \ --restart=always \ --user anythingllm \ -v ${STORAGE_LOCATION}:/app/server/storage \ -v ${STORAGE_LOCATION}/.env:/app/server/.env \ -w /app \ mintplexlabs/anythingllm
--add-host 配置是為了訪問同臺(tái)機(jī)器上的ollama服務(wù)。
1.4 訪問 http://localhost:3001 進(jìn)行初始配置,最好配置團(tuán)隊(duì),可以進(jìn)行權(quán)限控制
- 可以配置大語言模型LLM、向量模型、向量數(shù)據(jù)庫等等。
- 完成后查看 .env 文件,如下(因人而異):
SERVER_PORT=3001 JWT_SECRET="my-random-string-for-seeding" # Please generate random string at least 12 chars long. STORAGE_DIR="/var/lib/anything" OPEN_AI_KEY="" LLM_PROVIDER='ollama' OLLAMA_BASE_PATH='http://localhost:11434' OLLAMA_MODEL_PREF='llama3-64k:latest' OLLAMA_MODEL_TOKEN_LIMIT='4096' EMBEDDING_ENGINE='native' VECTOR_DB='lancedb'
1.5 訪問api
- http://localhost:3001/api/docs/可以查看已有的API接口。
- 在設(shè)置里生成APIKEY,客戶端編程通過這個(gè)Key來訪問接口。
1.6 一個(gè)好用的小工具get_command_4_run_container
- 查看運(yùn)行容器的啟動(dòng)命令參數(shù)
docker pull cucker/get_command_4_run_container
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock cucker/get_command_4_run_container [容器名稱]/[容器ID]
2. 生成自己的docker鏡像
如果想要有更多的自主和控制,比如加一些api接口。
2.1 下載代碼
git clone https://github.com/Mintplex-Labs/anything-llm.git
2.2 Windows下生成鏡像
進(jìn)入代碼目錄anything-llm, 執(zhí)行命令
docker build -f ./docker/Dockerfile -t anythingllm:my_1.0 .
如果中間超時(shí)報(bào)錯(cuò)了可以多跑幾次,因?yàn)闀?huì)訪問github下載一些依賴的東西,而我們訪問github是不穩(wěn)定的, 如果你有代理服務(wù)就最好了。
2.3 Ubuntu下生成鏡像
- 這里遇到不少問題,開始不管是用docker build還是docker-compose build都報(bào)錯(cuò)。
- 后來研究./docker/Dockerfile 文件才發(fā)現(xiàn),它是支持多平臺(tái)編譯的。
- 為什么在Windows下沒有問題呢,原因是我Windows下用的是Docker Desktop,而它自帶buildx工具,會(huì)自動(dòng)識(shí)別當(dāng)前系統(tǒng)平臺(tái)。
2.3.1 安裝工具buildx
- 下載:
export BUILDX_VERSION=$(curl -s https://api.github.com/repos/docker/buildx/releases/latest | grep -oP '"tag_name": "\K(.*)(?=")') curl -LO https://github.com/docker/buildx/releases/download/${BUILDX_VERSION}/buildx-${BUILDX_VERSION}.linux-amd64
- 安裝:
mkdir -p ~/.docker/cli-plugins mv buildx-${BUILDX_VERSION}.linux-amd64 ~/.docker/cli-plugins/docker-buildx chmod +x ~/.docker/cli-plugins/docker-buildx
- 查看版本號(hào):
docker buildx version
- 使用,這個(gè)工具也是個(gè)docker:
docker buildx create --use docker buildx inspect --bootstrap
2.3.2 生成鏡像,使用buildx指定platform
docker buildx build --platform linux/amd64 --build-arg ARG_UID=1000 --build-arg ARG_GID=1000 -f ./docker/Dockerfile -t anythingllm:my_1.0 --load --output type=docker .
2.3.3 啟動(dòng)命令和上面的類似
- a. 創(chuàng)建本地store目錄
mkdir /var/lib/anythingllm-my
- b. 創(chuàng)建db和env配置文件
cd /var/lib/anythingllm-my mkdir logs touch anythingllm.db touch .env chown 1000:1000 /var/lib/anythingllm-my/ -R
這里要注意的是一定要給目錄/var/lib/anythingllm-my修改owner(最后一條命令),不然docker啟動(dòng)會(huì)失敗,報(bào)寫readonly db的錯(cuò)誤。
- c. 啟動(dòng)docker,不建議用docker-compose,
export STORAGE_LOCATION=/var/lib/anythingllm-my && docker run -d \ --name anythingllm-my \ --add-host=host.docker.internal:host-gateway \ --env STORAGE_DIR=/app/server/storage \ -p 3001:3001/tcp \ --restart=always \ --user anythingllm \ -v ${STORAGE_LOCATION}:/app/server/storage \ -v ${STORAGE_LOCATION}/.env:/app/server/.env \ -v ${STORAGE_LOCATION}/logs:/app/server/logs/ \ -w /app \ anythingllm:my_1.0
修改了文件./docker/docker-entrypoint.sh如下,增加了輸出服務(wù)端log:
#!/bin/bash { cd /app/server/ && npx prisma generate --schema=./prisma/schema.prisma && npx prisma migrate deploy --schema=./prisma/schema.prisma && node /app/server/index.js &> /app/server/logs/server.log } & { node /app/collector/index.js; } & wait -n exit $?
有了自己的鏡像,后面你可以自主修改代碼了?。?/p>
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
docker update命令動(dòng)態(tài)更新容器配置
Docker的docker update命令提供了一種在不停止容器的情況下動(dòng)態(tài)調(diào)整其資源配置的能力,從而優(yōu)化性能或滿足特定需求,本文詳細(xì)介紹了docker update命令的使用方法、常用選項(xiàng)如CPU和內(nèi)存限制,感興趣的可以了解一下2024-10-10Docker配置阿里云鏡像加速pull的實(shí)現(xiàn)
這篇文章主要介紹了Docker配置阿里云鏡像加速pull的實(shí)現(xiàn)操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11Docker容器遷移之導(dǎo)入和導(dǎo)出容器方式
這篇文章主要介紹了Docker容器遷移之導(dǎo)入和導(dǎo)出容器方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05Docker中搭建FastDFS文件系統(tǒng)(多圖教程)
這篇文章主要介紹了Docker中搭建FastDFS文件系統(tǒng)(多圖教程),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05詳解Docker 配置國內(nèi)免費(fèi)registry mirror
本篇文章主要介紹了 Docker 配置國內(nèi)免費(fèi)registry mirror,具有一定的參考價(jià)值,有興趣的小伙伴們可以參考一下2017-07-07docker安裝elasticsearch和kibana的方法步驟
這篇文章主要介紹了docker安裝elasticsearch和kibana的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06