mirror of
https://github.com/trustgraph-ai/trustgraph.git
synced 2026-04-25 08:26:21 +02:00
4079 lines
125 KiB
Markdown
4079 lines
125 KiB
Markdown
|
|
---
|
||
|
|
layout: default
|
||
|
|
title: "مرجع واجهة برمجة التطبيقات (API) الخاصة بـ TrustGraph بلغة بايثون."
|
||
|
|
parent: "Arabic (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)`
|
||
|
|
|
||
|
|
تهيئة عميل واجهة برمجة تطبيقات TrustGraph.
|
||
|
|
|
||
|
|
**الوسائط:**
|
||
|
|
|
||
|
|
`url`: عنوان URL الأساسي لواجهة برمجة تطبيقات TrustGraph (الافتراضي: "http://localhost:8088/"")
|
||
|
|
`timeout`: المهلة الزمنية للطلبات بالثواني (الافتراضي: 60)
|
||
|
|
`token`: رمز مميز اختياري للمصادقة
|
||
|
|
|
||
|
|
**مثال:**
|
||
|
|
|
||
|
|
```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 مع دعم البث.
|
||
|
|
هذه هي الطريقة المفضلة للبث غير المتزامن في Python.
|
||
|
|
|
||
|
|
**المرتجعات:** 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: عميل إدارة المجموعة.
|
||
|
|
|
||
|
|
**مثال:**
|
||
|
|
|
||
|
|
```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: عميل إدارة التكوين.
|
||
|
|
|
||
|
|
**مثال:**
|
||
|
|
|
||
|
|
```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 منخفض المستوى.
|
||
|
|
|
||
|
|
هذه الطريقة مخصصة بشكل أساسي للاستخدام الداخلي ولكن يمكن استخدامها للوصول المباشر إلى
|
||
|
|
واجهة برمجة التطبيقات عند الحاجة.
|
||
|
|
|
||
|
|
**الوسائط:**
|
||
|
|
|
||
|
|
`path`: مسار نقطة نهاية واجهة برمجة التطبيقات (بالنسبة لعنوان URL الأساسي)
|
||
|
|
`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`: معرف مثيل العملية
|
||
|
|
|
||
|
|
**الإرجاع:** قاموس: تعريف مثيل العملية
|
||
|
|
|
||
|
|
**مثال:**
|
||
|
|
|
||
|
|
```python
|
||
|
|
flow_def = api.flow().get("default")
|
||
|
|
print(flow_def)
|
||
|
|
```
|
||
|
|
|
||
|
|
### `get_blueprint(self, blueprint_name)`
|
||
|
|
|
||
|
|
الحصول على تعريف مخطط تدفق بالاسم.
|
||
|
|
|
||
|
|
**الوسائط:**
|
||
|
|
|
||
|
|
`blueprint_name`: اسم المخطط المراد استرجاعه.
|
||
|
|
|
||
|
|
**الإرجاع:** قاموس: تعريف المخطط كقاموس.
|
||
|
|
|
||
|
|
**مثال:**
|
||
|
|
|
||
|
|
```python
|
||
|
|
blueprint = api.flow().get_blueprint("default")
|
||
|
|
print(blueprint) # Blueprint configuration
|
||
|
|
```
|
||
|
|
|
||
|
|
### `id(self, id='default')`
|
||
|
|
|
||
|
|
الحصول على مثيل تدفق لتنفيذ العمليات على تدفق معين.
|
||
|
|
|
||
|
|
**الوسائط:**
|
||
|
|
|
||
|
|
`id`: مُعرّف التدفق (الافتراضي: "default")
|
||
|
|
|
||
|
|
**الإرجاع:** FlowInstance: مثيل التدفق لعمليات الخدمة
|
||
|
|
|
||
|
|
**مثال:**
|
||
|
|
|
||
|
|
```python
|
||
|
|
flow = api.flow().id("my-flow")
|
||
|
|
response = flow.text_completion(
|
||
|
|
system="You are helpful",
|
||
|
|
prompt="Hello"
|
||
|
|
)
|
||
|
|
```
|
||
|
|
|
||
|
|
### `list(self)`
|
||
|
|
|
||
|
|
عرض جميع مثيلات التدفق النشطة.
|
||
|
|
|
||
|
|
**النتائج:** list[str]: قائمة بمعرفات مثيلات التدفق.
|
||
|
|
|
||
|
|
**مثال:**
|
||
|
|
|
||
|
|
```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) ضمن نطاق التدفق.
|
||
|
|
|
||
|
|
**الوسائط:**
|
||
|
|
|
||
|
|
`path`: لاحقة مسار اختيارية لنقاط نهاية التدفق.
|
||
|
|
`request`: قاموس حمولة الطلب.
|
||
|
|
|
||
|
|
**الإرجاع:** dict: كائن الاستجابة.
|
||
|
|
|
||
|
|
**الاستثناءات:**
|
||
|
|
|
||
|
|
`RuntimeError`: إذا لم يتم تحديد معلمة الطلب.
|
||
|
|
|
||
|
|
### `start(self, blueprint_name, id, description, parameters=None)`
|
||
|
|
|
||
|
|
بدء مثيل تدفق جديد من مخطط.
|
||
|
|
|
||
|
|
**الوسائط:**
|
||
|
|
|
||
|
|
`blueprint_name`: اسم المخطط المراد إنشاؤه.
|
||
|
|
`id`: معرف فريد لمثيل التدفق.
|
||
|
|
`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
|
||
|
|
```
|
||
|
|
|
||
|
|
عميل مثيل التدفق لتنفيذ الخدمات في تدفق معين.
|
||
|
|
|
||
|
|
توفر هذه الفئة الوصول إلى جميع خدمات TrustGraph بما في ذلك:
|
||
|
|
إكمال النص والتضمينات.
|
||
|
|
عمليات الوكيل مع إدارة الحالة.
|
||
|
|
استعلامات Graph و RAG للوثائق.
|
||
|
|
عمليات الرسم البياني المعرفي (ثلاثيات، كائنات).
|
||
|
|
تحميل الوثائق ومعالجتها.
|
||
|
|
تحويل اللغة الطبيعية إلى استعلام GraphQL.
|
||
|
|
تحليل البيانات المنظمة واكتشاف المخطط.
|
||
|
|
تنفيذ أداة MCP.
|
||
|
|
قالب المطالبات.
|
||
|
|
|
||
|
|
يتم الوصول إلى الخدمات من خلال مثيل تدفق قيد التشغيل يتم تحديده بواسطة معرّف.
|
||
|
|
|
||
|
|
### الطرق
|
||
|
|
|
||
|
|
### `__init__(self, api, id)`
|
||
|
|
|
||
|
|
تهيئة FlowInstance.
|
||
|
|
|
||
|
|
**الوسائط:**
|
||
|
|
|
||
|
|
`api`: عميل التدفق الرئيسي.
|
||
|
|
`id`: معرّف مثيل التدفق.
|
||
|
|
|
||
|
|
### `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 و score.
|
||
|
|
|
||
|
|
**مثال:**
|
||
|
|
|
||
|
|
```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).
|
||
|
|
|
||
|
|
يستخدم الرسم البياني 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، صور، إلخ) لاستخراج ومعالجة
|
||
|
|
من خلال مسار المستند الخاص بالتدفق.
|
||
|
|
|
||
|
|
**الوسائط:**
|
||
|
|
|
||
|
|
`document`: محتوى المستند كبايت.
|
||
|
|
`id`: مُعرّف المستند الاختياري (يتم إنشاؤه تلقائيًا إذا كان فارغًا).
|
||
|
|
`metadata`: بيانات وصفية اختيارية (قائمة من الثلاثيات أو كائن مع طريقة الإرسال).
|
||
|
|
`user`: مُعرّف المستخدم/مساحة المفاتيح (اختياري).
|
||
|
|
`collection`: مُعرّف المجموعة (اختياري).
|
||
|
|
|
||
|
|
**الإرجاع:** قاموس: استجابة المعالجة.
|
||
|
|
|
||
|
|
**يُثير:**
|
||
|
|
|
||
|
|
`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)`
|
||
|
|
|
||
|
|
تحميل محتوى نصي للمعالجة.
|
||
|
|
|
||
|
|
تحميل محتوى نصي لاستخلاصه ومعالجته من خلال مسار المعالجة النصية.
|
||
|
|
|
||
|
|
|
||
|
|
**الوسائط:**
|
||
|
|
|
||
|
|
`text`: محتوى نصي كبايت.
|
||
|
|
`id`: مُعرّف المستند الاختياري (يتم إنشاؤه تلقائيًا إذا كان فارغًا).
|
||
|
|
`metadata`: بيانات وصفية اختيارية (قائمة من الثلاثيات أو كائن مع طريقة الإرسال).
|
||
|
|
`charset`: ترميز الأحرف (افتراضي: "utf-8").
|
||
|
|
`user`: مُعرّف المستخدم/مساحة المفاتيح (اختياري).
|
||
|
|
`collection`: مُعرّف المجموعة (اختياري).
|
||
|
|
|
||
|
|
**الإرجاع:** قاموس: استجابة المعالجة.
|
||
|
|
|
||
|
|
**الأخطاء:**
|
||
|
|
|
||
|
|
`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={})`
|
||
|
|
|
||
|
|
تنفيذ أداة بروتوكول سياق النموذج (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')`
|
||
|
|
|
||
|
|
تنفيذ سؤال بلغة طبيعية مقابل بيانات منظمة.
|
||
|
|
يجمع بين تحويل استعلام معالجة اللغة الطبيعية وتنفيذ GraphQL.
|
||
|
|
|
||
|
|
**الوسائط:**
|
||
|
|
|
||
|
|
`question`: سؤال بلغة طبيعية
|
||
|
|
`user`: معرف مساحة مفاتيح Cassandra (افتراضي: "trustgraph")
|
||
|
|
`collection`: معرف مجموعة البيانات (افتراضي: "default")
|
||
|
|
|
||
|
|
**الإرجاع:** قاموس يحتوي على البيانات والأخطاء الاختيارية.
|
||
|
|
|
||
|
|
### `text_completion(self, system, prompt)`
|
||
|
|
|
||
|
|
تنفيذ إكمال نص باستخدام نموذج اللغة الكبير (LLM) الخاص بالتدفق.
|
||
|
|
|
||
|
|
**الوسائط:**
|
||
|
|
|
||
|
|
`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`: معرف الموضوع (اختياري، استخدم None للرمز بدل)
|
||
|
|
`p`: معرف الفاعل (اختياري، استخدم None للرمز بدل)
|
||
|
|
`o`: معرف المفعول به أو حرفي (اختياري، استخدم 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.
|
||
|
|
|
||
|
|
يوفر عمليات إدارة التدفق المستندة إلى `async/await` بما في ذلك عمليات القائمة،
|
||
|
|
والبدء، والإيقاف، وإدارة تعريفات فئات التدفق. كما يوفر
|
||
|
|
الوصول إلى الخدمات الخاصة بنطاق التدفق مثل الوكلاء، وRAG، والاستعلامات عبر نقاط نهاية REST غير متدفقة.
|
||
|
|
|
||
|
|
|
||
|
|
ملاحظة: للحصول على دعم التدفق، استخدم `AsyncSocketClient` بدلاً من ذلك.
|
||
|
|
|
||
|
|
### الطرق
|
||
|
|
|
||
|
|
### `__init__(self, url: str, timeout: int, token: str | None) -> None`
|
||
|
|
|
||
|
|
تهيئة عميل التدفق غير المتزامن.
|
||
|
|
|
||
|
|
**الوسائط:**
|
||
|
|
|
||
|
|
`url`: عنوان URL الأساسي لواجهة برمجة تطبيقات TrustGraph.
|
||
|
|
`timeout`: المهلة المطلوبة بالثواني.
|
||
|
|
`token`: رمز مميز اختياري للمصادقة.
|
||
|
|
|
||
|
|
### `aclose(self) -> None`
|
||
|
|
|
||
|
|
إغلاق العميل غير المتزامن وتنظيف الموارد.
|
||
|
|
|
||
|
|
ملاحظة: يتم التعامل مع التنظيف تلقائيًا بواسطة مديري سياق جلسة `aiohttp`.
|
||
|
|
تم توفير هذه الطريقة لضمان الاتساق مع العملاء غير المتزامنين الآخرين.
|
||
|
|
|
||
|
|
### `delete_class(self, class_name: str)`
|
||
|
|
|
||
|
|
حذف تعريف فئة تدفق.
|
||
|
|
|
||
|
|
يزيل مخطط فئة التدفق من النظام. لا يؤثر على
|
||
|
|
مثيلات التدفق قيد التشغيل.
|
||
|
|
|
||
|
|
**الوسائط:**
|
||
|
|
|
||
|
|
`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)`
|
||
|
|
|
||
|
|
احصل على مثيل عميل التدفق غير المتزامن.
|
||
|
|
|
||
|
|
يُرجع عميلاً للتفاعل مع خدمات تدفق معين (وكيل، واسترجاع المعلومات، والاستعلامات، والتضمينات، إلخ).
|
||
|
|
|
||
|
|
|
||
|
|
**الوسائط:**
|
||
|
|
|
||
|
|
`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]`
|
||
|
|
|
||
|
|
قم بإدراج جميع معرفات التدفق.
|
||
|
|
|
||
|
|
يسترجع معرفات جميع التدفقات المنشورة حاليًا في النظام.
|
||
|
|
|
||
|
|
**الإرجاع:** 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) الخاصة بالبوابة.
|
||
|
|
|
||
|
|
طريقة داخلية لإجراء طلبات مصادقة إلى واجهة برمجة التطبيقات (API) الخاصة بـ TrustGraph.
|
||
|
|
|
||
|
|
**الوسائط:**
|
||
|
|
|
||
|
|
`path`: مسار نقطة نهاية واجهة برمجة التطبيقات (API) (بالنسبة إلى عنوان URL الأساسي).
|
||
|
|
`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`: عميل التدفق غير المتزامن الرئيسي.
|
||
|
|
`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)`
|
||
|
|
|
||
|
|
توليد تضمينات للنصوص المدخلة.
|
||
|
|
|
||
|
|
تحويل النصوص إلى تمثيلات متجهة رقمية باستخدام نموذج التضمين المُكوّن في التدفق.
|
||
|
|
مفيد للبحث الدلالي ومقارنات التشابه.
|
||
|
|
|
||
|
|
|
||
|
|
**الوسائط:**
|
||
|
|
|
||
|
|
`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]`
|
||
|
|
|
||
|
|
إرسال طلب إلى خدمة ذات نطاق محدد.
|
||
|
|
|
||
|
|
طريقة داخلية لاستدعاء الخدمات داخل مثيل التدفق هذا.
|
||
|
|
|
||
|
|
**الوسائط:**
|
||
|
|
|
||
|
|
`service`: اسم الخدمة (مثل، "agent"، "graph-rag"، "triples")
|
||
|
|
`request_data`: حمولة طلب الخدمة
|
||
|
|
|
||
|
|
**الإرجاع:** dict: كائن استجابة الخدمة
|
||
|
|
|
||
|
|
**يُصدر:**
|
||
|
|
|
||
|
|
`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`: موجه النظام الذي يحدد سلوك نموذج اللغة الكبير.
|
||
|
|
`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،
|
||
|
|
مع تغليف مكتبة WebSocket غير المتزامنة باستخدام مولدات متزامنة لسهولة الاستخدام.
|
||
|
|
يدعم عمليات البث من الوكلاء، واستعلامات RAG، وإكمال النصوص.
|
||
|
|
|
||
|
|
ملاحظة: هذا هو غلاف متزامن لعمليات WebSocket غير المتزامنة. للحصول على دعم غير متزامن حقيقي، استخدم AsyncSocketClient بدلاً من ذلك.
|
||
|
|
|
||
|
|
### الطرق
|
||
|
|
|
||
|
|
|
||
|
|
### `__init__(self, url: str, timeout: int, token: str | None) -> None`
|
||
|
|
|
||
|
|
تهيئة عميل WebSocket متزامن.
|
||
|
|
|
||
|
|
**الوسائط:**
|
||
|
|
|
||
|
|
`url`: عنوان URL الأساسي لواجهة برمجة تطبيقات TrustGraph (سيتم تحويل HTTP/HTTPS إلى WS/WSS).
|
||
|
|
`timeout`: مهلة WebSocket بالثواني.
|
||
|
|
`token`: رمز مميز اختياري للمصادقة.
|
||
|
|
|
||
|
|
### `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`: عميل المقبس الأبوي.
|
||
|
|
`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`: قاموس حالة اختياري للمحادثات التي تعتمد على الحالة.
|
||
|
|
`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]`
|
||
|
|
|
||
|
|
تنفيذ عملية وكيل مع دعم الشفافية.
|
||
|
|
|
||
|
|
يقوم بإرسال كل من أجزاء المحتوى (أفكار الوكيل، ملاحظات الوكيل، إجابات الوكيل)
|
||
|
|
وأحداث المصدر (ProvenanceEvent). تحتوي أحداث المصدر على عناوين URI
|
||
|
|
يمكن استردادها باستخدام ExplainabilityClient للحصول على معلومات تفصيلية
|
||
|
|
حول عملية تفكير الوكيل.
|
||
|
|
|
||
|
|
يتكون تتبع الوكيل من:
|
||
|
|
الجلسة: السؤال الأولي وبيانات تعريف الجلسة.
|
||
|
|
التكرارات: كل دورة من الأفكار/الإجراءات/الملاحظات.
|
||
|
|
الاستنتاج: الإجابة النهائية.
|
||
|
|
|
||
|
|
**الوسائط:**
|
||
|
|
|
||
|
|
`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`: معلمات إضافية يتم تمريرها إلى الخدمة
|
||
|
|
|
||
|
|
**الإرجاع:** قاموس: نتائج الاستعلام مع معرفات الأجزاء لأجزاء المستندات المطابقة
|
||
|
|
|
||
|
|
**مثال:**
|
||
|
|
|
||
|
|
```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 يعتمد على المستندات مع خيار التدفق.
|
||
|
|
|
||
|
|
يستخدم تضمينات المتجهات للعثور على أجزاء المستندات ذات الصلة، ثم يقوم بإنشاء
|
||
|
|
استجابة باستخدام نموذج لغوي كبير. يوفر وضع التدفق النتائج بشكل تدريجي.
|
||
|
|
|
||
|
|
**الوسائط:**
|
||
|
|
|
||
|
|
`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 للمستند من:
|
||
|
|
السؤال: استعلام المستخدم.
|
||
|
|
الاستكشاف: الأجزاء المستردة من مستودع المستندات (عدد الأجزاء).
|
||
|
|
التوليف: الإجابة التي تم إنشاؤها.
|
||
|
|
|
||
|
|
**الوسائط:**
|
||
|
|
|
||
|
|
`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`: معلمات إضافية يتم تمريرها إلى الخدمة.
|
||
|
|
|
||
|
|
**الإرجاع:** قاموس: استجابة تحتوي على المتجهات (مجموعة واحدة لكل نص مدخل).
|
||
|
|
|
||
|
|
**مثال:**
|
||
|
|
|
||
|
|
```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 يعتمد على الرسم البياني مع خيار التدفق.
|
||
|
|
|
||
|
|
يستخدم هيكل الرسم البياني للمعرفة للعثور على السياق ذي الصلة، ثم يقوم بإنشاء
|
||
|
|
استجابة باستخدام نموذج لغوي كبير. يوفر وضع التدفق النتائج بشكل تدريجي.
|
||
|
|
|
||
|
|
**الوسائط:**
|
||
|
|
|
||
|
|
`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 للرمز البري.
|
||
|
|
`p`: عامل تصفية المسند - سلسلة URI، أو قاموس مصطلحات، أو None للرمز البري.
|
||
|
|
`o`: عامل تصفية الكائن - سلسلة URI/حرفية، أو قاموس مصطلحات، أو None للرمز البري.
|
||
|
|
`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 للرمز البرمجي.
|
||
|
|
`p`: عامل تصفية المسند - سلسلة URI، أو قاموس مصطلحات، أو None للرمز البرمجي.
|
||
|
|
`o`: عامل تصفية الكائن - سلسلة URI/حرفية، أو قاموس مصطلحات، أو None للرمز البرمجي.
|
||
|
|
`g`: عامل تصفية الرسم البياني المسمى - سلسلة URI أو None لجميع الرسوم البيانية.
|
||
|
|
`user`: معرف المستخدم/مساحة المفاتيح (اختياري).
|
||
|
|
`collection`: معرف المجموعة (اختياري).
|
||
|
|
`limit`: الحد الأقصى للنتائج المراد إرجاعها (الافتراضي: 100).
|
||
|
|
`batch_size`: الثلاثيات لكل دفعة (الافتراضي: 20).
|
||
|
|
`**kwargs`: معلمات إضافية يتم تمريرها إلى الخدمة.
|
||
|
|
`Yields`:
|
||
|
|
`List[Dict]`: دفعات من الثلاثيات بتنسيق السلك.
|
||
|
|
|
||
|
|
**مثال:**
|
||
|
|
|
||
|
|
```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)`
|
||
|
|
|
||
|
|
تهيئة الكائن الذاتي. راجع 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 بتنسيق سلكي من قيمة.
|
||
|
|
|
||
|
|
قواعد الكشف التلقائي (عندما يكون term_type هو None):
|
||
|
|
إذا كان بالفعل قاموسًا مع مفتاح 't' -> إرجاعه كما هو (قاموس Term بالفعل)
|
||
|
|
يبدأ بـ http://, https://, urn: -> IRI
|
||
|
|
محاط بأقواس الزاوية (مثل <http://...>) -> IRI (إزالة أقواس الزاوية)
|
||
|
|
أي شيء آخر -> حرفي
|
||
|
|
|
||
|
|
**الوسائط:**
|
||
|
|
|
||
|
|
`value`: قيمة المصطلح (سلسلة، قاموس، أو None)
|
||
|
|
`term_type`: واحد من 'iri'، 'literal'، أو None للكشف التلقائي
|
||
|
|
`datatype`: نوع البيانات للكائنات الحرفية (مثل xsd:integer)
|
||
|
|
`language`: علامة اللغة للكائنات الحرفية (مثل en)
|
||
|
|
|
||
|
|
**الإرجاع:** قاموس: قاموس Term بتنسيق سلكي، أو None إذا كانت القيمة هي None
|
||
|
|
|
||
|
|
|
||
|
|
--
|
||
|
|
|
||
|
|
## `BulkClient`
|
||
|
|
|
||
|
|
```python
|
||
|
|
from trustgraph.api import BulkClient
|
||
|
|
```
|
||
|
|
|
||
|
|
عميل للعمليات المجمعة المتزامنة للاستيراد/التصدير.
|
||
|
|
|
||
|
|
يوفر نقل بيانات مجمع فعال عبر WebSocket لمجموعات البيانات الكبيرة.
|
||
|
|
يغلف عمليات WebSocket غير المتزامنة باستخدام مولدات متزامنة لسهولة الاستخدام.
|
||
|
|
|
||
|
|
ملاحظة: للحصول على دعم غير متزامن حقيقي، استخدم AsyncBulkClient بدلاً من ذلك.
|
||
|
|
|
||
|
|
### الطرق
|
||
|
|
|
||
|
|
### `__init__(self, url: str, timeout: int, token: str | None) -> None`
|
||
|
|
|
||
|
|
تهيئة عميل مجمع متزامن.
|
||
|
|
|
||
|
|
**الوسائط:**
|
||
|
|
|
||
|
|
`url`: عنوان URL الأساسي لواجهة برمجة تطبيقات TrustGraph (سيتم تحويل HTTP/HTTPS إلى WS/WSS).
|
||
|
|
`timeout`: مهلة WebSocket بالثواني.
|
||
|
|
`token`: رمز مميز اختياري للمصادقة.
|
||
|
|
|
||
|
|
### `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 و metadata والمستخدم والمجموعة.
|
||
|
|
`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`
|
||
|
|
|
||
|
|
تهيئة الكائن الذاتي. راجع 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`
|
||
|
|
|
||
|
|
احصل على مقاييس بروميثيوس كنص.
|
||
|
|
|
||
|
|
|
||
|
|
--
|
||
|
|
|
||
|
|
## `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 لجلسة/سؤال الوكيل.
|
||
|
|
`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 مع اختيارات الحواف المعبأة، أو 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`
|
||
|
|
|
||
|
|
تهيئة الذات. راجع 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`
|
||
|
|
|
||
|
|
تهيئة الذات. راجع 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`
|
||
|
|
|
||
|
|
تهيئة الذات. راجع help(type(self)) للحصول على التوقيع الدقيق.
|
||
|
|
|
||
|
|
|
||
|
|
--
|
||
|
|
|
||
|
|
### `wire_triples_to_tuples(wire_triples: List[Dict[str, Any]]) -> List[Tuple[str, str, Any]]`
|
||
|
|
|
||
|
|
تحويل الثلاثيات بتنسيق الأسلاك إلى صفوف (s, p, o).
|
||
|
|
|
||
|
|
|
||
|
|
--
|
||
|
|
|
||
|
|
### `extract_term_value(term: Dict[str, Any]) -> Any`
|
||
|
|
|
||
|
|
استخراج القيمة من قاموس Term بتنسيق الأسلاك.
|
||
|
|
|
||
|
|
|
||
|
|
--
|
||
|
|
|
||
|
|
## `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`
|
||
|
|
|
||
|
|
تهيئة الذات. راجع help(type(self)) للحصول على التوقيع الدقيق.
|
||
|
|
|
||
|
|
|
||
|
|
--
|
||
|
|
|
||
|
|
## `Uri`
|
||
|
|
|
||
|
|
```python
|
||
|
|
from trustgraph.api import Uri
|
||
|
|
```
|
||
|
|
|
||
|
|
str(object='') -> str
|
||
|
|
str(bytes_or_buffer[, encoding[, errors]]) -> str
|
||
|
|
|
||
|
|
إنشاء كائن سلسلة جديد من الكائن المعطى. إذا تم تحديد ترميز أو
|
||
|
|
معالج أخطاء، فيجب أن يعرض الكائن مخزن بيانات سيتم فك ترميزه باستخدام الترميز ومعالج الأخطاء المحددين.
|
||
|
|
بخلاف ذلك، يتم إرجاع نتيجة 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
|
||
|
|
|
||
|
|
إنشاء كائن سلسلة جديد من الكائن المعطى. إذا تم تحديد ترميز أو
|
||
|
|
معالجة الأخطاء، فيجب أن يعرض الكائن مخزن بيانات سيتم فك ترميزه باستخدام الترميز ومعالج الأخطاء المحدد.
|
||
|
|
بخلاف ذلك، يتم إرجاع نتيجة 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`
|
||
|
|
|
||
|
|
تهيئة الذات. راجع 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`
|
||
|
|
|
||
|
|
تهيئة الذات. راجع help(type(self)) للحصول على التوقيع الدقيق.
|
||
|
|
|
||
|
|
|
||
|
|
--
|
||
|
|
|
||
|
|
## `DocumentMetadata`
|
||
|
|
|
||
|
|
```python
|
||
|
|
from trustgraph.api import DocumentMetadata
|
||
|
|
```
|
||
|
|
|
||
|
|
بيانات وصفية لـمستند في المكتبة.
|
||
|
|
|
||
|
|
**الخصائص:**
|
||
|
|
|
||
|
|
`parent_id: Parent document ID for child documents (empty for top`: (مستوى المستندات)
|
||
|
|
|
||
|
|
**الحقول:**
|
||
|
|
|
||
|
|
`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`
|
||
|
|
|
||
|
|
تهيئة الذات. راجع 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`
|
||
|
|
|
||
|
|
تهيئة الذات. راجع 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
|
||
|
|
```
|
||
|
|
|
||
|
|
تدفق جزء (Chunk) لـ 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`
|
||
|
|
|
||
|
|
تهيئة الذات (self). راجع 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`
|
||
|
|
|
||
|
|
تهيئة الذات. راجع 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 Gateway).
|
||
|
|
|
||
|
|
|
||
|
|
--
|
||
|
|
|
||
|
|
## `GraphRagError`
|
||
|
|
|
||
|
|
```python
|
||
|
|
from trustgraph.api import GraphRagError
|
||
|
|
```
|
||
|
|
|
||
|
|
خطأ استرجاع الرسوم البيانية.
|
||
|
|
|
||
|
|
|
||
|
|
--
|
||
|
|
|
||
|
|
## `LLMError`
|
||
|
|
|
||
|
|
```python
|
||
|
|
from trustgraph.api import LLMError
|
||
|
|
```
|
||
|
|
|
||
|
|
خطأ في خدمة نموذج اللغة الكبير.
|
||
|
|
|
||
|
|
|
||
|
|
--
|
||
|
|
|
||
|
|
## `LoadError`
|
||
|
|
|
||
|
|
```python
|
||
|
|
from trustgraph.api import LoadError
|
||
|
|
```
|
||
|
|
|
||
|
|
خطأ في تحميل البيانات.
|
||
|
|
|
||
|
|
|
||
|
|
--
|
||
|
|
|
||
|
|
## `LookupError`
|
||
|
|
|
||
|
|
```python
|
||
|
|
from trustgraph.api import LookupError
|
||
|
|
```
|
||
|
|
|
||
|
|
خطأ في البحث/الاستعلام.
|
||
|
|
|
||
|
|
|
||
|
|
--
|
||
|
|
|
||
|
|
## `NLPQueryError`
|
||
|
|
|
||
|
|
```python
|
||
|
|
from trustgraph.api import NLPQueryError
|
||
|
|
```
|
||
|
|
|
||
|
|
خطأ في خدمة الاستعلام عن معالجة اللغة الطبيعية.
|
||
|
|
|
||
|
|
|
||
|
|
--
|
||
|
|
|
||
|
|
## `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.
|
||
|
|
|
||
|
|
|
||
|
|
--
|