该存储库包含多个 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 为期三天的内部黑客马拉松的成果。