mirror of
https://github.com/trustgraph-ai/trustgraph.git
synced 2026-04-26 00:46:22 +02:00
Feat: TrustGraph i18n & Documentation Translation Updates (#781)
Native CLI i18n: The TrustGraph CLI has built-in translation support that dynamically loads language strings. You can test and use different languages by simply passing the --lang flag (e.g., --lang es for Spanish, --lang ru for Russian) or by configuring your environment's LANG variable. Automated Docs Translations: This PR introduces autonomously translated Markdown documentation into several target languages, including Spanish, Swahili, Portuguese, Turkish, Hindi, Hebrew, Arabic, Simplified Chinese, and Russian.
This commit is contained in:
parent
19f73e4cdc
commit
f95fd4f052
560 changed files with 236300 additions and 99 deletions
176
docs/tech-specs/rag-streaming-support.he.md
Normal file
176
docs/tech-specs/rag-streaming-support.he.md
Normal file
|
|
@ -0,0 +1,176 @@
|
|||
---
|
||||
layout: default
|
||||
title: "תמיכה בסטרימינג של RAG - ספציפיציה טכנית"
|
||||
parent: "Hebrew (Beta)"
|
||||
---
|
||||
|
||||
# תמיכה בסטרימינג של RAG - ספציפיציה טכנית
|
||||
|
||||
> **Beta Translation:** This document was translated via Machine Learning and as such may not be 100% accurate. All non-English languages are currently classified as Beta.
|
||||
|
||||
## סקירה כללית
|
||||
|
||||
מסמך זה מתאר את הוספת תמיכה בסטרימינג לשירותי GraphRAG ו-DocumentRAG, המאפשרות תגובות בזמן אמת, שוט אחר שוט, עבור שאילתות שליפה של גרפי ידע ומסמכים. זה מרחיב את הארכיטקטורה הסטנדרטית לסטרימינג, אשר כבר מיושמת עבור שירותי LLM להשלמת טקסט, בקשות וסוכנים.
|
||||
|
||||
## מטרות
|
||||
|
||||
- **חוויית משתמש סטנדרטית בסטרימינג**: לספק חוויית סטרימינג אחידה בכל שירותי TrustGraph.
|
||||
- **שינויים מינימליים בממשק API**: להוסיף תמיכה בסטרימינג באמצעות דגל `streaming` יחיד, תוך עמידה בדפוסי העבודה הקיימים.
|
||||
- **תאימות לאחור**: לשמור על התנהגות לא סטנדרטית קיימת כברירת מחדל.
|
||||
- **ניצול תשתית קיימת**: להשתמש בסטרימינג הקיים, אשר כבר מיושם עבור ה-PromptClient.
|
||||
- **תמיכה בדגלים**: לאפשר סטרימינג באמצעות דגל websocket עבור יישומי לקוח.
|
||||
|
||||
## רקע
|
||||
|
||||
שירותי סטרימינג קיימים:
|
||||
- **שירות השלמת טקסט של LLM**: שלב 1 - סטרימינג מספקי LLM
|
||||
- **שירות בקשות**: שלב 2 - סטרימינג באמצעות תבניות בקשות
|
||||
- **שירות סוכן**: שלבים 3-4 - סטרימינג של תגובות ReAct עם חלקים של מחשבה/תצפית/תשובה
|
||||
|
||||
מגבלות נוכחיות לשירותי RAG:
|
||||
- GraphRAG ו-DocumentRAG תומכים רק בתגובות בלתי סטנדרטיות.
|
||||
- משתמשים צריכים לחכות לתגובה שלמה של LLM לפני קבלת כל תוצאה.
|
||||
- חוויית משתמש גרועה עבור תגובות ארוכות לשאילתות של גרפי ידע או מסמכים.
|
||||
- חוויה לא עקבית בהשוואה לשירותי TrustGraph אחרים.
|
||||
|
||||
מסמך זה מטפל בבעיות אלו על ידי הוספת תמיכה בסטרימינג ל-GraphRAG ו-DocumentRAG. על ידי אפשרות תגובות שוט אחר שוט, TrustGraph יכול:
|
||||
- לספק חוויית משתמש סטנדרטית בסטרימינג עבור כל סוגי השאילתות.
|
||||
- להפחית את הפיגור הרגשי עבור שאילתות RAG.
|
||||
- לאפשר משוב מתקדם עבור שאילתות ארוכות.
|
||||
- לתמוך בהצגה בזמן אמת ביישומים של לקוח.
|
||||
|
||||
## עיצוב טכני
|
||||
|
||||
### ארכיטקטורה
|
||||
|
||||
היישום הסטנדרטי של RAG של מנצל את התשתית הקיימת:
|
||||
|
||||
1. **סטרימינג של PromptClient** (כבר מיושם)
|
||||
- הפרמטרים `kg_prompt()` ו-`document_prompt()` כבר מקבלים את הפרמטרים `streaming` ו-`chunk_callback`.
|
||||
- הפרמטרים אלו קוראים לפונקציה `prompt()` עם תמיכה בסטרימינג.
|
||||
- אין צורך לשנות את ה-PromptClient.
|
||||
- מודול: `trustgraph-base/trustgraph/base/prompt_client.py`
|
||||
|
||||
2. **שירות GraphRAG** (דורש העברת פרמטר סטרימינג)
|
||||
- להוסיף את הפרמטר `streaming` למתודה `query()`.
|
||||
- להעביר את הדגל הסטרימינג ואת ה-callbacks ל-`prompt_client.kg_prompt()`.
|
||||
- סכימת ה-GraphRagRequest צריכה לכלול את השדה `streaming`.
|
||||
- מודולים:
|
||||
- `trustgraph-flow/trustgraph/retrieval/graph_rag/graph_rag.py`
|
||||
- `trustgraph-flow/trustgraph/retrieval/graph_rag/rag.py` (Processor)
|
||||
- `trustgraph-base/trustgraph/schema/graph_rag.py` (סכימת בקשה)
|
||||
- `trustgraph-flow/trustgraph/gateway/dispatch/graph_rag.py` (Gateway)
|
||||
|
||||
3. **שירות DocumentRAG** (דורש העברת פרמטר סטרימינג)
|
||||
- להוסיף את הפרמטר `streaming` למתודה `query()`.
|
||||
- להעביר את הדגל הסטרימינג ואת ה-callbacks ל-`prompt_client.document_prompt()`.
|
||||
- סכימת ה-DocumentRagRequest צריכה לכלול את השדה `streaming`.
|
||||
- מודולים:
|
||||
- `trustgraph-flow/trustgraph/retrieval/document_rag/document_rag.py`
|
||||
- `trustgraph-flow/trustgraph/retrieval/document_rag/rag.py` (Processor)
|
||||
- `trustgraph-base/trustgraph/schema/document_rag.py` (סכימת בקשה)
|
||||
- `trustgraph-flow/trustgraph/gateway/dispatch/document_rag.py` (Gateway)
|
||||
|
||||
### זרימת נתונים
|
||||
|
||||
**לא סטנדרטי (נוכחי)**:
|
||||
```
|
||||
לקוח → דגל → שירות RAG → PromptClient.kg_prompt(streaming=False)
|
||||
↓
|
||||
שירות בקשות → LLM
|
||||
↓
|
||||
תגובה שלמה
|
||||
↓
|
||||
לקוח ← דגל ← שירות RAG ← תגובה
|
||||
```
|
||||
|
||||
**סטנדרטי (מוצע)**:
|
||||
```
|
||||
לקוח → דגל → שירות RAG → PromptClient.kg_prompt(streaming=True, chunk_callback=cb)
|
||||
↓
|
||||
שירות בקשות → LLM (סטרימינג)
|
||||
↓
|
||||
חלק → Callback → תגובת RAG (חלק)
|
||||
↓ ↓
|
||||
לקוח ← דגל ← ────────────────────────────────── זרם תגובה
|
||||
```
|
||||
|
||||
### ממשקי API
|
||||
|
||||
**שינויים ב-GraphRAG**:
|
||||
|
||||
1. **GraphRag.query()** - הוספת פרמטרים סטרימינג
|
||||
```python
|
||||
async def query(
|
||||
self, query, user, collection,
|
||||
streaming=False, chunk_callback=None
|
||||
):
|
||||
# ...
|
||||
```
|
||||
2. **שינויים ב-DocumentRAG**:
|
||||
- כפי שמתואר עבור GraphRAG.
|
||||
|
||||
### בדיקות
|
||||
|
||||
**בדיקות יחידות**:
|
||||
- בדיקת GraphRag.query() עם `streaming=True/False`.
|
||||
- בדיקת DocumentRAG.query() עם `streaming=True/False`.
|
||||
- שימוש ב-Mock עבור PromptClient כדי לבדוק את קריאות ה-callbacks.
|
||||
|
||||
**בדיקות אינטגרציה**:
|
||||
- בדיקת זרימת הסטרימינג המלאה של GraphRAG (בדיקות דומות לבדיקות סטרימינג של סוכן קיימות).
|
||||
- בדיקת זרימת הסטרימינג המלאה של DocumentRAG.
|
||||
- בדיקת העברת דגל ה-סטרימינג.
|
||||
- בדיקת הפלט של ה-CLI עם סטרימינג.
|
||||
|
||||
**בדיקות ידניות**:
|
||||
- `tg-invoke-graph-rag -q "מהו למידת מכונה?"` (סטרימינג כברירת מחדל).
|
||||
- `tg-invoke-document-rag -q "סכם את המסמכים על AI"` (סטרימינג כברירת מחדל).
|
||||
- `tg-invoke-graph-rag --no-streaming -q "..."` (בדיקת מצב לא סטנדרטי).
|
||||
- בדיקה שהחלקים מופיעים בסטרימינג.
|
||||
|
||||
## תכנון בדיקות
|
||||
|
||||
**בדיקות יחידות**:
|
||||
- בדיקת GraphRag.query() עם `streaming=True/False`.
|
||||
- בדיקת DocumentRAG.query() עם `streaming=True/False`.
|
||||
- שימוש ב-Mock עבור PromptClient כדי לבדוק את קריאות ה-callbacks.
|
||||
|
||||
**בדיקות אינטגרציה**:
|
||||
- בדיקת זרימת הסטרימינג המלאה של GraphRAG (בדיקות דומות לבדיקות סטרימינג של סוכן קיימות).
|
||||
- בדיקת זרימת הסטרימינג המלאה של DocumentRAG.
|
||||
- בדיקת העברת דגל ה-סטרימינג.
|
||||
- בדיקת הפלט של ה-CLI עם סטרימינג.
|
||||
|
||||
**בדיקות ידניות**:
|
||||
- `tg-invoke-graph-rag -q "מהו למידת מכונה?"` (סטרימינג כברירת מחדל).
|
||||
- `tg-invoke-document-rag -q "סכם את המסמכים על AI"` (סטרימינג כברירת מחדל).
|
||||
- `tg-invoke-graph-rag --no-streaming -q "..."` (בדיקת מצב לא סטנדרטי).
|
||||
- בדיקה שהחלקים מופיעים בסטרימינג.
|
||||
|
||||
## תכנון המיגרציה
|
||||
|
||||
אין צורך במיגרציה:
|
||||
- הסטרימינג הוא "אופציונלי" באמצעות הפרמטר `streaming` (ברירת מחדל היא False).
|
||||
- לקוחות קיימים ממשיכים לעבוד ללא שינוי.
|
||||
- לקוחות חדשים יכולים לבחור בסטרימינג.
|
||||
|
||||
## לוח זמנים
|
||||
|
||||
הערכת זמן ליישום: 4-6 שעות
|
||||
- שלב 1 (2 שעות): תמיכה בסטרימינג של GraphRAG.
|
||||
- שלב 2 (2 שעות): תמיכה בסטרימינג של DocumentRAG.
|
||||
- שלב 3 (1-2 שעות): עדכוני דגל ו-CLI.
|
||||
- בדיקות: בונה לתוך כל שלב.
|
||||
|
||||
## שאלות פתוחות
|
||||
|
||||
- האם עלינו להוסיף תמיכה בסטרימינג לשירות ה-NLP Query גם כן?
|
||||
- האם עלינו להזרים גם את השלבים הביניים (לדוגמה, "שליפת ישויות...", "שאילתה על הגרף...") או רק את הפלט של ה-LLM?
|
||||
- האם עלינו לכלול מידע על החלקים בתגובות של RAG (לדוגמה, מספר החלק, מספר כולל צפוי)?
|
||||
|
||||
## מקורות
|
||||
|
||||
- יישום קיימת: `docs/tech-specs/streaming-llm-responses.md`
|
||||
- סטרימינג של PromptClient: `trustgraph-base/trustgraph/base/prompt_client.py`
|
||||
- סטרימינג של סוכן: `trustgraph-flow/trustgraph/agent/react/agent_manager.py`
|
||||
Loading…
Add table
Add a link
Reference in a new issue