此儲存庫包含多個 Alfresco AI 助手,可協助使用者和客戶取得所需的資訊或執行複雜的任務,透過自然語言簡單地傳達每個請求。
有關我們演示中發生的情況的“幕後”解釋,請參閱 Behind_the_scenes.md。
該存儲庫包含以下應用程式:
姓名 | 主要文件 | 寫名字 | 網址 | 描述 |
---|---|---|---|---|
露天文檔機器人 | alfresco_docs_bot.py | alfresco_docs_bot | http://本地主機:8503 | 取得 Alfresco 文件並提出問題。 |
露天人工智慧助手 | alfresco_ai_assistant.py | alfresco_ai_assistant | http://本地主機:8504 | 使用自然語言請求與 Alfresco Content Services 實例互動。 |
可透過 http://localhost:7474 瀏覽資料庫。
圖TB
用戶(用戶?)
法學碩士(法學碩士?)
向量資料庫[(向量資料庫)]
raw-docs{{原始文件}}
使用者--查詢嵌入資料--> 向量資料庫
Vectordb --相關資料--> llm
llm --最終答案--> 用戶
raw-docs --提取/分塊/嵌入---> vectordb
訪問地址:
特徵:
圖BT
用戶(用戶?)
法學碩士(法學碩士?)
應用程式介面
子圖 api[API ?]
發現API
搜尋API
節點 API
結尾
子圖工具[工具 ]
發現
轉換
纂
結尾
使用者--查詢--> llm
llm --選擇--> 工具
工具--呼叫--> api
api --feed 資料--> llm
llm --最終答案--> 用戶
訪問地址:
特徵:
從環境範本文件env.example
建立.env
文件
可用變數:
變數名 | 預設值 | 描述 |
---|---|---|
ALFRESCO_URL | http://本地主機:8080 | 必需 - ACS 實例的基本 URL |
ALFRESCO_USERNAME | 行政 | 必需 - ACS 實例的使用者名 |
ALFRESCO_PASSWORD | 行政 | 必需 - ACS 實例的密碼 |
OLLAMA_BASE_URL | http://host.docker.internal:11434 | 必需 - Ollama LLM API 的 URL |
NEO4J_URI | neo4j://資料庫:7687 | 必需 - Neo4j 資料庫的 URL |
NEO4J_USERNAME | 新4j | 必需 - Neo4j 資料庫的使用者名 |
NEO4J_PASSWORD | 密碼 | 必需 - Neo4j 資料庫的密碼 |
法學碩士 | 駱駝3 | 必需 - 可以是任何 Ollama 型號標籤,或 gpt-4 或 gpt-3.5 或 claudev2 |
嵌入模型 | 句子轉換器 | 必需 - 可以是 Sentence_transformer、openai、aws、ollama 或 google-genai-embedding-001 |
AWS_ACCESS_KEY_ID | 必需 - 僅當 LLM=claudev2 或 embedding_model=aws 時 | |
AWS_SECRET_ACCESS_KEY | 必需 - 僅當 LLM=claudev2 或 embedding_model=aws 時 | |
AWS_DEFAULT_REGION | 必需 - 僅當 LLM=claudev2 或 embedding_model=aws 時 | |
OPENAI_API_KEY | 必需 - 僅當 LLM=gpt-4 或 LLM=gpt-3.5 或 embedding_model=openai 時 | |
GOOGLE_API_KEY | 必需 - 僅在使用 GoogleGenai LLM 或嵌入模型 google-genai-embedding-001 時才需要 | |
LANGCHAIN_ENDPOINT | “https://api.smith.langchain.com” | 可選 - Langchain Smith API 的 URL |
LANGCHAIN_TRACING_V2 | 錯誤的 | 可選 - 啟用 Langchain 追蹤 v2 |
LANGCHAIN_PROJECT | 可選 - Langchain 專案名稱 | |
LANGCHAIN_API_KEY | 可選 - Langchain API 金鑰 |
警告
這些應用程式僅在 Ollama(特別是 llama3)上進行了測試,不保證它們可以與其他法學碩士一起使用。
無需手動安裝 Ollama,當使用 Linux 設定檔運行時,它將作為堆疊的一部分在容器中執行:執行docker compose --profile linux up
。使用 Ollama docker 容器時,請確保在.env
檔案中設定OLLAMA_BASE_URL=http://llm:11434
。
要使用 Linux-GPU 設定檔:執行docker compose --profile linux-gpu up
。也要在.env
檔中更改OLLAMA_BASE_URL=http://llm-gpu:11434
。
如果您由於某種原因無法運行 Ollama 容器,您可以安裝它並在本地運行它作為替代選項。
如果您運行在廉價的 GPU 或 CPU 上,您可能需要將 commons.py 中的
num_ctx
減少到3072
。
在本地運行 Ollama 可能會產生緩慢的結果。一個可能的解決方案是在支援 GPU 的廉價 EC2 執行個體上運行它,該執行個體的效能比任何消費級 GPU 都要好。
若要建立由單一g4dn.xlarge
實例支援的 EKS 叢集:
eksctl create cluster --name hack-turing-titans --node-type=g4dn.xlarge --nodes 1
安裝 ingress-nginx 和 cert-manager 以透過 https 公開 ollama:
helm upgrade --install ingress-nginx ingress-nginx
--repo https://kubernetes.github.io/ingress-nginx
--namespace ingress-nginx --create-namespace
helm install
cert-manager jetstack/cert-manager
--namespace cert-manager
--create-namespace
--set installCRDs=true
手動建立指向 ingress-nginx 入口 CNAME 的 DNS 記錄(透過kubectl get service -n ingress-nginx
檢索它)。
設定 FQDN 並套用 ClusterIssuer 資源以啟用 LetsEncrypt 憑證產生:
sed -i ' s/my-ollama.example.com/YOUR_FQDN/g ' k8s/letsencrypt-prod.yaml
kubectl apply -f k8s/letsencrypt-prod.yaml
最後安裝Ollama圖表:
helm install ollama ollama-helm/ollama
--namespace ollama
--create-namespace
--values ollama.yaml
警告
Docker Desktop 4.24.x
版本中存在一個影響 python 應用程式的效能問題。使用此堆疊之前,請升級至最新版本。
開始一切
docker compose up
如果對建置腳本進行了更改,請重新建置.
docker compose up --build
進入監視模式(檔案變更時自動重建)。首先啟動一切,然後在新終端機中:
docker compose watch
關閉如果運行狀況檢查失敗或容器未如預期啟動,請完全關閉以重新啟動。
docker compose down
為應用程式正確運行準備資料可能需要的腳本,它們都可以在 ./scripts 下找到。
Transformer.py 是一個腳本,應針對 docs-alfresco 儲存庫的本機複製運行,以便建立包含 Alfresco Docs 機器人所有預期文件的initial-load
資料夾。
該專案基於 docker/genai-stack,是Turing Titans團隊在 Hyland 為期三天的內部黑客馬拉鬆的成果。