พื้นที่เก็บข้อมูลนี้ประกอบด้วย Alfresco AI Assistants หลายตัวเพื่อช่วยให้ผู้ใช้และลูกค้าได้รับข้อมูลที่ต้องการหรือดำเนินงานที่ซับซ้อน เพียงถ่ายทอดแต่ละคำขอผ่านภาษาธรรมชาติ
สำหรับคำอธิบาย "เบื้องหลัง" ของสิ่งที่เกิดขึ้นในการสาธิตของเรา โปรดดูที่ behind_the_scenes.md
พื้นที่เก็บข้อมูลนี้มีแอปพลิเคชันต่อไปนี้:
ชื่อ | ไฟล์หลัก | เขียนชื่อ | URL | คำอธิบาย |
---|---|---|---|---|
บอทเอกสาร Alfresco | alfresco_docs_bot.py | alfresco_docs_bot | http://localhost:8503 | นำเข้าเอกสาร Alfresco และถามคำถาม |
ผู้ช่วย AI อัลเฟรสโก | alfresco_ai_assistant.py | alfresco_ai_assistant | http://localhost:8504 | โต้ตอบกับอินสแตนซ์ Alfresco Content Services โดยใช้คำขอภาษาธรรมชาติ |
สามารถสำรวจฐานข้อมูลได้ที่ http://localhost:7474
กราฟวัณโรค
ผู้ใช้(ผู้ใช้ ?)
llm(LLM ?)
vectordb[(ฐานข้อมูลเวกเตอร์)]
raw-docs{{เอกสารดิบ }}
ผู้ใช้ --query-embedded-data--> vectordb
vectordb --ข้อมูลที่เกี่ยวข้อง--> llm
llm --คำตอบสุดท้าย--> ผู้ใช้
raw-docs --extract/chunking/embedding---> vectordb
เข้าถึงได้ที่ :
คุณสมบัติ :
กราฟ บีที
ผู้ใช้(ผู้ใช้ ?)
llm(LLM ?)
เอพีไอ
API กราฟย่อย[API ?]
การค้นพบ API
ค้นหา API
โหนด-api
จบ
เครื่องมือกราฟย่อย[เครื่องมือ ]
การค้นพบ
แปลงร่าง
แก้ไข
จบ
ผู้ใช้ --query--> llm
llm --เลือก --> เครื่องมือ
เครื่องมือ -- เรียกใช้ --> api
api --ข้อมูลฟีด --> llm
llm --คำตอบสุดท้าย--> ผู้ใช้
เข้าถึงได้ที่ :
คุณสมบัติ :
สร้างไฟล์ .env
จากไฟล์เทมเพลตสภาพแวดล้อม env.example
ตัวแปรที่มีอยู่:
ชื่อตัวแปร | ค่าเริ่มต้น | คำอธิบาย |
---|---|---|
อัลเฟรสโก_URL | http://localhost:8080 | ต้องระบุ - URL ฐานไปยังอินสแตนซ์ ACS |
อัลเฟรสโก_USERNAME | ผู้ดูแลระบบ | ต้องระบุ - ชื่อผู้ใช้สำหรับอินสแตนซ์ ACS |
อัลเฟรสโก_รหัสผ่าน | ผู้ดูแลระบบ | จำเป็น - รหัสผ่านสำหรับอินสแตนซ์ ACS |
OLLAMA_BASE_URL | http://host.docker.internal:11434 | ต้องระบุ - URL ไปยัง Ollama LLM API |
NEO4J_URI | neo4j://ฐานข้อมูล:7687 | จำเป็น - URL ไปยังฐานข้อมูล Neo4j |
NEO4J_USERNAME | นีโอ4เจ | จำเป็น - ชื่อผู้ใช้สำหรับฐานข้อมูล Neo4j |
NEO4J_รหัสผ่าน | รหัสผ่าน | จำเป็น - รหัสผ่านสำหรับฐานข้อมูล Neo4j |
นิติศาสตร์มหาบัณฑิต | ลามะ3 | ต้องระบุ - อาจเป็นแท็กโมเดล Ollama ใดก็ได้ หรือ gpt-4 หรือ gpt-3.5 หรือ claudev2 |
ฝัง_MODEL | ประโยค_หม้อแปลง | ต้องระบุ - อาจเป็น question_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" | ไม่บังคับ - URL ไปยัง Langchain Smith API |
LANGCHAIN_TRACING_V2 | เท็จ | ตัวเลือกเสริม - เปิดใช้งานการติดตาม Langchain เวอร์ชัน 2 |
LANCHAIN_โครงการ | ตัวเลือกเสริม - ชื่อโปรเจ็กต์ Langchain | |
LANGCHAIN_API_KEY | ตัวเลือก - คีย์ Langchain API |
คำเตือน
แอปพลิเคชันได้รับการทดสอบกับ Ollama เท่านั้น และโดยเฉพาะ llama3 ไม่รับประกันว่าจะทำงานร่วมกับ LLM อื่นๆ ได้
ไม่จำเป็นต้องติดตั้ง Ollama ด้วยตนเอง มันจะทำงานในคอนเทนเนอร์โดยเป็นส่วนหนึ่งของสแต็กเมื่อทำงานด้วยโปรไฟล์ Linux: run docker compose --profile linux up
ตรวจสอบให้แน่ใจว่าได้ตั้ง OLLAMA_BASE_URL=http://llm:11434
ในไฟล์ .env
เมื่อใช้คอนเทนเนอร์นักเทียบท่า Ollama
หากต้องการใช้โปรไฟล์ Linux-GPU ให้รัน docker compose --profile linux-gpu up
เปลี่ยน OLLAMA_BASE_URL=http://llm-gpu:11434
ในไฟล์ . .env
ด้วย
หากคุณไม่สามารถเรียกใช้คอนเทนเนอร์ Ollama ได้ไม่ว่าด้วยเหตุผลใดก็ตาม คุณสามารถติดตั้งและเรียกใช้ภายในเครื่องแทนเป็นตัวเลือกอื่นได้
คุณอาจต้องการลด
num_ctx
เป็น3072
ใน commons.py หากคุณใช้ GPU หรือ CPU ราคาถูก
การเรียกใช้ Ollama ในพื้นที่อาจทำให้ได้ผลลัพธ์ที่ช้า วิธีแก้ไขที่เป็นไปได้คือการรันบนอินสแตนซ์ EC2 ที่เปิดใช้งาน GPU ราคาถูก ซึ่งจะทำงานได้ดีกว่า GPU ระดับผู้บริโภคใดๆ
หากต้องการสร้างคลัสเตอร์ EKS ที่สนับสนุนโดยอินสแตนซ์ g4dn.xlarge
เดียว ให้ทำดังนี้
eksctl create cluster --name hack-turing-titans --node-type=g4dn.xlarge --nodes 1
ติดตั้ง ingress-nginx และ cert-manager เพื่อเปิดเผย ollama ผ่าน https:
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
สร้างระเบียน DNS ด้วยตนเองโดยชี้ไปที่ ingress-nginx ingress CNAME (ดึงข้อมูลผ่าน 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
คำเตือน
มีปัญหาด้านประสิทธิภาพที่ส่งผลต่อแอปพลิเคชัน Python ใน Docker Desktop 4.24.x
โปรดอัปเกรดเป็นรุ่นล่าสุดก่อนที่จะใช้สแต็กนี้
เพื่อเริ่มต้นทุกสิ่งทุกอย่าง
docker compose up
หากมีการเปลี่ยนแปลงการสร้างสคริปต์ ให้ สร้าง ไฟล์ .
docker compose up --build
เพื่อเข้าสู่ โหมดดู (สร้างใหม่อัตโนมัติเมื่อมีการเปลี่ยนแปลงไฟล์) ก่อนอื่นให้เริ่มต้นทุกอย่าง จากนั้นในเทอร์มินัลใหม่:
docker compose watch
การปิดระบบ หากการตรวจสอบสภาพล้มเหลวหรือคอนเทนเนอร์ไม่เริ่มทำงานตามที่คาดไว้ ให้ปิดระบบทั้งหมดเพื่อเริ่มต้นใหม่อีกครั้ง
docker compose down
สคริปต์ที่อาจจำเป็นต้องเตรียมข้อมูลเพื่อให้แอปพลิเคชันทำงานได้อย่างถูกต้อง สามารถพบได้ทั้งหมดภายใต้ ./scripts
Transformer.py เป็นสคริปต์ที่ควรรันกับโคลนในเครื่องของที่เก็บ docs-alfresco เพื่อสร้างโฟลเดอร์ initial-load
พร้อมเอกสารประกอบที่คาดหวังทั้งหมดสำหรับบอต Alfresco Docs
โปรเจ็กต์นี้อิงจาก docker/genai-stack และเป็นผลลัพธ์ของแฮ็กกาธอนภายในสามวันที่ Hyland โดยทีม Turing Titans