mirror of
https://github.com/trustgraph-ai/trustgraph.git
synced 2026-04-25 08:26:21 +02:00
Native CLI i18n: The TrustGraph CLI has built-in translation support that dynamically loads language strings. You can test and use different languages by simply passing the --lang flag (e.g., --lang es for Spanish, --lang ru for Russian) or by configuring your environment's LANG variable. Automated Docs Translations: This PR introduces autonomously translated Markdown documentation into several target languages, including Spanish, Swahili, Portuguese, Turkish, Hindi, Hebrew, Arabic, Simplified Chinese, and Russian.
4078 lines
104 KiB
Markdown
4078 lines
104 KiB
Markdown
---
|
|
layout: default
|
|
title: "Marejeleo ya API ya Python ya TrustGraph"
|
|
parent: "Swahili (Beta)"
|
|
---
|
|
|
|
# Marejeleo ya API ya Python ya 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.
|
|
|
|
## Ufungaji
|
|
|
|
```bash
|
|
pip install trustgraph
|
|
```
|
|
|
|
## Kuanza Haraka
|
|
|
|
Madarasa na aina zote zinaingizwa kutoka kwenye kifurushi cha `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"
|
|
)
|
|
```
|
|
|
|
## Jina la Yaliyomo
|
|
|
|
### Msingi
|
|
|
|
[Api](#api)
|
|
|
|
### Wateja wa Flow
|
|
|
|
[Flow](#flow)
|
|
[FlowInstance](#flowinstance)
|
|
[AsyncFlow](#asyncflow)
|
|
[AsyncFlowInstance](#asyncflowinstance)
|
|
|
|
### Wateja wa WebSocket
|
|
|
|
[SocketClient](#socketclient)
|
|
[SocketFlowInstance](#socketflowinstance)
|
|
[AsyncSocketClient](#asyncsocketclient)
|
|
[AsyncSocketFlowInstance](#asyncsocketflowinstance)
|
|
|
|
### Operesheni za Kiasi
|
|
|
|
[BulkClient](#bulkclient)
|
|
[AsyncBulkClient](#asyncbulkclient)
|
|
|
|
### Vipimo
|
|
|
|
[Metrics](#metrics)
|
|
[AsyncMetrics](#asyncmetrics)
|
|
|
|
### Aina za Data
|
|
|
|
[Triple](#triple)
|
|
[ConfigKey](#configkey)
|
|
[ConfigValue](#configvalue)
|
|
[DocumentMetadata](#documentmetadata)
|
|
[ProcessingMetadata](#processingmetadata)
|
|
[CollectionMetadata](#collectionmetadata)
|
|
[StreamingChunk](#streamingchunk)
|
|
[AgentThought](#agentthought)
|
|
[AgentObservation](#agentobservation)
|
|
[AgentAnswer](#agentanswer)
|
|
[RAGChunk](#ragchunk)
|
|
|
|
### Vizuizi
|
|
|
|
[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
|
|
```
|
|
|
|
Mteja mkuu wa API ya TrustGraph kwa operesheni za synchronous na asynchronous.
|
|
|
|
Darasa hili hutoa ufikiaji kwa huduma zote za TrustGraph, pamoja na usimamizi wa mtiririko,
|
|
operesheni za grafu ya maarifa, usindikaji wa hati, maswali ya RAG, na zaidi. Inasaidia
|
|
mifumo ya mawasiliano ya msingi wa REST na WebSocket.
|
|
|
|
Mteja unaweza kutumika kama meneja wa muktadha kwa usafi wa kiotomatiki wa rasilimali:
|
|
```python
|
|
with Api(url="http://localhost:8088/") as api:
|
|
result = api.flow().id("default").graph_rag(query="test")
|
|
```
|
|
|
|
### Mbinu
|
|
|
|
### `__aenter__(self)`
|
|
|
|
Ingia katika meneja wa muktadha wa asinkroni.
|
|
|
|
### `__aexit__(self, *args)`
|
|
|
|
Ondoka katika meneja wa muktadha wa asinkroni na ufungue miunganisho.
|
|
|
|
### `__enter__(self)`
|
|
|
|
Ingia katika meneja wa muktadha wa sinkroni.
|
|
|
|
### `__exit__(self, *args)`
|
|
|
|
Ondoka katika meneja wa muktadha wa sinkroni na ufungue miunganisho.
|
|
|
|
### `__init__(self, url='http://localhost:8088/', timeout=60, token: str | None = None)`
|
|
|
|
Anzisha mteja wa API ya TrustGraph.
|
|
|
|
**Vigezo:**
|
|
|
|
`url`: URL ya msingi kwa API ya TrustGraph (kiwango chachilia: "http://localhost:8088/"")
|
|
`timeout`: Muda wa kikao wa ombi katika sekunde (kiwango chachilia: 60)
|
|
`token`: Tokeni ya kuhudhuria ya hiari kwa uthibitishaji
|
|
|
|
**Mfano:**
|
|
|
|
```python
|
|
# Local development
|
|
api = Api()
|
|
|
|
# Production with authentication
|
|
api = Api(
|
|
url="https://trustgraph.example.com/",
|
|
timeout=120,
|
|
token="your-api-token"
|
|
)
|
|
```
|
|
|
|
### `aclose(self)`
|
|
|
|
Funga miunganisho yote ya mteja isiyo ya kawaida.
|
|
|
|
Njia hii inafunga miunganisho ya WebSocket isiyo ya kawaida, operesheni kubwa, na miunganisho ya mtiririko.
|
|
Inaitwa kiotomatiki wakati wa kutoka katika meneja wa muktadha usio wa kawaida.
|
|
|
|
**Mfano:**
|
|
|
|
```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)`
|
|
|
|
Pata mteja wa operesheni za wingi zisizo za moja kwa moja.
|
|
|
|
Hutoa operesheni za uagizaji/uangamizi za wingi kwa mtindo wa async/await kupitia WebSocket
|
|
kwa ajili ya usimamizi bora wa data kubwa.
|
|
|
|
**Inarudisha:** AsyncBulkClient: Mteja wa operesheni za wingi zisizo za moja kwa moja.
|
|
|
|
**Mfano:**
|
|
|
|
```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)`
|
|
|
|
Pata mteja wa mtiririko (flow) unaotumia REST na unaoweza kufanya kazi bila kusubiri.
|
|
|
|
Hutoa ufikiaji wa operesheni za mtiririko kwa mtindo wa async/await. Hii inapendelewa
|
|
kwa programu na mifumo ya Python inayotumia async (FastAPI, aiohttp, n.k.).
|
|
|
|
**Inarudisha:** AsyncFlow: Mteja wa mtiririko (flow) usiofanya kazi bila kusubiri.
|
|
|
|
**Mfano:**
|
|
|
|
```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)`
|
|
|
|
Pata mteja wa metriki zisizo za moja kwa moja.
|
|
|
|
Hutoa ufikiaji wa mtindo wa async/await kwa metriki za Prometheus.
|
|
|
|
**Inarudisha:** AsyncMetrics: Mteja wa metriki zisizo za moja kwa moja.
|
|
|
|
**Mfano:**
|
|
|
|
```python
|
|
async_metrics = api.async_metrics()
|
|
prometheus_text = await async_metrics.get()
|
|
print(prometheus_text)
|
|
```
|
|
|
|
### `async_socket(self)`
|
|
|
|
Pata mteja wa WebSocket usio na utaratibu kwa operesheni za utiririshaji.
|
|
|
|
Hutoa ufikiaji wa WebSocket wa aina ya async/await pamoja na usaidizi wa utiririshaji.
|
|
Hii ndiyo njia inayopendekezwa kwa utiririshaji usio na utaratibu katika Python.
|
|
|
|
**Inarudisha:** AsyncSocketClient: Mteja wa WebSocket usio na utaratibu.
|
|
|
|
**Mfano:**
|
|
|
|
```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)`
|
|
|
|
Pata mteja wa shughuli za wingi za moja kwa moja kwa ajili ya uagizaji/utoaji.
|
|
|
|
Shughuli za wingi huruhusu uhamishaji wa ufanisi wa data kubwa kupitia muunganisho wa WebSocket,
|
|
ikiwa ni pamoja na vitu vitatu, maandamano, muktadha wa vitu, na vitu.
|
|
|
|
**Inarudisha:** BulkClient: Mteja wa shughuli za wingi za moja kwa moja.
|
|
|
|
**Mfano:**
|
|
|
|
```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)`
|
|
|
|
Funga miunganisho yote ya mteja ya wakati huo.
|
|
|
|
Njia hii inafunga miunganisho ya WebSocket na miunganisho ya operesheni kubwa.
|
|
Inaitwa kiotomatiki wakati wa kutoka katika meneja wa muktadha.
|
|
|
|
**Mfano:**
|
|
|
|
```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)`
|
|
|
|
Pata mteja wa Collection kwa ajili ya kusimamia makusanyo ya data.
|
|
|
|
Makusanyo huandaa hati na data ya mfumo wa maarifa katika
|
|
vikundi vya mantiki kwa ajili ya kutenganisha na udhibiti wa ufikiaji.
|
|
|
|
**Inarudisha:** Collection: Mteja wa usimamizi wa Collection
|
|
|
|
**Mfano:**
|
|
|
|
```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)`
|
|
|
|
Pata mteja wa Config kwa ajili ya kusimamia mipangilio.
|
|
|
|
**Inarudisha:** Config: Mteja wa usimamizi wa mipangilio.
|
|
|
|
**Mfano:**
|
|
|
|
```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)`
|
|
|
|
Pata programu (client) ya Flow kwa ajili ya kusimamia na kuingiliana na michakato.
|
|
|
|
Michakato (Flows) ni vitengo vikuu vya utekelezaji katika TrustGraph, ikitoa ufikiaji kwa
|
|
huduma kama vile wakala, maswali ya RAG, maandamano, na usindikaji wa nyaraka.
|
|
|
|
**Inarudisha:** Flow: Programu ya usimamizi wa Flow.
|
|
|
|
**Mfano:**
|
|
|
|
```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)`
|
|
|
|
Pata mteja wa Knowledge kwa ajili ya kusimamia msingi wa grafu ya maarifa.
|
|
|
|
**Inarudisha:** Mteja wa usimamizi wa grafu ya maarifa: Knowledge
|
|
|
|
**Mfano:**
|
|
|
|
```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)`
|
|
|
|
Pata mteja wa Maktaba kwa usimamizi wa nyaraka.
|
|
|
|
Maktaba hutoa uhifadhi wa nyaraka, usimamizi wa metadata, na
|
|
uratibu wa mtiririko wa kazi.
|
|
|
|
**Inarudisha:** Library: Mteja wa usimamizi wa maktaba ya nyaraka.
|
|
|
|
**Mfano:**
|
|
|
|
```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)`
|
|
|
|
Pata mteja wa metriki wa moja kwa moja kwa ajili ya ufuatiliaji.
|
|
|
|
Hupata metriki zilizofunganishwa kwa muundo wa Prometheus kutoka kwa huduma ya TrustGraph
|
|
kwa ajili ya ufuatiliaji na uwezeshaji.
|
|
|
|
**Inarudisha:** Metri: Mteja wa metriki wa moja kwa moja
|
|
|
|
**Mfano:**
|
|
|
|
```python
|
|
metrics = api.metrics()
|
|
prometheus_text = metrics.get()
|
|
print(prometheus_text)
|
|
```
|
|
|
|
### `request(self, path, request)`
|
|
|
|
Fanya ombi la API ya REST ya kiwango cha chini.
|
|
|
|
Njia hii hutumika hasa kwa matumizi ya ndani, lakini inaweza kutumika kwa ufikiaji wa moja kwa moja
|
|
wa API wakati inahitajika.
|
|
|
|
**Vigezo:**
|
|
|
|
`path`: Njia ya mwisho ya API (kulingana na URL ya msingi)
|
|
`request`: Takwimu ya ombi kama kamusi
|
|
|
|
**Inarudisha:** dict: Kijisimu cha majibu
|
|
|
|
**Inatirisha:**
|
|
|
|
`ProtocolException`: Ikiwa hali ya majibu si 200 au majibu hayana umbizo la JSON
|
|
`ApplicationException`: Ikiwa majibu yana kosa
|
|
|
|
**Mfano:**
|
|
|
|
```python
|
|
response = api.request("flow", {
|
|
"operation": "list-flows"
|
|
})
|
|
```
|
|
|
|
### `socket(self)`
|
|
|
|
Pata mteja wa WebSocket wa aina ya moja kwa shughuli za utiririshaji.
|
|
|
|
Miunganisho ya WebSocket hutoa utiifu wa data kwa majibu ya muda halisi
|
|
kutoka kwa wakala, maswali ya RAG, na kukamilisha maandishi. Njia hii inarudisha
|
|
kifungashio cha aina ya moja kilichozunguka itifaki ya WebSocket.
|
|
|
|
**Inarudisha:** SocketClient: Mteja wa WebSocket wa aina ya moja.
|
|
|
|
**Mfano:**
|
|
|
|
```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
|
|
```
|
|
|
|
Mteja wa usimamizi wa mtiririko kwa operesheni za muundo na mfano wa mtiririko.
|
|
|
|
Darasa hili hutoa mbinu za kusimamia muundo wa mtiririko (vipengele) na
|
|
mifano ya mtiririko (mitiririko inayoendelea). Vipengele vinafafanua muundo na
|
|
vigezo vya mitiririko, wakati mifano inawakilisha mitiririko inayofanya kazi ambayo
|
|
inaweza kutekeleza huduma.
|
|
|
|
### Mbinu
|
|
|
|
### `__init__(self, api)`
|
|
|
|
Anzisha mteja wa mtiririko.
|
|
|
|
**Majadiliano:**
|
|
|
|
`api`: Eneo la awali la Api kwa kutuma ombi.
|
|
|
|
### `delete_blueprint(self, blueprint_name)`
|
|
|
|
Futa muundo wa mtiririko.
|
|
|
|
**Majadiliano:**
|
|
|
|
`blueprint_name`: Jina la muundo kufutwa.
|
|
|
|
**Mfano:**
|
|
|
|
```python
|
|
api.flow().delete_blueprint("old-blueprint")
|
|
```
|
|
|
|
### `get(self, id)`
|
|
|
|
Pata ufafanuzi wa mfano unaoendelea.
|
|
|
|
**Vigezo:**
|
|
|
|
`id`: Kitambulisho cha mfano.
|
|
|
|
**Inarudisha:** dict: Ufafanuzi wa mfano.
|
|
|
|
**Mfano:**
|
|
|
|
```python
|
|
flow_def = api.flow().get("default")
|
|
print(flow_def)
|
|
```
|
|
|
|
### `get_blueprint(self, blueprint_name)`
|
|
|
|
Pata ufafanuzi wa mpango (blueprint) kwa jina.
|
|
|
|
**Vigezo:**
|
|
|
|
`blueprint_name`: Jina la mpango (blueprint) ambao unataka kupata
|
|
|
|
**Inarudisha:** dict: Ufafanuzi wa mpango (blueprint) kama kamusi.
|
|
|
|
**Mfano:**
|
|
|
|
```python
|
|
blueprint = api.flow().get_blueprint("default")
|
|
print(blueprint) # Blueprint configuration
|
|
```
|
|
|
|
### `id(self, id='default')`
|
|
|
|
Pata FlowInstance ili kutekeleza shughuli kwenye mtiririko maalum.
|
|
|
|
**Vigezo:**
|
|
|
|
`id`: Kitambulisho cha mtiririko (cha kawaida: "default")
|
|
|
|
**Inarudisha:** FlowInstance: Mtiririko wa huduma kwa shughuli.
|
|
|
|
**Mfano:**
|
|
|
|
```python
|
|
flow = api.flow().id("my-flow")
|
|
response = flow.text_completion(
|
|
system="You are helpful",
|
|
prompt="Hello"
|
|
)
|
|
```
|
|
|
|
### `list(self)`
|
|
|
|
Orodha ya matukio yote yanayoendelea.
|
|
|
|
**Inarudisha:** list[str]: Orodha ya kitambulisho cha matukio.
|
|
|
|
**Mfano:**
|
|
|
|
```python
|
|
flows = api.flow().list()
|
|
print(flows) # ['default', 'flow-1', 'flow-2', ...]
|
|
```
|
|
|
|
### `list_blueprints(self)`
|
|
|
|
Orodha ya mipango yote ya mtiririko inayopatikana.
|
|
|
|
**Inarudisha:** list[str]: Orodha ya majina ya mipango
|
|
|
|
**Mfano:**
|
|
|
|
```python
|
|
blueprints = api.flow().list_blueprints()
|
|
print(blueprints) # ['default', 'custom-flow', ...]
|
|
```
|
|
|
|
### `put_blueprint(self, blueprint_name, definition)`
|
|
|
|
Kuunda au kusasisha mpango wa mtiririko.
|
|
|
|
**Vigezo:**
|
|
|
|
`blueprint_name`: Jina la mpango
|
|
`definition`: Kamusi ya ufafanuzi wa mpango
|
|
|
|
**Mfano:**
|
|
|
|
```python
|
|
definition = {
|
|
"services": ["text-completion", "graph-rag"],
|
|
"parameters": {"model": "gpt-4"}
|
|
}
|
|
api.flow().put_blueprint("my-blueprint", definition)
|
|
```
|
|
|
|
### `request(self, path=None, request=None)`
|
|
|
|
Fanya ombi la API katika eneo maalum.
|
|
|
|
**Vigezo:**
|
|
|
|
`path`: Ongeza ya hiari kwa njia za mwisho za eneo.
|
|
`request`: Kamusi ya data ya ombi.
|
|
|
|
**Inarudisha:** dict: Kitu kinachojibu.
|
|
|
|
**Inayotokea:**
|
|
|
|
`RuntimeError`: Ikiwa parameter ya ombi haijatolewa.
|
|
|
|
### `start(self, blueprint_name, id, description, parameters=None)`
|
|
|
|
Anza eneo jipya kutoka kwa mpango.
|
|
|
|
**Vigezo:**
|
|
|
|
`blueprint_name`: Jina la mpango ambao utaanzishwa.
|
|
`id`: Kitambulisho cha kipekee kwa eneo.
|
|
`description`: Maelezo ambayo yanaweza kueleweka.
|
|
`parameters`: Vigezo vya hiari.
|
|
|
|
**Mfano:**
|
|
|
|
```python
|
|
api.flow().start(
|
|
blueprint_name="default",
|
|
id="my-flow",
|
|
description="My custom flow",
|
|
parameters={"model": "gpt-4"}
|
|
)
|
|
```
|
|
|
|
### `stop(self, id)`
|
|
|
|
Kusimamisha mfumo unaoendelea.
|
|
|
|
**Vigezo:**
|
|
|
|
`id`: Kitambulisho cha mfumo unaoendelea ili kusimamishwa.
|
|
|
|
**Mfano:**
|
|
|
|
```python
|
|
api.flow().stop("my-flow")
|
|
```
|
|
|
|
|
|
--
|
|
|
|
## `FlowInstance`
|
|
|
|
```python
|
|
from trustgraph.api import FlowInstance
|
|
```
|
|
|
|
Mteja wa mfumo (flow) kwa kutekeleza huduma kwenye mfumo maalum.
|
|
|
|
Darasa hili hutoa ufikiaji kwa huduma zote za TrustGraph, pamoja na:
|
|
Kukamilisha maandishi na uwekaji wa data (embeddings)
|
|
Utendaji wa wakala (agent) pamoja na usimamizi wa hali (state)
|
|
Ufuatiliaji wa maswali (queries) ya RAG kwa grafu na nyaraka
|
|
Utendaji wa grafu ya maarifa (triples, vitu)
|
|
Kupakua na kuchakata nyaraka
|
|
Ubadilishaji wa lugha ya asili kuwa swali la GraphQL
|
|
Uchambuzi wa data iliyopangwa na utambuzi wa muundo (schema)
|
|
Utendaji wa zana ya MCP
|
|
Ubunifu wa kigezo cha swali (prompt templating)
|
|
|
|
Huduma zinapatikana kupitia mfumo unaoendelea (flow instance) unaotambulika na kitambulisho (ID).
|
|
|
|
### Mbinu (Methods)
|
|
|
|
### `__init__(self, api, id)`
|
|
|
|
Anzisha FlowInstance.
|
|
|
|
**Majadilisho:**
|
|
|
|
`api`: Mteja wa mfumo (flow) wa juu.
|
|
`id`: Kitambulisho cha mfumo unaoendelea (flow instance).
|
|
|
|
### `agent(self, question, user='trustgraph', state=None, group=None, history=None)`
|
|
|
|
Tekeleza utendaji wa wakala (agent) pamoja na uwezo wa kufikiri na kutumia zana.
|
|
|
|
Wakala wanaweza kufanya utafakari wa hatua nyingi, kutumia zana, na kudumisha mazungumzo
|
|
hali katika mwingiliano. Hii ni toleo la moja kwa moja (synchronous) lisilo na utiririshaji (non-streaming).
|
|
|
|
**Majadilisho:**
|
|
|
|
`question`: Swali au maagizo ya mtumiaji.
|
|
`user`: Kitambulisho cha mtumiaji (default: "trustgraph")
|
|
`state`: Kamusi ya hali (state) ya hiari kwa mazungumzo yenye hali.
|
|
`group`: Kitambulisho cha kikundi cha hiari kwa muktadha wa watumiaji wengi.
|
|
`history`: Historia ya mazungumzo ya hiari kama orodha ya maneno ya kamusi.
|
|
|
|
**Inarudisha:** string: Jibu la mwisho la wakala.
|
|
|
|
**Mfano:**
|
|
|
|
```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)`
|
|
|
|
Gundua aina ya data ya sampuli ya data iliyohifadhiwa.
|
|
|
|
**Vigezo:**
|
|
|
|
`sample`: Sampuli ya data kuchanganua (yaliyomo katika maandishi)
|
|
|
|
**Inarudisha:** kamusi yenye aina_iliyogunduliwa, uaminifu, na metadata ya hiari
|
|
|
|
### `diagnose_data(self, sample, schema_name=None, options=None)`
|
|
|
|
Fanya uchunguzi wa pamoja wa data: gundua aina na uundue maelezo.
|
|
|
|
**Vigezo:**
|
|
|
|
`sample`: Sampuli ya data kuchanganua (yaliyomo katika maandishi)
|
|
`schema_name`: Jina la schema ya lengo la hiari kwa uundaji wa maelezo
|
|
`options`: Vigezo vya hiari (k.m., kigawanyo kwa CSV)
|
|
|
|
**Inarudisha:** kamusi yenye aina_iliyogunduliwa, uaminifu, maelezo, na metadata
|
|
|
|
### `document_embeddings_query(self, text, user, collection, limit=10)`
|
|
|
|
Tafuta vipande vya hati kwa kutumia utofauti wa maana.
|
|
|
|
Inapata vipande vya hati ambavyo yaliyomo katika vipande hivyo yanafanana kwa maana na
|
|
maandishi ya ingizo, kwa kutumia uelekezo wa vector.
|
|
|
|
**Vigezo:**
|
|
|
|
`text`: Maandishi ya swali kwa utafutaji wa maana
|
|
`user`: Kitambulisho cha mtumiaji/nafasi
|
|
`collection`: Kitambulisho cha mkusanyiko
|
|
`limit`: Nambari ya juu ya matokeo (ya kawaida: 10)
|
|
|
|
**Inarudisha:** kamusi: Matokeo ya swali yenye vipande vyenye kitambulisho cha kipande na alama
|
|
|
|
**Mfano:**
|
|
|
|
```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)`
|
|
|
|
Tekeleza swali la Uzalishaji Ulioboreshwa na Utafiti (RAG) linalotegemea nyaraka.
|
|
|
|
RAG ya nyaraka hutumia ufashilia wa vector ili kupata vipande muhimu vya nyaraka,
|
|
kisha huunda jibu kwa kutumia LLM (Large Language Model) kwa kutumia vipande hivyo kama muktadha.
|
|
|
|
**Vigezo:**
|
|
|
|
`query`: Swali katika lugha ya asili
|
|
`user`: Kitambulisho cha mtumiaji/nafasi (cha kawaida: "trustgraph")
|
|
`collection`: Kitambulisho cha mkusanyiko (cha kawaida: "default")
|
|
`doc_limit`: Vipande vingi vya nyaraka ambavyo vitapatikana (cha kawaida: 10)
|
|
|
|
**Inarudisha:** string: Jibu lililoundwa ambalo linajumuisha muktadha wa nyaraka
|
|
|
|
**Mfano:**
|
|
|
|
```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)`
|
|
|
|
Toa ufafanuzi wa vector kwa maandishi moja au zaidi.
|
|
|
|
Hubadilisha maandishi kuwa uwakilishi wa vector mnono unaofaa kwa utafutaji wa maana
|
|
na kulinganisha sawa.
|
|
|
|
**Vigezo:**
|
|
|
|
`texts`: Orodha ya maandishi ya pembeni ambayo yanahitajika kufafanuliwa
|
|
|
|
**Inarudisha:** list[list[list[float]]]: Ufafanuzi wa vector, seti moja kwa kila maandishi ya pembeni
|
|
|
|
**Mfano:**
|
|
|
|
```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)`
|
|
|
|
Tengeneza maelezo kwa ajili ya uhusiano wa data iliyopangwa na mpango maalum.
|
|
|
|
**Vigezo:**
|
|
|
|
`sample`: Sampuli ya data ya kuchambua (maudhui ya maandishi)
|
|
`data_type`: Aina ya data (csv, json, xml)
|
|
`schema_name`: Jina la mpango unaolengwa kwa ajili ya utengenezaji wa maelezo
|
|
`options`: Vigezo vya hiari (k.m., kigawanyo kwa CSV)
|
|
|
|
**Inarudisha:** kamusi yenye maelezo na metadata
|
|
|
|
### `graph_embeddings_query(self, text, user, collection, limit=10)`
|
|
|
|
Tafuta vitu vya grafu ya maarifa kwa kutumia ufanano wa maana.
|
|
|
|
Inatafuta vitu katika grafu ya maarifa ambavyo maelezo yake yanafanana
|
|
na maandishi yaingizwavyo, kwa kutumia uelekezo wa vector.
|
|
|
|
**Vigezo:**
|
|
|
|
`text`: Maandishi ya swali kwa ajili ya utafutaji wa maana
|
|
`user`: Kitambulisho cha mtumiaji/nafasi
|
|
`collection`: Kitambulisho cha mkusanyiko
|
|
`limit`: Nambari ya juu ya matokeo (ya kawaida: 10)
|
|
|
|
**Inarudisha:** kamusi: Matokeo ya swali na vitu vinavyofanana
|
|
|
|
**Mfano:**
|
|
|
|
```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)`
|
|
|
|
Tekeleza swali la Uzalishaji Ulioboreshwa na Utafutaji (RAG) unaotegemea grafu.
|
|
|
|
RAG ya grafu hutumia muundo wa grafu ya maarifa ili kupata muktadha unaohusiana kwa
|
|
kutumia uhusiano wa vitu, kisha huunda jibu kwa kutumia LLM.
|
|
|
|
**Vigezo:**
|
|
|
|
`query`: Swali la lugha ya asili
|
|
`user`: Kitambulisho cha mtumiaji/nafasi (cha kawaida: "trustgraph")
|
|
`collection`: Kitambulisho cha mkusanyiko (cha kawaida: "default")
|
|
`entity_limit`: Vitu vingi zaidi ya kuchuja (cha kawaida: 50)
|
|
`triple_limit`: Triples nyingi zaidi kwa kila kitu (cha kawaida: 30)
|
|
`max_subgraph_size`: Triples jumla nyingi zaidi katika subgraph (cha kawaida: 150)
|
|
`max_path_length`: Kina cha juu zaidi cha utafutaji (cha kawaida: 2)
|
|
|
|
**Inarudisha:** string: Jibu lililoundwa ambalo linajumuisha muktadha wa grafu
|
|
|
|
**Mfano:**
|
|
|
|
```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)`
|
|
|
|
Pakia hati ya binary ili kuendelea na usindikaji.
|
|
|
|
Hupakia hati (PDF, DOCX, picha, n.k.) ili kuchukua maelezo na
|
|
kuendelea na usindikaji kupitia mchakato wa hati.
|
|
|
|
**Vigezo:**
|
|
|
|
`document`: Yaliyomo katika hati kama bytes
|
|
`id`: Kitambulisho cha hati cha hiari (kinatengenezwa kiotomatiki ikiwa hakipo)
|
|
`metadata`: Meta-data ya hiari (orodha ya Triples au kitu na njia ya emit)
|
|
`user`: Kitambulisho cha mtumiaji/nafasi (cha hiari)
|
|
`collection`: Kitambulisho cha mkusanyiko (cha hiari)
|
|
|
|
**Inarudisha:** dict: Jibu la usindikaji
|
|
|
|
**Inatirisha:**
|
|
|
|
`RuntimeError`: Ikiwa meta-data imetolewa bila kitambulisho
|
|
|
|
**Mfano:**
|
|
|
|
```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)`
|
|
|
|
Pakia maudhui ya maandishi kwa ajili ya uchakataji.
|
|
|
|
Hupakia maudhui ya maandishi kwa ajili ya uondoaji na uchakataji kupitia njia ya maandishi ya mtiririko.
|
|
|
|
|
|
**Vigezo:**
|
|
|
|
`text`: Maudhui ya maandishi kama bytes
|
|
`id`: Kitambulisho cha hati cha hiari (kinaundwa kiotomatiki ikiwa hakipo)
|
|
`metadata`: Meta data ya hiari (orodha ya Triples au kitu na njia ya emit)
|
|
`charset`: Ufuatiliaji wa herufi (kiasi: "utf-8")
|
|
`user`: Kitambulisho cha mtumiaji/nafasi (cha hiari)
|
|
`collection`: Kitambulisho cha mkusanyiko (cha hiari)
|
|
|
|
**Inarudisha:** dict: Jibu la uchakataji
|
|
|
|
**Inayotokea:**
|
|
|
|
`RuntimeError`: Ikiwa meta data imetolewa bila kitambulisho
|
|
|
|
**Mfano:**
|
|
|
|
```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={})`
|
|
|
|
Fanya kazi na zana ya Itifaki ya Mfumo (MCP).
|
|
|
|
Zana za MCP hutoa utendakazi unaoweza kupanuliwa kwa wakala na michakato,
|
|
kuruhusu ujumuishaji na mifumo na huduma za nje.
|
|
|
|
**Vigezo:**
|
|
|
|
`name`: Jina/kitambulisho cha zana
|
|
`parameters`: Kamusi ya vigezo vya zana (ya kawaida: {})
|
|
|
|
**Inarudisha:** string au kamusi: Matokeo ya utekelezaji wa zana
|
|
|
|
**Inatirisha:**
|
|
|
|
`ProtocolException`: Ikiwa muundo wa majibu hauna uhakika
|
|
|
|
**Mfano:**
|
|
|
|
```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)`
|
|
|
|
Badilisha swali la lugha ya asili kuwa ombi la GraphQL.
|
|
|
|
**Vigezo:**
|
|
|
|
`question`: Swali la lugha ya asili
|
|
`max_results`: Nambari ya juu ya matokeo yanayorudishwa (ya kawaida: 100)
|
|
|
|
**Inarudisha:** kamusi yenye graphql_query, variables, detected_schemas, uaminifu
|
|
|
|
### `prompt(self, id, variables)`
|
|
|
|
Tekeleza kiolezo cha ombi kwa kubadilisha vigezo.
|
|
|
|
Kiolezo cha ombi huruhusu muundo wa ombi unaoweza kutumika tena na kubadilisha vigezo,
|
|
muhimu kwa uhandisi wa ombi unaoendana.
|
|
|
|
**Vigezo:**
|
|
|
|
`id`: Kitambulisho cha kiolezo cha ombi
|
|
`variables`: Kamusi ya ulinganisho wa jina la kigezo hadi thamani
|
|
|
|
**Inarudisha:** string au kamusi: Matokeo ya ombi yaliyobadilishwa (maandishi au kitu kilicho na muundo)
|
|
|
|
**Inatirisha:**
|
|
|
|
`ProtocolException`: Ikiwa muundo wa jibu sio sahihi
|
|
|
|
**Mfano:**
|
|
|
|
```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)`
|
|
|
|
Toa ombi la huduma katika toleo hili la mtiririko.
|
|
|
|
**Vigezo:**
|
|
|
|
`path`: Njia ya huduma (k.m., "service/text-completion")
|
|
`request`: Kamusi ya data ya ombi
|
|
|
|
**Inarudisha:** dict: Jibu la huduma
|
|
|
|
### `row_embeddings_query(self, text, schema_name, user='trustgraph', collection='default', index_name=None, limit=10)`
|
|
|
|
Tafuta data ya mstari kwa kutumia ufanano wa maana kwenye sehemu zilizofichwa.
|
|
|
|
Inatafuta mistari ambayo maadili ya sehemu zilizofichwa yanafanana kwa maana na
|
|
maandishi ya ingizo, kwa kutumia uelekezo wa vector. Hii inaruhusu utafutaji wa "fuzzy"/maana
|
|
kwenye data iliyopangwa.
|
|
|
|
**Vigezo:**
|
|
|
|
`text`: Maandishi ya swali kwa utafutaji wa maana
|
|
`schema_name`: Jina la mpango wa kutafuta ndani
|
|
`user`: Kitambulisho cha mtumiaji/nafasi (cha kawaida: "trustgraph")
|
|
`collection`: Kitambulisho cha mkusanyiko (cha kawaida: "default")
|
|
`index_name`: Jina la fahirisi la hiari ili kuchuja utafutaji kwa fahirisi maalum
|
|
`limit`: Idadi ya juu ya matokeo (cha kawaida: 10)
|
|
|
|
**Inarudisha:** dict: Matokeo ya utafutaji ambayo yana mechi, na yana index_name, index_value, text, na score
|
|
|
|
**Mfano:**
|
|
|
|
```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)`
|
|
|
|
Tekeleza swali la GraphQL dhidi ya safu zilizopangwa katika grafu ya maarifa.
|
|
|
|
Maswali hutumia data iliyopangwa kwa lugha ya GraphQL, na kuruhusu maswali magumu
|
|
yenye kuchujwa, ukusanyaji, na uhusiano.
|
|
|
|
**Vigezo:**
|
|
|
|
`query`: Mnyororo wa swali la GraphQL
|
|
`user`: Kitambulisho cha mtumiaji/nafasi (cha kawaida: "trustgraph")
|
|
`collection`: Kitambulisho cha mkusanyiko (cha kawaida: "default")
|
|
`variables`: Kamusi ya vigezo vya swali ya hiari
|
|
`operation_name`: Jina la operesheni ya hiari kwa hati za operesheni nyingi
|
|
|
|
**Inarudisha:** dict: Jibu la GraphQL na sehemu za 'data', 'errors', na/au 'extensions'
|
|
|
|
**Inatirisha:**
|
|
|
|
`ProtocolException`: Ikiwa hitilafu ya kiwango cha mfumo hutokea
|
|
|
|
**Mfano:**
|
|
|
|
```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)`
|
|
|
|
Chagua schemas zinazolingana kwa sampuli ya data kwa kutumia uchambuzi wa swali.
|
|
|
|
**Vigezo:**
|
|
|
|
`sample`: Sampuli ya data ya kuchambua (maudhui ya maandishi)
|
|
`options`: Vigezo vya hiari
|
|
|
|
**Inarudisha:** kamusi yenye safu ya schema_matches na metadata
|
|
|
|
### `structured_query(self, question, user='trustgraph', collection='default')`
|
|
|
|
Tekeleza swali la lugha ya asili dhidi ya data iliyopangwa.
|
|
Inachanganya ubadilishaji wa swali la NLP na utekelezaji wa GraphQL.
|
|
|
|
**Vigezo:**
|
|
|
|
`question`: Swali la lugha ya asili
|
|
`user`: Kitambulisho cha nafasi ya Cassandra (cha kawaida: "trustgraph")
|
|
`collection`: Kitambulisho cha mkusanyiko wa data (cha kawaida: "default")
|
|
|
|
**Inarudisha:** kamusi yenye data na makosa yanayohitajika
|
|
|
|
### `text_completion(self, system, prompt)`
|
|
|
|
Tekeleza kukamilisha maandishi kwa kutumia LLM ya mtiririko.
|
|
|
|
**Vigezo:**
|
|
|
|
`system`: Swali la mfumo linalobainisha tabia ya msaidizi
|
|
`prompt`: Swali/swali la mtumiaji
|
|
|
|
**Inarudisha:** maandishi: Jibu lililoundwa
|
|
|
|
**Mfano:**
|
|
|
|
```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)`
|
|
|
|
Tafuta ujuzi wa grapu kwa kutumia utangamano.
|
|
|
|
Inatafuta triplet za RDF zinazofanana na mada, tabia, na/au
|
|
mifumo ya kitu. Vigezo visivyotajwa hufanya kama vichwa vya habari.
|
|
|
|
**Vigezo:**
|
|
|
|
`s`: URI ya mada (hiari, tumia None kwa kichwa cha habari)
|
|
`p`: URI ya tabia (hiari, tumia None kwa kichwa cha habari)
|
|
`o`: URI ya kitu au Literal (hiari, tumia None kwa kichwa cha habari)
|
|
`user`: Kitambulisho cha mtumiaji/nafasi (hiari)
|
|
`collection`: Kitambulisho cha mkusanyiko (hiari)
|
|
`limit`: Matokeo ya juu ya kurejesha (ya kawaida: 10000)
|
|
|
|
**Inarejea:** list[Triple]: Orodha ya vitu vinavyolingana vya Triple
|
|
|
|
**Inatiruka:**
|
|
|
|
`RuntimeError`: Ikiwa s au p si Uri, au o si Uri/Literal
|
|
|
|
**Mfano:**
|
|
|
|
```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
|
|
```
|
|
|
|
Mteja wa usimamizi wa mtiririko usio na usawisi, unaotumia API ya REST.
|
|
|
|
Hutoa operesheni za usimamizi wa mtiririko kulingana na async/await, ikiwa ni pamoja na kuorodhesha,
|
|
kuanzisha, kusimamisha mitiririko, na kusimamia ufafanuzi wa darasa la mtiririko. Pia hutoa
|
|
ufikiaji wa huduma za mtiririko kama vile wakala, RAG, na maswali kupitia sehemu za mwisho za REST ambazo hazitumii utiririshaji.
|
|
|
|
|
|
Kumbuka: Kwa usaidizi wa utiririshaji, tumia AsyncSocketClient badala yake.
|
|
|
|
### Mbinu
|
|
|
|
### `__init__(self, url: str, timeout: int, token: str | None) -> None`
|
|
|
|
Anzisha mteja wa mtiririko usio na usawisi.
|
|
|
|
**Majadiliano:**
|
|
|
|
`url`: URL ya msingi ya API ya TrustGraph
|
|
`timeout`: Muda wa kuchelewa wa ombi kwa sekunde
|
|
`token`: Tokeni ya kuhifadhiwa ya hiari kwa uthibitishaji
|
|
|
|
### `aclose(self) -> None`
|
|
|
|
Funga mteja usio na usawisi na safisha rasilimali.
|
|
|
|
Kumbuka: Usafishaji unashughulikiwa kiotomatiki na meneja wa muktadha wa kikao cha aiohttp.
|
|
Mbinu hii hutolewa kwa utangamano na wateja wengine wasio na usawisi.
|
|
|
|
### `delete_class(self, class_name: str)`
|
|
|
|
Futa ufafanuzi wa darasa la mtiririko.
|
|
|
|
Huondoa mpango wa darasa la mtiririko kutoka kwenye mfumo. Haathiri
|
|
mifano ya mtiririko inayoruka.
|
|
|
|
**Majadiliano:**
|
|
|
|
`class_name`: Jina la darasa la mtiririko kufutwa
|
|
|
|
**Mfano:**
|
|
|
|
```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]`
|
|
|
|
Pata ufafanuzi wa mtiririko.
|
|
|
|
Hupata usanidi kamili wa mtiririko, pamoja na jina lake la darasa,
|
|
maelezo, na vigezo.
|
|
|
|
**Vigezo:**
|
|
|
|
`id`: Kitambulisho cha mtiririko
|
|
|
|
**Inarudisha:** dict: Kitu cha ufafanuzi wa mtiririko
|
|
|
|
**Mfano:**
|
|
|
|
```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]`
|
|
|
|
Pata ufafanuzi wa darasa la mtiririko.
|
|
|
|
Inapata ufafanuzi wa mpango wa darasa la mtiririko, pamoja na
|
|
mpango wake wa usanidi na viunganisho vya huduma.
|
|
|
|
**Vigezo:**
|
|
|
|
`class_name`: Jina la darasa la mtiririko
|
|
|
|
**Inarudisha:** dict: Kitu kinachowakilisha ufafanuzi wa darasa la mtiririko
|
|
|
|
**Mfano:**
|
|
|
|
```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)`
|
|
|
|
Pata mteja wa mtiririko wa async.
|
|
|
|
Inarudisha mteja kwa ajili ya kuingiliana na huduma za mtiririko maalum
|
|
(wakala, RAG, maswali, ufumbuzi, n.k.).
|
|
|
|
**Majadiliano:**
|
|
|
|
`flow_id`: Kitambulisho cha mtiririko
|
|
|
|
**Inarudisha:** AsyncFlowInstance: Mteja kwa operesheni maalum za mtiririko
|
|
|
|
**Mfano:**
|
|
|
|
```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]`
|
|
|
|
Orodha ya kitambulisho cha kila mtiririko.
|
|
|
|
Inapata kitambulisho cha kila mtiririko unaoendeshwa kwa sasa katika mfumo.
|
|
|
|
**Inarudisha:** list[str]: Orodha ya kitambulisho cha mtiririko
|
|
|
|
**Mfano:**
|
|
|
|
```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]`
|
|
|
|
Orodha ya majina yote ya darasa la mtiririko.
|
|
|
|
Inapata majina ya madarasa yote ya mtiririko (mipango) yanayopatikana katika mfumo.
|
|
|
|
**Inarudisha:** list[str]: Orodha ya majina ya darasa la mtiririko.
|
|
|
|
**Mfano:**
|
|
|
|
```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])`
|
|
|
|
Kuunda au kusasisha ufafanuzi wa darasa la mtiririko.
|
|
|
|
Hifadhi mfumo wa darasa la mtiririko ambao unaweza kutumika kuunda mitiririko.
|
|
|
|
**Vigezo:**
|
|
|
|
`class_name`: Jina la darasa la mtiririko
|
|
`definition`: Kifaa cha ufafanuzi cha darasa la mtiririko
|
|
|
|
**Mfano:**
|
|
|
|
```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]`
|
|
|
|
Fanya ombi la HTTP POST lisilo na usumbufu kwa API ya Gateway.
|
|
|
|
Njia ya ndani ya kutuma ombi lililo na uthibitisho kwa API ya TrustGraph.
|
|
|
|
**Vigezo:**
|
|
|
|
`path`: Njia ya mwisho ya API (kulinganisha na URL ya msingi)
|
|
`request_data`: Kamusi ya data inayotumwa kwenye ombi
|
|
|
|
**Inarudisha:** dict: Kielelezo cha majibu kutoka kwa API
|
|
|
|
**Inayotokea:**
|
|
|
|
`ProtocolException`: Ikiwa hali ya HTTP si 200 au majibu hayana umbizo sahihi la JSON
|
|
`ApplicationException`: Ikiwa API inarudisha jibu la kosa
|
|
|
|
### `start(self, class_name: str, id: str, description: str, parameters: Dict | None = None)`
|
|
|
|
Anzisha mfumo mpya wa utekelezaji.
|
|
|
|
Huunda na kuanzisha mfumo kutoka kwa ufafanuzi wa darasa la mfumo pamoja na
|
|
vigezo vilivyoelezwa.
|
|
|
|
**Vigezo:**
|
|
|
|
`class_name`: Jina la darasa la mfumo linalotumiwa
|
|
`id`: Kitambulisho cha mfumo mpya
|
|
`description`: Maelezo yanayoweza kusomwa na binadamu ya mfumo
|
|
`parameters`: Vigezo vya ziada vya usanidi vya mfumo
|
|
|
|
**Mfano:**
|
|
|
|
```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)`
|
|
|
|
Kusimamisha mtiririko unaoendelea.
|
|
|
|
Inasimamisha na kuondoa mfano wa mtiririko, na kutoa rasilimali zake.
|
|
|
|
**Vigezo:**
|
|
|
|
`id`: Kitambulisho cha mtiririko ili kusimamishwa
|
|
|
|
**Mfano:**
|
|
|
|
```python
|
|
async_flow = await api.async_flow()
|
|
|
|
# Stop a flow
|
|
await async_flow.stop("my-flow")
|
|
```
|
|
|
|
|
|
--
|
|
|
|
## `AsyncFlowInstance`
|
|
|
|
```python
|
|
from trustgraph.api import AsyncFlowInstance
|
|
```
|
|
|
|
Mteja wa mfumo wa kazi usiofanyika kwa wakati mmoja.
|
|
|
|
Hutoa ufikiaji wa async/await kwa huduma za mfumo wa kazi, ikiwa ni pamoja na wakala,
|
|
Maswali ya RAG, maandamano, na maswali ya grafu. Operesheni zote hurudisha
|
|
majibu kamili (ya moja kwa moja).
|
|
|
|
Kumbuka: Kwa usaidizi wa utiririshaji, tumia AsyncSocketFlowInstance.
|
|
|
|
### Mbinu
|
|
|
|
### `__init__(self, flow: trustgraph.api.async_flow.AsyncFlow, flow_id: str)`
|
|
|
|
Anzisha mfumo wa kazi usiofanyika kwa wakati mmoja.
|
|
|
|
**Majadiliano:**
|
|
|
|
`flow`: Mteja wa AsyncFlow mkuu
|
|
`flow_id`: Kitambulisho cha mfumo wa kazi
|
|
|
|
### `agent(self, question: str, user: str, state: Dict | None = None, group: str | None = None, history: List | None = None, **kwargs: Any) -> Dict[str, Any]`
|
|
|
|
Fanya operesheni ya wakala (ya moja kwa moja).
|
|
|
|
Huendesha wakala kujibu swali, pamoja na hali ya mazungumzo na
|
|
historia. Inarudisha jibu kamili baada ya wakala kumaliza
|
|
kuchakata.
|
|
|
|
Kumbuka: Njia hii haitumii utiririshaji. Kwa mawazo na matokeo ya wakala
|
|
ya wakati halisi, tumia AsyncSocketFlowInstance.agent() badala yake.
|
|
|
|
**Majadiliano:**
|
|
|
|
`question`: Suali au maagizo ya mtumiaji
|
|
`user`: Kitambulisho cha mtumiaji
|
|
`state`: Kamusi ya hali ya hiari kwa muktadha wa mazungumzo
|
|
`group`: Kitambulisho cha kikundi cha hiari kwa usimamizi wa kikao
|
|
`history`: Orodha ya historia ya mazungumzo ya hiari
|
|
`**kwargs`: Vigezo vya ziada maalum kwa huduma
|
|
|
|
**Inarudisha:** dict: Jibu kamili la wakala ikiwa ni pamoja na jibu na metadata
|
|
|
|
**Mfano:**
|
|
|
|
```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`
|
|
|
|
Fanya swali la RAG (Retrieval-Augmented Generation) linalotegemea hati (si mtiririko).
|
|
|
|
Hufanya Uundaji Ulioboreshwa kwa Upatanishaji kwa kutumia ufichuo wa hati.
|
|
Hupata vipande muhimu vya hati kupitia utafutaji wa maana, kisha huunda
|
|
jibu linalotegemea hati zilizopatikana. Inarudisha jibu kamili.
|
|
|
|
Kumbuka: Njia hii haitumii mtiririko. Kwa majibu ya RAG yanayotumia mtiririko,
|
|
tumia AsyncSocketFlowInstance.document_rag() badala yake.
|
|
|
|
**Vigezo:**
|
|
|
|
`query`: Nakala ya swali la mtumiaji
|
|
`user`: Kitambulisho cha mtumiaji
|
|
`collection`: Kitambulisho cha mkusanyiko unao na hati
|
|
`doc_limit`: Nambari ya juu ya vipande vya hati ambavyo vinaweza kupatikana (kiwango chachilia: 10)
|
|
`**kwargs`: Vigezo vya ziada vinavyohusiana na huduma
|
|
|
|
**Inarudisha:** str: Jibu kamili lililoundwa na linalotegemea data ya hati
|
|
|
|
**Mfano:**
|
|
|
|
```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)`
|
|
|
|
Toa maelezo kwa maandishi ya pembejeo.
|
|
|
|
Hubadilisha maandishi kuwa uwakilishi wa nambari za vector kwa kutumia
|
|
mfumo wa embedding uliopangwa wa mtiririko. Ni muhimu kwa utafutaji wa maana na
|
|
ulinganisho wa alama.
|
|
|
|
**Vigezo:**
|
|
|
|
`texts`: Orodha ya maandishi ya pembejeo ambayo yanahitajika kuwekwa maelezo.
|
|
`**kwargs`: Vigezo vya ziada maalum kwa huduma.
|
|
|
|
**Inarudisha:** dict: Jibu lenye vector za maelezo.
|
|
|
|
**Mfano:**
|
|
|
|
```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)`
|
|
|
|
Tafuta ujumuishi wa grafu kwa ajili ya utafutaji wa vitu vya maana.
|
|
|
|
Hufanya utafutaji wa maana kwenye ujumuishi wa vitu vya grafu ili kupata vitu
|
|
ambavyo ni muhimu zaidi kwa maandishi yaliyopo. Inarudisha vitu vilivyopangwa kwa umuhimu.
|
|
|
|
**Vigezo:**
|
|
|
|
`text`: Maandishi ya swali kwa utafutaji wa maana
|
|
`user`: Kitambulisho cha mtumiaji
|
|
`collection`: Kitambulisho cha mkusanyiko unao na ujumuishi wa grafu
|
|
`limit`: Nambari ya juu ya matokeo yanayorudishwa (ya kawaida: 10)
|
|
`**kwargs`: Vigezo vya ziada maalum kwa huduma
|
|
|
|
**Inarudisha:** dict: Jibu linalo na vitu vinavyolingana vilivyopangwa pamoja na alama za umuhimu
|
|
|
|
**Mfano:**
|
|
|
|
```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`
|
|
|
|
Tekeleza swali la RAG linalotegemea grafu (lisilo na utiririshaji).
|
|
|
|
Hufanya Uundaji Ulioboreshwa na Upatanishaji kwa kutumia data ya grafu ya maarifa.
|
|
Hutambua vitu muhimu na uhusiano wao, kisha huunda
|
|
jibu ambalo limekithiri katika muundo wa grafu. Inarudisha jibu kamili.
|
|
|
|
Kumbuka: Njia hii haitumii utiririshaji. Kwa majibu ya RAG yanayotumia utiririshaji,
|
|
tumia AsyncSocketFlowInstance.graph_rag() badala yake.
|
|
|
|
**Vigezo:**
|
|
|
|
`query`: Nakala ya swali la mtumiaji
|
|
`user`: Kitambulisho cha mtumiaji
|
|
`collection`: Kitambulisho cha mkusanyiko unao na grafu ya maarifa
|
|
`max_subgraph_size`: Nambari ya juu ya triplet kwa kila subgrafu (ya kawaida: 1000)
|
|
`max_subgraph_count`: Nambari ya juu ya subgrafu za kuchukuliwa (ya kawaida: 5)
|
|
`max_entity_distance`: Umbali wa juu wa grafu kwa upanuzi wa vitu (ya kawaida: 3)
|
|
`**kwargs`: Vigezo vya ziada vya huduma maalum
|
|
|
|
**Inarudisha:** string: Jibu kamili lililoundwa ambalo limekithiri katika data ya grafu
|
|
|
|
**Mfano:**
|
|
|
|
```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]`
|
|
|
|
Tafadhali omba huduma iliyo ndani ya eneo la mtiririko.
|
|
|
|
Njia ya ndani ya kuita huduma ndani ya mfano huu wa mtiririko.
|
|
|
|
**Vigezo:**
|
|
|
|
`service`: Jina la huduma (k.m., "agent", "graph-rag", "triples")
|
|
`request_data`: Takwimu ya ombi la huduma
|
|
|
|
**Inarudisha:** dict: Kielelezo cha jibu la huduma
|
|
|
|
**Inatirisha:**
|
|
|
|
`ProtocolException`: Ikiwa ombi halikubaliwi au jibu ni batili
|
|
`ApplicationException`: Ikiwa huduma inarudisha kosa
|
|
|
|
### `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)`
|
|
|
|
Tafuta ujumbe wa mistari ili kutafuta maana katika data iliyopangwa.
|
|
|
|
Hufanya utafutaji wa maana kwenye ujumbe wa mistari ili kupata mistari ambayo
|
|
maadili ya sehemu iliyopangwa ni sawa zaidi na maandishi ya ingizo. Inaruhusu
|
|
utangamano/ufanisi wa maana katika data iliyopangwa.
|
|
|
|
**Vigezo:**
|
|
|
|
`text`: Maandishi ya swali kwa utafutaji wa maana
|
|
`schema_name`: Jina la mpango wa kutafuta ndani
|
|
`user`: Kitambulisho cha mtumiaji (kawaida: "trustgraph")
|
|
`collection`: Kitambulisho cha mkusanyiko (kawaida: "default")
|
|
`index_name`: Jina la faharasa la hiari ili kuchuja utafutaji kwa faharasa maalum
|
|
`limit`: Nambari ya juu ya matokeo ya kurejesha (kawaida: 10)
|
|
`**kwargs`: Vigezo vya ziada vya huduma
|
|
|
|
**Inarudisha:** dict: Jibu linalo na mechi pamoja na index_name, index_value, text, na score
|
|
|
|
**Mfano:**
|
|
|
|
```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)`
|
|
|
|
Tekeleza swali la GraphQL kwenye mistari iliyohifadhiwa.
|
|
|
|
Maswali hutumia mistari iliyo na muundo kwa kutumia sintaksia ya GraphQL. Inasaidia
|
|
maswali magumu yenye vigezo na operesheni zilizo na majina.
|
|
|
|
**Vigezo:**
|
|
|
|
`query`: Mnyororo wa swali la GraphQL
|
|
`user`: Kitambulisho cha mtumiaji
|
|
`collection`: Kitambulisho cha mkusanyiko unao na mistari
|
|
`variables`: Vigezo vya swali la GraphQL vya hiari
|
|
`operation_name`: Jina la operesheni la hiari kwa maswali mengi
|
|
`**kwargs`: Vigezo vya ziada vya mahitaji ya huduma
|
|
|
|
**Inarudisha:** dict: Jibu la GraphQL lenye data na/au makosa
|
|
|
|
**Mfano:**
|
|
|
|
```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`
|
|
|
|
Toa maandishi yaliyokamilika (hayajazalishwa kwa utiririshaji).
|
|
|
|
Huunda jibu la maandishi kutoka kwa mfumo wa LLM (Large Language Model) kwa kutumia maagizo ya mfumo na maagizo ya mtumiaji.
|
|
Inarudisha maandishi kamili ya jibu.
|
|
|
|
Kumbuka: Njia hii haitumii utiririshaji. Kwa utiririshaji wa maandishi,
|
|
tumia AsyncSocketFlowInstance.text_completion() badala yake.
|
|
|
|
**Vigezo:**
|
|
|
|
`system`: Maagizo ya mfumo ambayo yanaeleza tabia ya mfumo wa LLM.
|
|
`prompt`: Maagizo ya mtumiaji au swali.
|
|
`**kwargs`: Vigezo vya ziada ambavyo ni mahususi kwa huduma.
|
|
|
|
**Inarudisha:** str: Jibu kamili la maandishi lililozalishwa.
|
|
|
|
**Mfano:**
|
|
|
|
```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)`
|
|
|
|
Tafuta maneno matatu ya RDF kwa kutumia utambuzi wa muundo.
|
|
|
|
Inatafuta maneno matatu yanayolingana na mada, sifa, na/au
|
|
mifumo ya kitu. Mifumo hutumia "Hakuna" kama ishara ya kujielekeza ili kuangalia thamani yoyote.
|
|
|
|
**Vigezo:**
|
|
|
|
`s`: Mfumo wa mada (Hakuna kwa kujielekeza)
|
|
`p`: Mfumo wa sifa (Hakuna kwa kujielekeza)
|
|
`o`: Mfumo wa kitu (Hakuna kwa kujielekeza)
|
|
`user`: Kitambulisho cha mtumiaji (Hakuna kwa watumiaji wote)
|
|
`collection`: Kitambulisho cha mkusanyiko (Hakuna kwa mkusanyiko wote)
|
|
`limit`: Nambari ya juu ya maneno matatu ya kurejesha (ya kawaida: 100)
|
|
`**kwargs`: Vigezo vya ziada maalum kwa huduma
|
|
|
|
**Inarejea:** dict: Jibu lenye maneno matatu yanayolingana
|
|
|
|
**Mfano:**
|
|
|
|
```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
|
|
```
|
|
|
|
Mteja wa WebSocket wa wakati mmoja kwa operesheni za utiririshaji.
|
|
|
|
Hutoa kiolesura cha wakati mmoja kwa huduma za TrustGraph zinazotegemea WebSocket,
|
|
ikibadilisha maktabu ya websockets ya asinkroni na jenereta za wakati mmoja ili iwe rahisi kutumia.
|
|
Inasaidia majibu ya utiririshaji kutoka kwa wakala, maswali ya RAG, na kukamilisha maandishi.
|
|
|
|
Kumbuka: Hii ni kifungashio cha wakati mmoja kilichoanzishwa kwenye operesheni za WebSocket za asinkroni. Kwa
|
|
usaidizi wa kweli wa asinkroni, tumia AsyncSocketClient badala yake.
|
|
|
|
### Mbinu
|
|
|
|
### `__init__(self, url: str, timeout: int, token: str | None) -> None`
|
|
|
|
Anzisha mteja wa WebSocket wa wakati mmoja.
|
|
|
|
**Majadiliano:**
|
|
|
|
`url`: URL ya msingi kwa API ya TrustGraph (HTTP/HTTPS itabadilishwa kuwa WS/WSS)
|
|
`timeout`: Muda wa kimya wa WebSocket kwa sekunde
|
|
`token`: Tokeni ya kuhifadhia ya hiari kwa uthibitishaji
|
|
|
|
### `close(self) -> None`
|
|
|
|
Funga miunganisho ya WebSocket.
|
|
|
|
Kumbuka: Usafi unashughulikiwa kiotomatiki na wasimamizi wa muktadha katika msimbo wa asinkroni.
|
|
|
|
### `flow(self, flow_id: str) -> 'SocketFlowInstance'`
|
|
|
|
Pata mfano wa mtiririko kwa operesheni za utiririshaji wa WebSocket.
|
|
|
|
**Majadiliano:**
|
|
|
|
`flow_id`: Kitambulisho cha mtiririko
|
|
|
|
**Inarudisha:** SocketFlowInstance: Mfano wa mtiririko na mbinu za utiririshaji
|
|
|
|
**Mfano:**
|
|
|
|
```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
|
|
```
|
|
|
|
Mfumo wa mawasiliano ya WebSocket wa wakati mmoja kwa operesheni za utiririshaji.
|
|
|
|
Hutoa kiolesura sawa na FlowInstance ya REST lakini na msaada wa utiririshaji wa WebSocket
|
|
kwa majibu ya wakati halisi. Mbinu zote zinaunga mkono parameter ya hiari
|
|
`streaming` ili kuwezesha utoaji wa matokeo kwa hatua.
|
|
|
|
### Mbinu
|
|
|
|
### `__init__(self, client: trustgraph.api.socket_client.SocketClient, flow_id: str) -> None`
|
|
|
|
Anzisha mfumo wa utiririshaji wa soketi.
|
|
|
|
**Majadiliano:**
|
|
|
|
`client`: Soketi ya Msimamizi
|
|
`flow_id`: Kitambulisho cha mtiririko
|
|
|
|
### `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]`
|
|
|
|
Fanya operesheni ya wakala na msaada wa utiririshaji.
|
|
|
|
Wakala wanaweza kufanya utaratibu wa hatua kadhaa kwa kutumia zana. Mbinu hii daima
|
|
hurudisha vipande vya utiririshaji (mawazo, uchunguzi, majibu) hata wakati
|
|
streaming=False, ili kuonyesha mchakato wa utafakari wa wakala.
|
|
|
|
**Majadiliano:**
|
|
|
|
`question`: Swali au maagizo ya mtumiaji
|
|
`user`: Kitambulisho cha mtumiaji
|
|
`state`: Kamusi ya hiari ya hali kwa mazungumzo ya hali
|
|
`group`: Kitambulisho cha hiari cha kikundi kwa muktadha wa watumiaji wengi
|
|
`history`: Historia ya hiari ya mazungumzo kama orodha ya maneno
|
|
`streaming`: Washa hali ya utiririshaji (kiasi: False)
|
|
`**kwargs`: Vigezo vya ziada vilivyopitishwa kwa huduma ya wakala
|
|
|
|
**Hurejesha:** Iterator[StreamingChunk]: Mto wa mawazo, uchunguzi, na majibu ya wakala
|
|
|
|
**Mfano:**
|
|
|
|
```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]`
|
|
|
|
Fanya operesheni ya wakala pamoja na ufuatiliaji wa uelewaji.
|
|
|
|
Hutuma vipande vya maudhui (AgentThought, AgentObservation, AgentAnswer)
|
|
na matukio ya asili (ProvenanceEvent). Matukio ya asili yana anwani za mtandao (URIs)
|
|
ambazo zinaweza kupatikana kwa kutumia ExplainabilityClient ili kupata maelezo
|
|
kuhusu mchakato wa utafakari wa wakala.
|
|
|
|
Ufuatiliaji wa wakala una vipengele vifuatavyo:
|
|
Kipindi: Swali la awali na metadata ya kipindi
|
|
Mzunguko: Kila mzunguko wa mawazo/tendo/uchunguzi
|
|
Hitimisho: Jibu la mwisho
|
|
|
|
**Vigezo:**
|
|
|
|
`question`: Swali au maagizo ya mtumiaji
|
|
`user`: Kitambulisho cha mtumiaji
|
|
`collection`: Kitambulisho cha mkusanyiko kwa uhifadhi wa asili
|
|
`state`: Kamusi ya hali inayobadilika (optional) kwa mazungumzo yanayoendelea
|
|
`group`: Kitambulisho cha kikundi (optional) kwa mazingira ya watumiaji wengi
|
|
`history`: Historia ya mazungumzo (optional) kama orodha ya maneno
|
|
`**kwargs`: Vigezo vya ziada ambavyo hutumwa kwa huduma ya wakala
|
|
`Yields`:
|
|
`Union[StreamingChunk, ProvenanceEvent]`: Vipande vya wakala na matukio ya asili
|
|
|
|
**Mfano:**
|
|
|
|
```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]`
|
|
|
|
Tafuta vipande vya hati kwa kutumia utambulisho wa maana.
|
|
|
|
**Vigezo:**
|
|
|
|
`text`: Nakala ya swali kwa utafutaji wa maana
|
|
`user`: Kitambulisho cha mtumiaji/nafasi
|
|
`collection`: Kitambulisho cha mkusanyiko
|
|
`limit`: Nambari ya juu ya matokeo (ya kawaida: 10)
|
|
`**kwargs`: Vigezo vya ziada vilivyopitishwa kwa huduma
|
|
|
|
**Inarudisha:** dict: Matokeo ya swali na kitambulisho cha vipande vya hati vinavyolingana
|
|
|
|
**Mfano:**
|
|
|
|
```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]`
|
|
|
|
Fanya swali la RAG (Retrieval-Augmented Generation) linalotegemea hati, na uwezekano wa kutumia utiririshaji.
|
|
|
|
Hutumia ufashiliaji wa vector ili kupata vipande muhimu vya hati, kisha huunda
|
|
jibu kwa kutumia LLM (Large Language Model). Njia ya utiririshaji huwasilisha matokeo hatua kwa hatua.
|
|
|
|
**Vigezo:**
|
|
|
|
`query`: Swali la lugha ya asili
|
|
`user`: Kitambulisho cha mtumiaji/nafasi
|
|
`collection`: Kitambulisho cha mkusanyiko
|
|
`doc_limit`: Idadi ya juu ya vipande vya hati ambavyo vinaweza kupatikana (kiwango chachilia: 10)
|
|
`streaming`: Washa hali ya utiririshaji (kiwango chachilia: False)
|
|
`**kwargs`: Vigezo vya ziada ambavyo hutumwa kwa huduma
|
|
|
|
**Hurejesha:** Union[str, Iterator[str]]: Jibu kamili au mkondo wa vipande vya maandishi
|
|
|
|
**Mfano:**
|
|
|
|
```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]`
|
|
|
|
Fanya swali la RAG (Retrieval-Augmented Generation) linalotegemea hati na linalo na uwezo wa kueleza.
|
|
|
|
Hutuma vipande vya maudhui (RAGChunk) na matukio ya asili (ProvenanceEvent).
|
|
Matukio ya asili yana anwani za mtandao (URIs) ambazo zinaweza kupatikana kwa kutumia ExplainabilityClient
|
|
ili kupata maelezo ya kina kuhusu jinsi jibu lilivyoundwa.
|
|
|
|
Mfuatiliaji wa RAG wa hati una vipengele vifuatavyo:
|
|
Swali: Swali la mtumiaji
|
|
Uchunguzi: Vipande vilivyopatikana kutoka kwenye hifadhi ya hati (idadi ya vipande)
|
|
Muundo: Jibu lililoundwa
|
|
|
|
**Vigezo:**
|
|
|
|
`query`: Swali kwa lugha ya asili
|
|
`user`: Kitambulisho cha mtumiaji/nafasi
|
|
`collection`: Kitambulisho cha mkusanyiko
|
|
`doc_limit`: Vipande vingi vya hati ambavyo vinaweza kupatikana (kiwango chachilia: 10)
|
|
`**kwargs`: Vigezo vya ziada ambavyo vinatumiwa kwa huduma
|
|
`Yields`:
|
|
`Union[RAGChunk, ProvenanceEvent]`: Vipande vya maudhui na matukio ya asili
|
|
|
|
**Mfano:**
|
|
|
|
```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]`
|
|
|
|
Toa ufafanuzi wa maandishi kwa ajili ya maandishi moja au zaidi.
|
|
|
|
**Vigezo:**
|
|
|
|
`texts`: Orodha ya maandishi ya pembeni ambayo yatatumika kuunda ufafanuzi.
|
|
`**kwargs`: Vigezo vya ziada ambavyo hutumwa kwa huduma.
|
|
|
|
**Inarudisha:** dict: Jibu ambalo lina ufafanuzi (kundi moja kwa kila maandishi ya pembeni).
|
|
|
|
**Mfano:**
|
|
|
|
```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]`
|
|
|
|
Tafuta vitu vya grafu ya maarifa kwa kutumia utambulisho wa maana.
|
|
|
|
**Vigezo:**
|
|
|
|
`text`: Nakala ya swali kwa utafutaji wa maana
|
|
`user`: Kitambulisho cha mtumiaji/nafasi
|
|
`collection`: Kitambulisho cha mkusanyiko
|
|
`limit`: Nambari ya juu ya matokeo (ya kawaida: 10)
|
|
`**kwargs`: Vigezo vya ziada vilivyopitishwa kwa huduma
|
|
|
|
**Inarudisha:** dict: Matokeo ya swali na vitu vinavyofanana
|
|
|
|
**Mfano:**
|
|
|
|
```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]`
|
|
|
|
Tekeleza swali la RAG linalotegemea grafu pamoja na utiririshaji wa hiari.
|
|
|
|
Hutumia muundo wa grafu ya maarifa ili kupata muktadha unaohusika, kisha huunda
|
|
jibu kwa kutumia LLM. Njia ya utiririshaji huwasilisha matokeo hatua kwa hatua.
|
|
|
|
**Vigezo:**
|
|
|
|
`query`: Swali la lugha ya asili
|
|
`user`: Kitambulisho cha mtumiaji/nafasi
|
|
`collection`: Kitambulisho cha mkusanyiko
|
|
`max_subgraph_size`: Idadi ya juu ya triplet katika subgrafu (ya kawaida: 1000)
|
|
`max_subgraph_count`: Idadi ya juu ya subgrafu (ya kawaida: 5)
|
|
`max_entity_distance`: Kina cha juu cha utafutaji (ya kawaida: 3)
|
|
`streaming`: Washa hali ya utiririshaji (ya kawaida: False)
|
|
`**kwargs`: Vigezo vya ziada ambavyo hutumwa kwa huduma
|
|
|
|
**Hurejesha:** Union[str, Iterator[str]]: Jibu kamili au mkondo wa vipande vya maandishi
|
|
|
|
**Mfano:**
|
|
|
|
```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]`
|
|
|
|
Tekeleza swali la RAG linalotegemea grafu pamoja na utumiaji wa uelewaji.
|
|
|
|
Hutiririsha vipande vya maudhui (RAGChunk) na matukio ya asili (ProvenanceEvent).
|
|
Matukio ya asili yana URI ambazo zinaweza kupatikana kwa kutumia ExplainabilityClient
|
|
ili kupata maelezo ya kina kuhusu jinsi jibu lilivyoundwa.
|
|
|
|
**Vigezo:**
|
|
|
|
`query`: Swali la lugha ya asili
|
|
`user`: Kitambulisho cha mtumiaji/nafasi
|
|
`collection`: Kitambulisho cha mkusanyiko
|
|
`max_subgraph_size`: Idadi ya juu ya triplet katika subgrafu (ya kawaida: 1000)
|
|
`max_subgraph_count`: Idadi ya juu ya subgrafu (ya kawaida: 5)
|
|
`max_entity_distance`: Kina cha juu cha utafutaji (ya kawaida: 3)
|
|
`**kwargs`: Vigezo vya ziada ambavyo hutumwa kwa huduma
|
|
`Yields`:
|
|
`Union[RAGChunk, ProvenanceEvent]`: Vipande vya maudhui na matukio ya asili
|
|
|
|
**Mfano:**
|
|
|
|
```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]`
|
|
|
|
Fanya kazi ya zana ya Itifaki ya Mfumo (MCP).
|
|
|
|
**Vigezo:**
|
|
|
|
`name`: Jina/kitambulisho cha zana
|
|
`parameters`: Kamusi ya vigezo vya zana
|
|
`**kwargs`: Vigezo vya ziada vilivyopitishwa kwa huduma
|
|
|
|
**Inarudisha:** dict: Matokeo ya utekelezaji wa zana
|
|
|
|
**Mfano:**
|
|
|
|
```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]`
|
|
|
|
Tekeleza mfumo wa kielelezo cha ombi pamoja na utiririshaji wa hiari.
|
|
|
|
**Vigezo:**
|
|
|
|
`id`: Kitambulisho cha kielelezo cha ombi
|
|
`variables`: Kamusi ya uhusiano kati ya jina la vigezo na maadili
|
|
`streaming`: Washa hali ya utiririshaji (kiwango chake: Feleke)
|
|
`**kwargs`: Vigezo vya ziada ambavyo hutumwa kwa huduma
|
|
|
|
**Inarudisha:** Union[str, Iterator[str]]: Jibu kamili au mkondo wa vipande vya maandishi
|
|
|
|
**Mfano:**
|
|
|
|
```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]`
|
|
|
|
Tafuta data ya safu kwa kutumia utofauti wa maana kwenye sehemu zilizofichwa.
|
|
|
|
Inatafuta safu ambazo maadili ya sehemu zilizofichwa zinafanana kwa maana na
|
|
maandishi ya ingizo, kwa kutumia uelekezo wa vector. Hii inaruhusu utafutaji wa "fuzzy"/maana
|
|
kwenye data iliyopangwa.
|
|
|
|
**Vigezo:**
|
|
|
|
`text`: Maandishi ya swali kwa utafutaji wa maana
|
|
`schema_name`: Jina la schema ili kutafuta ndani
|
|
`user`: Kitambulisho cha mtumiaji/keyspace (cha kawaida: "trustgraph")
|
|
`collection`: Kitambulisho cha mkusanyiko (cha kawaida: "default")
|
|
`index_name`: Jina la index la hiari ili kuchuja utafutaji kwa index maalum
|
|
`limit`: Nambari ya juu ya matokeo (cha kawaida: 10)
|
|
`**kwargs`: Vigezo vya ziada vilivyopitishwa kwa huduma
|
|
|
|
**Inarudisha:** dict: Matokeo ya swali ambayo yana mechi zinazojumuisha index_name, index_value, text, na score
|
|
|
|
**Mfano:**
|
|
|
|
```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]`
|
|
|
|
Tekeleza swali la GraphQL dhidi ya mistari iliyopangwa.
|
|
|
|
**Vigezo:**
|
|
|
|
`query`: Mnyororo wa swali la GraphQL
|
|
`user`: Kitambulisho cha mtumiaji/nafasi
|
|
`collection`: Kitambulisho cha mkusanyiko
|
|
`variables`: Kamusi ya vigezo vya swali ya hiari
|
|
`operation_name`: Jina la operesheni ya hiari kwa hati za operesheni nyingi
|
|
`**kwargs`: Vigezo vya ziada vilivyopitishwa kwa huduma
|
|
|
|
**Inarudisha:** dict: Jibu la GraphQL lenye data, makosa, na/au nyongeza
|
|
|
|
**Mfano:**
|
|
|
|
```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]`
|
|
|
|
Tekeleza kukamilisha maandishi kwa kutumia utiririshaji wa hiari.
|
|
|
|
**Vigezo:**
|
|
|
|
`system`: Maelezo ya mfumo ambayo yanaelezea tabia ya msaidizi.
|
|
`prompt`: Maelezo ya mtumiaji/swali.
|
|
`streaming`: Washa hali ya utiririshaji (kiwango chachilia: False).
|
|
`**kwargs`: Vigezo vya ziada ambavyo hutumwa kwa huduma.
|
|
|
|
**Inarudisha:** Union[str, Iterator[str]]: Jibu kamili au mkondo wa vipande vya maandishi.
|
|
|
|
**Mfano:**
|
|
|
|
```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]]`
|
|
|
|
Tafuta tripli za grafu ya maarifa kwa kutumia utambuzi wa muundo.
|
|
|
|
**Vigezo:**
|
|
|
|
`s`: Kichujio cha somo - Msururu wa URI, kamusi ya neno, au None kwa kichujio cha kila kitu.
|
|
`p`: Kichujio cha tabia - Msururu wa URI, kamusi ya neno, au None kwa kichujio cha kila kitu.
|
|
`o`: Kichujio cha kitu - Msururu wa URI/lita, kamusi ya neno, au None kwa kichujio cha kila kitu.
|
|
`g`: Kichujio cha grafu iliyojulikana - Msururu wa URI au None kwa grafu zote.
|
|
`user`: Kitambulisho cha mtumiaji/nafasi (hiari).
|
|
`collection`: Kitambulisho cha mkusanyiko (hiari).
|
|
`limit`: Matokeo ya kiwango cha juu ya kurudishwa (kiwango chachilia: 100).
|
|
`**kwargs`: Vigezo vya ziada vilivyopitishwa kwa huduma.
|
|
|
|
**Inarudisha:** Orodha[Dict]: Orodha ya tripli zinazolingana katika muundo wa msingi.
|
|
|
|
**Mfano:**
|
|
|
|
```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]]]`
|
|
|
|
Tafuta tripla za grafu ya maarifa kwa kutumia mikondo ya data.
|
|
|
|
Hutoa mikondo ya tripla kadri zinavyofika, na hivyo kupunguza muda wa kupata matokeo ya kwanza
|
|
na matumizi ya kumbukumbu kwa matokeo makubwa.
|
|
|
|
**Vigezo:**
|
|
|
|
`s`: Kichujio cha mada - Msururu wa URI, kamusi ya neno, au None kwa kichujio cha wote.
|
|
`p`: Kichujio cha sifa - Msururu wa URI, kamusi ya neno, au None kwa kichujio cha wote.
|
|
`o`: Kichujio cha kitu - Msururu wa URI/lita, kamusi ya neno, au None kwa kichujio cha wote.
|
|
`g`: Kichujio cha grafu iliyojulikana - Msururu wa URI au None kwa grafu zote.
|
|
`user`: Kitambulisho cha mtumiaji/nafasi (hiari).
|
|
`collection`: Kitambulisho cha mkusanyiko (hiari).
|
|
`limit`: Matokeo mengi ya kurejesha (ya kawaida: 100).
|
|
`batch_size`: Tripla kwa kila kikundi (ya kawaida: 20).
|
|
`**kwargs`: Vigezo vya ziada vilivyopitishwa kwa huduma.
|
|
`Yields`:
|
|
`List[Dict]`: Mikundi ya tripla katika umbizo la mawasiliano.
|
|
|
|
**Mfano:**
|
|
|
|
```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
|
|
```
|
|
|
|
Mteja wa WebSocket asinkroni.
|
|
|
|
### Mbinu
|
|
|
|
### `__init__(self, url: str, timeout: int, token: str | None)`
|
|
|
|
Anzisha `self`. Angalia `help(type(self))` kwa maelezo sahihi ya muundo.
|
|
|
|
### `aclose(self)`
|
|
|
|
Funga muunganisho wa WebSocket.
|
|
|
|
### `flow(self, flow_id: str)`
|
|
|
|
Pata mfumo wa kazi asinkroni kwa operesheni za WebSocket.
|
|
|
|
|
|
--
|
|
|
|
## `AsyncSocketFlowInstance`
|
|
|
|
```python
|
|
from trustgraph.api import AsyncSocketFlowInstance
|
|
```
|
|
|
|
Mfumo wa mtiririko wa WebSocket usiohusisha wakati.
|
|
|
|
### Mbinu
|
|
|
|
### `__init__(self, client: trustgraph.api.async_socket_client.AsyncSocketClient, flow_id: str)`
|
|
|
|
Anzisha `self`. Angalia `help(type(self))` kwa maelezo sahihi ya jinsi ya kutumia.
|
|
|
|
### `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`
|
|
|
|
Wakala na utiririshaji wa hiari.
|
|
|
|
### `document_rag(self, query: str, user: str, collection: str, doc_limit: int = 10, streaming: bool = False, **kwargs)`
|
|
|
|
Andika RAG (Retrieval-Augmented Generation) na utiririshaji wa hiari.
|
|
|
|
### `embeddings(self, texts: list, **kwargs)`
|
|
|
|
Tengeneza ufichishaji wa maandishi.
|
|
|
|
### `graph_embeddings_query(self, text: str, user: str, collection: str, limit: int = 10, **kwargs)`
|
|
|
|
Tafuta ufichishaji wa grafu kwa utafutaji wa maana.
|
|
|
|
### `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)`
|
|
|
|
Grafu RAG na utiririshaji wa hiari.
|
|
|
|
### `mcp_tool(self, name: str, parameters: Dict[str, Any], **kwargs)`
|
|
|
|
Endesha zana ya MCP.
|
|
|
|
### `prompt(self, id: str, variables: Dict[str, str], streaming: bool = False, **kwargs)`
|
|
|
|
Endesha ombi na utiririshaji wa hiari.
|
|
|
|
### `row_embeddings_query(self, text: str, schema_name: str, user: str = 'trustgraph', collection: str = 'default', index_name: str | None = None, limit: int = 10, **kwargs)`
|
|
|
|
Tafuta ufichishaji wa mistari kwa utafutaji wa maana kwenye data iliyopangwa.
|
|
|
|
### `rows_query(self, query: str, user: str, collection: str, variables: Dict | None = None, operation_name: str | None = None, **kwargs)`
|
|
|
|
Ombi la GraphQL dhidi ya mistari iliyopangwa.
|
|
|
|
### `text_completion(self, system: str, prompt: str, streaming: bool = False, **kwargs)`
|
|
|
|
Kukamilisha maandishi na utiririshaji wa hiari.
|
|
|
|
### `triples_query(self, s=None, p=None, o=None, user=None, collection=None, limit=100, **kwargs)`
|
|
|
|
Uchunguzi wa muundo wa tatu.
|
|
|
|
|
|
--
|
|
|
|
### `build_term(value: Any, term_type: str | None = None, datatype: str | None = None, language: str | None = None) -> Dict[str, Any] | None`
|
|
|
|
Jenga kamusi ya Term ya muundo kutoka kwa thamani.
|
|
|
|
Kanuni za utambuzi wa kiotomatiki (wakati `term_type` ni `None`):
|
|
Tayari ni kamusi yenye ufunguo 't' -> irudishe kama ilivyo (tayari ni Term)
|
|
Inaanzia na http://, https://, urn: -> IRI
|
|
Imezungushwa ndani ya <> (e.g., <http://...>) -> IRI (brashi za pembe zimeondolewa)
|
|
Kila kitu kingine -> literal
|
|
|
|
**Majadiliano:**
|
|
|
|
`value`: Thamani ya Term (mfululizo, kamusi, au `None`)
|
|
`term_type`: Moja kati ya 'iri', 'literal', au `None` kwa utambuzi wa kiotomatiki
|
|
`datatype`: Aina ya data kwa vitu vya literal (e.g., xsd:integer)
|
|
`language`: Lango la lugha kwa vitu vya literal (e.g., en)
|
|
|
|
**Inarudisha:** kamusi: Kamusi ya Term ya muundo, au `None` ikiwa thamani ni `None`
|
|
|
|
|
|
--
|
|
|
|
## `BulkClient`
|
|
|
|
```python
|
|
from trustgraph.api import BulkClient
|
|
```
|
|
|
|
Mteja wa operesheni za wingi za wakati mmoja kwa uagizaji/utoaji.
|
|
|
|
Hutoa uhamishaji wa data wa wingi unaofaa kupitia WebSocket kwa data kubwa.
|
|
Huweka operesheni za WebSocket za asinkroni na jenereta za wakati mmoja ili kupunguza ugumu.
|
|
|
|
Kumbuka: Kwa usaidizi halisi wa asinkroni, tumia AsyncBulkClient badala yake.
|
|
|
|
### Mbinu
|
|
|
|
### `__init__(self, url: str, timeout: int, token: str | None) -> None`
|
|
|
|
Anzisha mteja wa wingi wa wakati mmoja.
|
|
|
|
**Majadilisho:**
|
|
|
|
`url`: URL ya msingi kwa API ya TrustGraph (HTTP/HTTPS itabadilishwa kuwa WS/WSS)
|
|
`timeout`: Muda wa timeout wa WebSocket kwa sekunde
|
|
`token`: Tokeni ya kuhifadhiwa ya hiari kwa uthibitishaji
|
|
|
|
### `close(self) -> None`
|
|
|
|
Funga miunganisho
|
|
|
|
### `export_document_embeddings(self, flow: str, **kwargs: Any) -> Iterator[Dict[str, Any]]`
|
|
|
|
Toa nakala za uainishaji kutoka kwa mtiririko.
|
|
|
|
Inapakua kwa ufanisi uainishaji wote wa vipande vya nyaraka kupitia utiririshaji wa WebSocket.
|
|
|
|
**Majadilisho:**
|
|
|
|
`flow`: Kitambulisho cha mtiririko
|
|
`**kwargs`: Vigezo vya ziada (hifadhiwa kwa matumizi ya baadaye)
|
|
|
|
**Inarudisha:** Iterator[Dict[str, Any]]: Msururu wa kamusi za uainishaji
|
|
|
|
**Mfano:**
|
|
|
|
```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]]`
|
|
|
|
Uhamisho wa wingi wa muktadha wa vitu kutoka kwa mtiririko.
|
|
|
|
Inapakua habari yote ya muktadha wa vitu kwa ufanisi kupitia utiririshaji wa WebSocket.
|
|
|
|
**Vigezo:**
|
|
|
|
`flow`: Kitambulisho cha mtiririko
|
|
`**kwargs`: Vigezo vya ziada (hifadhiwa kwa matumizi ya baadaye)
|
|
|
|
**Inarudisha:** Iterator[Dict[str, Any]]: Msururu wa kamusi za muktadha
|
|
|
|
**Mfano:**
|
|
|
|
```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]]`
|
|
|
|
Uhamisho wa wingi wa maandamano ya grafu kutoka kwa mtiririko.
|
|
|
|
Inapakua kwa ufanisi maandamano yote ya vitu vya grafu kupitia utiririshaji wa WebSocket.
|
|
|
|
**Vigezo:**
|
|
|
|
`flow`: Kitambulisho cha mtiririko
|
|
`**kwargs`: Vigezo vya ziada (hifadhiwa kwa matumizi ya baadaye)
|
|
|
|
**Inarudisha:** Iterator[Dict[str, Any]]: Mto wa kamusi za maandamano
|
|
|
|
**Mfano:**
|
|
|
|
```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]`
|
|
|
|
Uhamisho wa wingi wa data ya RDF kutoka kwa mtiririko.
|
|
|
|
Inapakua data yote kwa ufanisi kupitia utiririshaji wa WebSocket.
|
|
|
|
**Vigezo:**
|
|
|
|
`flow`: Kitambulisho cha mtiririko.
|
|
`**kwargs`: Vigezo vya ziada (hifadhiwa kwa matumizi ya baadaye).
|
|
|
|
**Inarudisha:** Iterator[Triple]: Mto wa vitu vya Triple.
|
|
|
|
**Mfano:**
|
|
|
|
```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`
|
|
|
|
Kuleta kwa wingi maandishi ya kuingizwa katika mtiririko.
|
|
|
|
Huainisha kwa ufanisi maandishi ya vipande vya maandishi kupitia utiririshaji wa WebSocket
|
|
kwa matumizi katika maswali ya RAG ya maandishi.
|
|
|
|
**Vigezo:**
|
|
|
|
`flow`: Kitambulisho cha mtiririko
|
|
`embeddings`: Mfumo unaotoa kamusi za kuingizwa
|
|
`**kwargs`: Vigezo vya ziada (hifadhiwa kwa matumizi ya baadaye)
|
|
|
|
**Mfano:**
|
|
|
|
```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`
|
|
|
|
Kuleta kwa wingi maelezo ya vitu ndani ya mtiririko.
|
|
|
|
Huwezesha kupakia taarifa za maelezo ya vitu kupitia utiririshaji wa WebSocket.
|
|
Maelezo ya vitu hutoa maelezo ya ziada ya maandishi kuhusu vitu vya chati
|
|
ili kuboresha utendaji wa RAG.
|
|
|
|
**Vigezo:**
|
|
|
|
`flow`: Kitambulisho cha mtiririko
|
|
`contexts`: Iteratili inayotoa kamusi za maelezo
|
|
`metadata`: Kamusi ya metadata yenye id, metadata, mtumiaji, mkusanyiko
|
|
`batch_size`: Idadi ya maelezo kwa kila kundi (ya kawaida 100)
|
|
`**kwargs`: Vigezo vya ziada (vimehifadhiwa kwa matumizi ya baadaye)
|
|
|
|
**Mfano:**
|
|
|
|
```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`
|
|
|
|
Kuleta kwa wingi michoro ya pembejeo katika mtiririko.
|
|
|
|
Huainisha kwa ufanisi pembejeo za michoro kupitia utiririshaji wa WebSocket.
|
|
|
|
**Vigezo:**
|
|
|
|
`flow`: Kitambulisho cha mtiririko
|
|
`embeddings`: Mfuatiliao unaotoa kamusi za pembejeo
|
|
`**kwargs`: Vigezo vya ziada (hifadhiwa kwa matumizi ya baadaye)
|
|
|
|
**Mfano:**
|
|
|
|
```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`
|
|
|
|
Kuingiza kwa wingi mistari iliyoandaliwa katika mtiririko.
|
|
|
|
Inapakia data iliyoandaliwa kwa ufanisi kupitia utiririshaji wa WebSocket
|
|
kwa ajili ya matumizi katika maswali ya GraphQL.
|
|
|
|
**Vigezo:**
|
|
|
|
`flow`: Kitambulisho cha mtiririko
|
|
`rows`: Mfuatiliazo unaotoa kamusi za mistari
|
|
`**kwargs`: Vigezo vya ziada (hifadhiwa kwa matumizi ya baadaye)
|
|
|
|
**Mfano:**
|
|
|
|
```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`
|
|
|
|
Uingizaji wa jumla wa triplet za RDF katika mtiririko.
|
|
|
|
Huainisha triplet nyingi kwa ufanisi kupitia utiririshaji wa WebSocket.
|
|
|
|
**Vigezo:**
|
|
|
|
`flow`: Kitambulisho cha mtiririko
|
|
`triples`: Itereta inayotoa vitu vya Triple
|
|
`metadata`: Kamusi ya metadata yenye id, metadata, mtumiaji, mkusanyiko
|
|
`batch_size`: Idadi ya triplet kwa kila kundi (ya kawaida 100)
|
|
`**kwargs`: Vigezo vya ziada (vimehifadhiwa kwa matumizi ya baadaye)
|
|
|
|
**Mfano:**
|
|
|
|
```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
|
|
```
|
|
|
|
Mteja wa operesheni za wingi zisizo za wakati.
|
|
|
|
### Mbinu
|
|
|
|
### `__init__(self, url: str, timeout: int, token: str | None) -> None`
|
|
|
|
Anzisha `self`. Angalia `help(type(self))` kwa maelezo sahihi ya muundo.
|
|
|
|
### `aclose(self) -> None`
|
|
|
|
Funga miunganisho.
|
|
|
|
### `export_document_embeddings(self, flow: str, **kwargs: Any) -> AsyncIterator[Dict[str, Any]]`
|
|
|
|
Uhamisho wa wingi wa maandishi ya nyaraka kupitia WebSocket.
|
|
|
|
### `export_entity_contexts(self, flow: str, **kwargs: Any) -> AsyncIterator[Dict[str, Any]]`
|
|
|
|
Uhamisho wa wingi wa muktadha wa vitu kupitia WebSocket.
|
|
|
|
### `export_graph_embeddings(self, flow: str, **kwargs: Any) -> AsyncIterator[Dict[str, Any]]`
|
|
|
|
Uhamisho wa wingi wa maandishi ya chati kupitia WebSocket.
|
|
|
|
### `export_triples(self, flow: str, **kwargs: Any) -> AsyncIterator[trustgraph.api.types.Triple]`
|
|
|
|
Uhamisho wa wingi wa triplet kupitia WebSocket.
|
|
|
|
### `import_document_embeddings(self, flow: str, embeddings: AsyncIterator[Dict[str, Any]], **kwargs: Any) -> None`
|
|
|
|
Uingizaji wa wingi wa maandishi ya nyaraka kupitia WebSocket.
|
|
|
|
### `import_entity_contexts(self, flow: str, contexts: AsyncIterator[Dict[str, Any]], **kwargs: Any) -> None`
|
|
|
|
Uingizaji wa wingi wa muktadha wa vitu kupitia WebSocket.
|
|
|
|
### `import_graph_embeddings(self, flow: str, embeddings: AsyncIterator[Dict[str, Any]], **kwargs: Any) -> None`
|
|
|
|
Uingizaji wa wingi wa maandishi ya chati kupitia WebSocket.
|
|
|
|
### `import_rows(self, flow: str, rows: AsyncIterator[Dict[str, Any]], **kwargs: Any) -> None`
|
|
|
|
Uingizaji wa wingi wa mistari kupitia WebSocket.
|
|
|
|
### `import_triples(self, flow: str, triples: AsyncIterator[trustgraph.api.types.Triple], **kwargs: Any) -> None`
|
|
|
|
Uingizaji wa wingi wa triplet kupitia WebSocket.
|
|
|
|
|
|
--
|
|
|
|
## `Metrics`
|
|
|
|
```python
|
|
from trustgraph.api import Metrics
|
|
```
|
|
|
|
Mteja wa metriki za wakati mmoja.
|
|
|
|
### Mbinu
|
|
|
|
### `__init__(self, url: str, timeout: int, token: str | None) -> None`
|
|
|
|
Anzisha `self`. Angalia `help(type(self))` kwa maelezo sahihi ya muundo.
|
|
|
|
### `get(self) -> str`
|
|
|
|
Pata metriki za Prometheus kama maandishi.
|
|
|
|
|
|
--
|
|
|
|
## `AsyncMetrics`
|
|
|
|
```python
|
|
from trustgraph.api import AsyncMetrics
|
|
```
|
|
|
|
Mteja wa metriki zisizo za wakati (asynchronous).
|
|
|
|
### Mbinu (Methods)
|
|
|
|
### `__init__(self, url: str, timeout: int, token: str | None) -> None`
|
|
|
|
Anzisha (Initialize) `self`. Angalia `help(type(self))` kwa maelezo sahihi ya muundo.
|
|
|
|
### `aclose(self) -> None`
|
|
|
|
Funga miunganisho (Close connections).
|
|
|
|
### `get(self) -> str`
|
|
|
|
Pata metriki za Prometheus kama maandishi (Get Prometheus metrics as text).
|
|
|
|
|
|
--
|
|
|
|
## `ExplainabilityClient`
|
|
|
|
```python
|
|
from trustgraph.api import ExplainabilityClient
|
|
```
|
|
|
|
Mteja wa kupata vitu vya uhalisia kwa utaratibu wa utangamano wa mwisho.
|
|
|
|
Hutumia utambuzi wa utulivu: pata, subiri, pata tena, linganisha.
|
|
Ikiwa matokeo ni sawa, data ni thabiti.
|
|
|
|
### Mbinu
|
|
|
|
### `__init__(self, flow_instance, retry_delay: float = 0.2, max_retries: int = 10)`
|
|
|
|
Anzisha mteja wa uhalisia.
|
|
|
|
**Majadiliano:**
|
|
|
|
`flow_instance`: Toleo la SocketFlowInstance kwa kuuliza vitatu.
|
|
`retry_delay`: Kuchelewesha kati ya majaribio katika sekunde (kiwango chote: 0.2).
|
|
`max_retries`: Jaribio la juu zaidi (kiwango chote: 10).
|
|
|
|
### `detect_session_type(self, session_uri: str, graph: str | None = None, user: str | None = None, collection: str | None = None) -> str`
|
|
|
|
Thibitisha ikiwa kikao ni cha aina ya GraphRAG au Agent.
|
|
|
|
**Vigezo:**
|
|
|
|
`session_uri`: URI ya kipindi/swali
|
|
`graph`: Grafu iliyopewa jina
|
|
`user`: Kitambulisho cha mtumiaji/nafasi
|
|
`collection`: Kitambulisho cha mkusanyiko
|
|
|
|
**Inarudisha:** "graphrag" au "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]`
|
|
|
|
Pata faili kamili ya "Agent" kuanzia URI ya kipindi.
|
|
|
|
Fuata mnyororo wa asili: Swali -> Uchambuzi(s) -> Hitimisho
|
|
|
|
**Vigezo:**
|
|
|
|
`session_uri`: URI ya kipindi cha "agent"/swali
|
|
`graph`: Grafu iliyopewa jina (ya kawaida: urn:graph:retrieval)
|
|
`user`: Kitambulisho cha mtumiaji/nafasi
|
|
`collection`: Kitambulisho cha mkusanyiko
|
|
`api`: Ena ya TrustGraph API kwa ufikiaji wa "librarian" (hiari)
|
|
`max_content`: Urefu wa juu wa maudhui kwa hitimisho
|
|
|
|
**Inarudi:** Kamusi yenye swali, mara (Orodha ya uchambuzi), na vitu vya hitimisho.
|
|
|
|
### `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]`
|
|
|
|
Kuchukua faili kamili ya "DocumentRAG" kuanzia URI ya swali.
|
|
|
|
Kufuata mnyororo wa asili:
|
|
Swali -> Msingi -> Uchunguzi -> Muunganisho
|
|
|
|
**Majadiliano:**
|
|
|
|
`question_uri`: URI ya swali.
|
|
`graph`: Grafu iliyoitwa (ya kawaida: urn:graph:retrieval).
|
|
`user`: Kitambulisho cha mtumiaji/nafasi.
|
|
`collection`: Kitambulisho cha mkusanyiko.
|
|
`api`: Eneo la TrustGraph API kwa ufikiaji wa "librarian" (hiari).
|
|
`max_content`: Urefu wa juu wa yaliyomo kwa muunganisho.
|
|
|
|
**Inarudi:** Kamusi yenye swali, msingi, uchunguzi, na vitu vya muunganisho.
|
|
|
|
### `fetch_document_content(self, document_uri: str, api: Any, user: str | None = None, max_content: int = 10000) -> str`
|
|
|
|
Kuchukua yaliyomo kutoka kwa "librarian" kwa URI ya hati.
|
|
|
|
**Majadiliano:**
|
|
|
|
`document_uri`: URI ya hati katika "librarian".
|
|
`api`: Eneo la TrustGraph API kwa ufikiaji wa "librarian".
|
|
`user`: Kitambulisho cha mtumiaji kwa "librarian".
|
|
`max_content`: Urefu wa juu wa yaliyomo yanayorudishwa.
|
|
|
|
**Inarudi:** Yaliyomo ya hati kama mfululizo.
|
|
|
|
### `fetch_edge_selection(self, uri: str, graph: str | None = None, user: str | None = None, collection: str | None = None) -> trustgraph.api.explainability.EdgeSelection | None`
|
|
|
|
Kuchukua kitambulisho cha uchaguzi wa "edge" (kinachotumika na Focus).
|
|
|
|
**Majadiliano:**
|
|
|
|
`uri`: URI ya uchaguzi wa "edge".
|
|
`graph`: Grafu iliyoitwa ya kuchunguza.
|
|
`user`: Kitambulisho cha mtumiaji/nafasi.
|
|
`collection`: Kitambulisho cha mkusanyiko.
|
|
|
|
**Inarudi:** EdgeSelection au None ikiwa haipatikani.
|
|
|
|
### `fetch_entity(self, uri: str, graph: str | None = None, user: str | None = None, collection: str | None = None) -> trustgraph.api.explainability.ExplainEntity | None`
|
|
|
|
Kuchukua na kueleza kitu (entity) kwa kutumia URI, na kusimamia utaratibu wa uthabiti.
|
|
|
|
Hutumia utambuzi wa utulivu:
|
|
1. Kuchukua data (triples) kwa URI
|
|
2. Ikiwa hakuna matokeo, jaribu tena
|
|
3. Ikiwa kuna matokeo, subiri na chukua tena
|
|
4. Ikiwa matokeo ni sawa, data imetulia - changanua na urudishe
|
|
5. Ikiwa matokeo ni tofauti, data bado inaanzishwa - jaribu tena
|
|
|
|
**Vigezo:**
|
|
|
|
`uri`: URI ya kitu (entity) kinachohitajika
|
|
`graph`: Picha (graph) inayotumika kwa utafutaji (e.g., "urn:graph:retrieval")
|
|
`user`: Kitambulisho cha mtumiaji/nafasi
|
|
`collection`: Kitambulisho cha mkusanyiko
|
|
|
|
**Inarudisha:** Kifaa cha aina ya ExplainEntity au None ikiwa haipatikani
|
|
|
|
### `fetch_focus_with_edges(self, uri: str, graph: str | None = None, user: str | None = None, collection: str | None = None) -> trustgraph.api.explainability.Focus | None`
|
|
|
|
Kuchukua kitu (entity) cha "Focus" na uteuzi wake wote wa "edge".
|
|
|
|
**Vigezo:**
|
|
|
|
`uri`: URI ya kitu (entity) cha "Focus"
|
|
`graph`: Picha (graph) inayotumika kwa utafutaji
|
|
`user`: Kitambulisho cha mtumiaji/nafasi
|
|
`collection`: Kitambulisho cha mkusanyiko
|
|
|
|
**Inarudisha:** "Focus" iliyo na "edge_selections" zilizojazwa, au 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]`
|
|
|
|
Kuchukua "GraphRAG" kamili kuanzia URI ya swali.
|
|
|
|
Ifuatilia mnyororo wa asili: Swali -> Uthabiti -> Uchunguzi -> Focus -> Muhtasari
|
|
|
|
**Vigezo:**
|
|
|
|
`question_uri`: URI ya swali
|
|
`graph`: Picha (default: urn:graph:retrieval)
|
|
`user`: Kitambulisho cha mtumiaji/nafasi
|
|
`collection`: Kitambulisho cha mkusanyiko
|
|
`api`: Ena ya TrustGraph API kwa ufikiaji wa "librarian" (hiari)
|
|
`max_content`: Urefu wa juu wa yaliyomo kwa ajili ya muhtasari
|
|
|
|
**Inarudisha:** Kamusi yenye vitu vya swali, msingi, uchunguzi, lengo, na muhtasari.
|
|
|
|
### `list_sessions(self, graph: str | None = None, user: str | None = None, collection: str | None = None, limit: int = 50) -> List[trustgraph.api.explainability.Question]`
|
|
|
|
Orodha ya vipindi vyote vya kufafanua (maswali) katika mkusanyiko.
|
|
|
|
**Majadiliano:**
|
|
|
|
`graph`: Picha iliyopewa jina (ya kawaida: urn:graph:retrieval)
|
|
`user`: Kitambulisho cha mtumiaji/nafasi
|
|
`collection`: Kitambulisho cha mkusanyiko
|
|
`limit`: Nambari ya juu ya vipindi kurudishwa
|
|
|
|
**Inarudisha:** Orodha ya vitu vya Swali vilivyopangwa kwa wakati (vya hivi karibuni kwanza)
|
|
|
|
### `resolve_edge_labels(self, edge: Dict[str, str], user: str | None = None, collection: str | None = None) -> Tuple[str, str, str]`
|
|
|
|
Tatua lebo kwa vipengele vyote vya triplet ya ukingo.
|
|
|
|
**Majadiliano:**
|
|
|
|
`edge`: Kamusi yenye funguo za "s", "p", na "o"
|
|
`user`: Kitambulisho cha mtumiaji/nafasi
|
|
`collection`: Kitambulisho cha mkusanyiko
|
|
|
|
**Inarudisha:** Jozi ya (s_label, p_label, o_label)
|
|
|
|
### `resolve_label(self, uri: str, user: str | None = None, collection: str | None = None) -> str`
|
|
|
|
Tatua rdfs:label kwa URI, pamoja na kuhifadhi.
|
|
|
|
**Majadiliano:**
|
|
|
|
`uri`: URI ambayo lebo inapaswa kupatikana
|
|
`user`: Kitambulisho cha mtumiaji/nafasi
|
|
`collection`: Kitambulisho cha mkusanyiko
|
|
|
|
**Inarudisha:** Lebo ikiwa imepatikana, vinginevyo URI yenyewe.
|
|
|
|
|
|
--
|
|
|
|
## `ExplainEntity`
|
|
|
|
```python
|
|
from trustgraph.api import ExplainEntity
|
|
```
|
|
|
|
Darasa la msingi kwa vitu vya uelewaji.
|
|
|
|
**Vipengele:**
|
|
|
|
`uri`: <class 'str'>
|
|
`entity_type`: <class 'str'>
|
|
|
|
### Mbinu
|
|
|
|
### `__init__(self, uri: str, entity_type: str = '') -> None`
|
|
|
|
Anzisha self. Angalia help(type(self)) kwa maelezo sahihi.
|
|
|
|
|
|
--
|
|
|
|
## `Question`
|
|
|
|
```python
|
|
from trustgraph.api import Question
|
|
```
|
|
|
|
Swali la mtumiaji - swali la mtumiaji ambalo lilianzisha kipindi.
|
|
|
|
**Vifaa:**
|
|
|
|
`uri`: <class 'str'>
|
|
`entity_type`: <class 'str'>
|
|
`query`: <class 'str'>
|
|
`timestamp`: <class 'str'>
|
|
`question_type`: <class 'str'>
|
|
|
|
### Mbinu
|
|
|
|
### `__init__(self, uri: str, entity_type: str = '', query: str = '', timestamp: str = '', question_type: str = '') -> None`
|
|
|
|
Anzisha self. Angalia help(type(self)) kwa maelezo sahihi.
|
|
|
|
|
|
--
|
|
|
|
## `Exploration`
|
|
|
|
```python
|
|
from trustgraph.api import Exploration
|
|
```
|
|
|
|
Kitengo cha utafiti - pembejeo/sehemu zilizopatikana kutoka kwenye hifadhi ya maarifa.
|
|
|
|
**Vifaa:**
|
|
|
|
`uri`: <class 'str'>
|
|
`entity_type`: <class 'str'>
|
|
`edge_count`: <class 'int'>
|
|
`chunk_count`: <class 'int'>
|
|
`entities`: typing.List[str]
|
|
|
|
### Mbinu
|
|
|
|
### `__init__(self, uri: str, entity_type: str = '', edge_count: int = 0, chunk_count: int = 0, entities: List[str] = <factory>) -> None`
|
|
|
|
Anzisha self. Angalia help(type(self)) kwa maelezo sahihi ya muundo.
|
|
|
|
|
|
--
|
|
|
|
## `Focus`
|
|
|
|
```python
|
|
from trustgraph.api import Focus
|
|
```
|
|
|
|
Mfumo wa msingi - pembe zilizochaguliwa pamoja na utaratibu wa akili wa LLM (GraphRAG pekee).
|
|
|
|
**Sehemu:**
|
|
|
|
`uri`: <class 'str'>
|
|
`entity_type`: <class 'str'>
|
|
`selected_edge_uris`: typing.List[str]
|
|
`edge_selections`: typing.List[trustgraph.api.explainability.EdgeSelection]
|
|
|
|
### Mbinu
|
|
|
|
### `__init__(self, uri: str, entity_type: str = '', selected_edge_uris: List[str] = <factory>, edge_selections: List[trustgraph.api.explainability.EdgeSelection] = <factory>) -> None`
|
|
|
|
Anzisha self. Angalia help(type(self)) kwa maelezo sahihi ya muundo.
|
|
|
|
|
|
--
|
|
|
|
## `Synthesis`
|
|
|
|
```python
|
|
from trustgraph.api import Synthesis
|
|
```
|
|
|
|
Kitengo cha muhtasari - jibu la mwisho.
|
|
|
|
**Sehemu:**
|
|
|
|
`uri`: <class 'str'>
|
|
`entity_type`: <class 'str'>
|
|
`document`: <class 'str'>
|
|
|
|
### Mbinu
|
|
|
|
### `__init__(self, uri: str, entity_type: str = '', document: str = '') -> None`
|
|
|
|
Anzisha self. Angalia help(type(self)) kwa maelezo sahihi.
|
|
|
|
|
|
--
|
|
|
|
## `Analysis`
|
|
|
|
```python
|
|
from trustgraph.api import Analysis
|
|
```
|
|
|
|
Kitengo cha uchambuzi - mzunguko mmoja wa kufikiria/kutenda/kuchunguza (Kwa wakala pekee).
|
|
|
|
**Vyunzo:**
|
|
|
|
`uri`: <class 'str'>
|
|
`entity_type`: <class 'str'>
|
|
`action`: <class 'str'>
|
|
`arguments`: <class 'str'>
|
|
`thought`: <class 'str'>
|
|
`observation`: <class 'str'>
|
|
|
|
### Mbinu
|
|
|
|
### `__init__(self, uri: str, entity_type: str = '', action: str = '', arguments: str = '', thought: str = '', observation: str = '') -> None`
|
|
|
|
Anzisha self. Angalia help(type(self)) kwa maelezo sahihi ya muundo.
|
|
|
|
|
|
--
|
|
|
|
## `Conclusion`
|
|
|
|
```python
|
|
from trustgraph.api import Conclusion
|
|
```
|
|
|
|
Hitimisho la kitengo - jibu la mwisho (Kwa wakala pekee).
|
|
|
|
**Sehemu:**
|
|
|
|
`uri`: <class 'str'>
|
|
`entity_type`: <class 'str'>
|
|
`document`: <class 'str'>
|
|
|
|
### Mbinu
|
|
|
|
### `__init__(self, uri: str, entity_type: str = '', document: str = '') -> None`
|
|
|
|
Anzisha self. Angalia help(type(self)) kwa maelezo sahihi.
|
|
|
|
|
|
--
|
|
|
|
## `EdgeSelection`
|
|
|
|
```python
|
|
from trustgraph.api import EdgeSelection
|
|
```
|
|
|
|
Kichwa kilichochaguliwa pamoja na hoja kutoka hatua ya GraphRAG Focus.
|
|
|
|
**Sehemu:**
|
|
|
|
`uri`: <class 'str'>
|
|
`edge`: typing.Dict[str, str] | None
|
|
`reasoning`: <class 'str'>
|
|
|
|
### Mbinu
|
|
|
|
### `__init__(self, uri: str, edge: Dict[str, str] | None = None, reasoning: str = '') -> None`
|
|
|
|
Anzisha self. Angalia help(type(self)) kwa maelezo sahihi ya muundo.
|
|
|
|
|
|
--
|
|
|
|
### `wire_triples_to_tuples(wire_triples: List[Dict[str, Any]]) -> List[Tuple[str, str, Any]]`
|
|
|
|
Badilisha triplet katika umbizo la waya kuwa tuples za (s, p, o).
|
|
|
|
|
|
--
|
|
|
|
### `extract_term_value(term: Dict[str, Any]) -> Any`
|
|
|
|
Toa thamani kutoka kwenye kamusi ya Term katika umbizo la waya.
|
|
|
|
|
|
--
|
|
|
|
## `Triple`
|
|
|
|
```python
|
|
from trustgraph.api import Triple
|
|
```
|
|
|
|
Mfumo wa data wa RDF unaoonyesha sentensi ya grafu ya maarifa.
|
|
|
|
**Sehemu:**
|
|
|
|
`s`: <class 'str'>
|
|
`p`: <class 'str'>
|
|
`o`: <class 'str'>
|
|
|
|
### Mbinu
|
|
|
|
### `__init__(self, s: str, p: str, o: str) -> None`
|
|
|
|
Anzisha self. Angalia help(type(self)) kwa maelezo sahihi ya muundo.
|
|
|
|
|
|
--
|
|
|
|
## `Uri`
|
|
|
|
```python
|
|
from trustgraph.api import Uri
|
|
```
|
|
|
|
str(object='') -> str
|
|
str(bytes_or_buffer[, encoding[, errors]]) -> str
|
|
|
|
Unda mnyororo mpya kutoka kwa kitu kilichopewa. Ikiwa encoding au
|
|
errors imebainishwa, basi kitu lazima kiwe na buffer ya data
|
|
ambayo itafichuliwa kwa kutumia encoding iliyopewa na kidhibiti cha makosa.
|
|
Vinginevyo, hurudia matokeo ya kitu.__str__() (ikiwa imefafanuliwa)
|
|
au repr(kitu).
|
|
encoding huwezeshwa kuwa 'utf-8'.
|
|
errors huwezeshwa kuwa 'strict'.
|
|
|
|
### Mbinu
|
|
|
|
### `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
|
|
|
|
Unda mnyororo mpya kutoka kwa kitu kilichopewa. Ikiwa encoding au
|
|
errors imebainishwa, basi kitu lazima kiwe na buffer ya data
|
|
ambayo itafichuliwa kwa kutumia usimbaji (encoding) na kidhibiti cha makosa (error handler) uliobainishwa.
|
|
Vinginevyo, hurudia matokeo ya kitu.__str__() (ikiwa imefafanuliwa)
|
|
au repr(object).
|
|
usimbaji (encoding) huanguka kwa 'utf-8'.
|
|
makosa (errors) huanguka kwa 'strict'.
|
|
|
|
### Mbinu
|
|
|
|
### `is_literal(self)`
|
|
|
|
### `is_triple(self)`
|
|
|
|
### `is_uri(self)`
|
|
|
|
|
|
--
|
|
|
|
## `ConfigKey`
|
|
|
|
```python
|
|
from trustgraph.api import ConfigKey
|
|
```
|
|
|
|
Kitambulisho cha ufunguo wa usanidi.
|
|
|
|
**Sehemu:**
|
|
|
|
`type`: <class 'str'>
|
|
`key`: <class 'str'>
|
|
|
|
### Mbinu
|
|
|
|
### `__init__(self, type: str, key: str) -> None`
|
|
|
|
Anzisha self. Angalia help(type(self)) kwa maelezo sahihi.
|
|
|
|
|
|
--
|
|
|
|
## `ConfigValue`
|
|
|
|
```python
|
|
from trustgraph.api import ConfigValue
|
|
```
|
|
|
|
Jozi ya ufunguo na thamani ya usanidi.
|
|
|
|
**Sehemu:**
|
|
|
|
`type`: <class 'str'>
|
|
`key`: <class 'str'>
|
|
`value`: <class 'str'>
|
|
|
|
### Mbinu
|
|
|
|
### `__init__(self, type: str, key: str, value: str) -> None`
|
|
|
|
Anzisha self. Angalia help(type(self)) kwa maelezo sahihi.
|
|
|
|
|
|
--
|
|
|
|
## `DocumentMetadata`
|
|
|
|
```python
|
|
from trustgraph.api import DocumentMetadata
|
|
```
|
|
|
|
Meta data kwa hati katika maktaba.
|
|
|
|
**Sifa:**
|
|
|
|
`parent_id: Parent document ID for child documents (empty for top`: ngazi ya hati
|
|
|
|
**Nafasi:**
|
|
|
|
`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'>
|
|
|
|
### Mbinu
|
|
|
|
### `__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`
|
|
|
|
Anzisha self. Angalia help(type(self)) kwa maelezo sahihi ya muundo.
|
|
|
|
|
|
--
|
|
|
|
## `ProcessingMetadata`
|
|
|
|
```python
|
|
from trustgraph.api import ProcessingMetadata
|
|
```
|
|
|
|
Meta data kwa kazi ya usindikaji hati inayofanya kazi.
|
|
|
|
**Vyunzo:**
|
|
|
|
`id`: <class 'str'>
|
|
`document_id`: <class 'str'>
|
|
`time`: <class 'datetime.datetime'>
|
|
`flow`: <class 'str'>
|
|
`user`: <class 'str'>
|
|
`collection`: <class 'str'>
|
|
`tags`: typing.List[str]
|
|
|
|
### Mbinu
|
|
|
|
### `__init__(self, id: str, document_id: str, time: datetime.datetime, flow: str, user: str, collection: str, tags: List[str]) -> None`
|
|
|
|
Anzisha self. Angalia help(type(self)) kwa maelezo sahihi ya muundo.
|
|
|
|
|
|
--
|
|
|
|
## `CollectionMetadata`
|
|
|
|
```python
|
|
from trustgraph.api import CollectionMetadata
|
|
```
|
|
|
|
Meta data kwa mkusanyiko wa data.
|
|
|
|
Mikusanyiko hutoa uainishaji na kutenganisha kwa mantiki kwa hati na
|
|
data ya mfumo wa maarifa.
|
|
|
|
**Sifa:**
|
|
|
|
`name: Human`: jina la mkusanyiko linalosoma
|
|
|
|
**Nafasi:**
|
|
|
|
`user`: <class 'str'>
|
|
`collection`: <class 'str'>
|
|
`name`: <class 'str'>
|
|
`description`: <class 'str'>
|
|
`tags`: typing.List[str]
|
|
|
|
### Mbinu
|
|
|
|
### `__init__(self, user: str, collection: str, name: str, description: str, tags: List[str]) -> None`
|
|
|
|
Anzisha self. Angalia help(type(self)) kwa saini sahihi.
|
|
|
|
|
|
--
|
|
|
|
## `StreamingChunk`
|
|
|
|
```python
|
|
from trustgraph.api import StreamingChunk
|
|
```
|
|
|
|
Darasa la msingi kwa ajili ya vipande vya majibu yanayotumwa.
|
|
|
|
Hutumika kwa operesheni za utiririshaji zinazotegemea WebSocket ambapo majibu hutolewa
|
|
hatua kwa hatua yanapozalishwa.
|
|
|
|
**Vipengele:**
|
|
|
|
`content`: <class 'str'>
|
|
`end_of_message`: <class 'bool'>
|
|
|
|
### Njia
|
|
|
|
### `__init__(self, content: str, end_of_message: bool = False) -> None`
|
|
|
|
Anzisha self. Angalia help(type(self)) kwa maelezo sahihi.
|
|
|
|
|
|
--
|
|
|
|
## `AgentThought`
|
|
|
|
```python
|
|
from trustgraph.api import AgentThought
|
|
```
|
|
|
|
Sehemu ya hoja au mchakato wa kufikiri wa wakala.
|
|
|
|
Inawakilisha hoja au hatua za upangaji za ndani za wakala wakati wa utekelezaji.
|
|
Sehemu hizi zinaonyesha jinsi wakala anavyofikiri kuhusu tatizo.
|
|
|
|
**Vifaa:**
|
|
|
|
`content`: <class 'str'>
|
|
`end_of_message`: <class 'bool'>
|
|
`chunk_type`: <class 'str'>
|
|
|
|
### Mbinu
|
|
|
|
### `__init__(self, content: str, end_of_message: bool = False, chunk_type: str = 'thought') -> None`
|
|
|
|
Anzisha self. Angalia help(type(self)) kwa maelezo sahihi ya muundo.
|
|
|
|
|
|
--
|
|
|
|
## `AgentObservation`
|
|
|
|
```python
|
|
from trustgraph.api import AgentObservation
|
|
```
|
|
|
|
Sehemu ya matokeo au uchunguzi wa matumizi ya zana.
|
|
|
|
Inawakilisha matokeo au uchunguzi kutoka kwa matumizi ya zana au kitendo.
|
|
Sehemu hizi zinaonyesha kile ambacho wakala alijifunza kutokana na matumizi ya zana.
|
|
|
|
**Vifaa:**
|
|
|
|
`content`: <class 'str'>
|
|
`end_of_message`: <class 'bool'>
|
|
`chunk_type`: <class 'str'>
|
|
|
|
### Mbinu
|
|
|
|
### `__init__(self, content: str, end_of_message: bool = False, chunk_type: str = 'observation') -> None`
|
|
|
|
Anzisha self. Angalia help(type(self)) kwa maelezo sahihi ya muundo.
|
|
|
|
|
|
--
|
|
|
|
## `AgentAnswer`
|
|
|
|
```python
|
|
from trustgraph.api import AgentAnswer
|
|
```
|
|
|
|
Sehemu ya jibu la mwisho la wakala.
|
|
|
|
Inawakilisha jibu la mwisho la wakala kwa swali la mtumiaji baada ya kukamilisha
|
|
utaratibu wake na matumizi ya zana.
|
|
|
|
**Sifa:**
|
|
|
|
`chunk_type: Always "final`: jibu"
|
|
|
|
**Nafasi:**
|
|
|
|
`content`: <class 'str'>
|
|
`end_of_message`: <class 'bool'>
|
|
`chunk_type`: <class 'str'>
|
|
`end_of_dialog`: <class 'bool'>
|
|
|
|
### Mbinu
|
|
|
|
### `__init__(self, content: str, end_of_message: bool = False, chunk_type: str = 'final-answer', end_of_dialog: bool = False) -> None`
|
|
|
|
Anzisha self. Angalia help(type(self)) kwa maelezo sahihi ya muundo.
|
|
|
|
|
|
--
|
|
|
|
## `RAGChunk`
|
|
|
|
```python
|
|
from trustgraph.api import RAGChunk
|
|
```
|
|
|
|
Sehemu inayotumika kwa utiririshaji ya RAG (Uundaji Ulioboreshwa na Urekebishaji).
|
|
|
|
Inatumika kwa utiririshaji wa majibu kutoka kwa RAG ya grafu, RAG ya hati, kukamilisha maandishi,
|
|
na huduma zingine za uundaji.
|
|
|
|
**Vipengele:**
|
|
|
|
`content`: <class 'str'>
|
|
`end_of_message`: <class 'bool'>
|
|
`chunk_type`: <class 'str'>
|
|
`end_of_stream`: <class 'bool'>
|
|
`error`: typing.Dict[str, str] | None
|
|
|
|
### Mbinu
|
|
|
|
### `__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`
|
|
|
|
Anzisha self. Angalia help(type(self)) kwa maelezo sahihi ya muundo.
|
|
|
|
|
|
--
|
|
|
|
## `ProvenanceEvent`
|
|
|
|
```python
|
|
from trustgraph.api import ProvenanceEvent
|
|
```
|
|
|
|
Tukio la asili kwa ajili ya uelewaji.
|
|
|
|
Hutolewa wakati wa maswali ya GraphRAG wakati hali ya uelewaji imeanzishwa.
|
|
Kila tukio linawakilisha nodi ya asili iliyoundwa wakati wa uchakataji wa swali.
|
|
|
|
**Vifaa:**
|
|
|
|
`explain_id`: <class 'str'>
|
|
`explain_graph`: <class 'str'>
|
|
`event_type`: <class 'str'>
|
|
|
|
### Mbinu
|
|
|
|
### `__init__(self, explain_id: str, explain_graph: str = '', event_type: str = '') -> None`
|
|
|
|
Anzisha self. Angalia help(type(self)) kwa ajili ya saini sahihi.
|
|
|
|
|
|
--
|
|
|
|
## `ProtocolException`
|
|
|
|
```python
|
|
from trustgraph.api import ProtocolException
|
|
```
|
|
|
|
Inayotokea wakati wa hitilafu za itifaki ya WebSocket.
|
|
|
|
|
|
--
|
|
|
|
## `TrustGraphException`
|
|
|
|
```python
|
|
from trustgraph.api import TrustGraphException
|
|
```
|
|
|
|
Darasa la msingi kwa makosa yote ya huduma ya TrustGraph.
|
|
|
|
|
|
--
|
|
|
|
## `AgentError`
|
|
|
|
```python
|
|
from trustgraph.api import AgentError
|
|
```
|
|
|
|
Kosa la huduma ya wakala.
|
|
|
|
|
|
--
|
|
|
|
## `ConfigError`
|
|
|
|
```python
|
|
from trustgraph.api import ConfigError
|
|
```
|
|
|
|
Kosa la huduma ya usanidi.
|
|
|
|
|
|
--
|
|
|
|
## `DocumentRagError`
|
|
|
|
```python
|
|
from trustgraph.api import DocumentRagError
|
|
```
|
|
|
|
Kosa la upokeaji wa hati kutoka kwa mfumo.
|
|
|
|
|
|
--
|
|
|
|
## `FlowError`
|
|
|
|
```python
|
|
from trustgraph.api import FlowError
|
|
```
|
|
|
|
Kosa la usimamizi wa mtiririko
|
|
|
|
|
|
--
|
|
|
|
## `GatewayError`
|
|
|
|
```python
|
|
from trustgraph.api import GatewayError
|
|
```
|
|
|
|
Kosa la API Gateway
|
|
|
|
|
|
--
|
|
|
|
## `GraphRagError`
|
|
|
|
```python
|
|
from trustgraph.api import GraphRagError
|
|
```
|
|
|
|
Kosa la urejesho la mfumo wa RAG.
|
|
|
|
|
|
--
|
|
|
|
## `LLMError`
|
|
|
|
```python
|
|
from trustgraph.api import LLMError
|
|
```
|
|
|
|
Kosa la huduma ya LLM.
|
|
|
|
|
|
--
|
|
|
|
## `LoadError`
|
|
|
|
```python
|
|
from trustgraph.api import LoadError
|
|
```
|
|
|
|
Kosa la kupakia data.
|
|
|
|
|
|
--
|
|
|
|
## `LookupError`
|
|
|
|
```python
|
|
from trustgraph.api import LookupError
|
|
```
|
|
|
|
Kosa la utafutaji/tazama.
|
|
|
|
|
|
--
|
|
|
|
## `NLPQueryError`
|
|
|
|
```python
|
|
from trustgraph.api import NLPQueryError
|
|
```
|
|
|
|
Kosa la huduma ya utafutaji kwa lugha.
|
|
|
|
|
|
--
|
|
|
|
## `RowsQueryError`
|
|
|
|
```python
|
|
from trustgraph.api import RowsQueryError
|
|
```
|
|
|
|
Kosa la huduma ya utafutaji wa data.
|
|
|
|
|
|
--
|
|
|
|
## `RequestError`
|
|
|
|
```python
|
|
from trustgraph.api import RequestError
|
|
```
|
|
|
|
Kosa katika usindikaji wa ombi.
|
|
|
|
|
|
--
|
|
|
|
## `StructuredQueryError`
|
|
|
|
```python
|
|
from trustgraph.api import StructuredQueryError
|
|
```
|
|
|
|
Kosa la huduma ya maswali iliyopangwa.
|
|
|
|
|
|
--
|
|
|
|
## `UnexpectedError`
|
|
|
|
```python
|
|
from trustgraph.api import UnexpectedError
|
|
```
|
|
|
|
Kosa lisilotarajiwa/lisilojulikana.
|
|
|
|
|
|
--
|
|
|
|
## `ApplicationException`
|
|
|
|
```python
|
|
from trustgraph.api import ApplicationException
|
|
```
|
|
|
|
Darasa la msingi kwa makosa yote ya huduma ya TrustGraph.
|
|
|
|
|
|
--
|