trustgraph/docs/python-api.he.md
Alex Jenkins 8954fa3ad7 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.
2026-04-14 12:08:32 +01:00

4078 lines
116 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
layout: default
title: "מדריך הפניות ל-API של TrustGraph בפייתון"
parent: "Hebrew (Beta)"
---
# מדריך הפניות ל-API של TrustGraph בפייתון
> **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.
## התקנה
```bash
pip install trustgraph
```
## התחלה מהירה
כל המחלקות והטיפוסים מיובאים מהחבילה `trustgraph.api`:
```python
from trustgraph.api import Api, Triple, ConfigKey
# Create API client
api = Api(url="http://localhost:8088/")
# Get a flow instance
flow = api.flow().id("default")
# Execute a graph RAG query
response = flow.graph_rag(
query="What are the main topics?",
user="trustgraph",
collection="default"
)
```
## תוכן עניינים
### ליבה
[Api](#api)
### לקוחות זרימה
[Flow](#flow)
[FlowInstance](#flowinstance)
[AsyncFlow](#asyncflow)
[AsyncFlowInstance](#asyncflowinstance)
### לקוחות WebSocket
[SocketClient](#socketclient)
[SocketFlowInstance](#socketflowinstance)
[AsyncSocketClient](#asyncsocketclient)
[AsyncSocketFlowInstance](#asyncsocketflowinstance)
### פעולות מרובות
[BulkClient](#bulkclient)
[AsyncBulkClient](#asyncbulkclient)
### מדדים
[Metrics](#metrics)
[AsyncMetrics](#asyncmetrics)
### סוגי נתונים
[Triple](#triple)
[ConfigKey](#configkey)
[ConfigValue](#configvalue)
[DocumentMetadata](#documentmetadata)
[ProcessingMetadata](#processingmetadata)
[CollectionMetadata](#collectionmetadata)
[StreamingChunk](#streamingchunk)
[AgentThought](#agentthought)
[AgentObservation](#agentobservation)
[AgentAnswer](#agentanswer)
[RAGChunk](#ragchunk)
### חריגות
[ProtocolException](#protocolexception)
[TrustGraphException](#trustgraphexception)
[AgentError](#agenterror)
[ConfigError](#configerror)
[DocumentRagError](#documentragerror)
[FlowError](#flowerror)
[GatewayError](#gatewayerror)
[GraphRagError](#graphragerror)
[LLMError](#llmerror)
[LoadError](#loaderror)
[LookupError](#lookuperror)
[NLPQueryError](#nlpqueryerror)
[RowsQueryError](#rowsqueryerror)
[RequestError](#requesterror)
[StructuredQueryError](#structuredqueryerror)
[UnexpectedError](#unexpectederror)
[ApplicationException](#applicationexception)
--
## `Api`
```python
from trustgraph.api import Api
```
לקוח API הראשי של TrustGraph לפעולות סינכרוניות ואסינכרוניות.
מחלקה זו מספקת גישה לכל שירותי TrustGraph, כולל ניהול זרימות,
פעולות גרף ידע, עיבוד מסמכים, שאילתות RAG ועוד. היא תומכת
הן בדפוסי תקשורת מבוססי REST והן בדפוסי תקשורת מבוססי WebSocket.
ניתן להשתמש בלקוח כמנהל הקשר לניקוי אוטומטי של משאבים:
```python
with Api(url="http://localhost:8088/") as api:
result = api.flow().id("default").graph_rag(query="test")
```
### שיטות
### `__aenter__(self)`
כניסה למנהל הקשר אסינכרוני.
### `__aexit__(self, *args)`
יציאה ממנהל הקשר האסינכרוני וסגירת חיבורים.
### `__enter__(self)`
כניסה למנהל הקשר סינכרוני.
### `__exit__(self, *args)`
יציאה ממנהל הקשר הסינכרוני וסגירת חיבורים.
### `__init__(self, url='http://localhost:8088/', timeout=60, token: str | None = None)`
אתחול לקוח ה-API של TrustGraph.
**ארגומנטים:**
`url`: כתובת הבסיס עבור ה-API של TrustGraph (ברירת מחדל: "http://localhost:8088/"")
`timeout`: זמן אחזור מקסימלי בשניות (ברירת מחדל: 60)
`token`: טוקן bearer אופציונלי לאימות
**דוגמה:**
```python
# Local development
api = Api()
# Production with authentication
api = Api(
url="https://trustgraph.example.com/",
timeout=120,
token="your-api-token"
)
```
### `aclose(self)`
סגור את כל החיבורים של הלקוח האסינכרוניים.
שיטה זו סוגרת חיבורי WebSocket אסינכרוניים, פעולות סיטונאיות וחיבורי זרימה.
היא נקראת אוטומטית כאשר יוצאים מתוך מנהל הקשר האסינכרוני.
**דוגמה:**
```python
api = Api()
async_socket = api.async_socket()
# ... use async_socket
await api.aclose() # Clean up connections
# Or use async context manager (automatic cleanup)
async with Api() as api:
async_socket = api.async_socket()
# ... use async_socket
# Automatically closed
```
### `async_bulk(self)`
קבל לקוח לפעולות אסינכרוניות מרובות.
מספק פעולות ייבוא/ייצוא מרובות בסגנון async/await באמצעות WebSocket
לטיפול יעיל בערכות נתונים גדולות.
**מחזיר:** AsyncBulkClient: לקוח לפעולות אסינכרוניות מרובות.
**דוגמה:**
```python
async_bulk = api.async_bulk()
# Export triples asynchronously
async for triple in async_bulk.export_triples(flow="default"):
print(f"{triple.s} {triple.p} {triple.o}")
# Import with async generator
async def triple_gen():
yield Triple(s="subj", p="pred", o="obj")
# ... more triples
await async_bulk.import_triples(
flow="default",
triples=triple_gen()
)
```
### `async_flow(self)`
קבל לקוח זרימה מבוסס REST אסינכרוני.
מספק גישה בסגנון async/await לפעולות זרימה. זה מועדף
עבור יישומי ומסגרות Python אסינכרוניות (FastAPI, aiohttp, וכו').
**מחזיר:** AsyncFlow: לקוח זרימה אסינכרוני
**דוגמה:**
```python
async_flow = api.async_flow()
# List flows
flow_ids = await async_flow.list()
# Execute operations
instance = async_flow.id("default")
result = await instance.text_completion(
system="You are helpful",
prompt="Hello"
)
```
### `async_metrics(self)`
קבל לקוח מדדים אסינכרוני.
מספק גישה בסגנון async/await למדדי Prometheus.
**מחזיר:** AsyncMetrics: לקוח מדדים אסינכרוני
**דוגמה:**
```python
async_metrics = api.async_metrics()
prometheus_text = await async_metrics.get()
print(prometheus_text)
```
### `async_socket(self)`
קבל לקוח WebSocket אסינכרוני לפעולות סטרימינג.
מספק גישה ל-WebSocket בסגנון async/await עם תמיכה בסטרימינג.
זוהי השיטה המועדפת לסטרימינג אסינכרוני בפייתון.
**מחזיר:** AsyncSocketClient: לקוח WebSocket אסינכרוני.
**דוגמה:**
```python
async_socket = api.async_socket()
flow = async_socket.flow("default")
# Stream agent responses
async for chunk in flow.agent(
question="Explain quantum computing",
user="trustgraph",
streaming=True
):
if hasattr(chunk, 'content'):
print(chunk.content, end='', flush=True)
```
### `bulk(self)`
קבל לקוח לפעולות סינכרוניות מרובות לצורך ייבוא/ייצוא.
פעולות מרובות מאפשרות העברת כמויות גדולות של נתונים בצורה יעילה באמצעות חיבורי WebSocket, כולל משולשות, הטמעות, הקשרים של ישויות ואובייקטים.
**מחזיר:** BulkClient: לקוח לפעולות סינכרוניות מרובות.
**דוגמה:**
```python
bulk = api.bulk()
# Export triples
for triple in bulk.export_triples(flow="default"):
print(f"{triple.s} {triple.p} {triple.o}")
# Import triples
def triple_generator():
yield Triple(s="subj", p="pred", o="obj")
# ... more triples
bulk.import_triples(flow="default", triples=triple_generator())
```
### `close(self)`
סגור את כל החיבורים של הלקוח הסינכרוניים.
שיטה זו סוגרת חיבורי WebSocket וחיבורים לפעולות מרובות.
היא נקראת באופן אוטומטי כאשר יוצאים מתוך מנהל הקשר.
**דוגמה:**
```python
api = Api()
socket = api.socket()
# ... use socket
api.close() # Clean up connections
# Or use context manager (automatic cleanup)
with Api() as api:
socket = api.socket()
# ... use socket
# Automatically closed
```
### `collection(self)`
קבלת לקוח Collection לניהול אוספי נתונים.
אוספים מארגנים מסמכים ונתוני גרף ידע לקבוצות
לוגיות לצורך בידוד ובקרת גישה.
**מחזיר:** Collection: לקוח לניהול אוספים
**דוגמה:**
```python
collection = api.collection()
# List collections
colls = collection.list_collections(user="trustgraph")
# Update collection metadata
collection.update_collection(
user="trustgraph",
collection="default",
name="Default Collection",
description="Main data collection"
)
```
### `config(self)`
קבל לקוח Config לניהול הגדרות תצורה.
**מחזיר:** Config: לקוח לניהול תצורה
**דוגמה:**
```python
config = api.config()
# Get configuration values
values = config.get([ConfigKey(type="llm", key="model")])
# Set configuration
config.put([ConfigValue(type="llm", key="model", value="gpt-4")])
```
### `flow(self)`
קבל לקוח Flow לניהול ולביצוע אינטראקציה עם זרימות.
זרימות הן יחידות הביצוע העיקריות ב-TrustGraph, המספקות גישה ל
שירותים כמו סוכנים, שאילתות RAG, הטמעות ועיבוד מסמכים.
**מחזיר:** Flow: לקוח לניהול זרימות
**דוגמה:**
```python
flow_client = api.flow()
# List available blueprints
blueprints = flow_client.list_blueprints()
# Get a specific flow instance
flow_instance = flow_client.id("default")
response = flow_instance.text_completion(
system="You are helpful",
prompt="Hello"
)
```
### `knowledge(self)`
קבל לקוח Knowledge לניהול ליבות גרף ידע.
**מחזיר:** לקוח לניהול גרף ידע: Knowledge
**דוגמה:**
```python
knowledge = api.knowledge()
# List available KG cores
cores = knowledge.list_kg_cores(user="trustgraph")
# Load a KG core
knowledge.load_kg_core(id="core-123", user="trustgraph")
```
### `library(self)`
קבלת לקוח לספרייה לניהול מסמכים.
הספרייה מספקת אחסון מסמכים, ניהול מטא-דאטה ו
תיאום זרימת עבודה לעיבוד.
**החזר:** Library: לקוח לניהול ספריית מסמכים
**דוגמה:**
```python
library = api.library()
# Add a document
library.add_document(
document=b"Document content",
id="doc-123",
metadata=[],
user="trustgraph",
title="My Document",
comments="Test document"
)
# List documents
docs = library.get_documents(user="trustgraph")
```
### `metrics(self)`
קבל לקוח מדדים סינכרוני למטרות ניטור.
שולף מדדים בפורמט Prometheus מהשירות TrustGraph
לצורך ניטור וניתוח.
**מחזיר:** מדדים: לקוח מדדים סינכרוני
**דוגמה:**
```python
metrics = api.metrics()
prometheus_text = metrics.get()
print(prometheus_text)
```
### `request(self, path, request)`
ביצוע בקשת REST ברמה נמוכה.
שיטה זו מיועדת בעיקר לשימוש פנימי, אך ניתן להשתמש בה לגישה ישירה
ל-API כאשר נדרש.
**ארגומנטים:**
`path`: נתיב נקודת הקצה של ה-API (ביחס לכתובת הבסיס)
`request`: מטען הבקשה כמילון
**החזרות:** dict: אובייקט תגובה
**מעלה:**
`ProtocolException`: אם מצב התגובה אינו 200 או שהתגובה אינה JSON
`ApplicationException`: אם התגובה מכילה שגיאה
**דוגמה:**
```python
response = api.request("flow", {
"operation": "list-flows"
})
```
### `socket(self)`
קבל לקוח WebSocket סינכרוני לפעולות סטרימינג.
חיבורי WebSocket מספקים תמיכה בסטרימינג לתגובות בזמן אמת
מסוכנים, שאילתות RAG והשלמות טקסט. שיטה זו מחזירה עטיפה סינכרונית
סביב פרוטוקול ה-WebSocket.
**מחזיר:** SocketClient: לקוח WebSocket סינכרוני
**דוגמה:**
```python
socket = api.socket()
flow = socket.flow("default")
# Stream agent responses
for chunk in flow.agent(
question="Explain quantum computing",
user="trustgraph",
streaming=True
):
if hasattr(chunk, 'content'):
print(chunk.content, end='', flush=True)
```
--
## `Flow`
```python
from trustgraph.api import Flow
```
לקוח לניהול זרימות עבור פעולות על תוכניות זרימה ומצבי זרימה.
מחלקה זו מספקת שיטות לניהול תוכניות זרימה (תבניות) ו-
מצבי זרימה (זרימות פעילות). תוכניות זרימה מגדירות את המבנה ואת
הפרמטרים של הזרימות, בעוד שמצבי זרימה מייצגים זרימות פעילות שניתן
להפעיל שירותים.
### שיטות
### `__init__(self, api)`
אתחול לקוח זרימה.
**ארגומנטים:**
`api`: מופע Api הורה לביצוע בקשות
### `delete_blueprint(self, blueprint_name)`
מחיקת תוכנית זרימה.
**ארגומנטים:**
`blueprint_name`: שם התוכנית למחיקה
**דוגמה:**
```python
api.flow().delete_blueprint("old-blueprint")
```
### `get(self, id)`
קבלת ההגדרה של מופע זרימה פעיל.
**ארגומנטים:**
`id`: מזהה מופע זרימה
**החזר:** dict: הגדרת מופע זרימה
**דוגמה:**
```python
flow_def = api.flow().get("default")
print(flow_def)
```
### `get_blueprint(self, blueprint_name)`
קבלת הגדרה של תבנית זרימה לפי שם.
**ארגומנטים:**
`blueprint_name`: שם התבנית שיש לשלוף
**החזר:** dict: הגדרת התבנית כמילון
**דוגמה:**
```python
blueprint = api.flow().get_blueprint("default")
print(blueprint) # Blueprint configuration
```
### `id(self, id='default')`
קבלת מופע FlowInstance לביצוע פעולות על זרימה ספציפית.
**ארגומנטים:**
`id`: מזהה זרימה (ברירת מחדל: "default")
**החזרות:** FlowInstance: מופע זרימה לפעולות שירות
**דוגמה:**
```python
flow = api.flow().id("my-flow")
response = flow.text_completion(
system="You are helpful",
prompt="Hello"
)
```
### `list(self)`
רשום את כל מופעי ה-flow הפעילים.
**מחזיר:** list[str]: רשימה של מזהי מופעי flow
**דוגמה:**
```python
flows = api.flow().list()
print(flows) # ['default', 'flow-1', 'flow-2', ...]
```
### `list_blueprints(self)`
רשום את כל תבניות העבודה הזמינות.
**מחזיר:** list[str]: רשימה של שמות תבניות.
**דוגמה:**
```python
blueprints = api.flow().list_blueprints()
print(blueprints) # ['default', 'custom-flow', ...]
```
### `put_blueprint(self, blueprint_name, definition)`
יצירת או עדכון תבנית זרימה.
**ארגומנטים:**
`blueprint_name`: שם עבור התבנית
`definition`: מילון הגדרת התבנית
**דוגמה:**
```python
definition = {
"services": ["text-completion", "graph-rag"],
"parameters": {"model": "gpt-4"}
}
api.flow().put_blueprint("my-blueprint", definition)
```
### `request(self, path=None, request=None)`
ביצוע בקשת API בתחום (flow).
**ארגומנטים:**
`path`: סיומת נתיב אופציונלית עבור נקודות קצה של flow.
`request`: מילון מטען בקשה.
**מחזיר:** dict: אובייקט תגובה.
**מעלה:**
`RuntimeError`: אם פרמטר הבקשה לא מצוין.
### `start(self, blueprint_name, id, description, parameters=None)`
התחלת מופע flow חדש מתבנית (blueprint).
**ארגומנטים:**
`blueprint_name`: שם התבנית (blueprint) לשימוש.
`id`: מזהה ייחודי למופע ה-flow.
`description`: תיאור קריא.
`parameters`: מילון פרמטרים אופציונלי.
**דוגמה:**
```python
api.flow().start(
blueprint_name="default",
id="my-flow",
description="My custom flow",
parameters={"model": "gpt-4"}
)
```
### `stop(self, id)`
עצירת מופע זרימה פעיל.
**ארגומנטים:**
`id`: מזהה של מופע הזרימה שיש לעצור.
**דוגמה:**
```python
api.flow().stop("my-flow")
```
--
## `FlowInstance`
```python
from trustgraph.api import FlowInstance
```
מופע לקוח של Flow לביצוע שירותים ב-flow ספציפי.
מחלקה זו מספקת גישה לכל שירותי TrustGraph, כולל:
השלמת טקסט והטמעות
פעולות סוכן עם ניהול מצב
שאילתות RAG עבור גרפים ומסמכים
פעולות גרף ידע (טריפלטים, אובייקטים)
טעינה ועיבוד מסמכים
המרה משפה טבעית לשאילתת GraphQL
ניתוח נתונים מובנים וזיהוי סכימה
ביצוע כלי MCP
תבניות הנחיה
לשירותים ניגשים באמצעות מופע Flow פעיל, המזוהה באמצעות מזהה.
### שיטות
### `__init__(self, api, id)`
אתחול FlowInstance.
**ארגומנטים:**
`api`: לקוח Flow ראשי
`id`: מזהה מופע Flow
### `agent(self, question, user='trustgraph', state=None, group=None, history=None)`
ביצוע פעולת סוכן עם יכולות חשיבה ושימוש בכלים.
סוכנים יכולים לבצע חשיבה רב-שלבית, להשתמש בכלים ולשמור על שיחה
מצב בין אינטראקציות. זו גרסה סינכרונית שאינה זורמת.
**ארגומנטים:**
`question`: שאלה או הוראה של משתמש
`user`: מזהה משתמש (ברירת מחדל: "trustgraph")
`state`: מילון מצב אופציונלי לשיחות עם מצב
`group`: מזהה קבוצה אופציונלי עבור הקשרים מרובי משתמשים
`history`: היסטוריית שיחה אופציונלית כרשימה של מילוני הודעות
**מחזיר:** str: תשובה סופית של הסוכן
**דוגמה:**
```python
flow = api.flow().id("default")
# Simple question
answer = flow.agent(
question="What is the capital of France?",
user="trustgraph"
)
# With conversation history
history = [
{"role": "user", "content": "Hello"},
{"role": "assistant", "content": "Hi! How can I help?"}
]
answer = flow.agent(
question="Tell me about Paris",
user="trustgraph",
history=history
)
```
### `detect_type(self, sample)`
זיהוי סוג הנתונים של דוגמת נתונים מובנים.
**ארגומנטים:**
`sample`: דוגמת נתונים לניתוח (תוכן מחרוזת)
**החזרות:** מילון עם detected_type, confidence, ומטא-נתונים אופציונליים
### `diagnose_data(self, sample, schema_name=None, options=None)`
ביצוע אבחון נתונים משולב: זיהוי סוג ויצירת תיאור.
**ארגומנטים:**
`sample`: דוגמת נתונים לניתוח (תוכן מחרוזת)
`schema_name`: שם סכימה יעד אופציונלי ליצירת תיאור
`options`: פרמטרים אופציונליים (לדוגמה, מפריד עבור CSV)
**החזרות:** מילון עם detected_type, confidence, descriptor, ומטא-נתונים
### `document_embeddings_query(self, text, user, collection, limit=10)`
שאילתת מקטעי מסמכים באמצעות דמיון סמנטי.
מוצאת מקטעי מסמכים שהתוכן שלהם דומה מבחינה סמנטית לטקסט
הקלט, תוך שימוש בהטמעות וקטוריות.
**ארגומנטים:**
`text`: טקסט שאילתה לחיפוש סמנטי
`user`: מזהה משתמש/מרחב מפתחות
`collection`: מזהה אוסף
`limit`: מספר מקסימלי של תוצאות (ברירת מחדל: 10)
**החזרות:** מילון: תוצאות שאילתה עם מקטעים המכילים chunk_id וציון
**דוגמה:**
```python
flow = api.flow().id("default")
results = flow.document_embeddings_query(
text="machine learning algorithms",
user="trustgraph",
collection="research-papers",
limit=5
)
# results contains {"chunks": [{"chunk_id": "doc1/p0/c0", "score": 0.95}, ...]}
```
### `document_rag(self, query, user='trustgraph', collection='default', doc_limit=10)`
הפעל שאילתה של יצירת טקסט מבוססת אחזור מוגבר (RAG) על מסמכים.
RAG מבוסס מסמכים משתמש בהטמעות וקטוריות כדי למצוא מקטעי מסמכים רלוונטיים,
ולאחר מכן מייצר תגובה באמצעות מודל שפה גדול (LLM) תוך שימוש במקטעים אלה כהקשר.
**ארגומנטים:**
`query`: שאילתה בשפה טבעית
`user`: מזהה משתמש/מרחב מפתחות (ברירת מחדל: "trustgraph")
`collection`: מזהה אוסף (ברירת מחדל: "default")
`doc_limit`: מספר מקסימלי של מקטעי מסמכים שיש לשלוף (ברירת מחדל: 10)
**החזרות:** str: תגובה שנוצרה המשלבת הקשר של מסמכים
**דוגמה:**
```python
flow = api.flow().id("default")
response = flow.document_rag(
query="Summarize the key findings",
user="trustgraph",
collection="research-papers",
doc_limit=5
)
print(response)
```
### `embeddings(self, texts)`
יצירת הטמעות וקטוריות עבור טקסט אחד או יותר.
ממיר טקסטים לייצוגים וקטוריים צפופים המתאימים לחיפוש סמנטי
והשוואת דמיון.
**ארגומנטים:**
`texts`: רשימה של טקסטים קלט ליצירת הטמעות
**החזרות:** list[list[list[float]]]: הטמעות וקטוריות, סט אחד לכל טקסט קלט
**דוגמה:**
```python
flow = api.flow().id("default")
vectors = flow.embeddings(["quantum computing"])
print(f"Embedding dimension: {len(vectors[0][0])}")
```
### `generate_descriptor(self, sample, data_type, schema_name, options=None)`
יצירת תיאור עבור מיפוי נתונים מובנים לתוך סכימה ספציפית.
**ארגומנטים:**
`sample`: דוגמת נתונים לניתוח (תוכן מחרוזת)
`data_type`: סוג נתונים (csv, json, xml)
`schema_name`: שם הסכימה המיועדת ליצירת התיאור
`options`: פרמטרים אופציונליים (לדוגמה, מפריד עבור CSV)
**החזרות:** מילון עם התיאור ומטא-נתונים
### `graph_embeddings_query(self, text, user, collection, limit=10)`
שאילתת ישויות גרף ידע באמצעות דמיון סמנטי.
מציאת ישויות בגרף הידע שעבורן התיאורים שלהן דומים מבחינה סמנטית
לטקסט הקלט, תוך שימוש בהטמעות וקטוריות.
**ארגומנטים:**
`text`: טקסט שאילתה לחיפוש סמנטי
`user`: מזהה משתמש/מרחב מפתחות
`collection`: מזהה אוסף
`limit`: מספר מקסימלי של תוצאות (ברירת מחדל: 10)
**החזרות:** מילון: תוצאות שאילתה עם ישויות דומות
**דוגמה:**
```python
flow = api.flow().id("default")
results = flow.graph_embeddings_query(
text="physicist who discovered radioactivity",
user="trustgraph",
collection="scientists",
limit=5
)
# results contains {"entities": [{"entity": {...}, "score": 0.95}, ...]}
```
### `graph_rag(self, query, user='trustgraph', collection='default', entity_limit=50, triple_limit=30, max_subgraph_size=150, max_path_length=2)`
הפעל שאילתה מבוססת גרפים של יצירת טקסט משופרת באמצעות אחזור (RAG).
Graph RAG משתמש במבנה של גרף ידע כדי למצוא הקשר רלוונטי על ידי
מעבר בין קשרים של ישויות, ולאחר מכן מייצר תגובה באמצעות מודל שפה גדול (LLM).
**ארגומנטים:**
`query`: שאילתה בשפה טבעית
`user`: מזהה משתמש/מרחב מפתחות (ברירת מחדל: "trustgraph")
`collection`: מזהה אוסף (ברירת מחדל: "default")
`entity_limit`: מספר הישויות המקסימלי שיש להחזיר (ברירת מחדל: 50)
`triple_limit`: מספר הטריפלים המקסימלי לישות (ברירת מחדל: 30)
`max_subgraph_size`: מספר הטריפלים הכולל המקסימלי בתת-גרף (ברירת מחדל: 150)
`max_path_length`: עומק מעבר מקסימלי (ברירת מחדל: 2)
**החזרות:** str: תגובה שנוצרה המשלבת הקשר גרפי
**דוגמה:**
```python
flow = api.flow().id("default")
response = flow.graph_rag(
query="Tell me about Marie Curie's discoveries",
user="trustgraph",
collection="scientists",
entity_limit=20,
max_path_length=3
)
print(response)
```
### `load_document(self, document, id=None, metadata=None, user=None, collection=None)`
טען מסמך בינארי לעיבוד.
העלאת מסמך (PDF, DOCX, תמונות וכו') לצורך חילוץ ו
עיבוד דרך צינור המסמכים של ה-flow.
**ארגומנטים:**
`document`: תוכן המסמך כבייטים
`id`: מזהה מסמך אופציונלי (נוצר אוטומטית אם לא קיים)
`metadata`: מטא-דאטה אופציונלי (רשימה של טריפלטים או אובייקט עם שיטת emit)
`user`: מזהה משתמש/מרחב מפתחות (אופציונלי)
`collection`: מזהה אוסף (אופציונלי)
**החזרות:** dict: תגובת עיבוד
**מעלה:**
`RuntimeError`: אם סופק מטא-דאטה ללא מזהה
**דוגמה:**
```python
flow = api.flow().id("default")
# Load a PDF document
with open("research.pdf", "rb") as f:
result = flow.load_document(
document=f.read(),
id="research-001",
user="trustgraph",
collection="papers"
)
```
### `load_text(self, text, id=None, metadata=None, charset='utf-8', user=None, collection=None)`
טעינת תוכן טקסטואלי לצורך עיבוד.
העלאת תוכן טקסטואלי לצורך חילוץ ועיבוד דרך צינור הטקסט של ה-flow.
**ארגומנטים:**
`text`: תוכן טקסטואלי בפורמט של בתים
`id`: מזהה מסמך אופציונלי (נוצר אוטומטית אם לא סופק)
`metadata`: מטא-דאטה אופציונלי (רשימה של טריפלטים או אובייקט עם שיטת emit)
`charset`: קידוד תווים (ברירת מחדל: "utf-8")
`user`: מזהה משתמש/מרחב מפתחות (אופציונלי)
`collection`: מזהה אוסף (אופציונלי)
**החזרות:** dict: תגובת עיבוד
**גורם לשגיאה:**
`RuntimeError`: אם סופק מטא-דאטה ללא מזהה
**דוגמה:**
```python
flow = api.flow().id("default")
# Load text content
text_content = b"This is the document content..."
result = flow.load_text(
text=text_content,
id="text-001",
charset="utf-8",
user="trustgraph",
collection="documents"
)
```
### `mcp_tool(self, name, parameters={})`
הפעלת כלי פרוטוקול הקשר מודל (Model Context Protocol - MCP).
כלי MCP מספקים פונקציונליות ניתנת להרחבה עבור סוכנים ותהליכי עבודה,
ומאפשרים שילוב עם מערכות ושירותים חיצוניים.
**ארגומנטים:**
`name`: שם/מזהה הכלי
`parameters`: מילון פרמטרים של הכלי (ברירת מחדל: {})
**החזרות:** str או dict: תוצאת ביצוע הכלי
**מעלה:**
`ProtocolException`: אם פורמט התגובה אינו תקין
**דוגמה:**
```python
flow = api.flow().id("default")
# Execute a tool
result = flow.mcp_tool(
name="search-web",
parameters={"query": "latest AI news", "limit": 5}
)
```
### `nlp_query(self, question, max_results=100)`
המרת שאלה בשפה טבעית לשאילתת GraphQL.
**ארגומנטים:**
`question`: שאלה בשפה טבעית
`max_results`: מספר מקסימלי של תוצאות להחזרה (ברירת מחדל: 100)
**החזרות:** מילון עם graphql_query, variables, detected_schemas, confidence
### `prompt(self, id, variables)`
ביצוע תבנית שאילתה עם החלפת משתנים.
תבניות שאילתה מאפשרות דפוסי שאילתה לשימוש חוזר עם החלפת משתנים דינמית,
שימושי עבור הנדסת שאילתות עקבית.
**ארגומנטים:**
`id`: מזהה תבנית שאילתה
`variables`: מילון של התאמות בין שם משתנה לערך
**החזרות:** מחרוזת או מילון: תוצאת שאילתה מעובדת (טקסט או אובייקט מובנה)
**מעלה:**
`ProtocolException`: אם פורמט התגובה אינו תקין
**דוגמה:**
```python
flow = api.flow().id("default")
# Text template
result = flow.prompt(
id="summarize-template",
variables={"topic": "quantum computing", "length": "brief"}
)
# Structured template
result = flow.prompt(
id="extract-entities",
variables={"text": "Marie Curie won Nobel Prizes"}
)
```
### `request(self, path, request)`
הגשת בקשה לשירות במקרה זה.
**ארגומנטים:**
`path`: נתיב השירות (לדוגמה, "service/text-completion")
`request`: מילון מטען הבקשה
**החזר:** dict: תגובת השירות
### `row_embeddings_query(self, text, schema_name, user='trustgraph', collection='default', index_name=None, limit=10)`
שאילתת נתוני שורה באמצעות דמיון סמנטי בשדות ממופים.
מוצאת שורות שבהן ערכי השדות הממופים דומים מבחינה סמנטית לטקסט
הקלט, תוך שימוש בהטמעות וקטוריות. זה מאפשר התאמה מעורפלת/סמנטית
בנתונים מובנים.
**ארגומנטים:**
`text`: טקסט שאילתה לחיפוש סמנטי
`schema_name`: שם הסכימה לחיפוש בתוכה
`user`: מזהה משתמש/אזור מפתחות (ברירת מחדל: "trustgraph")
`collection`: מזהה אוסף (ברירת מחדל: "default")
`index_name`: שם אינדקס אופציונלי לסינון החיפוש לאינדקס ספציפי
`limit`: מספר מקסימלי של תוצאות (ברירת מחדל: 10)
**החזר:** dict: תוצאות שאילתה עם התאמות המכילות index_name, index_value, text ו-score
**דוגמה:**
```python
flow = api.flow().id("default")
# Search for customers by name similarity
results = flow.row_embeddings_query(
text="John Smith",
schema_name="customers",
user="trustgraph",
collection="sales",
limit=5
)
# Filter to specific index
results = flow.row_embeddings_query(
text="machine learning engineer",
schema_name="employees",
index_name="job_title",
limit=10
)
```
### `rows_query(self, query, user='trustgraph', collection='default', variables=None, operation_name=None)`
הפעל שאילתת GraphQL על שורות מובנות בגרף הידע.
שאילתות נתונים מובנים באמצעות תחביר GraphQL, המאפשר שאילתות מורכבות
עם סינון, אגרגציה וניווט ביחסים.
**ארגומנטים:**
`query`: מחרוזת שאילתת GraphQL
`user`: מזהה משתמש/מרחב (ברירת מחדל: "trustgraph")
`collection`: מזהה אוסף (ברירת מחדל: "default")
`variables`: מילון אופציונלי של משתני שאילתה
`operation_name`: שם פעולה אופציונלי עבור מסמכים מרובי פעולות
**החזרות:** dict: תגובת GraphQL עם השדות 'data', 'errors' ו/או 'extensions'
**מעלה:**
`ProtocolException`: אם מתרחשת שגיאה ברמת המערכת
**דוגמה:**
```python
flow = api.flow().id("default")
# Simple query
query = '''
{
scientists(limit: 10) {
name
field
discoveries
}
}
'''
result = flow.rows_query(
query=query,
user="trustgraph",
collection="scientists"
)
# Query with variables
query = '''
query GetScientist($name: String!) {
scientists(name: $name) {
name
nobelPrizes
}
}
'''
result = flow.rows_query(
query=query,
variables={"name": "Marie Curie"}
)
```
### `schema_selection(self, sample, options=None)`
בחירת סכימות מתאימות עבור מדגם נתונים באמצעות ניתוח שאילתות.
**ארגומנטים:**
`sample`: מדגם נתונים לניתוח (תוכן מחרוזת)
`options`: פרמטרים אופציונליים
**החזרות:** מילון עם מערך schema_matches ומטא-נתונים
### `structured_query(self, question, user='trustgraph', collection='default')`
ביצוע שאילתה בשפה טבעית על נתונים מובנים.
משלב המרת שאילתות NLP וביצוע GraphQL.
**ארגומנטים:**
`question`: שאילתה בשפה טבעית
`user`: מזהה מרחב מפתחות Cassandra (ברירת מחדל: "trustgraph")
`collection`: מזהה אוסף נתונים (ברירת מחדל: "default")
**החזרות:** מילון עם נתונים ושגיאות אופציונליות
### `text_completion(self, system, prompt)`
ביצוע השלמת טקסט באמצעות מודל LLM של ה-flow.
**ארגומנטים:**
`system`: הנחיה מערכתית המגדירה את התנהגות העוזר
`prompt`: הנחיה/שאלה של משתמש
**החזרות:** מחרוזת: טקסט תגובה שנוצר
**דוגמה:**
```python
flow = api.flow().id("default")
response = flow.text_completion(
system="You are a helpful assistant",
prompt="What is quantum computing?"
)
print(response)
```
### `triples_query(self, s=None, p=None, o=None, user=None, collection=None, limit=10000)`
שאילת משולשים בגרף ידע באמצעות התאמת תבניות.
מחפש משולשים RDF התואמים לתבניות נתונות של נושא, נשוא ואובייקט.
פרמטרים לא מוגדרים פועלים כתווים מתחלפים.
**ארגומנטים:**
`s`: מזהה URI של נושא (אופציונלי, השתמש ב-None עבור תו מתחלף)
`p`: מזהה URI של נשוא (אופציונלי, השתמש ב-None עבור תו מתחלף)
`o`: מזהה URI של אובייקט או ליטרל (אופציונלי, השתמש ב-None עבור תו מתחלף)
`user`: מזהה משתמש/מרחב מפתחות (אופציונלי)
`collection`: מזהה אוסף (אופציונלי)
`limit`: מספר תוצאות מקסימלי להחזרה (ברירת מחדל: 10000)
**מחזיר:** list[Triple]: רשימה של אובייקטי Triple התואמים
**מעלה:**
`RuntimeError`: אם s או p אינם Uri, או o אינם Uri/Literal
**דוגמה:**
```python
from trustgraph.knowledge import Uri, Literal
flow = api.flow().id("default")
# Find all triples about a specific subject
triples = flow.triples_query(
s=Uri("http://example.org/person/marie-curie"),
user="trustgraph",
collection="scientists"
)
# Find all instances of a specific relationship
triples = flow.triples_query(
p=Uri("http://example.org/ontology/discovered"),
limit=100
)
```
--
## `AsyncFlow`
```python
from trustgraph.api import AsyncFlow
```
לקוח לניהול זרימות אסינכרוניות באמצעות ממשק REST API.
מספק פעולות ניהול זרימות מבוססות async/await, כולל הצגת רשימה,
התחלה, עצירה וניהול הגדרות של סוגי זרימות. כמו כן, מספק
גישה לשירותים הקשורים לזרימה, כגון סוכנים, RAG ושאילתות, באמצעות נקודות קצה (endpoints) של REST שאינן מבוססות סטרימינג.
הערה: לתמיכה בסטרימינג, השתמשו ב-AsyncSocketClient.
### שיטות
### `__init__(self, url: str, timeout: int, token: str | None) -> None`
אתחול לקוח זרימות אסינכרוני.
**ארגומנטים:**
`url`: כתובת URL בסיסית עבור ממשק ה-API של TrustGraph
`timeout`: זמן אחזור (timeout) לבקשות בשניות
`token`: טוקן bearer אופציונלי לאימות
### `aclose(self) -> None`
סגירת הלקוח האסינכרוני ושחרור משאבים.
הערה: ניקוי (cleanup) מטופל באופן אוטומטי על ידי מנהלי הקשר (context managers) של aiohttp.
שיטה זו מסופקת לשמירה על עקביות עם לקוחות אסינכרוניים אחרים.
### `delete_class(self, class_name: str)`
מחיקת הגדרת סוג זרימה.
מסירה תבנית (blueprint) של סוג זרימה מהמערכת. אינה משפיעה על
מופעי זרימה פעילים.
**ארגומנטים:**
`class_name`: שם סוג הזרימה למחיקה
**דוגמה:**
```python
async_flow = await api.async_flow()
# Delete a flow class
await async_flow.delete_class("old-flow-class")
```
### `get(self, id: str) -> Dict[str, Any]`
קבלת הגדרת זרימה.
מאחזר את תצורת הזרימה המלאה, כולל שם המחלקה שלה,
התיאור שלה והפרמטרים שלה.
**ארגומנטים:**
`id`: מזהה זרימה
**החזרות:** dict: אובייקט הגדרת זרימה
**דוגמה:**
```python
async_flow = await api.async_flow()
# Get flow definition
flow_def = await async_flow.get("default")
print(f"Flow class: {flow_def.get('class-name')}")
print(f"Description: {flow_def.get('description')}")
```
### `get_class(self, class_name: str) -> Dict[str, Any]`
קבלת הגדרת מחלקת זרימה.
מאחזר את הגדרת התוכנית עבור מחלקת זרימה, כולל
הסכימה שלה והקישורים לשירותים.
**ארגומנטים:**
`class_name`: שם מחלקת הזרימה
**החזרות:** dict: אובייקט הגדרת מחלקת זרימה
**דוגמה:**
```python
async_flow = await api.async_flow()
# Get flow class definition
class_def = await async_flow.get_class("default")
print(f"Services: {class_def.get('services')}")
```
### `id(self, flow_id: str)`
קבלת מופע לקוח של זרימה אסינכרונית.
מחזיר לקוח לצורך אינטראקציה עם השירותים של זרימה ספציפית (סוכן, RAG, שאילתות, הטמעות, וכו').
**ארגומנטים:**
`flow_id`: מזהה זרימה
**מחזיר:** AsyncFlowInstance: לקוח לפעולות ספציפיות לזרימה
**דוגמה:**
```python
async_flow = await api.async_flow()
# Get flow instance
flow = async_flow.id("default")
# Use flow services
result = await flow.graph_rag(
query="What is TrustGraph?",
user="trustgraph",
collection="default"
)
```
### `list(self) -> List[str]`
רשום את כל מזהי הזרימות.
שולף את ה-IDs של כל הזרימות הפרוסות כרגע במערכת.
**מחזיר:** list[str]: רשימה של מזהי זרימות
**דוגמה:**
```python
async_flow = await api.async_flow()
# List all flows
flows = await async_flow.list()
print(f"Available flows: {flows}")
```
### `list_classes(self) -> List[str]`
רשום את כל שמות מחלקות הזרימה.
שולף את שמות כל מחלקות הזרימה (תבניות) הזמינות במערכת.
**מחזיר:** list[str]: רשימה של שמות מחלקות זרימה.
**דוגמה:**
```python
async_flow = await api.async_flow()
# List available flow classes
classes = await async_flow.list_classes()
print(f"Available flow classes: {classes}")
```
### `put_class(self, class_name: str, definition: Dict[str, Any])`
יצירה או עדכון של הגדרה של מחלקת זרימה.
מאחסן תוכנית אב למחלקת זרימה שניתן להשתמש בה כדי ליצור מופעים של זרימות.
**ארגומנטים:**
`class_name`: שם מחלקת הזרימה
`definition`: אובייקט הגדרת מחלקת הזרימה
**דוגמה:**
```python
async_flow = await api.async_flow()
# Create a custom flow class
class_def = {
"services": {
"agent": {"module": "agent", "config": {...}},
"graph-rag": {"module": "graph-rag", "config": {...}}
}
}
await async_flow.put_class("custom-flow", class_def)
```
### `request(self, path: str, request_data: Dict[str, Any]) -> Dict[str, Any]`
ביצוע בקשת HTTP POST אסינכרונית ל-API של ה-Gateway.
שיטה פנימית לביצוע בקשות מאומתות ל-API של TrustGraph.
**ארגומנטים:**
`path`: נתיב נקודת הקצה של ה-API (ביחס לכתובת הבסיס)
`request_data`: מילון מטען הבקשה
**מחזיר:** dict: אובייקט תגובה מה-API
**מעלה:**
`ProtocolException`: אם קוד ה-HTTP אינו 200 או שהתגובה אינה JSON חוקי.
`ApplicationException`: אם ה-API מחזיר תגובת שגיאה.
### `start(self, class_name: str, id: str, description: str, parameters: Dict | None = None)`
התחל מופע זרימה חדש.
יוצר ומפעיל זרימה מתוך הגדרת מחלקת זרימה עם הפרמטרים שצוינו.
**ארגומנטים:**
`class_name`: שם המחלקה של הזרימה שצריך ליצור מופע עבורה.
`id`: מזהה עבור מופע הזרימה החדש.
`description`: תיאור קריא של הזרימה.
`parameters`: פרמטרי תצורה אופציונליים עבור הזרימה.
**דוגמה:**
```python
async_flow = await api.async_flow()
# Start a flow from a class
await async_flow.start(
class_name="default",
id="my-flow",
description="Custom flow instance",
parameters={"model": "claude-3-opus"}
)
```
### `stop(self, id: str)`
עצירת תהליך פעיל.
עוצרת ומסירה מופע של תהליך, תוך שחרור המשאבים שלו.
**ארגומנטים:**
`id`: מזהה של התהליך שיש לעצור
**דוגמה:**
```python
async_flow = await api.async_flow()
# Stop a flow
await async_flow.stop("my-flow")
```
--
## `AsyncFlowInstance`
```python
from trustgraph.api import AsyncFlowInstance
```
לקוח מופע זרימה אסינכרוני.
מספק גישה ל-async/await לשירותים המוגדרים בזרימה, כולל סוכנים,
שאילתות RAG, הטמעות ושאילתות גרף. כל הפעולות מחזירות
תגובות מלאות (לא בסטרימינג).
הערה: לצורך תמיכה בסטרימינג, השתמשו ב-AsyncSocketFlowInstance.
### שיטות
### `__init__(self, flow: trustgraph.api.async_flow.AsyncFlow, flow_id: str)`
אתחול מופע זרימה אסינכרוני.
**ארגומנטים:**
`flow`: לקוח AsyncFlow הראשי
`flow_id`: מזהה הזרימה
### `agent(self, question: str, user: str, state: Dict | None = None, group: str | None = None, history: List | None = None, **kwargs: Any) -> Dict[str, Any]`
ביצוע פעולה של סוכן (לא בסטרימינג).
מפעיל סוכן כדי לענות על שאלה, עם מצב שיחה ואפשרויות
היסטוריה. מחזיר את התגובה המלאה לאחר שהסוכן סיים
לעבד.
הערה: שיטה זו אינה תומכת בסטרימינג. לצורך מחשבות ותצפיות של הסוכן בזמן אמת,
השתמשו ב-AsyncSocketFlowInstance.agent() במקום.
**ארגומנטים:**
`question`: שאלה או הוראה של המשתמש
`user`: מזהה המשתמש
`state`: מילון מצב אופציונלי עבור הקשר שיחה
`group`: מזהה קבוצה אופציונלי לניהול סשנים
`history`: רשימת היסטוריית שיחה אופציונלית
`**kwargs`: פרמטרים נוספים ספציפיים לשירות
**מחזיר:** dict: תגובת סוכן מלאה הכוללת תשובה ומטא-נתונים
**דוגמה:**
```python
async_flow = await api.async_flow()
flow = async_flow.id("default")
# Execute agent
result = await flow.agent(
question="What is the capital of France?",
user="trustgraph"
)
print(f"Answer: {result.get('response')}")
```
### `document_rag(self, query: str, user: str, collection: str, doc_limit: int = 10, **kwargs: Any) -> str`
ביצוע שאילתת RAG מבוססת מסמכים (לא סטרימינג).
מבצע יצירת טקסט מועשרת באמצעות הטמעות מסמכים.
שולף קטעי מסמכים רלוונטיים באמצעות חיפוש סמנטי, ולאחר מכן מייצר
תשובה המבוססת על המסמכים שנשלפו. מחזיר תשובה מלאה.
הערה: שיטה זו אינה תומכת בסטרימינג. עבור תגובות RAG בסטרימינג,
השתמשו ב-AsyncSocketFlowInstance.document_rag() במקום זאת.
**ארגומנטים:**
`query`: טקסט השאילתה של המשתמש
`user`: מזהה המשתמש
`collection`: מזהה האוסף המכיל מסמכים
`doc_limit`: מספר מרבי של קטעי מסמכים לשליפה (ברירת מחדל: 10)
`**kwargs`: פרמטרים נוספים ספציפיים לשירות
**החזרות:** str: תשובה מלאה שנוצרה המבוססת על נתוני המסמכים
**דוגמה:**
```python
async_flow = await api.async_flow()
flow = async_flow.id("default")
# Query documents
response = await flow.document_rag(
query="What does the documentation say about authentication?",
user="trustgraph",
collection="docs",
doc_limit=5
)
print(response)
```
### `embeddings(self, texts: list, **kwargs: Any)`
יצירת הטמעות עבור טקסטים קלט.
ממיר טקסטים לייצוגים וקטוריים מספריים באמצעות מודל ההטמעה המוגדר של ה-flow.
שימושי לחיפוש סמנטי והשוואות דמיון.
**ארגומנטים:**
`texts`: רשימה של טקסטים קלט ליצירת הטמעה
`**kwargs`: פרמטרים נוספים ספציפיים לשירות
**החזרות:** dict: תגובה המכילה וקטורי הטמעה
**דוגמה:**
```python
async_flow = await api.async_flow()
flow = async_flow.id("default")
# Generate embeddings
result = await flow.embeddings(texts=["Sample text to embed"])
vectors = result.get("vectors")
print(f"Embedding dimension: {len(vectors[0][0])}")
```
### `graph_embeddings_query(self, text: str, user: str, collection: str, limit: int = 10, **kwargs: Any)`
שאילתת הטמעות גרף לחיפוש ישויות סמנטי.
מבצעת חיפוש סמנטי על הטמעות ישויות גרף כדי למצוא ישויות
הרלוונטיות ביותר לטקסט הקלט. מחזירה ישויות מדורגות לפי מידת הדמיון.
**ארגומנטים:**
`text`: טקסט שאילתה לחיפוש סמנטי
`user`: מזהה משתמש
`collection`: מזהה אוסף המכיל הטמעות גרף
`limit`: מספר מקסימלי של תוצאות להחזרה (ברירת מחדל: 10)
`**kwargs`: פרמטרים נוספים ספציפיים לשירות
**החזרות:** dict: תגובה המכילה התאמות ישויות מדורגות עם ציוני דמיון
**דוגמה:**
```python
async_flow = await api.async_flow()
flow = async_flow.id("default")
# Find related entities
results = await flow.graph_embeddings_query(
text="machine learning algorithms",
user="trustgraph",
collection="tech-kb",
limit=5
)
for entity in results.get("entities", []):
print(f"{entity['name']}: {entity['score']}")
```
### `graph_rag(self, query: str, user: str, collection: str, max_subgraph_size: int = 1000, max_subgraph_count: int = 5, max_entity_distance: int = 3, **kwargs: Any) -> str`
ביצוע שאילתת RAG מבוססת גרפים (לא בסטרימינג).
מבצע יצירת טקסט מועשרת באמצעות נתוני גרף ידע.
מזהה ישויות רלוונטיות ויחסים ביניהן, ולאחר מכן מייצר
תשובה המבוססת על מבנה הגרף. מחזיר תשובה מלאה.
הערה: שיטה זו אינה תומכת בסטרימינג. עבור תשובות RAG בסטרימינג,
השתמשו ב-AsyncSocketFlowInstance.graph_rag() במקום זאת.
**ארגומנטים:**
`query`: טקסט השאילתה של המשתמש
`user`: מזהה המשתמש
`collection`: מזהה אוסף המכיל את גרף הידע
`max_subgraph_size`: מספר מקסימלי של משולשים לכל תת-גרף (ברירת מחדל: 1000)
`max_subgraph_count`: מספר מקסימלי של תת-גרפים לשליפה (ברירת מחדל: 5)
`max_entity_distance`: מרחק גרף מקסימלי עבור הרחבת ישויות (ברירת מחדל: 3)
`**kwargs`: פרמטרים נוספים ספציפיים לשירות
**החזרות:** str: תשובה מלאה שנוצרה המבוססת על נתוני גרף
**דוגמה:**
```python
async_flow = await api.async_flow()
flow = async_flow.id("default")
# Query knowledge graph
response = await flow.graph_rag(
query="What are the relationships between these entities?",
user="trustgraph",
collection="medical-kb",
max_subgraph_count=3
)
print(response)
```
### `request(self, service: str, request_data: Dict[str, Any]) -> Dict[str, Any]`
בקשת שימוש בשירות המוגדר בתוך ה-flow.
שיטה פנימית לביצוע קריאות לשירותים בתוך מופע ה-flow הנוכחי.
**ארגומנטים:**
`service`: שם השירות (לדוגמה, "agent", "graph-rag", "triples")
`request_data`: עומס (payload) של הבקשה לשירות
**החזר:** dict: אובייקט תגובה מהשירות
**יוצא מכלל אפשרות (Raises):**
`ProtocolException`: אם הבקשה נכשלת או שהתגובה אינה תקינה
`ApplicationException`: אם השירות מחזיר שגיאה
### `row_embeddings_query(self, text: str, schema_name: str, user: str = 'trustgraph', collection: str = 'default', index_name: str | None = None, limit: int = 10, **kwargs: Any)`
שאילתת הטמעות שורות לחיפוש סמנטי בנתונים מובנים.
מבצעת חיפוש סמנטי על הטמעות אינדקס השורות כדי למצוא שורות שעבורן
ערכי השדות המאונדקסים דומים ביותר לטקסט הקלט. מאפשרת
התאמה מעורפלת/סמנטית על נתונים מובנים.
**ארגומנטים:**
`text`: טקסט השאילתה לחיפוש סמנטי
`schema_name`: שם הסכימה לחיפוש בתוכה
`user`: מזהה משתמש (ברירת מחדל: "trustgraph")
`collection`: מזהה אוסף (ברירת מחדל: "default")
`index_name`: שם אינדקס אופציונלי לסינון החיפוש לאינדקס ספציפי
`limit`: מספר מקסימלי של תוצאות להחזרה (ברירת מחדל: 10)
`**kwargs`: פרמטרים נוספים ספציפיים לשירות
**החזר:** dict: תגובה המכילה התאמות עם index_name, index_value, text ו-score
**דוגמה:**
```python
async_flow = await api.async_flow()
flow = async_flow.id("default")
# Search for customers by name similarity
results = await flow.row_embeddings_query(
text="John Smith",
schema_name="customers",
user="trustgraph",
collection="sales",
limit=5
)
for match in results.get("matches", []):
print(f"{match['index_name']}: {match['index_value']} (score: {match['score']})")
```
### `rows_query(self, query: str, user: str, collection: str, variables: Dict | None = None, operation_name: str | None = None, **kwargs: Any)`
הפעלת שאילתת GraphQL על שורות שמורות.
שאילתות שורות נתונים מובנים באמצעות תחביר GraphQL. תומך בשאילתות מורכבות
עם משתנים ופעולות בעלות שם.
**ארגומנטים:**
`query`: מחרוזת שאילתת GraphQL
`user`: מזהה משתמש
`collection`: מזהה אוסף המכיל שורות
`variables`: משתנים אופציונליים לשאילתת GraphQL
`operation_name`: שם פעולה אופציונלי עבור שאילתות מרובות פעולות
`**kwargs`: פרמטרים נוספים ספציפיים לשירות
**החזרות:** dict: תגובת GraphQL עם נתונים ושגיאות
**דוגמה:**
```python
async_flow = await api.async_flow()
flow = async_flow.id("default")
# Execute GraphQL query
query = '''
query GetUsers($status: String!) {
users(status: $status) {
id
name
email
}
}
'''
result = await flow.rows_query(
query=query,
user="trustgraph",
collection="users",
variables={"status": "active"}
)
for user in result.get("data", {}).get("users", []):
print(f"{user['name']}: {user['email']}")
```
### `text_completion(self, system: str, prompt: str, **kwargs: Any) -> str`
יצירת השלמת טקסט (לא בזמן אמת).
מייצרת תגובת טקסט ממודל שפה גדול (LLM) בהתבסס על הנחיה מערכתית והנחיה ממשתמש.
מחזירה את טקסט התגובה השלם.
הערה: שיטה זו אינה תומכת בסטרימינג. לטקסט שנוצר בזמן אמת,
השתמשו ב-AsyncSocketFlowInstance.text_completion() במקום זאת.
**ארגומנטים:**
`system`: הנחיה מערכתית המגדירה את התנהגות ה-LLM.
`prompt`: הנחיה ממשתמש או שאלה.
`**kwargs`: פרמטרים נוספים ספציפיים לשירות.
**מחזיר:** str: תגובת טקסט שנוצרת בשלמותה.
**דוגמה:**
```python
async_flow = await api.async_flow()
flow = async_flow.id("default")
# Generate text
response = await flow.text_completion(
system="You are a helpful assistant.",
prompt="Explain quantum computing in simple terms."
)
print(response)
```
### `triples_query(self, s=None, p=None, o=None, user=None, collection=None, limit=100, **kwargs: Any)`
שאילת משולשות RDF באמצעות התאמת תבניות.
מחפשת משולשות התואמות לתבניות הנקובות עבור הנושא, הנשוא ו/או
האובייקט. תבניות משתמשות ב-None כתווית מתקן כדי להתאים לכל ערך.
**ארגומנטים:**
`s`: תבנית נושא (None עבור תווית מתקן)
`p`: תבנית נשוא (None עבור תווית מתקן)
`o`: תבנית אובייקט (None עבור תווית מתקן)
`user`: מזהה משתמש (None עבור כל המשתמשים)
`collection`: מזהה אוסף (None עבור כל האוספים)
`limit`: מספר מקסימלי של משולשות להחזרה (ברירת מחדל: 100)
`**kwargs`: פרמטרים נוספים ספציפיים לשירות
**החזרות:** dict: תגובה המכילה משולשות תואמות
**דוגמה:**
```python
async_flow = await api.async_flow()
flow = async_flow.id("default")
# Find all triples with a specific predicate
results = await flow.triples_query(
p="knows",
user="trustgraph",
collection="social",
limit=50
)
for triple in results.get("triples", []):
print(f"{triple['s']} knows {triple['o']}")
```
--
## `SocketClient`
```python
from trustgraph.api import SocketClient
```
לקוח WebSocket סינכרוני לפעולות סטרימינג.
מספק ממשק סינכרוני לשירותי TrustGraph המבוססים על WebSocket,
תוך שימוש בספריית websockets אסינכרונית עם גנרטורים סינכרוניים לנוחות השימוש.
תומך בתגובות סטרימינג מסוכנים, שאילתות RAG והשלמות טקסט.
הערה: זהו עטיפה סינכרונית סביב פעולות WebSocket אסינכרוניות. לצורך
תמיכה אסינכרונית אמיתית, השתמש ב-AsyncSocketClient.
### שיטות
### `__init__(self, url: str, timeout: int, token: str | None) -> None`
אתחול לקוח WebSocket סינכרוני.
**ארגומנטים:**
`url`: כתובת URL בסיסית עבור ממשק ה-API של TrustGraph (HTTP/HTTPS יומרו ל-WS/WSS)
`timeout`: זמן קצוב של WebSocket בשניות
`token`: טוקן bearer אופציונלי לאימות
### `close(self) -> None`
סגירת חיבורי WebSocket.
הערה: ניקוי מתבצע באופן אוטומטי על ידי מנהלי הקשר באסינכרוני.
### `flow(self, flow_id: str) -> 'SocketFlowInstance'`
קבלת מופע זרימה לפעולות סטרימינג של WebSocket.
**ארגומנטים:**
`flow_id`: מזהה זרימה
**מחזיר:** SocketFlowInstance: מופע זרימה עם שיטות סטרימינג
**דוגמה:**
```python
socket = api.socket()
flow = socket.flow("default")
# Stream agent responses
for chunk in flow.agent(question="Hello", user="trustgraph", streaming=True):
print(chunk.content, end='', flush=True)
```
--
## `SocketFlowInstance`
```python
from trustgraph.api import SocketFlowInstance
```
מופע של זרימת WebSocket סינכרונית עבור פעולות סטרימינג.
מספק את אותו ממשק כמו FlowInstance של REST, אך עם תמיכה בסטרימינג מבוסס WebSocket
עבור תגובות בזמן אמת. כל השיטות תומכות בפרמטר אופציונלי
`streaming` כדי לאפשר שליחת תוצאות מצטברות.
### שיטות
### `__init__(self, client: trustgraph.api.socket_client.SocketClient, flow_id: str) -> None`
אתחול מופע זרימת שקע.
**ארגומנטים:**
`client`: שרת שקעים הורה (Parent SocketClient)
`flow_id`: מזהה זרימה
### `agent(self, question: str, user: str, state: Dict[str, Any] | None = None, group: str | None = None, history: List[Dict[str, Any]] | None = None, streaming: bool = False, **kwargs: Any) -> Dict[str, Any] | Iterator[trustgraph.api.types.StreamingChunk]`
ביצוע פעולת סוכן עם תמיכה בסטרימינג.
סוכנים יכולים לבצע ניתוח רב-שלבי עם שימוש בכלים. שיטה זו תמיד
מחזירה מקטעי סטרימינג (מחשבות, תצפיות, תשובות), גם כאשר
streaming=False, כדי להציג את תהליך החשיבה של הסוכן.
**ארגומנטים:**
`question`: שאלה או הוראה מהמשתמש
`user`: מזהה משתמש
`state`: מילון מצב אופציונלי לשיחות עם מצב (stateful)
`group`: מזהה קבוצה אופציונלי עבור הקשרים מרובי משתמשים
`history`: היסטוריית שיחה אופציונלית כרשימה של מילוני הודעות
`streaming`: הפעלת מצב סטרימינג (ברירת מחדל: False)
`**kwargs`: פרמטרים נוספים המועברים לשירות הסוכן
**מחזיר:** Iterator[StreamingChunk]: זרם של מחשבות, תצפיות ותשובות של הסוכן
**דוגמה:**
```python
socket = api.socket()
flow = socket.flow("default")
# Stream agent reasoning
for chunk in flow.agent(
question="What is quantum computing?",
user="trustgraph",
streaming=True
):
if isinstance(chunk, AgentThought):
print(f"[Thinking] {chunk.content}")
elif isinstance(chunk, AgentObservation):
print(f"[Observation] {chunk.content}")
elif isinstance(chunk, AgentAnswer):
print(f"[Answer] {chunk.content}")
```
### `agent_explain(self, question: str, user: str, collection: str, state: Dict[str, Any] | None = None, group: str | None = None, history: List[Dict[str, Any]] | None = None, **kwargs: Any) -> Iterator[trustgraph.api.types.StreamingChunk | trustgraph.api.types.ProvenanceEvent]`
הפעל פעולה של סוכן עם תמיכה בהסבר.
מעביר גם חלקי תוכן (AgentThought, AgentObservation, AgentAnswer)
וגם אירועי מקור (ProvenanceEvent). אירועי מקור מכילים URI שניתן לשלוף
באמצעות ExplainabilityClient כדי לקבל מידע מפורט על תהליך החשיבה של הסוכן.
מעקב אחר הסוכן מורכב מ:
Session: השאלה הראשונית ומטא-נתונים של הסשן
Iterations: כל מחזור מחשבה/פעולה/תצפית
Conclusion: התשובה הסופית
**ארגומנטים:**
`question`: שאלה או הוראה של המשתמש
`user`: מזהה משתמש
`collection`: מזהה אוסף לאחסון מקור
`state`: מילון מצב אופציונלי לשיחות עם מצב
`group`: מזהה קבוצה אופציונלי עבור הקשרים מרובי משתמשים
`history`: היסטוריית שיחה אופציונלית כרשימה של מילוני הודעות
`**kwargs`: פרמטרים נוספים המועברים לשירות הסוכן
`Yields`:
`Union[StreamingChunk, ProvenanceEvent]`: חלקי סוכן ואירועי מקור
**דוגמה:**
```python
from trustgraph.api import Api, ExplainabilityClient, ProvenanceEvent
from trustgraph.api import AgentThought, AgentObservation, AgentAnswer
socket = api.socket()
flow = socket.flow("default")
explain_client = ExplainabilityClient(flow)
provenance_ids = []
for item in flow.agent_explain(
question="What is the capital of France?",
user="trustgraph",
collection="default"
):
if isinstance(item, AgentThought):
print(f"[Thought] {item.content}")
elif isinstance(item, AgentObservation):
print(f"[Observation] {item.content}")
elif isinstance(item, AgentAnswer):
print(f"[Answer] {item.content}")
elif isinstance(item, ProvenanceEvent):
provenance_ids.append(item.explain_id)
# Fetch session trace after completion
if provenance_ids:
trace = explain_client.fetch_agent_trace(
provenance_ids[0], # Session URI is first
graph="urn:graph:retrieval",
user="trustgraph",
collection="default"
)
```
### `document_embeddings_query(self, text: str, user: str, collection: str, limit: int = 10, **kwargs: Any) -> Dict[str, Any]`
שאילתת מקטעי מסמכים באמצעות דמיון סמנטי.
**ארגומנטים:**
`text`: טקסט שאילתה לחיפוש סמנטי
`user`: מזהה משתמש/מרחב מפתחות
`collection`: מזהה אוסף
`limit`: מספר מקסימלי של תוצאות (ברירת מחדל: 10)
`**kwargs`: פרמטרים נוספים המועברים לשירות
**החזרות:** dict: תוצאות שאילתה עם מזהי מקטעים של מקטעי מסמכים תואמים
**דוגמה:**
```python
socket = api.socket()
flow = socket.flow("default")
results = flow.document_embeddings_query(
text="machine learning algorithms",
user="trustgraph",
collection="research-papers",
limit=5
)
# results contains {"chunks": [{"chunk_id": "...", "score": 0.95}, ...]}
```
### `document_rag(self, query: str, user: str, collection: str, doc_limit: int = 10, streaming: bool = False, **kwargs: Any) -> str | Iterator[str]`
הפעל שאילתת RAG מבוססת מסמכים עם אפשרות של סטרימינג.
משתמש בהטמעות וקטוריות כדי למצוא מקטעי מסמכים רלוונטיים, ולאחר מכן מייצר
תגובה באמצעות מודל שפה גדול (LLM). מצב הסטרימינג מספק תוצאות באופן מצטבר.
**ארגומנטים:**
`query`: שאילתה בשפה טבעית
`user`: מזהה משתמש/מרחב
`collection`: מזהה אוסף
`doc_limit`: מספר מקסימלי של מקטעי מסמכים לשליפה (ברירת מחדל: 10)
`streaming`: הפעל מצב סטרימינג (ברירת מחדל: False)
`**kwargs`: פרמטרים נוספים המועברים לשירות
**החזרות:** Union[str, Iterator[str]]: תגובה מלאה או זרם של מקטעי טקסט
**דוגמה:**
```python
socket = api.socket()
flow = socket.flow("default")
# Streaming document RAG
for chunk in flow.document_rag(
query="Summarize the key findings",
user="trustgraph",
collection="research-papers",
doc_limit=5,
streaming=True
):
print(chunk, end='', flush=True)
```
### `document_rag_explain(self, query: str, user: str, collection: str, doc_limit: int = 10, **kwargs: Any) -> Iterator[trustgraph.api.types.RAGChunk | trustgraph.api.types.ProvenanceEvent]`
הפעל שאילתת RAG מבוססת מסמכים עם תמיכה בהסבר.
מעביר גם מקטעי תוכן (RAGChunk) וגם אירועי מקור (ProvenanceEvent).
אירועי מקור מכילים URI שניתן לשלוף באמצעות ExplainabilityClient
כדי לקבל מידע מפורט על האופן שבו התגובה נוצרה.
מעקב RAG של מסמך מורכב מ:
שאלה: השאילתה של המשתמש
חיפוש: מקטעים שנשלפו ממאגר המסמכים (chunk_count)
סינתזה: התשובה שנוצרה
**ארגומנטים:**
`query`: שאילתה בשפה טבעית
`user`: מזהה משתמש/מרחב מפתחות
`collection`: מזהה אוסף
`doc_limit`: מספר מקסימלי של מקטעי מסמכים לשליפה (ברירת מחדל: 10)
`**kwargs`: פרמטרים נוספים המועברים לשירות
`Yields`:
`Union[RAGChunk, ProvenanceEvent]`: מקטעי תוכן ואירועי מקור
**דוגמה:**
```python
from trustgraph.api import Api, ExplainabilityClient, RAGChunk, ProvenanceEvent
socket = api.socket()
flow = socket.flow("default")
explain_client = ExplainabilityClient(flow)
for item in flow.document_rag_explain(
query="Summarize the key findings",
user="trustgraph",
collection="research-papers",
doc_limit=5
):
if isinstance(item, RAGChunk):
print(item.content, end='', flush=True)
elif isinstance(item, ProvenanceEvent):
# Fetch entity details
entity = explain_client.fetch_entity(
item.explain_id,
graph=item.explain_graph,
user="trustgraph",
collection="research-papers"
)
print(f"Event: {entity}", file=sys.stderr)
```
### `embeddings(self, texts: list, **kwargs: Any) -> Dict[str, Any]`
יצירת הטמעות וקטוריות עבור טקסט אחד או יותר.
**ארגומנטים:**
`texts`: רשימה של טקסטים קלט ליצירת הטמעות
`**kwargs`: פרמטרים נוספים המועברים לשירות
**החזרות:** dict: תגובה המכילה וקטורים (סט אחד לכל טקסט קלט)
**דוגמה:**
```python
socket = api.socket()
flow = socket.flow("default")
result = flow.embeddings(["quantum computing"])
vectors = result.get("vectors", [])
```
### `graph_embeddings_query(self, text: str, user: str, collection: str, limit: int = 10, **kwargs: Any) -> Dict[str, Any]`
שאילת שאילתות לישות גרף ידע באמצעות דמיון סמנטי.
**ארגומנטים:**
`text`: טקסט שאילתה לחיפוש סמנטי
`user`: מזהה משתמש/מרחב מפתחות
`collection`: מזהה אוסף
`limit`: מספר מקסימלי של תוצאות (ברירת מחדל: 10)
`**kwargs`: פרמטרים נוספים המועברים לשירות
**החזרות:** dict: תוצאות שאילתה עם ישויות דומות
**דוגמה:**
```python
socket = api.socket()
flow = socket.flow("default")
results = flow.graph_embeddings_query(
text="physicist who discovered radioactivity",
user="trustgraph",
collection="scientists",
limit=5
)
```
### `graph_rag(self, query: str, user: str, collection: str, max_subgraph_size: int = 1000, max_subgraph_count: int = 5, max_entity_distance: int = 3, streaming: bool = False, **kwargs: Any) -> str | Iterator[str]`
הפעל שאילתת RAG מבוססת גרפים עם סטרימינג אופציונלי.
משתמש במבנה גרף ידע כדי למצוא הקשר רלוונטי, ולאחר מכן מייצר
תגובה באמצעות מודל שפה גדול (LLM). מצב הסטרימינג מספק תוצאות באופן מצטבר.
**ארגומנטים:**
`query`: שאילתה בשפה טבעית
`user`: מזהה משתמש/מרחב
`collection`: מזהה אוסף
`max_subgraph_size`: מספר מקסימלי של משולשים בסך הכל בגרף המשנה (ברירת מחדל: 1000)
`max_subgraph_count`: מספר מקסימלי של גרפים משניים (ברירת מחדל: 5)
`max_entity_distance`: עומק מעבר מקסימלי (ברירת מחדל: 3)
`streaming`: הפעל מצב סטרימינג (ברירת מחדל: False)
`**kwargs`: פרמטרים נוספים המועברים לשירות
**מחזיר:** Union[str, Iterator[str]]: תגובה מלאה או זרם של פיסות טקסט
**דוגמה:**
```python
socket = api.socket()
flow = socket.flow("default")
# Streaming graph RAG
for chunk in flow.graph_rag(
query="Tell me about Marie Curie",
user="trustgraph",
collection="scientists",
streaming=True
):
print(chunk, end='', flush=True)
```
### `graph_rag_explain(self, query: str, user: str, collection: str, max_subgraph_size: int = 1000, max_subgraph_count: int = 5, max_entity_distance: int = 3, **kwargs: Any) -> Iterator[trustgraph.api.types.RAGChunk | trustgraph.api.types.ProvenanceEvent]`
הפעל שאילתת RAG מבוססת גרפים עם תמיכה בהסבר.
מעביר גם מקטעי תוכן (RAGChunk) וגם אירועי מקור (ProvenanceEvent).
אירועי מקור מכילים URI שניתן לשלוף באמצעות ExplainabilityClient
כדי לקבל מידע מפורט על האופן שבו התגובה נוצרה.
**ארגומנטים:**
`query`: שאילתה בשפה טבעית
`user`: מזהה משתמש/מרחב
`collection`: מזהה אוסף
`max_subgraph_size`: מספר מקסימלי של משולשים בסך הכל בגרף המשנה (ברירת מחדל: 1000)
`max_subgraph_count`: מספר מקסימלי של גרפי משנה (ברירת מחדל: 5)
`max_entity_distance`: עומק מעבר מקסימלי (ברירת מחדל: 3)
`**kwargs`: פרמטרים נוספים המועברים לשירות
`Yields`:
`Union[RAGChunk, ProvenanceEvent]`: מקטעי תוכן ואירועי מקור
**דוגמה:**
```python
from trustgraph.api import Api, ExplainabilityClient, RAGChunk, ProvenanceEvent
socket = api.socket()
flow = socket.flow("default")
explain_client = ExplainabilityClient(flow)
provenance_ids = []
response_text = ""
for item in flow.graph_rag_explain(
query="Tell me about Marie Curie",
user="trustgraph",
collection="scientists"
):
if isinstance(item, RAGChunk):
response_text += item.content
print(item.content, end='', flush=True)
elif isinstance(item, ProvenanceEvent):
provenance_ids.append(item.provenance_id)
# Fetch explainability details
for prov_id in provenance_ids:
entity = explain_client.fetch_entity(
prov_id,
graph="urn:graph:retrieval",
user="trustgraph",
collection="scientists"
)
print(f"Entity: {entity}")
```
### `mcp_tool(self, name: str, parameters: Dict[str, Any], **kwargs: Any) -> Dict[str, Any]`
הפעלת כלי פרוטוקול הקשר מודל (MCP).
**ארגומנטים:**
`name`: שם/מזהה הכלי
`parameters`: מילון פרמטרים של הכלי
`**kwargs`: פרמטרים נוספים המועברים לשירות
**החזר:** dict: תוצאת ביצוע הכלי
**דוגמה:**
```python
socket = api.socket()
flow = socket.flow("default")
result = flow.mcp_tool(
name="search-web",
parameters={"query": "latest AI news", "limit": 5}
)
```
### `prompt(self, id: str, variables: Dict[str, str], streaming: bool = False, **kwargs: Any) -> str | Iterator[str]`
הפעל תבנית פקודה עם אפשרות של סטרימינג.
**ארגומנטים:**
`id`: מזהה של תבנית הפקודה
`variables`: מילון של התאמות בין שם משתנה לערך
`streaming`: הפעל מצב סטרימינג (ברירת מחדל: False)
`**kwargs`: פרמטרים נוספים המועברים לשירות
**החזר:** Union[str, Iterator[str]]: תגובה מלאה או סטרימינג של פיסות טקסט
**דוגמה:**
```python
socket = api.socket()
flow = socket.flow("default")
# Streaming prompt execution
for chunk in flow.prompt(
id="summarize-template",
variables={"topic": "quantum computing", "length": "brief"},
streaming=True
):
print(chunk, end='', flush=True)
```
### `row_embeddings_query(self, text: str, schema_name: str, user: str = 'trustgraph', collection: str = 'default', index_name: str | None = None, limit: int = 10, **kwargs: Any) -> Dict[str, Any]`
שליפת נתוני שורה באמצעות דמיון סמנטי בשדות ממופים.
מאתר שורות שבהן ערכי השדות הממופים דומים מבחינה סמנטית ל-
הטקסט הקלט, תוך שימוש בהטמעות וקטוריות. זה מאפשר התאמה מעורפלת/סמנטית
לנתונים מובנים.
**ארגומנטים:**
`text`: טקסט שאילתה לחיפוש סמנטי
`schema_name`: שם הסכימה לחיפוש בתוכה
`user`: מזהה משתמש/אזור מפתחות (ברירת מחדל: "trustgraph")
`collection`: מזהה אוסף (ברירת מחדל: "default")
`index_name`: שם אינדקס אופציונלי לסינון החיפוש לאינדקס ספציפי
`limit`: מספר מקסימלי של תוצאות (ברירת מחדל: 10)
`**kwargs`: פרמטרים נוספים המועברים לשירות
**החזרות:** dict: תוצאות שאילתה עם התאמות המכילות index_name, index_value, text ו-score
**דוגמה:**
```python
socket = api.socket()
flow = socket.flow("default")
# Search for customers by name similarity
results = flow.row_embeddings_query(
text="John Smith",
schema_name="customers",
user="trustgraph",
collection="sales",
limit=5
)
# Filter to specific index
results = flow.row_embeddings_query(
text="machine learning engineer",
schema_name="employees",
index_name="job_title",
limit=10
)
```
### `rows_query(self, query: str, user: str, collection: str, variables: Dict[str, Any] | None = None, operation_name: str | None = None, **kwargs: Any) -> Dict[str, Any]`
הפעלת שאילתת GraphQL על שורות מובנות.
**ארגומנטים:**
`query`: מחרוזת שאילתת GraphQL
`user`: מזהה משתמש/מרחב מפתחות
`collection`: מזהה אוסף
`variables`: מילון אופציונלי של משתני שאילתה
`operation_name`: שם פעולה אופציונלי עבור מסמכים מרובי פעולות
`**kwargs`: פרמטרים נוספים המועברים לשירות
**החזרות:** dict: תגובת GraphQL עם נתונים, שגיאות ו/או הרחבות
**דוגמה:**
```python
socket = api.socket()
flow = socket.flow("default")
query = '''
{
scientists(limit: 10) {
name
field
discoveries
}
}
'''
result = flow.rows_query(
query=query,
user="trustgraph",
collection="scientists"
)
```
### `text_completion(self, system: str, prompt: str, streaming: bool = False, **kwargs) -> str | Iterator[str]`
הפעלת השלמת טקסט עם אפשרות של סטרימינג.
**ארגומנטים:**
`system`: הנחיה למערכת המגדירה את התנהגות העוזר.
`prompt`: הנחיה/שאלה מהמשתמש.
`streaming`: הפעל מצב סטרימינג (ברירת מחדל: False).
`**kwargs`: פרמטרים נוספים המועברים לשירות.
**החזר:** Union[str, Iterator[str]]: תשובה מלאה או סטרימינג של פיסות טקסט.
**דוגמה:**
```python
socket = api.socket()
flow = socket.flow("default")
# Non-streaming
response = flow.text_completion(
system="You are helpful",
prompt="Explain quantum computing",
streaming=False
)
print(response)
# Streaming
for chunk in flow.text_completion(
system="You are helpful",
prompt="Explain quantum computing",
streaming=True
):
print(chunk, end='', flush=True)
```
### `triples_query(self, s: str | Dict[str, Any] | None = None, p: str | Dict[str, Any] | None = None, o: str | Dict[str, Any] | None = None, g: str | None = None, user: str | None = None, collection: str | None = None, limit: int = 100, **kwargs: Any) -> List[Dict[str, Any]]`
שאילתת משולשים בגרף ידע באמצעות התאמת תבניות.
**ארגומנטים:**
`s`: מסנן נושא - מחרוזת URI, מילון מונחים, או None עבור wildcard
`p`: מסנן נשוא - מחרוזת URI, מילון מונחים, או None עבור wildcard
`o`: מסנן אובייקט - מחרוזת URI/literal, מילון מונחים, או None עבור wildcard
`g`: מסנן גרף מוגדר - מחרוזת URI או None עבור כל הגרפים
`user`: מזהה משתמש/מרחב מפתחות (אופציונלי)
`collection`: מזהה אוסף (אופציונלי)
`limit`: מספר תוצאות מקסימלי להחזרה (ברירת מחדל: 100)
`**kwargs`: פרמטרים נוספים המועברים לשירות
**החזרות:** List[Dict]: רשימה של משולשים תואמים בפורמט פנימי
**דוגמה:**
```python
socket = api.socket()
flow = socket.flow("default")
# Find all triples about a specific subject
triples = flow.triples_query(
s="http://example.org/person/marie-curie",
user="trustgraph",
collection="scientists"
)
# Query with named graph filter
triples = flow.triples_query(
s="urn:trustgraph:session:abc123",
g="urn:graph:retrieval",
user="trustgraph",
collection="default"
)
```
### `triples_query_stream(self, s: str | Dict[str, Any] | None = None, p: str | Dict[str, Any] | None = None, o: str | Dict[str, Any] | None = None, g: str | None = None, user: str | None = None, collection: str | None = None, limit: int = 100, batch_size: int = 20, **kwargs: Any) -> Iterator[List[Dict[str, Any]]]`
שאילת משולשים בגרף ידע באמצעות אצוות סטרימינג.
מחזירה אצוות של משולשים כשהם מגיעים, מה שמקטין את הזמן לקבלת התוצאה הראשונה
ואת צריכת הזיכרון עבור קבוצות תוצאות גדולות.
**ארגומנטים:**
`s`: מסנן נושא - מחרוזת URI, מילון מונחים, או None עבור wildcard
`p`: מסנן נשוא - מחרוזת URI, מילון מונחים, או None עבור wildcard
`o`: מסנן אובייקט - מחרוזת URI/ליטרל, מילון מונחים, או None עבור wildcard
`g`: מסנן גרף מוגדר - מחרוזת URI או None עבור כל הגרפים
`user`: מזהה משתמש/מרחב מפתחות (אופציונלי)
`collection`: מזהה אוסף (אופציונלי)
`limit`: מספר תוצאות מקסימלי להחזרה (ברירת מחדל: 100)
`batch_size`: משולשים לאצווה (ברירת מחדל: 20)
`**kwargs`: פרמטרים נוספים המועברים לשירות
`Yields`:
`List[Dict]`: אצוות של משולשים בפורמט wire
**דוגמה:**
```python
socket = api.socket()
flow = socket.flow("default")
for batch in flow.triples_query_stream(
user="trustgraph",
collection="default"
):
for triple in batch:
print(triple["s"], triple["p"], triple["o"])
```
--
## `AsyncSocketClient`
```python
from trustgraph.api import AsyncSocketClient
```
לקוח WebSocket אסינכרוני
### שיטות
### `__init__(self, url: str, timeout: int, token: str | None)`
אתחול עצמי. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
### `aclose(self)`
סגירת חיבור WebSocket
### `flow(self, flow_id: str)`
קבלת מופע זרימה אסינכרוני עבור פעולות WebSocket
--
## `AsyncSocketFlowInstance`
```python
from trustgraph.api import AsyncSocketFlowInstance
```
מופע של זרימת WebSocket אסינכרונית
### שיטות
### `__init__(self, client: trustgraph.api.async_socket_client.AsyncSocketClient, flow_id: str)`
אתחול של self. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
### `agent(self, question: str, user: str, state: Dict[str, Any] | None = None, group: str | None = None, history: list | None = None, streaming: bool = False, **kwargs) -> Dict[str, Any] | AsyncIterator`
סוכן עם סטרימינג אופציונלי
### `document_rag(self, query: str, user: str, collection: str, doc_limit: int = 10, streaming: bool = False, **kwargs)`
תיעוד RAG עם סטרימינג אופציונלי
### `embeddings(self, texts: list, **kwargs)`
יצירת הטמעות טקסט
### `graph_embeddings_query(self, text: str, user: str, collection: str, limit: int = 10, **kwargs)`
שאילתא של הטמעות גרף לחיפוש סמנטי
### `graph_rag(self, query: str, user: str, collection: str, max_subgraph_size: int = 1000, max_subgraph_count: int = 5, max_entity_distance: int = 3, streaming: bool = False, **kwargs)`
RAG גרפי עם סטרימינג אופציונלי
### `mcp_tool(self, name: str, parameters: Dict[str, Any], **kwargs)`
הרצת כלי MCP
### `prompt(self, id: str, variables: Dict[str, str], streaming: bool = False, **kwargs)`
הרצת שאילתא עם סטרימינג אופציונלי
### `row_embeddings_query(self, text: str, schema_name: str, user: str = 'trustgraph', collection: str = 'default', index_name: str | None = None, limit: int = 10, **kwargs)`
שאילתא של הטמעות שורות לחיפוש סמנטי על נתונים מובנים
### `rows_query(self, query: str, user: str, collection: str, variables: Dict | None = None, operation_name: str | None = None, **kwargs)`
שאילתא GraphQL על שורות מובנות
### `text_completion(self, system: str, prompt: str, streaming: bool = False, **kwargs)`
השלמת טקסט עם סטרימינג אופציונלי
### `triples_query(self, s=None, p=None, o=None, user=None, collection=None, limit=100, **kwargs)`
שאילתא של תבנית משולשת
--
### `build_term(value: Any, term_type: str | None = None, datatype: str | None = None, language: str | None = None) -> Dict[str, Any] | None`
בניית מילון Term בפורמט wire מתוך ערך.
כללי זיהוי אוטומטיים (כאשר term_type הוא None):
כבר מילון עם מפתח 't' -> החזר כפי שהוא (כבר Term)
מתחיל עם http://, https://, urn: -> IRI
עטוף בסוגריים זוויתיים (לדוגמה, <http://...>) -> IRI (סוגריים זוויתיים מוסרים)
כל דבר אחר -> מילולי
**ארגומנטים:**
`value`: ערך ה-term (מחרוזת, מילון או None)
`term_type`: אחד מ-'iri', 'literal' או None לזיהוי אוטומטי
`datatype`: סוג נתונים עבור אובייקטים מילוליים (לדוגמה, xsd:integer)
`language`: תג שפה עבור אובייקטים מילוליים (לדוגמה, en)
**החזרות:** dict: מילון Term בפורמט wire, או None אם הערך הוא None
--
## `BulkClient`
```python
from trustgraph.api import BulkClient
```
לקוח לפעולות מרובות סינכרוניות לייבוא/ייצוא.
מספק העברת נתונים מרובה יעילה באמצעות WebSocket עבור מערכי נתונים גדולים.
עוטף פעולות WebSocket אסינכרוניות עם גנרטורים סינכרוניים לנוחות השימוש.
הערה: לתמיכה אסינכרונית אמיתית, השתמש ב-AsyncBulkClient במקום.
### שיטות
### `__init__(self, url: str, timeout: int, token: str | None) -> None`
אתחול לקוח מרובה סינכרוני.
**ארגומנטים:**
`url`: כתובת URL בסיסית עבור ממשק ה-API של TrustGraph (HTTP/HTTPS יומרו ל-WS/WSS)
`timeout`: זמן קצוב של WebSocket בשניות
`token`: טוקן bearer אופציונלי לאימות
### `close(self) -> None`
סגירת חיבורים
### `export_document_embeddings(self, flow: str, **kwargs: Any) -> Iterator[Dict[str, Any]]`
ייצוא מרובה של הטמעות מסמכים מתוך זרימה.
מוריד ביעילות את כל הטמעות חלקי המסמכים באמצעות סטרימינג של WebSocket.
**ארגומנטים:**
`flow`: מזהה זרימה
`**kwargs`: פרמטרים נוספים (שמורים לשימוש עתידי)
**מחזיר:** Iterator[Dict[str, Any]]: זרם של מילוני הטמעה
**דוגמה:**
```python
bulk = api.bulk()
# Export and process document embeddings
for embedding in bulk.export_document_embeddings(flow="default"):
chunk_id = embedding.get("chunk_id")
vector = embedding.get("embedding")
print(f"{chunk_id}: {len(vector)} dimensions")
```
### `export_entity_contexts(self, flow: str, **kwargs: Any) -> Iterator[Dict[str, Any]]`
ייצוא בכמות גדולה של הקשרים של ישויות מתוך זרימה.
מוריד ביעילות את כל מידע ההקשר של הישויות באמצעות סטרימינג WebSocket.
**ארגומנטים:**
`flow`: מזהה זרימה
`**kwargs`: פרמטרים נוספים (שמורים לשימוש עתידי)
**מחזיר:** Iterator[Dict[str, Any]]: זרם של מילוני הקשר
**דוגמה:**
```python
bulk = api.bulk()
# Export and process entity contexts
for context in bulk.export_entity_contexts(flow="default"):
entity = context.get("entity")
text = context.get("context")
print(f"{entity}: {text[:100]}...")
```
### `export_graph_embeddings(self, flow: str, **kwargs: Any) -> Iterator[Dict[str, Any]]`
ייצוא המוני של הטמעות גרפים מתוך זרימה.
מוריד ביעילות את כל הטמעות ישויות הגרף באמצעות סטרימינג WebSocket.
**ארגומנטים:**
`flow`: מזהה זרימה
`**kwargs`: פרמטרים נוספים (שמורים לשימוש עתידי)
**מחזיר:** Iterator[Dict[str, Any]]: זרם של מילוני הטמעות
**דוגמה:**
```python
bulk = api.bulk()
# Export and process embeddings
for embedding in bulk.export_graph_embeddings(flow="default"):
entity = embedding.get("entity")
vector = embedding.get("embedding")
print(f"{entity}: {len(vector)} dimensions")
```
### `export_triples(self, flow: str, **kwargs: Any) -> Iterator[trustgraph.api.types.Triple]`
ייצוא בכמות גדולה של משולשים RDF מתוך זרימה.
מוריד ביעילות את כל המשולשים באמצעות סטרימינג WebSocket.
**ארגומנטים:**
`flow`: מזהה זרימה
`**kwargs`: פרמטרים נוספים (שמורים לשימוש עתידי)
**מחזיר:** Iterator[Triple]: זרם של אובייקטי Triple
**דוגמה:**
```python
bulk = api.bulk()
# Export and process triples
for triple in bulk.export_triples(flow="default"):
print(f"{triple.s} -> {triple.p} -> {triple.o}")
```
### `import_document_embeddings(self, flow: str, embeddings: Iterator[Dict[str, Any]], **kwargs: Any) -> None`
ייבוא המוני של הטמעות מסמכים לתוך זרימה.
העלאה יעילה של הטמעות מקטעי מסמכים באמצעות סטרימינג WebSocket
לשימוש בשאילתות RAG של מסמכים.
**ארגומנטים:**
`flow`: מזהה זרימה
`embeddings`: איטרטור המפיק מילוני הטמעות
`**kwargs`: פרמטרים נוספים (שמורים לשימוש עתידי)
**דוגמה:**
```python
bulk = api.bulk()
# Generate document embeddings to import
def doc_embedding_generator():
yield {"chunk_id": "doc1/p0/c0", "embedding": [0.1, 0.2, ...]}
yield {"chunk_id": "doc1/p0/c1", "embedding": [0.3, 0.4, ...]}
# ... more embeddings
bulk.import_document_embeddings(
flow="default",
embeddings=doc_embedding_generator()
)
```
### `import_entity_contexts(self, flow: str, contexts: Iterator[Dict[str, Any]], metadata: Dict[str, Any] | None = None, batch_size: int = 100, **kwargs: Any) -> None`
ייבוא בכמות גדולה של הקשרים של ישויות לתוך זרימה.
מעלה ביעילות מידע על הקשר של ישויות באמצעות סטרימינג WebSocket.
הקשרים של ישויות מספקים הקשר טקסטואלי נוסף לגבי ישויות גרף
לשיפור ביצועי RAG.
**ארגומנטים:**
`flow`: מזהה של זרימה
`contexts`: איטרטור המפיק מילוני הקשר
`metadata`: מילון מטא-נתונים עם id, מטא-נתונים, משתמש, אוסף
`batch_size`: מספר הקשרים בכל אצווה (ברירת מחדל 100)
`**kwargs`: פרמטרים נוספים (שמורים לשימוש עתידי)
**דוגמה:**
```python
bulk = api.bulk()
# Generate entity contexts to import
def context_generator():
yield {"entity": {"v": "entity1", "e": True}, "context": "Description..."}
yield {"entity": {"v": "entity2", "e": True}, "context": "Description..."}
# ... more contexts
bulk.import_entity_contexts(
flow="default",
contexts=context_generator(),
metadata={"id": "doc1", "metadata": [], "user": "user1", "collection": "default"}
)
```
### `import_graph_embeddings(self, flow: str, embeddings: Iterator[Dict[str, Any]], **kwargs: Any) -> None`
ייבוא המוני של הטמעות גרפים לתוך זרימה.
העלאה יעילה של הטמעות ישויות גרפים באמצעות סטרימינג WebSocket.
**ארגומנטים:**
`flow`: מזהה זרימה
`embeddings`: איטרטור המפיק מילוני הטמעות
`**kwargs`: פרמטרים נוספים (שמורים לשימוש עתידי)
**דוגמה:**
```python
bulk = api.bulk()
# Generate embeddings to import
def embedding_generator():
yield {"entity": "entity1", "embedding": [0.1, 0.2, ...]}
yield {"entity": "entity2", "embedding": [0.3, 0.4, ...]}
# ... more embeddings
bulk.import_graph_embeddings(
flow="default",
embeddings=embedding_generator()
)
```
### `import_rows(self, flow: str, rows: Iterator[Dict[str, Any]], **kwargs: Any) -> None`
ייבוא בכמות גדולה של שורות מובנות לתוך זרימה.
העלאה יעילה של שורות נתונים מובנים באמצעות סטרימינג WebSocket
לשימוש בשאילתות GraphQL.
**ארגומנטים:**
`flow`: מזהה זרימה
`rows`: איטרטור המפיק מילוני שורות
`**kwargs`: פרמטרים נוספים (שמורים לשימוש עתידי)
**דוגמה:**
```python
bulk = api.bulk()
# Generate rows to import
def row_generator():
yield {"id": "row1", "name": "Row 1", "value": 100}
yield {"id": "row2", "name": "Row 2", "value": 200}
# ... more rows
bulk.import_rows(
flow="default",
rows=row_generator()
)
```
### `import_triples(self, flow: str, triples: Iterator[trustgraph.api.types.Triple], metadata: Dict[str, Any] | None = None, batch_size: int = 100, **kwargs: Any) -> None`
ייבוא בכמות גדולה של משולשים RDF לתוך זרימה.
מעלה ביעילות מספר גדול של משולשים באמצעות סטרימינג WebSocket.
**ארגומנטים:**
`flow`: מזהה של הזרימה
`triples`: איטרטור המפיק אובייקטי Triple
`metadata`: מילון מטא-דאטה עם מזהה, מטא-דאטה, משתמש, אוסף
`batch_size`: מספר המשולשים בכל אצווה (ברירת מחדל 100)
`**kwargs`: פרמטרים נוספים (שמורים לשימוש עתידי)
**דוגמה:**
```python
from trustgraph.api import Triple
bulk = api.bulk()
# Generate triples to import
def triple_generator():
yield Triple(s="subj1", p="pred", o="obj1")
yield Triple(s="subj2", p="pred", o="obj2")
# ... more triples
# Import triples
bulk.import_triples(
flow="default",
triples=triple_generator(),
metadata={"id": "doc1", "metadata": [], "user": "user1", "collection": "default"}
)
```
--
## `AsyncBulkClient`
```python
from trustgraph.api import AsyncBulkClient
```
לקוח לפעולות אסינכרוניות בכמות גדולה
### שיטות
### `__init__(self, url: str, timeout: int, token: str | None) -> None`
אתחול של self. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
### `aclose(self) -> None`
סגירת חיבורים
### `export_document_embeddings(self, flow: str, **kwargs: Any) -> AsyncIterator[Dict[str, Any]]`
ייצוא בכמות גדולה של הטמעות מסמכים באמצעות WebSocket
### `export_entity_contexts(self, flow: str, **kwargs: Any) -> AsyncIterator[Dict[str, Any]]`
ייצוא בכמות גדולה של הקשרים של ישויות באמצעות WebSocket
### `export_graph_embeddings(self, flow: str, **kwargs: Any) -> AsyncIterator[Dict[str, Any]]`
ייצוא בכמות גדולה של הטמעות גרפים באמצעות WebSocket
### `export_triples(self, flow: str, **kwargs: Any) -> AsyncIterator[trustgraph.api.types.Triple]`
ייצוא בכמות גדולה של משולשות באמצעות WebSocket
### `import_document_embeddings(self, flow: str, embeddings: AsyncIterator[Dict[str, Any]], **kwargs: Any) -> None`
ייבוא בכמות גדולה של הטמעות מסמכים באמצעות WebSocket
### `import_entity_contexts(self, flow: str, contexts: AsyncIterator[Dict[str, Any]], **kwargs: Any) -> None`
ייבוא בכמות גדולה של הקשרים של ישויות באמצעות WebSocket
### `import_graph_embeddings(self, flow: str, embeddings: AsyncIterator[Dict[str, Any]], **kwargs: Any) -> None`
ייבוא בכמות גדולה של הטמעות גרפים באמצעות WebSocket
### `import_rows(self, flow: str, rows: AsyncIterator[Dict[str, Any]], **kwargs: Any) -> None`
ייבוא בכמות גדולה של שורות באמצעות WebSocket
### `import_triples(self, flow: str, triples: AsyncIterator[trustgraph.api.types.Triple], **kwargs: Any) -> None`
ייבוא בכמות גדולה של משולשות באמצעות WebSocket
--
## `Metrics`
```python
from trustgraph.api import Metrics
```
לקוח למדדי סינכרוניים
### שיטות
### `__init__(self, url: str, timeout: int, token: str | None) -> None`
אתחול של self. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
### `get(self) -> str`
קבלת מדדי Prometheus כטקסט
--
## `AsyncMetrics`
```python
from trustgraph.api import AsyncMetrics
```
לקוח מדדים אסינכרוני
### שיטות
### `__init__(self, url: str, timeout: int, token: str | None) -> None`
אתחול self. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
### `aclose(self) -> None`
סגירת חיבורים
### `get(self) -> str`
קבלת מדדי Prometheus כטקסט
--
## `ExplainabilityClient`
```python
from trustgraph.api import ExplainabilityClient
```
לקוח לשליפת ישויות הסברתיות עם טיפול בעקביות סופית.
משתמש בגילוי שקט: שליפה, המתנה, שליפה חוזרת, השוואה.
אם התוצאות זהות, הנתונים יציבים.
### שיטות
### `__init__(self, flow_instance, retry_delay: float = 0.2, max_retries: int = 10)`
אתחול לקוח הסברתי.
**ארגומנטים:**
`flow_instance`: מופע SocketFlowInstance לשליפת משולשות
`retry_delay`: השהייה בין ניסיונות חוזרים בשניות (ברירת מחדל: 0.2)
`max_retries`: מספר מקסימלי של ניסיונות חוזרים (ברירת מחדל: 10)
### `detect_session_type(self, session_uri: str, graph: str | None = None, user: str | None = None, collection: str | None = None) -> str`
זיהוי האם סשן הוא מסוג GraphRAG או Agent.
**ארגומנטים:**
`session_uri`: ה-URI של הסשן/שאלה
`graph`: גרף מוגדר
`user`: מזהה משתמש/מרחב מפתחות
`collection`: מזהה אוסף
**מחזיר:** "graphrag" או "agent"
### `fetch_agent_trace(self, session_uri: str, graph: str | None = None, user: str | None = None, collection: str | None = None, api: Any = None, max_content: int = 10000) -> Dict[str, Any]`
שליפת רצף ה-Agent השלם החל מ-URI של סשן.
עוקב אחר שרשרת המוצא: שאלה -> ניתוח (ים) -> מסקנה
**ארגומנטים:**
`session_uri`: ה-URI של סשן/שאלה של ה-agent
`graph`: גרף מוגדר (ברירת מחדל: urn:graph:retrieval)
`user`: מזהה משתמש/מרחב מפתחות
`collection`: מזהה אוסף
`api`: מופע TrustGraph Api לגישה לספרן (אופציונלי)
`max_content`: אורך תוכן מקסימלי למסקנה
**מחזיר:** מילון עם שאלה, איטרציות (רשימת ניתוחים), ישויות מסקנה
### `fetch_docrag_trace(self, question_uri: str, graph: str | None = None, user: str | None = None, collection: str | None = None, api: Any = None, max_content: int = 10000) -> Dict[str, Any]`
שליפת רצף ה-DocumentRAG השלם החל מ-URI של שאלה.
עוקב אחר שרשרת המוצא:
שאלה -> עיגון -> חקירה -> סינתזה
**ארגומנטים:**
`question_uri`: ה-URI של ישות השאלה
`graph`: גרף מוגדר (ברירת מחדל: urn:graph:retrieval)
`user`: מזהה משתמש/מרחב מפתחות
`collection`: מזהה אוסף
`api`: מופע TrustGraph Api לגישה לספרן (אופציונלי)
`max_content`: אורך תוכן מקסימלי לסינתזה
**מחזיר:** מילון עם שאלה, עיגון, חקירה, ישויות סינתזה
### `fetch_document_content(self, document_uri: str, api: Any, user: str | None = None, max_content: int = 10000) -> str`
שליפת תוכן מהספרן לפי URI של מסמך.
**ארגומנטים:**
`document_uri`: ה-URI של המסמך בספרן
`api`: מופע TrustGraph Api לגישה לספרן
`user`: מזהה משתמש עבור הספרן
`max_content`: אורך תוכן מקסימלי להחזרה
**מחזיר:** התוכן של המסמך כרצף
### `fetch_edge_selection(self, uri: str, graph: str | None = None, user: str | None = None, collection: str | None = None) -> trustgraph.api.explainability.EdgeSelection | None`
שליפת ישות בחירת קצה (משמשת על ידי Focus).
**ארגומנטים:**
`uri`: ה-URI של בחירת הקצה
`graph`: גרף מוגדר לשליפה
`user`: מזהה משתמש/מרחב מפתחות
`collection`: מזהה אוסף
**מחזיר:** EdgeSelection או None אם לא נמצא
### `fetch_entity(self, uri: str, graph: str | None = None, user: str | None = None, collection: str | None = None) -> trustgraph.api.explainability.ExplainEntity | None`
שליפת ישות הסברות באמצעות URI עם טיפול בעקביות סופית.
משתמש בגילוי שקטות:
1. שליפת משולשים עבור URI
2. אם אין תוצאות, לנסות שוב
3. אם יש תוצאות, לחכות ולשלוף שוב
4. אם התוצאות זהות, הנתונים יציבים - לנתח ולהחזיר
5. אם התוצאות שונות, הנתונים עדיין נכתבים - לנסות שוב
**ארגומנטים:**
`uri`: ה-URI של הישות שיש לשלוף
`graph`: גרף בעל שם לשאילתה (לדוגמה, "urn:graph:retrieval")
`user`: מזהה משתמש/מרחב מפתחות
`collection`: מזהה אוסף
**החזרות:** תת-מחלקה של ExplainEntity או None אם לא נמצא
### `fetch_focus_with_edges(self, uri: str, graph: str | None = None, user: str | None = None, collection: str | None = None) -> trustgraph.api.explainability.Focus | None`
שליפת ישות Focus וכל בחירות הקצוות שלה.
**ארגומנטים:**
`uri`: ה-URI של ישות ה-Focus
`graph`: גרף בעל שם לשאילתה
`user`: מזהה משתמש/מרחב מפתחות
`collection`: מזהה אוסף
**החזרות:** Focus עם edge_selections מאוכלס, או None
### `fetch_graphrag_trace(self, question_uri: str, graph: str | None = None, user: str | None = None, collection: str | None = None, api: Any = None, max_content: int = 10000) -> Dict[str, Any]`
שליפת עקבות GraphRAG מלאים החל מ-URI של שאלה.
עוקבים אחר שרשרת המוצא: שאלה -> עיגון -> חקירה -> Focus -> סינתזה
**ארגומנטים:**
`question_uri`: ה-URI של ישות השאלה
`graph`: גרף (ברירת מחדל: urn:graph:retrieval)
`user`: מזהה משתמש/מרחב מפתחות
`collection`: מזהה אוסף
`api`: מופע של TrustGraph Api לגישה לספרן (אופציונלי)
`max_content`: אורך תוכן מקסימלי לסינתזה
**החזרות:** מילון עם ישויות שאלה, עיגון, חקירה, focus, סינתזה
### `list_sessions(self, graph: str | None = None, user: str | None = None, collection: str | None = None, limit: int = 50) -> List[trustgraph.api.explainability.Question]`
רשימת כל סשנים של הסברות (שאלות) באוסף.
**ארגומנטים:**
`graph`: גרף (ברירת מחדל: urn:graph:retrieval)
`user`: מזהה משתמש/מרחב מפתחות
`collection`: מזהה אוסף
`limit`: מספר הסשנים המקסימלי להחזרה
**החזרות:** רשימה של ישויות שאלה ממוינות לפי חותם זמן (חדש ביותר קודם)
### `resolve_edge_labels(self, edge: Dict[str, str], user: str | None = None, collection: str | None = None) -> Tuple[str, str, str]`
פתרון תוויות עבור כל רכיבים של משולש קצה.
**ארגומנטים:**
`edge`: מילון עם מפתחות "s", "p", "o"
`user`: מזהה משתמש/מרחב מפתחות
`collection`: מזהה אוסף
**החזרות:** טאפל של (s_label, p_label, o_label)
### `resolve_label(self, uri: str, user: str | None = None, collection: str | None = None) -> str`
פתרון rdfs:label עבור URI, עם שמירה במטמון.
**ארגומנטים:**
`uri`: ה-URI לקבלת התווית
`user`: מזהה משתמש/מרחב מפתחות
`collection`: מזהה אוסף
**החזרות:** התווית אם נמצאה, אחרת ה-URI עצמו
--
## `ExplainEntity`
```python
from trustgraph.api import ExplainEntity
```
מחלקה בסיסית עבור ישויות הסברתיות.
**שדות:**
`uri`: <class 'str'>
`entity_type`: <class 'str'>
### שיטות
### `__init__(self, uri: str, entity_type: str = '') -> None`
אתחול עצמי. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
--
## `Question`
```python
from trustgraph.api import Question
```
שאילתת משתמש - השאלה שהתחילה את הסשן.
**שדות:**
`uri`: <class 'str'>
`entity_type`: <class 'str'>
`query`: <class 'str'>
`timestamp`: <class 'str'>
`question_type`: <class 'str'>
### שיטות
### `__init__(self, uri: str, entity_type: str = '', query: str = '', timestamp: str = '', question_type: str = '') -> None`
אתחול עצמי. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
--
## `Exploration`
```python
from trustgraph.api import Exploration
```
ישות חקירה - קצוות/חלקים שאוחזרו ממאגר הידע.
**שדות:**
`uri`: <class 'str'>
`entity_type`: <class 'str'>
`edge_count`: <class 'int'>
`chunk_count`: <class 'int'>
`entities`: typing.List[str]
### שיטות
### `__init__(self, uri: str, entity_type: str = '', edge_count: int = 0, chunk_count: int = 0, entities: List[str] = <factory>) -> None`
אתחול עצמי. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
--
## `Focus`
```python
from trustgraph.api import Focus
```
ישות ממוקדת - קצוות נבחרים עם ניתוח באמצעות מודל שפה גדול (GraphRAG בלבד).
**שדות:**
`uri`: <class 'str'>
`entity_type`: <class 'str'>
`selected_edge_uris`: typing.List[str]
`edge_selections`: typing.List[trustgraph.api.explainability.EdgeSelection]
### שיטות
### `__init__(self, uri: str, entity_type: str = '', selected_edge_uris: List[str] = <factory>, edge_selections: List[trustgraph.api.explainability.EdgeSelection] = <factory>) -> None`
אתחול עצמי. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
--
## `Synthesis`
```python
from trustgraph.api import Synthesis
```
ישות סינתטית - התשובה הסופית.
**שדות:**
`uri`: <class 'str'>
`entity_type`: <class 'str'>
`document`: <class 'str'>
### שיטות
### `__init__(self, uri: str, entity_type: str = '', document: str = '') -> None`
אתחול self. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
--
## `Analysis`
```python
from trustgraph.api import Analysis
```
ישות ניתוח - מחזור מחשבה/פעולה/תצפית (לסוכן בלבד).
**שדות:**
`uri`: <class 'str'>
`entity_type`: <class 'str'>
`action`: <class 'str'>
`arguments`: <class 'str'>
`thought`: <class 'str'>
`observation`: <class 'str'>
### שיטות
### `__init__(self, uri: str, entity_type: str = '', action: str = '', arguments: str = '', thought: str = '', observation: str = '') -> None`
אתחול עצמי. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
--
## `Conclusion`
```python
from trustgraph.api import Conclusion
```
סיכום - תשובה סופית (לסוכן בלבד).
**שדות:**
`uri`: <class 'str'>
`entity_type`: <class 'str'>
`document`: <class 'str'>
### שיטות
### `__init__(self, uri: str, entity_type: str = '', document: str = '') -> None`
אתחול self. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
--
## `EdgeSelection`
```python
from trustgraph.api import EdgeSelection
```
צומת שנבחר עם הסבר משלב GraphRAG Focus.
**שדות:**
`uri`: <class 'str'>
`edge`: typing.Dict[str, str] | None
`reasoning`: <class 'str'>
### שיטות
### `__init__(self, uri: str, edge: Dict[str, str] | None = None, reasoning: str = '') -> None`
אתחול self. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
--
### `wire_triples_to_tuples(wire_triples: List[Dict[str, Any]]) -> List[Tuple[str, str, Any]]`
המרת משולשות בפורמט wire לטופלים (s, p, o).
--
### `extract_term_value(term: Dict[str, Any]) -> Any`
חילוץ ערך ממילון Term בפורמט wire.
--
## `Triple`
```python
from trustgraph.api import Triple
```
משפט גרף ידע המיוצג על ידי טריפל RDF.
**שדות:**
`s`: <class 'str'>
`p`: <class 'str'>
`o`: <class 'str'>
### שיטות
### `__init__(self, s: str, p: str, o: str) -> None`
אתחול self. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
--
## `Uri`
```python
from trustgraph.api import Uri
```
str(object='') -> str
str(bytes_or_buffer[, encoding[, errors]]) -> str
יצירת אובייקט מחרוזת חדש מהאובייקט הנתון. אם צוינו קידוד (encoding) או
טיפול בשגיאות (errors), אז האובייקט חייב לחשוף מאגר נתונים
שייקוד באמצעות הקידוד ומטפל השגיאות שצוינו.
אחרת, מוחזר התוצאה של object.__str__() (אם מוגדר)
או repr(object).
ברירת המחדל של הקידוד היא 'utf-8'.
ברירת המחדל של טיפול בשגיאות היא 'strict'.
### שיטות
### `is_literal(self)`
### `is_triple(self)`
### `is_uri(self)`
--
## `Literal`
```python
from trustgraph.api import Literal
```
str(object='') -> str
str(bytes_or_buffer[, encoding[, errors]]) -> str
יצירת אובייקט מחרוזת חדש מהאובייקט הנתון. אם צוינו קידוד (encoding) או
טיפול בשגיאות (errors), אז האובייקט חייב לחשוף מאגר נתונים
שייקוד באמצעות הקידוד ומטפל השגיאות שצוינו.
אחרת, מוחזר התוצאה של object.__str__() (אם מוגדר)
או repr(object).
ברירת המחדל של קידוד היא 'utf-8'.
ברירת המחדל של טיפול בשגיאות היא 'strict'.
### שיטות
### `is_literal(self)`
### `is_triple(self)`
### `is_uri(self)`
--
## `ConfigKey`
```python
from trustgraph.api import ConfigKey
```
מזהה מפתח תצורה.
**שדות:**
`type`: <class 'str'>
`key`: <class 'str'>
### שיטות
### `__init__(self, type: str, key: str) -> None`
אתחול self. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
--
## `ConfigValue`
```python
from trustgraph.api import ConfigValue
```
זוג מפתח-ערך של תצורה.
**שדות:**
`type`: <class 'str'>
`key`: <class 'str'>
`value`: <class 'str'>
### שיטות
### `__init__(self, type: str, key: str, value: str) -> None`
אתחול self. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
--
## `DocumentMetadata`
```python
from trustgraph.api import DocumentMetadata
```
מטא-נתונים עבור מסמך בספרייה.
**תכונות:**
`parent_id: Parent document ID for child documents (empty for top`: level docs)
**שדות:**
`id`: <class 'str'>
`time`: <class 'datetime.datetime'>
`kind`: <class 'str'>
`title`: <class 'str'>
`comments`: <class 'str'>
`metadata`: typing.List[trustgraph.api.types.Triple]
`user`: <class 'str'>
`tags`: typing.List[str]
`parent_id`: <class 'str'>
`document_type`: <class 'str'>
### שיטות
### `__init__(self, id: str, time: datetime.datetime, kind: str, title: str, comments: str, metadata: List[trustgraph.api.types.Triple], user: str, tags: List[str], parent_id: str = '', document_type: str = 'source') -> None`
אתחול self. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
--
## `ProcessingMetadata`
```python
from trustgraph.api import ProcessingMetadata
```
מטא-נתונים עבור משימת עיבוד מסמכים פעילה.
**שדות:**
`id`: <class 'str'>
`document_id`: <class 'str'>
`time`: <class 'datetime.datetime'>
`flow`: <class 'str'>
`user`: <class 'str'>
`collection`: <class 'str'>
`tags`: typing.List[str]
### שיטות
### `__init__(self, id: str, document_id: str, time: datetime.datetime, flow: str, user: str, collection: str, tags: List[str]) -> None`
אתחול self. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
--
## `CollectionMetadata`
```python
from trustgraph.api import CollectionMetadata
```
מטא-נתונים עבור אוסף נתונים.
אוספים מספקים קיבוץ והפרדה לוגיים עבור מסמכים ונתוני גרף ידע.
**תכונות:**
`name: Human`: שם אוסף הניתן לקריאה
**שדות:**
`user`: <class 'str'>
`collection`: <class 'str'>
`name`: <class 'str'>
`description`: <class 'str'>
`tags`: typing.List[str]
### שיטות
### `__init__(self, user: str, collection: str, name: str, description: str, tags: List[str]) -> None`
אתחול self. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
--
## `StreamingChunk`
```python
from trustgraph.api import StreamingChunk
```
מחלקה בסיסית עבור חלקי תגובה בסטרימינג.
משמשת לפעולות סטרימינג מבוססות WebSocket שבהן התגובות מועברות
בהדרגה כשהן נוצרות.
**שדות:**
`content`: <class 'str'>
`end_of_message`: <class 'bool'>
### שיטות
### `__init__(self, content: str, end_of_message: bool = False) -> None`
אתחול עצמי. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
--
## `AgentThought`
```python
from trustgraph.api import AgentThought
```
קטע של נימוקים/תהליך חשיבה של הסוכן.
מייצג את תהליך החשיבה או שלבי התכנון הפנימיים של הסוכן במהלך הביצוע.
קטעים אלה מראים כיצד הסוכן חושב על הבעיה.
**שדות:**
`content`: <class 'str'>
`end_of_message`: <class 'bool'>
`chunk_type`: <class 'str'>
### שיטות
### `__init__(self, content: str, end_of_message: bool = False, chunk_type: str = 'thought') -> None`
אתחול עצמי. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
--
## `AgentObservation`
```python
from trustgraph.api import AgentObservation
```
קטע תצפית על ביצוע כלי.
מייצג את התוצאה או התצפית מהפעלת כלי או פעולה.
קטעים אלה מציגים מה שהסוכן למד משימוש בכלים.
**שדות:**
`content`: <class 'str'>
`end_of_message`: <class 'bool'>
`chunk_type`: <class 'str'>
### שיטות
### `__init__(self, content: str, end_of_message: bool = False, chunk_type: str = 'observation') -> None`
אתחול self. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
--
## `AgentAnswer`
```python
from trustgraph.api import AgentAnswer
```
חלק תשובה סופי של הסוכן.
מייצג את התגובה הסופית של הסוכן למשאלה של המשתמש לאחר השלמת
הניתוח והשימוש בכלי.
**מאפיינים:**
`chunk_type: Always "final`: answer"
**שדות:**
`content`: <class 'str'>
`end_of_message`: <class 'bool'>
`chunk_type`: <class 'str'>
`end_of_dialog`: <class 'bool'>
### שיטות
### `__init__(self, content: str, end_of_message: bool = False, chunk_type: str = 'final-answer', end_of_dialog: bool = False) -> None`
אתחול self. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
--
## `RAGChunk`
```python
from trustgraph.api import RAGChunk
```
מקטע סטרימינג של RAG (יצירת טקסט מועשרת בשליפה).
משמש למענה סטרימינג מ-RAG גרפי, RAG של מסמכים, השלמת טקסט,
ושירותי יצירה אחרים.
**שדות:**
`content`: <class 'str'>
`end_of_message`: <class 'bool'>
`chunk_type`: <class 'str'>
`end_of_stream`: <class 'bool'>
`error`: typing.Dict[str, str] | None
### שיטות
### `__init__(self, content: str, end_of_message: bool = False, chunk_type: str = 'rag', end_of_stream: bool = False, error: Dict[str, str] | None = None) -> None`
אתחול עצמי. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
--
## `ProvenanceEvent`
```python
from trustgraph.api import ProvenanceEvent
```
אירוע מקור עבור הסברתיות.
נשלח במהלך שאילתות GraphRAG כאשר מצב ההסבר מופעל.
כל אירוע מייצג צומת מקור שנוצר במהלך עיבוד השאילתה.
**שדות:**
`explain_id`: <class 'str'>
`explain_graph`: <class 'str'>
`event_type`: <class 'str'>
### שיטות
### `__init__(self, explain_id: str, explain_graph: str = '', event_type: str = '') -> None`
אתחול self. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
--
## `ProtocolException`
```python
from trustgraph.api import ProtocolException
```
מופעל כאשר מתרחשות שגיאות בפרוטוקול WebSocket.
--
## `TrustGraphException`
```python
from trustgraph.api import TrustGraphException
```
מחלקה בסיסית עבור כל שגיאות השירות של TrustGraph.
--
## `AgentError`
```python
from trustgraph.api import AgentError
```
שגיאת שירות סוכן
--
## `ConfigError`
```python
from trustgraph.api import ConfigError
```
שגיאת שירות תצורה
--
## `DocumentRagError`
```python
from trustgraph.api import DocumentRagError
```
שגיאת שליפה של מסמכים.
--
## `FlowError`
```python
from trustgraph.api import FlowError
```
שגיאת ניהול זרימה
--
## `GatewayError`
```python
from trustgraph.api import GatewayError
```
שגיאת שער API
--
## `GraphRagError`
```python
from trustgraph.api import GraphRagError
```
שגיאת שליפה של גרף RAG
--
## `LLMError`
```python
from trustgraph.api import LLMError
```
שגיאת שירות מודל שפה גדול (LLM).
--
## `LoadError`
```python
from trustgraph.api import LoadError
```
שגיאת טעינת נתונים
--
## `LookupError`
```python
from trustgraph.api import LookupError
```
שגיאת חיפוש/איתור
--
## `NLPQueryError`
```python
from trustgraph.api import NLPQueryError
```
שגיאת שירות שאילתות NLP.
--
## `RowsQueryError`
```python
from trustgraph.api import RowsQueryError
```
שגיאת שירות שאילתות שורות
--
## `RequestError`
```python
from trustgraph.api import RequestError
```
שגיאת עיבוד בקשה
--
## `StructuredQueryError`
```python
from trustgraph.api import StructuredQueryError
```
שגיאת שירות שאילתות מובנה.
--
## `UnexpectedError`
```python
from trustgraph.api import UnexpectedError
```
שגיאה בלתי צפויה/לא ידועה
--
## `ApplicationException`
```python
from trustgraph.api import ApplicationException
```
מחלקה בסיסית עבור כל שגיאות השירות של TrustGraph.
--