يحتوي هذا المستودع على العديد من مساعدي Alfresco AI لمساعدة المستخدمين والعملاء في الحصول على المعلومات التي يحتاجون إليها أو تنفيذ مهام معقدة، وذلك ببساطة عن طريق نقل كل طلب عبر اللغة الطبيعية.
للحصول على شرح "وراء الكواليس" لما يحدث في العرض التوضيحي الخاص بنا، راجع Behind_the_scenes.md.
يحتوي هذا المستودع على التطبيقات التالية:
اسم | الملفات الرئيسية | يؤلف الاسم | عناوين URL | وصف |
---|---|---|---|---|
آلفريسكو دوكس بوت | alfresco_docs_bot.py | alfresco_docs_bot | http://localhost:8503 | استوعب وثائق Alfresco واطرح عليها الأسئلة. |
مساعد الفريسكو للذكاء الاصطناعي | alfresco_ai_assistant.py | alfresco_ai_assistant | http://localhost:8504 | تفاعل مع مثيل Alfresco Content Services باستخدام طلبات اللغة الطبيعية. |
يمكن استكشاف قاعدة البيانات على http://localhost:7474.
الرسم البياني السل
المستخدم (المستخدم؟)
إل إم (إل إل إم؟)
Vectordb[(قاعدة بيانات المتجهات)]
مستندات أولية {{وثائق أولية }}
المستخدم --query-embedded-data--> Vectordb
Vectordb --relevant-data--> llm
llm --الإجابة النهائية--> المستخدم
مستندات خام --استخراج/تقطيع/تضمين ---> Vectordb
الوصول إلى :
سمات :
الرسم البياني BT
المستخدم (المستخدم؟)
إل إم (إل إل إم؟)
واجهة برمجة التطبيقات
واجهة برمجة تطبيقات الرسم البياني الفرعي[API؟]
Discovery-api
واجهة برمجة تطبيقات البحث
Node-api
نهاية
أدوات الرسم البياني الفرعي[الأدوات]
اكتشاف
تحويل
تنقيح
نهاية
المستخدم --الاستعلام--> llm
llm --اختيار--> الأدوات
الأدوات - استدعاء -> واجهة برمجة التطبيقات
API --تغذية البيانات--> llm
llm --الإجابة النهائية--> المستخدم
الوصول إلى :
سمات :
قم بإنشاء ملف .env
من ملف قالب البيئة env.example
المتغيرات المتاحة:
اسم متغير | القيمة الافتراضية | وصف |
---|---|---|
ALFRESCO_URL | http://localhost:8080 | مطلوب - عنوان URL الأساسي لمثيل ACS |
ALFREESCO_USERNAME | مسؤل | مطلوب - اسم المستخدم لمثيل ACS |
ALFREESCO_PASSWORD | مسؤل | مطلوب - كلمة المرور لمثيل ACS |
OLLAMA_BASE_URL | http://host.docker.internal:11434 | مطلوب - عنوان URL لواجهة برمجة تطبيقات Olma LLM |
NEO4J_URI | neo4j: // قاعدة البيانات: 7687 | مطلوب - URL لقاعدة بيانات Neo4j |
NEO4J_USERNAME | neo4j | مطلوب - اسم المستخدم لقاعدة بيانات Neo4j |
NEO4J_PASSWORD | كلمة المرور | مطلوب - كلمة المرور لقاعدة بيانات Neo4j |
ماجستير | اللاما3 | مطلوب - يمكن أن يكون أي علامة نموذج Ollama، أو gpt-4 أو gpt-3.5 أو claudev2 |
EMBEDDING_MODEL | quote_transformer | مطلوب - يمكن أن يكون جملة_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 |
LANGCHAIN_TRACING_V2 | خطأ شنيع | اختياري - تمكين تتبع Langchain v2 |
LANGCHAIN_PROJECT | اختياري - اسم مشروع Langchain | |
LANGCHAIN_API_KEY | اختياري - مفتاح Langchain API |
تحذير
لقد تم اختبار التطبيقات فقط مع Ollama، وتحديدًا llama3، ولم يتم ضمان عملها مع حاملي شهادات LLM آخرين.
لا حاجة إلى تثبيت Ollama يدويًا، فسيتم تشغيله في حاوية كجزء من المكدس عند التشغيل باستخدام ملف تعريف Linux: قم بتشغيل docker compose --profile linux up
. تأكد من تعيين OLLAMA_BASE_URL=http://llm:11434
في ملف .env
عند استخدام حاوية Ollama docker.
لاستخدام ملف تعريف Linux-GPU: قم بتشغيل docker compose --profile linux-gpu up
. قم أيضًا بتغيير OLLAMA_BASE_URL=http://llm-gpu:11434
في ملف .env
.
إذا لم تتمكن لأي سبب من الأسباب من تشغيل حاوية Ollama، فيمكنك بدلاً من ذلك تثبيتها وتشغيلها محليًا كخيار بديل.
قد ترغب في تقليل
num_ctx
إلى3072
في commons.py إذا كنت تستخدم وحدة معالجة الرسومات (GPU) أو وحدة المعالجة المركزية (CPU) الرخيصة.
قد يؤدي تشغيل Olma محليًا إلى نتائج بطيئة. الحل المحتمل هو تشغيله على مثيل EC2 رخيص الثمن وممكّن لوحدة معالجة الرسومات والذي سيعمل بشكل أفضل من أي وحدة معالجة رسومات على مستوى المستهلك.
لإنشاء مجموعة 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
أخيرًا قم بتثبيت مخطط Olma:
helm install ollama ollama-helm/ollama
--namespace ollama
--create-namespace
--values ollama.yaml
تحذير
توجد مشكلة في الأداء تؤثر على تطبيقات python في إصدارات 4.24.x
من Docker Desktop. الرجاء الترقية إلى الإصدار الأحدث قبل استخدام هذا المكدس.
لبدء كل شيء
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 .