إنشاء الرسوم البيانية المعرفية من البيانات غير المنظمة
تم تصميم هذا التطبيق لتحويل البيانات غير المنظمة (ملفات pdf، وdocs، وtxt، وفيديو youtube، وصفحات الويب، وما إلى ذلك) إلى رسم بياني معرفي مخزن في Neo4j. يستخدم قوة نماذج اللغات الكبيرة (OpenAI، وGemini، وما إلى ذلك) لاستخراج العقد والعلاقات وخصائصها من النص وإنشاء رسم بياني معرفي منظم باستخدام إطار عمل Langchain.
قم بتحميل ملفاتك من الجهاز المحلي أو مجموعة GCS أو S3 أو من مصادر الويب، واختر نموذج LLM الخاص بك وقم بإنشاء رسم بياني معرفي.
افتراضيًا، يتم تمكين OpenAI وDiffbot فقط نظرًا لأن Gemini يتطلب تكوينات GCP إضافية. وفقًا للبيئة، نقوم بتكوين النماذج المشار إليها بواسطة متغير VITE_LLM_MODELS_PROD، يمكننا تكوين النموذج بناءً على حاجتنا. السابق:
VITE_LLM_MODELS_PROD = " openai_gpt_4o,openai_gpt_4o_mini,diffbot,gemini_1.5_flash "
في المجلد الجذر، قم بإنشاء ملف .env باستخدام مفاتيح OPENAI وDIFFBOT (إذا كنت تريد استخدام كليهما):
OPENAI_API_KEY = " your-openai-key "
DIFFBOT_API_KEY = " your-diffbot-key "
إذا كنت تريد OpenAI فقط:
VITE_LLM_MODELS_PROD = " diffbot,openai-gpt-3.5,openai-gpt-4o "
OPENAI_API_KEY = " your-openai-key "
إذا كنت تريد Diffbot فقط:
VITE_LLM_MODELS_PROD = " diffbot "
DIFFBOT_API_KEY = " your-diffbot-key "
يمكنك بعد ذلك تشغيل Docker Compose لبناء جميع المكونات وبدء تشغيلها:
docker-compose up --build
بشكل افتراضي، ستكون مصادر الإدخال هي: الملفات المحلية، وYoutube، وWikipedia، وAWS S3، وصفحات الويب. كما يتم تطبيق هذا التكوين الافتراضي:
VITE_REACT_APP_SOURCES = " local,youtube,wiki,s3,web "
ومع ذلك، إذا كنت تريد تكامل Google GCS، فأضف gcs
ومعرف عميل Google الخاص بك:
VITE_REACT_APP_SOURCES = " local,youtube,wiki,s3,gcs,web "
VITE_GOOGLE_CLIENT_ID = " xxxx "
يمكنك بالطبع دمج الكل (المحلي، وyoutube، وwikipedia، وs3، وgcs) أو إزالة أي شيء لا تريده/تحتاج إليه.
بشكل افتراضي، ستكون جميع أوضاع الدردشة متاحة: المتجه، وgraph_vector، وgraph، والنص الكامل، وgraph_vector_fulltext، وentity_vector، وglobal_vector. إذا لم يتم ذكر أي من الأوضاع في متغير أوضاع الدردشة، فستكون جميع الأوضاع متاحة:
VITE_CHAT_MODES = " "
ومع ذلك، إذا كنت تريد تحديد وضع المتجه الوحيد أو وضع الرسم البياني فقط، فيمكنك القيام بذلك عن طريق تحديد الوضع في البيئة:
VITE_CHAT_MODES = " vector,graph "
وبدلاً من ذلك، يمكنك تشغيل الواجهة الخلفية والواجهة الأمامية بشكل منفصل:
cd frontend
yarn
yarn run dev
cd backend
python -m venv envName
source envName/bin/activate
pip install -r requirements.txt
uvicorn score:app --reload
لنشر التطبيق والحزم على Google Cloud Platform، قم بتشغيل الأمر التالي على google cloud run:
# Frontend deploy
gcloud run deploy dev-frontend --set-env-vars " VITE_BACKEND_API_URL= " --set-env-vars " VITE_FRONTEND_HOSTNAME=hostname.us-central1.run.app " --set-env-vars " VITE_SEGMENT_API_URL=https://cdn.segment.com/v1/projects/4SGwdwzuDm5WkFvQtz7D6ATQlo14yjmW/settings "
source location current directory > Frontend
region : 32 [us-central 1]
Allow unauthenticated request : Yes
# Backend deploy
gcloud run deploy --set-env-vars " OPENAI_API_KEY = " --set-env-vars " DIFFBOT_API_KEY = " --set-env-vars " NEO4J_URI = " --set-env-vars " NEO4J_PASSWORD = " --set-env-vars " NEO4J_USERNAME = "
source location current directory > Backend
region : 32 [us-central 1]
Allow unauthenticated request : Yes
اسم المتغير Env | إلزامية/اختيارية | القيمة الافتراضية | وصف |
---|---|---|---|
EMBEDDING_MODEL | خياري | الكل-MiniLM-L6-v2 | نموذج لتوليد تضمين النص (all-MiniLM-L6-v2 , openai , vertexai) |
IS_EMBEDDING | خياري | حقيقي | علامة لتمكين تضمين النص |
KNN_MIN_SCORE | خياري | 0.94 | الحد الأدنى من النقاط لخوارزمية KNN |
الجوزاء_ممكّن | خياري | خطأ شنيع | وضع علامة لتمكين الجوزاء |
GCP_LOG_METRICS_ENABLED | خياري | خطأ شنيع | ضع علامة لتمكين سجلات Google Cloud |
NUMBER_OF_CHUNKS_TO_COMBINE | خياري | 5 | عدد القطع التي سيتم دمجها عند معالجة التضمينات |
UPDATE_GRAPH_CHUNKS_PROCESSED | خياري | 20 | عدد القطع التي تمت معالجتها قبل تحديث التقدم |
NEO4J_URI | خياري | neo4j: // قاعدة البيانات: 7687 | URI لقاعدة بيانات Neo4j |
NEO4J_USERNAME | خياري | neo4j | اسم المستخدم لقاعدة بيانات Neo4j |
NEO4J_PASSWORD | خياري | كلمة المرور | كلمة المرور لقاعدة بيانات Neo4j |
LANGCHAIN_API_KEY | خياري | مفتاح API لـ Langchain | |
LANGCHAIN_PROJECT | خياري | مشروع لانجشين | |
LANGCHAIN_TRACING_V2 | خياري | حقيقي | ضع علامة لتمكين تتبع Langchain |
LANGCHAIN_ENDPOINT | خياري | https://api.smith.langchain.com | نقطة النهاية لواجهة برمجة تطبيقات Langchain |
VITE_BACKEND_API_URL | خياري | http://localhost:8000 | عنوان URL لواجهة برمجة التطبيقات الخلفية |
VITE_BLOOM_URL | خياري | https://workspace-preview.neo4j.io/workspace/explore?connectURL={CONNECT_URL}&search=Show+me+a+graph&featureGenAISuggestions=true&featureGenAISuggestionsInternal=true | عنوان URL لتصور بلوم |
VITE_REACT_APP_SOURCES | إلزامي | المحلية، يوتيوب، ويكي، S3 | قائمة مصادر الإدخال التي ستكون متاحة |
VITE_CHAT_MODES | إلزامي | ناقلات، الرسم البياني + ناقلات، الرسم البياني، الهجين | أوضاع الدردشة المتاحة للأسئلة والأجوبة |
VITE_ENV | إلزامي | ديف أو برود | متغير البيئة للتطبيق |
VITE_TIME_PER_PAGE | خياري | 50 | الوقت لكل صفحة للمعالجة |
VITE_CHUNK_SIZE | خياري | 5242880 | حجم كل جزء من الملف للتحميل |
VITE_GOOGLE_CLIENT_ID | خياري | معرف العميل لمصادقة جوجل | |
VITE_LLM_MODELS_PROD | خياري | openai_gpt_4o,openai_gpt_4o_mini,diffbot,gemini_1.5_flash | لتمييز النماذج بناءً على Enviornment PROD أو DEV |
GCS_FILE_CACHE | خياري | خطأ شنيع | إذا تم التعيين على True، فسيتم حفظ الملفات لمعالجتها في GCS. إذا تم التعيين على False، فسيتم حفظ الملفات محليًا |
ENTITY_EMBEDDING | خياري | خطأ شنيع | إذا تم التعيين على True، فسيتم إضافة التضمينات لكل كيان في قاعدة البيانات |
LLM_MODEL_CONFIG_ollama_ | خياري | قم بتعيين تكوين ollama كـ - model_name،model_local_url لعمليات النشر المحلية | |
RAGAS_EMBEDDING_MODEL | خياري | openai | نموذج التضمين المستخدم في إطار تقييم راجاس |
docker pull ollama/ollama
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
docker exec -it ollama ollama run llama3
LLM_MODEL_CONFIG_ollama_
# example
LLM_MODEL_CONFIG_ollama_llama3 = ${LLM_MODEL_CONFIG_ollama_llama3-llama3,
http : //host.docker.internal:11434}
VITE_BACKEND_API_URL = ${ VITE_BACKEND_API_URL-backendurl }
تطبيق منشئ الرسم البياني المعرفي LLM
مساحة عمل Neo4j
التجريبي للتطبيق
لأية استفسارات أو دعم، لا تتردد في رفع قضية جيثب