diff --git a/.github/workflows/pull-request.yaml b/.github/workflows/pull-request.yaml
index 2243da10..8248dfbf 100644
--- a/.github/workflows/pull-request.yaml
+++ b/.github/workflows/pull-request.yaml
@@ -22,7 +22,7 @@ jobs:
uses: actions/checkout@v3
- name: Setup packages
- run: make update-package-versions VERSION=2.2.999
+ run: make update-package-versions VERSION=2.4.999
- name: Setup environment
run: python3 -m venv env
diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml
index dc2fc89b..07af8db9 100644
--- a/.github/workflows/release.yaml
+++ b/.github/workflows/release.yaml
@@ -40,10 +40,9 @@ jobs:
- name: Publish release distributions to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
- deploy-container-image:
+ build-platform-image:
- name: Release container images
- runs-on: ubuntu-24.04
+ name: Build ${{ matrix.container }} (${{ matrix.platform }})
permissions:
contents: write
id-token: write
@@ -52,14 +51,24 @@ jobs:
strategy:
matrix:
container:
- - trustgraph-base
- - trustgraph-flow
- - trustgraph-bedrock
- - trustgraph-vertexai
- - trustgraph-hf
- - trustgraph-ocr
- - trustgraph-unstructured
- - trustgraph-mcp
+ - base
+ - flow
+ - bedrock
+ - vertexai
+ - hf
+ - ocr
+ - unstructured
+ - mcp
+ platform:
+ - amd64
+ - arm64
+ include:
+ - platform: amd64
+ runner: ubuntu-24.04
+ - platform: arm64
+ runner: ubuntu-24.04-arm
+
+ runs-on: ${{ matrix.runner }}
steps:
@@ -76,12 +85,48 @@ jobs:
id: version
run: echo VERSION=$(git describe --exact-match --tags | sed 's/^v//') >> $GITHUB_OUTPUT
- - name: Put version into package manifests
- run: make update-package-versions VERSION=${{ steps.version.outputs.VERSION }}
+ - name: Build container
+ run: make platform-${{ matrix.container }}-${{ matrix.platform }} VERSION=${{ steps.version.outputs.VERSION }}
- - name: Build container - ${{ matrix.container }}
- run: make container-${{ matrix.container }} VERSION=${{ steps.version.outputs.VERSION }}
+ - name: Push container
+ run: make push-platform-${{ matrix.container }}-${{ matrix.platform }} VERSION=${{ steps.version.outputs.VERSION }}
- - name: Push container - ${{ matrix.container }}
- run: make push-${{ matrix.container }} VERSION=${{ steps.version.outputs.VERSION }}
+ combine-manifests:
+ name: Combine manifest ${{ matrix.container }}
+ runs-on: ubuntu-24.04
+ needs: build-platform-image
+ permissions:
+ contents: write
+ id-token: write
+ environment:
+ name: release
+ strategy:
+ matrix:
+ container:
+ - base
+ - flow
+ - bedrock
+ - vertexai
+ - hf
+ - ocr
+ - unstructured
+ - mcp
+
+ steps:
+
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: Docker Hub token
+ run: echo ${{ secrets.DOCKER_SECRET }} > docker-token.txt
+
+ - name: Authenticate with Docker hub
+ run: make docker-hub-login
+
+ - name: Get version
+ id: version
+ run: echo VERSION=$(git describe --exact-match --tags | sed 's/^v//') >> $GITHUB_OUTPUT
+
+ - name: Combine and push manifest
+ run: make combine-manifest-${{ matrix.container }} VERSION=${{ steps.version.outputs.VERSION }}
diff --git a/.gitignore b/.gitignore
index daeba074..32942156 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,4 +15,5 @@ trustgraph-parquet/trustgraph/parquet_version.py
trustgraph-vertexai/trustgraph/vertexai_version.py
trustgraph-unstructured/trustgraph/unstructured_version.py
trustgraph-mcp/trustgraph/mcp_version.py
+trustgraph/trustgraph/trustgraph_version.py
vertexai/
\ No newline at end of file
diff --git a/Makefile b/Makefile
index 197a6c63..0f0f37b2 100644
--- a/Makefile
+++ b/Makefile
@@ -52,51 +52,12 @@ update-package-versions:
echo __version__ = \"${VERSION}\" > trustgraph/trustgraph/trustgraph_version.py
echo __version__ = \"${VERSION}\" > trustgraph-mcp/trustgraph/mcp_version.py
-FORCE:
+containers: container-base container-flow \
+container-bedrock container-vertexai \
+container-hf container-ocr \
+container-unstructured container-mcp
-containers: FORCE
- ${DOCKER} build -f containers/Containerfile.base \
- -t ${CONTAINER_BASE}/trustgraph-base:${VERSION} .
- ${DOCKER} build -f containers/Containerfile.flow \
- -t ${CONTAINER_BASE}/trustgraph-flow:${VERSION} .
- ${DOCKER} build -f containers/Containerfile.bedrock \
- -t ${CONTAINER_BASE}/trustgraph-bedrock:${VERSION} .
- ${DOCKER} build -f containers/Containerfile.vertexai \
- -t ${CONTAINER_BASE}/trustgraph-vertexai:${VERSION} .
- ${DOCKER} build -f containers/Containerfile.hf \
- -t ${CONTAINER_BASE}/trustgraph-hf:${VERSION} .
- ${DOCKER} build -f containers/Containerfile.ocr \
- -t ${CONTAINER_BASE}/trustgraph-ocr:${VERSION} .
- ${DOCKER} build -f containers/Containerfile.unstructured \
- -t ${CONTAINER_BASE}/trustgraph-unstructured:${VERSION} .
- ${DOCKER} build -f containers/Containerfile.mcp \
- -t ${CONTAINER_BASE}/trustgraph-mcp:${VERSION} .
-
-some-containers:
- ${DOCKER} build -f containers/Containerfile.base \
- -t ${CONTAINER_BASE}/trustgraph-base:${VERSION} .
- ${DOCKER} build -f containers/Containerfile.flow \
- -t ${CONTAINER_BASE}/trustgraph-flow:${VERSION} .
-# ${DOCKER} build -f containers/Containerfile.unstructured \
-# -t ${CONTAINER_BASE}/trustgraph-unstructured:${VERSION} .
-# ${DOCKER} build -f containers/Containerfile.vertexai \
-# -t ${CONTAINER_BASE}/trustgraph-vertexai:${VERSION} .
-# ${DOCKER} build -f containers/Containerfile.mcp \
-# -t ${CONTAINER_BASE}/trustgraph-mcp:${VERSION} .
-# ${DOCKER} build -f containers/Containerfile.vertexai \
-# -t ${CONTAINER_BASE}/trustgraph-vertexai:${VERSION} .
-# ${DOCKER} build -f containers/Containerfile.bedrock \
-# -t ${CONTAINER_BASE}/trustgraph-bedrock:${VERSION} .
-
-basic-containers: update-package-versions
- ${DOCKER} build -f containers/Containerfile.base \
- -t ${CONTAINER_BASE}/trustgraph-base:${VERSION} .
- ${DOCKER} build -f containers/Containerfile.flow \
- -t ${CONTAINER_BASE}/trustgraph-flow:${VERSION} .
-
-container.ocr:
- ${DOCKER} build -f containers/Containerfile.ocr \
- -t ${CONTAINER_BASE}/trustgraph-ocr:${VERSION} .
+some-containers: container-base container-flow container-unstructured
push:
${DOCKER} push ${CONTAINER_BASE}/trustgraph-base:${VERSION}
@@ -109,54 +70,60 @@ push:
${DOCKER} push ${CONTAINER_BASE}/trustgraph-mcp:${VERSION}
# Individual container build targets
-container-trustgraph-base: update-package-versions
- ${DOCKER} build -f containers/Containerfile.base -t ${CONTAINER_BASE}/trustgraph-base:${VERSION} .
+container-%: update-package-versions
+ ${DOCKER} build \
+ -f containers/Containerfile.${@:container-%=%} \
+ -t ${CONTAINER_BASE}/trustgraph-${@:container-%=%}:${VERSION} .
-container-trustgraph-flow: update-package-versions
- ${DOCKER} build -f containers/Containerfile.flow -t ${CONTAINER_BASE}/trustgraph-flow:${VERSION} .
+# Multi-arch: build both platforms sequentially into one manifest (local use)
+manifest-%: update-package-versions
+ -@${DOCKER} manifest rm \
+ ${CONTAINER_BASE}/trustgraph-${@:manifest-%=%}:${VERSION}
+ ${DOCKER} build --platform linux/amd64,linux/arm64 \
+ -f containers/Containerfile.${@:manifest-%=%} \
+ --manifest \
+ ${CONTAINER_BASE}/trustgraph-${@:manifest-%=%}:${VERSION} .
-container-trustgraph-bedrock: update-package-versions
- ${DOCKER} build -f containers/Containerfile.bedrock -t ${CONTAINER_BASE}/trustgraph-bedrock:${VERSION} .
+# Multi-arch: build a single platform image (for parallel CI)
+platform-%-amd64: update-package-versions
+ ${DOCKER} build --platform linux/amd64 \
+ -f containers/Containerfile.${@:platform-%-amd64=%} \
+ -t ${CONTAINER_BASE}/trustgraph-${@:platform-%-amd64=%}:${VERSION}-amd64 .
-container-trustgraph-vertexai: update-package-versions
- ${DOCKER} build -f containers/Containerfile.vertexai -t ${CONTAINER_BASE}/trustgraph-vertexai:${VERSION} .
+platform-%-arm64: update-package-versions
+ ${DOCKER} build --platform linux/arm64 \
+ -f containers/Containerfile.${@:platform-%-arm64=%} \
+ -t ${CONTAINER_BASE}/trustgraph-${@:platform-%-arm64=%}:${VERSION}-arm64 .
-container-trustgraph-hf: update-package-versions
- ${DOCKER} build -f containers/Containerfile.hf -t ${CONTAINER_BASE}/trustgraph-hf:${VERSION} .
+# Push a single platform image
+push-platform-%-amd64:
+ ${DOCKER} push \
+ ${CONTAINER_BASE}/trustgraph-${@:push-platform-%-amd64=%}:${VERSION}-amd64
-container-trustgraph-ocr: update-package-versions
- ${DOCKER} build -f containers/Containerfile.ocr -t ${CONTAINER_BASE}/trustgraph-ocr:${VERSION} .
+push-platform-%-arm64:
+ ${DOCKER} push \
+ ${CONTAINER_BASE}/trustgraph-${@:push-platform-%-arm64=%}:${VERSION}-arm64
-container-trustgraph-unstructured: update-package-versions
- ${DOCKER} build -f containers/Containerfile.unstructured -t ${CONTAINER_BASE}/trustgraph-unstructured:${VERSION} .
+# Combine per-platform images into a multi-arch manifest
+combine-manifest-%:
+ -@${DOCKER} manifest rm \
+ ${CONTAINER_BASE}/trustgraph-${@:combine-manifest-%=%}:${VERSION}
+ ${DOCKER} manifest create \
+ ${CONTAINER_BASE}/trustgraph-${@:combine-manifest-%=%}:${VERSION} \
+ docker://${CONTAINER_BASE}/trustgraph-${@:combine-manifest-%=%}:${VERSION}-amd64 \
+ docker://${CONTAINER_BASE}/trustgraph-${@:combine-manifest-%=%}:${VERSION}-arm64
+ ${DOCKER} manifest push \
+ ${CONTAINER_BASE}/trustgraph-${@:combine-manifest-%=%}:${VERSION}
-container-trustgraph-mcp: update-package-versions
- ${DOCKER} build -f containers/Containerfile.mcp -t ${CONTAINER_BASE}/trustgraph-mcp:${VERSION} .
+# Push a container
+push-container-%:
+ ${DOCKER} push \
+ ${CONTAINER_BASE}/trustgraph-${@:push-container-%=%}:${VERSION}
-# Individual container push targets
-push-trustgraph-base:
- ${DOCKER} push ${CONTAINER_BASE}/trustgraph-base:${VERSION}
-
-push-trustgraph-flow:
- ${DOCKER} push ${CONTAINER_BASE}/trustgraph-flow:${VERSION}
-
-push-trustgraph-bedrock:
- ${DOCKER} push ${CONTAINER_BASE}/trustgraph-bedrock:${VERSION}
-
-push-trustgraph-vertexai:
- ${DOCKER} push ${CONTAINER_BASE}/trustgraph-vertexai:${VERSION}
-
-push-trustgraph-hf:
- ${DOCKER} push ${CONTAINER_BASE}/trustgraph-hf:${VERSION}
-
-push-trustgraph-ocr:
- ${DOCKER} push ${CONTAINER_BASE}/trustgraph-ocr:${VERSION}
-
-push-trustgraph-unstructured:
- ${DOCKER} push ${CONTAINER_BASE}/trustgraph-unstructured:${VERSION}
-
-push-trustgraph-mcp:
- ${DOCKER} push ${CONTAINER_BASE}/trustgraph-mcp:${VERSION}
+# Push a manifest (from local multi-arch build)
+push-manifest-%:
+ ${DOCKER} manifest push \
+ ${CONTAINER_BASE}/trustgraph-${@:push-manifest-%=%}:${VERSION}
clean:
rm -rf wheels/
@@ -164,52 +131,6 @@ clean:
set-version:
echo '"${VERSION}"' > templates/values/version.jsonnet
-TEMPLATES=azure bedrock claude cohere mix llamafile mistral ollama openai vertexai \
- openai-neo4j storage
-
-DCS=$(foreach template,${TEMPLATES},${template:%=tg-launch-%.yaml})
-
-MODELS=azure bedrock claude cohere llamafile mistral ollama openai vertexai
-GRAPHS=cassandra neo4j falkordb memgraph
-
-# tg-launch-%.yaml: templates/%.jsonnet templates/components/version.jsonnet
-# jsonnet -Jtemplates \
-# -S ${@:tg-launch-%.yaml=templates/%.jsonnet} > $@
-
-# VECTORDB=milvus
-VECTORDB=qdrant
-
-JSONNET_FLAGS=-J templates -J .
-
-# Temporarily going back to how templates were built in 0.9 because this
-# is going away in 0.11.
-
-update-templates: update-dcs
-
-JSON_TO_YAML=python -c 'import sys, yaml, json; j=json.loads(sys.stdin.read()); print(yaml.safe_dump(j))'
-
-update-dcs: set-version
- for graph in ${GRAPHS}; do \
- cm=$${graph},pulsar,${VECTORDB},grafana; \
- input=templates/opts-to-docker-compose.jsonnet; \
- output=tg-storage-$${graph}.yaml; \
- echo $${graph} '->' $${output}; \
- jsonnet ${JSONNET_FLAGS} \
- --ext-str options=$${cm} $${input} | \
- ${JSON_TO_YAML} > $${output}; \
- done
- for model in ${MODELS}; do \
- for graph in ${GRAPHS}; do \
- cm=$${graph},pulsar,${VECTORDB},embeddings-hf,graph-rag,grafana,trustgraph,$${model}; \
- input=templates/opts-to-docker-compose.jsonnet; \
- output=tg-launch-$${model}-$${graph}.yaml; \
- echo $${model} + $${graph} '->' $${output}; \
- jsonnet ${JSONNET_FLAGS} \
- --ext-str options=$${cm} $${input} | \
- ${JSON_TO_YAML} > $${output}; \
- done; \
- done
-
docker-hub-login:
cat docker-token.txt | \
${DOCKER} login -u trustgraph --password-stdin registry-1.docker.io
diff --git a/README.md b/README.md
index 17292e26..b1d94c52 100644
--- a/README.md
+++ b/README.md
@@ -7,6 +7,8 @@
[](https://discord.gg/sQMwkRz5GX) [](https://deepwiki.com/trustgraph-ai/trustgraph)
+[](https://cossmology.com/organizations/trustgraph)
+
[**Website**](https://trustgraph.ai) | [**Docs**](https://docs.trustgraph.ai) | [**YouTube**](https://www.youtube.com/@TrustGraphAI?sub_confirmation=1) | [**Configuration Terminal**](https://config-ui.demo.trustgraph.ai/) | [**Discord**](https://discord.gg/sQMwkRz5GX) | [**Blog**](https://blog.trustgraph.ai/subscribe)
diff --git a/containers/Containerfile.hf b/containers/Containerfile.hf
index 351300ae..a1ec5346 100644
--- a/containers/Containerfile.hf
+++ b/containers/Containerfile.hf
@@ -1,22 +1,22 @@
-# ----------------------------------------------------------------------------
-# Build an AI container. This does the torch install which is huge, and I
-# like to avoid re-doing this.
-# ----------------------------------------------------------------------------
+# Torch is stable and compiles for ARM64 and AMD64 on Python 3.12
FROM docker.io/fedora:42 AS ai
ENV PIP_BREAK_SYSTEM_PACKAGES=1
-RUN dnf install -y python3.13 && \
- alternatives --install /usr/bin/python python /usr/bin/python3.13 1 && \
+RUN dnf install -y python3.12 && \
+ alternatives --install /usr/bin/python python /usr/bin/python3.12 1 && \
python -m ensurepip --upgrade && \
pip3 install --no-cache-dir build wheel aiohttp && \
pip3 install --no-cache-dir pulsar-client==3.7.0 && \
dnf clean all
-RUN pip3 install torch==2.5.1+cpu \
- --index-url https://download.pytorch.org/whl/cpu
+# This won't work on ARM
+#RUN pip3 install torch==2.5.1+cpu \
+# --index-url https://download.pytorch.org/whl/cpu
+
+RUN pip3 install torch
RUN pip3 install --no-cache-dir \
langchain==0.3.25 langchain-core==0.3.60 langchain-huggingface==0.2.0 \
diff --git a/dev-tools/proc-group/README.md b/dev-tools/proc-group/README.md
new file mode 100644
index 00000000..1874ea36
--- /dev/null
+++ b/dev-tools/proc-group/README.md
@@ -0,0 +1,117 @@
+# proc-group — run TrustGraph as a single process
+
+A dev-focused alternative to the per-container deployment. Instead of 30+
+containers each running a single processor, `processor-group` runs all the
+processors as asyncio tasks inside one Python process, sharing the event
+loop, Prometheus registry, and (importantly) resources on your laptop.
+
+This is **not** for production. Scale deployments should keep using
+per-processor containers — one failure bringing down the whole process,
+no horizontal scaling, and a single giant log are fine for dev and a
+bad idea in prod.
+
+## What this directory contains
+
+- `group.yaml` — the group runner config. One entry per processor, each
+ with the dotted class path and a params dict. Defaults (pubsub backend,
+ rabbitmq host, log level) are pulled in per-entry with a YAML anchor.
+- `README.md` — this file.
+
+## Prerequisites
+
+Install the TrustGraph packages into a venv:
+
+```
+pip install trustgraph-base trustgraph-flow trustgraph-unstructured
+```
+
+`trustgraph-base` provides the `processor-group` endpoint. The others
+provide the processor classes that `group.yaml` imports at runtime.
+`trustgraph-unstructured` is only needed if you want `document-decoder`
+(the `universal-decoder` processor).
+
+## Running it
+
+Start infrastructure (cassandra, qdrant, rabbitmq, garage, observability
+stack) with a working compose file. These aren't packable into the group -
+they're third-party services. You may be able to run these as standalone
+services.
+
+To get Cassandra to be accessible from the host, you need to
+set a couple of environment variables:
+```
+ CASSANDRA_BROADCAST_ADDRESS: 127.0.0.1
+ CASSANDRA_LISTEN_ADDRESS: 127.0.0.1
+```
+and also set `network: host`. Then start services:
+
+```
+podman-compose up -d cassandra qdrant rabbitmq
+podman-compose up -d garage garage-init
+podman-compose up -d loki prometheus grafana
+podman-compose up -d init-trustgraph
+```
+
+`init-trustgraph` is a one-shot that seeds config and the default flow
+into cassandra/rabbitmq. Don't leave too long a delay between starting
+`init-trustgraph` and running the processor-group, because it needs to
+talk to the config service.
+
+Run the api-gateway separately — it's an aiohttp HTTP server, not an
+`AsyncProcessor`, so the group runner doesn't host it:
+
+Raise the file descriptor limit — 30+ processors sharing one process
+open far more sockets than the default 1024 allows:
+
+```
+ulimit -n 65536
+```
+
+Then start the group from a terminal:
+
+```
+processor-group -c group.yaml --no-loki-enabled
+```
+
+You'll see every processor's startup messages interleaved in one log.
+Each processor has a supervisor that restarts it independently on
+failure, so a transient crash (or a dependency that isn't ready yet)
+only affects that one processor — siblings keep running and the failing
+one self-heals on the next retry.
+
+Finally when everything is running you can start the API gateway from
+its own terminal:
+
+```
+api-gateway \
+ --pubsub-backend rabbitmq --rabbitmq-host localhost \
+ --loki-url http://localhost:3100/loki/api/v1/push \
+ --no-metrics
+```
+
+
+
+## When things go wrong
+
+- **"Too many open files"** — raise `ulimit -n` further. 65536 is
+ usually plenty but some workflows need more.
+- **One processor failing repeatedly** — look for its id in the log. The
+ supervisor will log each failure before restarting. Fix the cause
+ (missing env var, unreachable dependency, bad params) and the
+ processor self-heals on the next 4-second retry without restarting
+ the whole group.
+- **Ctrl-C leaves the process hung** — the pika and cassandra drivers
+ spawn non-cooperative threads that asyncio can't cancel. Use Ctrl-\
+ (SIGQUIT) to force-kill. Not a bug in the group runner, just a
+ limitation of those libraries.
+
+## Environment variables
+
+Processors that talk to external LLMs or APIs read their credentials
+from env vars, same as in the per-container deployment:
+
+- `OPENAI_TOKEN`, `OPENAI_BASE_URL` — for `text-completion` /
+ `text-completion-rag`
+
+Export whatever your particular `group.yaml` needs before running.
+
diff --git a/dev-tools/proc-group/group.yaml b/dev-tools/proc-group/group.yaml
new file mode 100644
index 00000000..98ef5016
--- /dev/null
+++ b/dev-tools/proc-group/group.yaml
@@ -0,0 +1,257 @@
+# Multi-processor group config, derived from docker-compose.yaml.
+#
+# Covers every AsyncProcessor-based service from the compose file.
+# Out of scope:
+# - api-gateway (aiohttp, not AsyncProcessor)
+# - init-trustgraph (one-shot init, not a processor)
+# - document-decoder (universal-decoder, trustgraph-unstructured package —
+# packable but lives in a separate image/package)
+# - mcp-server (trustgraph-mcp package, separate image)
+# - ddg-mcp-server (third-party image)
+# - infrastructure (cassandra, rabbitmq, qdrant, garage, grafana,
+# prometheus, loki, workbench-ui)
+#
+# Run with:
+# processor-group -c group.yaml
+
+_defaults: &defaults
+ pubsub_backend: rabbitmq
+ rabbitmq_host: localhost
+ log_level: INFO
+
+processors:
+
+ - class: trustgraph.agent.orchestrator.Processor
+ params:
+ <<: *defaults
+ id: agent-manager
+
+ - class: trustgraph.chunking.recursive.Processor
+ params:
+ <<: *defaults
+ id: chunker
+ chunk_size: 2000
+ chunk_overlap: 50
+
+ - class: trustgraph.config.service.Processor
+ params:
+ <<: *defaults
+ id: config-svc
+ cassandra_host: localhost
+
+ - class: trustgraph.decoding.universal.Processor
+ params:
+ <<: *defaults
+ id: document-decoder
+
+ - class: trustgraph.embeddings.document_embeddings.Processor
+ params:
+ <<: *defaults
+ id: document-embeddings
+
+ - class: trustgraph.retrieval.document_rag.Processor
+ params:
+ <<: *defaults
+ id: document-rag
+ doc_limit: 20
+
+ - class: trustgraph.embeddings.fastembed.Processor
+ params:
+ <<: *defaults
+ id: embeddings
+ concurrency: 1
+
+ - class: trustgraph.embeddings.graph_embeddings.Processor
+ params:
+ <<: *defaults
+ id: graph-embeddings
+
+ - class: trustgraph.retrieval.graph_rag.Processor
+ params:
+ <<: *defaults
+ id: graph-rag
+ concurrency: 1
+ entity_limit: 50
+ triple_limit: 30
+ edge_limit: 30
+ edge_score_limit: 10
+ max_subgraph_size: 100
+ max_path_length: 2
+
+ - class: trustgraph.extract.kg.agent.Processor
+ params:
+ <<: *defaults
+ id: kg-extract-agent
+ concurrency: 1
+
+ - class: trustgraph.extract.kg.definitions.Processor
+ params:
+ <<: *defaults
+ id: kg-extract-definitions
+ concurrency: 1
+
+ - class: trustgraph.extract.kg.ontology.Processor
+ params:
+ <<: *defaults
+ id: kg-extract-ontology
+ concurrency: 1
+
+ - class: trustgraph.extract.kg.relationships.Processor
+ params:
+ <<: *defaults
+ id: kg-extract-relationships
+ concurrency: 1
+
+ - class: trustgraph.extract.kg.rows.Processor
+ params:
+ <<: *defaults
+ id: kg-extract-rows
+ concurrency: 1
+
+ - class: trustgraph.cores.service.Processor
+ params:
+ <<: *defaults
+ id: knowledge
+ cassandra_host: localhost
+
+ - class: trustgraph.storage.knowledge.store.Processor
+ params:
+ <<: *defaults
+ id: kg-store
+ cassandra_host: localhost
+
+ - class: trustgraph.librarian.Processor
+ params:
+ <<: *defaults
+ id: librarian
+ cassandra_host: localhost
+ object_store_endpoint: localhost:3900
+ object_store_access_key: GK000000000000000000000001
+ object_store_secret_key: b171f00be9be4c32c734f4c05fe64c527a8ab5eb823b376cfa8c2531f70fc427
+ object_store_region: garage
+
+ - class: trustgraph.agent.mcp_tool.Service
+ params:
+ <<: *defaults
+ id: mcp-tool
+
+ - class: trustgraph.metering.Processor
+ params:
+ <<: *defaults
+ id: metering
+
+ - class: trustgraph.metering.Processor
+ params:
+ <<: *defaults
+ id: metering-rag
+
+ - class: trustgraph.retrieval.nlp_query.Processor
+ params:
+ <<: *defaults
+ id: nlp-query
+
+ - class: trustgraph.prompt.template.Processor
+ params:
+ <<: *defaults
+ id: prompt
+ concurrency: 1
+
+ - class: trustgraph.prompt.template.Processor
+ params:
+ <<: *defaults
+ id: prompt-rag
+ concurrency: 1
+
+ - class: trustgraph.query.doc_embeddings.qdrant.Processor
+ params:
+ <<: *defaults
+ id: doc-embeddings-query
+ store_uri: http://localhost:6333
+
+ - class: trustgraph.query.graph_embeddings.qdrant.Processor
+ params:
+ <<: *defaults
+ id: graph-embeddings-query
+ store_uri: http://localhost:6333
+
+ - class: trustgraph.query.row_embeddings.qdrant.Processor
+ params:
+ <<: *defaults
+ id: row-embeddings-query
+ store_uri: http://localhost:6333
+
+ - class: trustgraph.query.rows.cassandra.Processor
+ params:
+ <<: *defaults
+ id: rows-query
+ cassandra_host: localhost
+
+ - class: trustgraph.query.triples.cassandra.Processor
+ params:
+ <<: *defaults
+ id: triples-query
+ cassandra_host: localhost
+
+ - class: trustgraph.embeddings.row_embeddings.Processor
+ params:
+ <<: *defaults
+ id: row-embeddings
+
+ - class: trustgraph.query.sparql.Processor
+ params:
+ <<: *defaults
+ id: sparql-query
+
+ - class: trustgraph.storage.doc_embeddings.qdrant.Processor
+ params:
+ <<: *defaults
+ id: doc-embeddings-write
+ store_uri: http://localhost:6333
+
+ - class: trustgraph.storage.graph_embeddings.qdrant.Processor
+ params:
+ <<: *defaults
+ id: graph-embeddings-write
+ store_uri: http://localhost:6333
+
+ - class: trustgraph.storage.row_embeddings.qdrant.Processor
+ params:
+ <<: *defaults
+ id: row-embeddings-write
+ store_uri: http://localhost:6333
+
+ - class: trustgraph.storage.rows.cassandra.Processor
+ params:
+ <<: *defaults
+ id: rows-write
+ cassandra_host: localhost
+
+ - class: trustgraph.storage.triples.cassandra.Processor
+ params:
+ <<: *defaults
+ id: triples-write
+ cassandra_host: localhost
+
+ - class: trustgraph.retrieval.structured_diag.Processor
+ params:
+ <<: *defaults
+ id: structured-diag
+
+ - class: trustgraph.retrieval.structured_query.Processor
+ params:
+ <<: *defaults
+ id: structured-query
+
+ - class: trustgraph.model.text_completion.openai.Processor
+ params:
+ <<: *defaults
+ id: text-completion
+ max_output: 8192
+ temperature: 0.0
+
+ - class: trustgraph.model.text_completion.openai.Processor
+ params:
+ <<: *defaults
+ id: text-completion-rag
+ max_output: 8192
+ temperature: 0.0
diff --git a/dev-tools/proc-group/groups/control.yaml b/dev-tools/proc-group/groups/control.yaml
new file mode 100644
index 00000000..b9ee9bfa
--- /dev/null
+++ b/dev-tools/proc-group/groups/control.yaml
@@ -0,0 +1,47 @@
+# Control plane. Stateful "always on" services that every flow depends on.
+# Cassandra-heavy, low traffic.
+
+_defaults: &defaults
+ pubsub_backend: rabbitmq
+ rabbitmq_host: localhost
+ log_level: INFO
+
+processors:
+
+ - class: trustgraph.config.service.Processor
+ params:
+ <<: *defaults
+ id: config-svc
+ cassandra_host: localhost
+
+ - class: trustgraph.librarian.Processor
+ params:
+ <<: *defaults
+ id: librarian
+ cassandra_host: localhost
+ object_store_endpoint: localhost:3900
+ object_store_access_key: GK000000000000000000000001
+ object_store_secret_key: b171f00be9be4c32c734f4c05fe64c527a8ab5eb823b376cfa8c2531f70fc427
+ object_store_region: garage
+
+ - class: trustgraph.cores.service.Processor
+ params:
+ <<: *defaults
+ id: knowledge
+ cassandra_host: localhost
+
+ - class: trustgraph.storage.knowledge.store.Processor
+ params:
+ <<: *defaults
+ id: kg-store
+ cassandra_host: localhost
+
+ - class: trustgraph.metering.Processor
+ params:
+ <<: *defaults
+ id: metering
+
+ - class: trustgraph.metering.Processor
+ params:
+ <<: *defaults
+ id: metering-rag
diff --git a/dev-tools/proc-group/groups/embeddings-store.yaml b/dev-tools/proc-group/groups/embeddings-store.yaml
new file mode 100644
index 00000000..b5d4a6c8
--- /dev/null
+++ b/dev-tools/proc-group/groups/embeddings-store.yaml
@@ -0,0 +1,45 @@
+# Embeddings store. All Qdrant-backed vector query/write processors.
+# One process owns the Qdrant driver pool for the whole group.
+
+_defaults: &defaults
+ pubsub_backend: rabbitmq
+ rabbitmq_host: localhost
+ log_level: INFO
+
+processors:
+
+ - class: trustgraph.query.doc_embeddings.qdrant.Processor
+ params:
+ <<: *defaults
+ id: doc-embeddings-query
+ store_uri: http://localhost:6333
+
+ - class: trustgraph.storage.doc_embeddings.qdrant.Processor
+ params:
+ <<: *defaults
+ id: doc-embeddings-write
+ store_uri: http://localhost:6333
+
+ - class: trustgraph.query.graph_embeddings.qdrant.Processor
+ params:
+ <<: *defaults
+ id: graph-embeddings-query
+ store_uri: http://localhost:6333
+
+ - class: trustgraph.storage.graph_embeddings.qdrant.Processor
+ params:
+ <<: *defaults
+ id: graph-embeddings-write
+ store_uri: http://localhost:6333
+
+ - class: trustgraph.query.row_embeddings.qdrant.Processor
+ params:
+ <<: *defaults
+ id: row-embeddings-query
+ store_uri: http://localhost:6333
+
+ - class: trustgraph.storage.row_embeddings.qdrant.Processor
+ params:
+ <<: *defaults
+ id: row-embeddings-write
+ store_uri: http://localhost:6333
diff --git a/dev-tools/proc-group/groups/embeddings.yaml b/dev-tools/proc-group/groups/embeddings.yaml
new file mode 100644
index 00000000..a4e0298b
--- /dev/null
+++ b/dev-tools/proc-group/groups/embeddings.yaml
@@ -0,0 +1,31 @@
+# Embeddings. Memory-hungry — fastembed loads an ML model at startup.
+# Keep isolated from other groups so its memory footprint and restart
+# latency don't affect siblings.
+
+_defaults: &defaults
+ pubsub_backend: rabbitmq
+ rabbitmq_host: localhost
+ log_level: INFO
+
+processors:
+
+ - class: trustgraph.embeddings.fastembed.Processor
+ params:
+ <<: *defaults
+ id: embeddings
+ concurrency: 1
+
+ - class: trustgraph.embeddings.document_embeddings.Processor
+ params:
+ <<: *defaults
+ id: document-embeddings
+
+ - class: trustgraph.embeddings.graph_embeddings.Processor
+ params:
+ <<: *defaults
+ id: graph-embeddings
+
+ - class: trustgraph.embeddings.row_embeddings.Processor
+ params:
+ <<: *defaults
+ id: row-embeddings
diff --git a/dev-tools/proc-group/groups/ingest.yaml b/dev-tools/proc-group/groups/ingest.yaml
new file mode 100644
index 00000000..146a6339
--- /dev/null
+++ b/dev-tools/proc-group/groups/ingest.yaml
@@ -0,0 +1,52 @@
+# Ingest pipeline. Document-processing hot path. Bursty, correlated
+# failures — if chunker dies the extractors have nothing to do anyway.
+
+_defaults: &defaults
+ pubsub_backend: rabbitmq
+ rabbitmq_host: localhost
+ log_level: INFO
+
+processors:
+
+ - class: trustgraph.chunking.recursive.Processor
+ params:
+ <<: *defaults
+ id: chunker
+ chunk_size: 2000
+ chunk_overlap: 50
+
+ - class: trustgraph.extract.kg.agent.Processor
+ params:
+ <<: *defaults
+ id: kg-extract-agent
+ concurrency: 1
+
+ - class: trustgraph.extract.kg.definitions.Processor
+ params:
+ <<: *defaults
+ id: kg-extract-definitions
+ concurrency: 1
+
+ - class: trustgraph.extract.kg.ontology.Processor
+ params:
+ <<: *defaults
+ id: kg-extract-ontology
+ concurrency: 1
+
+ - class: trustgraph.extract.kg.relationships.Processor
+ params:
+ <<: *defaults
+ id: kg-extract-relationships
+ concurrency: 1
+
+ - class: trustgraph.extract.kg.rows.Processor
+ params:
+ <<: *defaults
+ id: kg-extract-rows
+ concurrency: 1
+
+ - class: trustgraph.prompt.template.Processor
+ params:
+ <<: *defaults
+ id: prompt
+ concurrency: 1
diff --git a/dev-tools/proc-group/groups/llm.yaml b/dev-tools/proc-group/groups/llm.yaml
new file mode 100644
index 00000000..35930dbf
--- /dev/null
+++ b/dev-tools/proc-group/groups/llm.yaml
@@ -0,0 +1,24 @@
+# LLM. Outbound text-completion calls. Isolated because the upstream
+# LLM API is often the bottleneck and the most likely thing to need
+# restart (provider changes, model changes, API flakiness).
+
+_defaults: &defaults
+ pubsub_backend: rabbitmq
+ rabbitmq_host: localhost
+ log_level: INFO
+
+processors:
+
+ - class: trustgraph.model.text_completion.openai.Processor
+ params:
+ <<: *defaults
+ id: text-completion
+ max_output: 8192
+ temperature: 0.0
+
+ - class: trustgraph.model.text_completion.openai.Processor
+ params:
+ <<: *defaults
+ id: text-completion-rag
+ max_output: 8192
+ temperature: 0.0
diff --git a/dev-tools/proc-group/groups/rag.yaml b/dev-tools/proc-group/groups/rag.yaml
new file mode 100644
index 00000000..be27086b
--- /dev/null
+++ b/dev-tools/proc-group/groups/rag.yaml
@@ -0,0 +1,64 @@
+# RAG / retrieval / agent. Query-time serving path. Drives outbound
+# LLM calls via prompt-rag. sparql-query lives here because it's a
+# read-side serving endpoint, not a backend writer.
+
+_defaults: &defaults
+ pubsub_backend: rabbitmq
+ rabbitmq_host: localhost
+ log_level: INFO
+
+processors:
+
+ - class: trustgraph.agent.orchestrator.Processor
+ params:
+ <<: *defaults
+ id: agent-manager
+
+ - class: trustgraph.retrieval.graph_rag.Processor
+ params:
+ <<: *defaults
+ id: graph-rag
+ concurrency: 1
+ entity_limit: 50
+ triple_limit: 30
+ edge_limit: 30
+ edge_score_limit: 10
+ max_subgraph_size: 100
+ max_path_length: 2
+
+ - class: trustgraph.retrieval.document_rag.Processor
+ params:
+ <<: *defaults
+ id: document-rag
+ doc_limit: 20
+
+ - class: trustgraph.retrieval.nlp_query.Processor
+ params:
+ <<: *defaults
+ id: nlp-query
+
+ - class: trustgraph.retrieval.structured_query.Processor
+ params:
+ <<: *defaults
+ id: structured-query
+
+ - class: trustgraph.retrieval.structured_diag.Processor
+ params:
+ <<: *defaults
+ id: structured-diag
+
+ - class: trustgraph.query.sparql.Processor
+ params:
+ <<: *defaults
+ id: sparql-query
+
+ - class: trustgraph.prompt.template.Processor
+ params:
+ <<: *defaults
+ id: prompt-rag
+ concurrency: 1
+
+ - class: trustgraph.agent.mcp_tool.Service
+ params:
+ <<: *defaults
+ id: mcp-tool
diff --git a/dev-tools/proc-group/groups/rows-store.yaml b/dev-tools/proc-group/groups/rows-store.yaml
new file mode 100644
index 00000000..ed52556d
--- /dev/null
+++ b/dev-tools/proc-group/groups/rows-store.yaml
@@ -0,0 +1,20 @@
+# Rows store. Cassandra-backed structured row query/write.
+
+_defaults: &defaults
+ pubsub_backend: rabbitmq
+ rabbitmq_host: localhost
+ log_level: INFO
+
+processors:
+
+ - class: trustgraph.query.rows.cassandra.Processor
+ params:
+ <<: *defaults
+ id: rows-query
+ cassandra_host: localhost
+
+ - class: trustgraph.storage.rows.cassandra.Processor
+ params:
+ <<: *defaults
+ id: rows-write
+ cassandra_host: localhost
diff --git a/dev-tools/proc-group/groups/triples-store.yaml b/dev-tools/proc-group/groups/triples-store.yaml
new file mode 100644
index 00000000..4e32bfbd
--- /dev/null
+++ b/dev-tools/proc-group/groups/triples-store.yaml
@@ -0,0 +1,20 @@
+# Triples store. Cassandra-backed RDF triple query/write.
+
+_defaults: &defaults
+ pubsub_backend: rabbitmq
+ rabbitmq_host: localhost
+ log_level: INFO
+
+processors:
+
+ - class: trustgraph.query.triples.cassandra.Processor
+ params:
+ <<: *defaults
+ id: triples-query
+ cassandra_host: localhost
+
+ - class: trustgraph.storage.triples.cassandra.Processor
+ params:
+ <<: *defaults
+ id: triples-write
+ cassandra_host: localhost
diff --git a/dev-tools/tests/agent_dag/analyse_trace.py b/dev-tools/tests/agent_dag/analyse_trace.py
index b71cdebe..42cca118 100644
--- a/dev-tools/tests/agent_dag/analyse_trace.py
+++ b/dev-tools/tests/agent_dag/analyse_trace.py
@@ -131,21 +131,21 @@ async def analyse(path, url, flow, user, collection):
for i, msg in enumerate(messages):
resp = msg.get("response", {})
- chunk_type = resp.get("chunk_type", "?")
+ message_type = resp.get("message_type", "?")
- if chunk_type == "explain":
+ if message_type == "explain":
explain_id = resp.get("explain_id", "")
explain_ids.append(explain_id)
- print(f" {i:3d} {chunk_type} {explain_id}")
+ print(f" {i:3d} {message_type} {explain_id}")
else:
- print(f" {i:3d} {chunk_type}")
+ print(f" {i:3d} {message_type}")
# Rule 7: message_id on content chunks
- if chunk_type in ("thought", "observation", "answer"):
+ if message_type in ("thought", "observation", "answer"):
mid = resp.get("message_id", "")
if not mid:
errors.append(
- f"[msg {i}] {chunk_type} chunk missing message_id"
+ f"[msg {i}] {message_type} chunk missing message_id"
)
print()
diff --git a/docs/README.api-docs.ar.md b/docs/README.api-docs.ar.md
new file mode 100644
index 00000000..3880e0e0
--- /dev/null
+++ b/docs/README.api-docs.ar.md
@@ -0,0 +1,61 @@
+---
+layout: default
+title: "إنشاء الوثائق تلقائيًا"
+parent: "Arabic (Beta)"
+---
+
+**تعليمات مهمة:**
+
+- الحفاظ على جميع تنسيقات Markdown، والعناوين، والروابط، وعلامات HTML.
+- لا تقم بترجمة الكود الموجود داخل علامات backticks أو كتل الكود.
+- قم بإخراج النص المترجم فقط، بدون مقدمات أو تفسيرات.
+
+النص المراد ترجمته:
+
+# إنشاء الوثائق تلقائيًا
+
+> **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.
+
+## وثائق واجهة برمجة تطبيقات REST و WebSocket
+
+- `specs/build-docs.sh` - يقوم بإنشاء وثائق REST و WebSocket من مواصفات OpenAPI و AsyncAPI.
+
+## وثائق واجهة برمجة تطبيقات Python
+
+يتم إنشاء وثائق واجهة برمجة تطبيقات Python من سلاسل التوثيق باستخدام نص برمجي Python مخصص يقوم بتحليل حزمة `trustgraph.api`.
+
+### المتطلبات الأساسية
+
+يجب أن تكون حزمة trustgraph قابلة للاستيراد. إذا كنت تعمل في بيئة تطوير:
+
+```bash
+cd trustgraph-base
+pip install -e .
+```
+
+### إنشاء الوثائق
+
+من دليل الوثائق:
+
+```bash
+cd docs
+python3 generate-api-docs.py > python-api.md
+```
+
+يولد هذا ملف Markdown واحد يحتوي على وثائق واجهة برمجة تطبيقات كاملة، ويظهر:
+- دليل التثبيت والإرشادات السريعة
+- عبارات الاستيراد لكل فئة/نوع
+- سلاسل التوثيق الكاملة مع أمثلة
+- جدول محتويات مُنظمة حسب الفئة
+
+### أسلوب الوثائق
+
+تتبع جميع سلاسل التوثيق تنسيق Google:
+- ملخص موجز في سطر واحد
+- وصف تفصيلي
+- قسم Args مع أوصاف المعلمات
+- قسم Returns
+- قسم Raises (عندما يكون ذلك مناسبًا)
+- كتل كود مع تمييز نحوي مناسب
+
+تعرض الوثائق التي تم إنشاؤها واجهة برمجة التطبيقات العامة تمامًا كما يستوردها المستخدمون من `trustgraph.api`، دون الكشف عن هيكل الوحدة الداخلية.
diff --git a/docs/README.api-docs.es.md b/docs/README.api-docs.es.md
new file mode 100644
index 00000000..46d48496
--- /dev/null
+++ b/docs/README.api-docs.es.md
@@ -0,0 +1,53 @@
+---
+layout: default
+title: "Generación automática de documentación"
+parent: "Spanish (Beta)"
+---
+
+# Generación automática de documentación
+
+> **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.
+
+## Documentación de la API REST y WebSocket
+
+- `specs/build-docs.sh` - Genera la documentación de la API REST y WebSocket a partir de las especificaciones OpenAPI y AsyncAPI.
+
+## Documentación de la API Python
+
+La documentación de la API Python se genera a partir de los docstrings utilizando un script de Python personalizado que introspecciona el paquete `trustgraph.api`.
+
+### Requisitos previos
+
+El paquete `trustgraph` debe ser importable. Si estás trabajando en un entorno de desarrollo:
+
+```bash
+cd trustgraph-base
+pip install -e .
+```
+
+### Generación de documentación
+
+Desde el directorio `docs`:
+
+```bash
+cd docs
+python3 generate-api-docs.py > python-api.md
+```
+
+Esto genera un único archivo Markdown con documentación de la API completa, mostrando:
+- Guía de instalación y inicio rápido
+- Declaraciones de importación para cada clase/tipo
+- Docstrings completos con ejemplos
+- Tabla de contenidos organizada por categoría
+
+### Estilo de documentación
+
+Todos los docstrings siguen el formato de Google:
+- Resumen breve de una línea
+- Descripción detallada
+- Sección Args con descripciones de parámetros
+- Sección Returns
+- Sección Raises (cuando corresponda)
+- Bloques de código de ejemplo con resaltado de sintaxis adecuado
+
+La documentación generada muestra la API pública exactamente como los usuarios la importan desde `trustgraph.api`, sin exponer la estructura interna del módulo.
diff --git a/docs/README.api-docs.he.md b/docs/README.api-docs.he.md
new file mode 100644
index 00000000..be612d83
--- /dev/null
+++ b/docs/README.api-docs.he.md
@@ -0,0 +1,53 @@
+---
+layout: default
+title: "יצירת תיעוד אוטומטית"
+parent: "Hebrew (Beta)"
+---
+
+# יצירת תיעוד אוטומטית
+
+> **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.
+
+## תיעוד REST ו-WebSocket API
+
+- `specs/build-docs.sh` - יוצר את תיעוד ה-REST וה-WebSocket מהמפרטים של OpenAPI ו-AsyncAPI.
+
+## תיעוד API בפייתון
+
+תיעוד ה-API בפייתון נוצר מתוך מחרוזות תיאור (docstrings) באמצעות סקריפט פייתון מותאם, אשר סוקר את החבילה `trustgraph.api`.
+
+### תנאים מוקדמים
+
+חבילת `trustgraph` חייבת להיות ניתנת לייבוא. אם אתם עובדים בסביבת פיתוח:
+
+```bash
+cd trustgraph-base
+pip install -e .
+```
+
+### יצירת תיעוד
+
+מתוך תיקיית התיעוד:
+
+```bash
+cd docs
+python3 generate-api-docs.py > python-api.md
+```
+
+זה יוצר קובץ Markdown אחד עם תיעוד API מלא, המציג:
+- מדריך התקנה והתחלה מהירה
+- הצהרות ייבוא עבור כל מחלקה/סוג
+- מחרוזות תיאור מלאות עם דוגמאות
+- תוכן עזר מאורגן לפי קטגוריות
+
+### סגנון התיעוד
+
+כל מחרוזות התיאור עוקבות אחר פורמט Google:
+- סיכום קצר בשורה אחת
+- תיאור מפורט
+- סעיף "Args" עם תיאורי פרמטרים
+- סעיף "Returns"
+- סעיף "Raises" (במידת הצורך)
+- בלוקי קוד לדוגמה עם הדגשת תחביר מתאימה
+
+התיעוד שנוצר מציג את ה-API הציבורי בדיוק כפי שהמשתמשים מייבאים אותו מ-`trustgraph.api`, מבלי לחשוף את המבנה הפנימי של המודול.
diff --git a/docs/README.api-docs.hi.md b/docs/README.api-docs.hi.md
new file mode 100644
index 00000000..74ef9faa
--- /dev/null
+++ b/docs/README.api-docs.hi.md
@@ -0,0 +1,61 @@
+---
+layout: default
+title: "स्वचालित रूप से दस्तावेज़ उत्पन्न करना"
+parent: "Hindi (Beta)"
+---
+
+**महत्वपूर्ण निर्देश:**
+
+- सभी Markdown फॉर्मेटिंग, हेडर, लिंक और HTML टैग को बरकरार रखें।
+- बैक टिक (` `) या कोड ब्लॉक के अंदर के कोड का अनुवाद न करें।
+- केवल अनुवादित पाठ प्रस्तुत करें, बिना किसी प्रारंभिक या स्पष्टीकरण के।
+
+अनुवाद करने के लिए पाठ:
+
+# स्वचालित रूप से दस्तावेज़ उत्पन्न करना
+
+> **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.
+
+## REST और WebSocket API दस्तावेज़
+
+- `specs/build-docs.sh` - OpenAPI और AsyncAPI विनिर्देशों से REST और WebSocket दस्तावेज़ बनाता है।
+
+## पायथन API दस्तावेज़
+
+पायथन API दस्तावेज़, `trustgraph.api` पैकेज का विश्लेषण करके एक कस्टम पायथन स्क्रिप्ट का उपयोग करके docstrings से उत्पन्न होते हैं।
+
+### पूर्व आवश्यकताएँ
+
+trustgraph पैकेज आयात करने योग्य होना चाहिए। यदि आप एक विकास वातावरण में काम कर रहे हैं, तो:
+
+```bash
+cd trustgraph-base
+pip install -e .
+```
+
+### दस्तावेज़ उत्पन्न करना
+
+दस्तावेज़ निर्देशिका से:
+
+```bash
+cd docs
+python3 generate-api-docs.py > python-api.md
+```
+
+यह एक एकल Markdown फ़ाइल उत्पन्न करता है जिसमें संपूर्ण API दस्तावेज़ शामिल है, जिसमें निम्नलिखित शामिल हैं:
+- स्थापना और त्वरित शुरुआत गाइड
+- प्रत्येक वर्ग/प्रकार के लिए आयात कथन
+- पूर्ण docstrings के साथ उदाहरण
+- श्रेणियों द्वारा व्यवस्थित सामग्री तालिका
+
+### दस्तावेज़ शैली
+
+सभी docstrings Google-शैली का पालन करते हैं:
+- संक्षिप्त एक-पंक्ति सारांश
+- विस्तृत विवरण
+- पैरामीटर विवरण के साथ Args अनुभाग
+- रिटर्न अनुभाग
+- प्रासंगिक होने पर Raises अनुभाग
+- उचित सिंटैक्स हाइलाइटिंग के साथ उदाहरण कोड ब्लॉक
+
+उत्पन्न दस्तावेज़ सार्वजनिक API को ठीक उसी तरह दिखाता है जैसे उपयोगकर्ता इसे `trustgraph.api` से आयात करते हैं, आंतरिक मॉड्यूल संरचना को उजागर किए बिना।
diff --git a/docs/README.api-docs.md b/docs/README.api-docs.md
index 8f7fecb8..06f4e2f0 100644
--- a/docs/README.api-docs.md
+++ b/docs/README.api-docs.md
@@ -1,3 +1,8 @@
+---
+layout: default
+title: "Auto-generating docs"
+nav_order: 2
+---
# Auto-generating docs
@@ -45,4 +50,3 @@ All docstrings follow Google-style format:
- Example code blocks with proper syntax highlighting
The generated documentation shows the public API exactly as users import it from `trustgraph.api`, without exposing internal module structure.
-
diff --git a/docs/README.api-docs.pt.md b/docs/README.api-docs.pt.md
new file mode 100644
index 00000000..250d7eb6
--- /dev/null
+++ b/docs/README.api-docs.pt.md
@@ -0,0 +1,54 @@
+---
+layout: default
+title: "Geração automática de documentação"
+parent: "Portuguese (Beta)"
+---
+
+# Geração automática de documentação
+
+> **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.
+
+## Documentação da API REST e WebSocket
+
+`specs/build-docs.sh` - Constrói a documentação REST e WebSocket a partir das
+ especificações OpenAPI e AsyncAPI.
+
+## Documentação da API Python
+
+A documentação da API Python é gerada a partir de docstrings usando um script Python personalizado que inspeciona o pacote `trustgraph.api`.
+
+### Pré-requisitos
+
+O pacote trustgraph deve ser importável. Se você estiver trabalhando em um ambiente de desenvolvimento:
+
+```bash
+cd trustgraph-base
+pip install -e .
+```
+
+### Gerando Documentação
+
+A partir do diretório de documentação:
+
+```bash
+cd docs
+python3 generate-api-docs.py > python-api.md
+```
+
+Isso gera um único arquivo Markdown com documentação completa da API, mostrando:
+Instruções de instalação e guia de início rápido
+Declarações de importação para cada classe/tipo
+Documentação completa com exemplos
+Sumário organizado por categoria
+
+### Estilo da Documentação
+
+Todas as documentações seguem o formato do Google:
+Resumo breve de uma linha
+Descrição detalhada
+Seção "Args" com descrições dos parâmetros
+Seção "Returns"
+Seção "Raises" (quando aplicável)
+Blocos de código de exemplo com realce de sintaxe adequado
+
+A documentação gerada mostra a API pública exatamente como os usuários a importam de `trustgraph.api`, sem expor a estrutura interna do módulo.
diff --git a/docs/README.api-docs.ru.md b/docs/README.api-docs.ru.md
new file mode 100644
index 00000000..b15f961c
--- /dev/null
+++ b/docs/README.api-docs.ru.md
@@ -0,0 +1,53 @@
+---
+layout: default
+title: "Автоматическое создание документации"
+parent: "Russian (Beta)"
+---
+
+# Автоматическое создание документации
+
+> **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.
+
+## Документация REST и WebSocket API
+
+- `specs/build-docs.sh` - Создает документацию для REST и WebSocket API на основе спецификаций OpenAPI и AsyncAPI.
+
+## Документация Python API
+
+Документация Python API генерируется из docstrings с использованием пользовательского скрипта Python, который анализирует пакет `trustgraph.api`.
+
+### Требования
+
+Пакет `trustgraph` должен быть импортируемым. Если вы работаете в среде разработки:
+
+```bash
+cd trustgraph-base
+pip install -e .
+```
+
+### Генерация документации
+
+Из каталога `docs`:
+
+```bash
+cd docs
+python3 generate-api-docs.py > python-api.md
+```
+
+Это создает один файл Markdown с полной документацией API, в котором показаны:
+- Инструкции по установке и быстрому запуску
+- Заявления импорта для каждого класса/типа
+- Полные docstrings с примерами
+- Содержание, организованное по категориям
+
+### Стиль документации
+
+Все docstrings следуют формату Google-style:
+- Краткое однострочное описание
+- Подробное описание
+- Раздел "Args" с описаниями параметров
+- Раздел "Returns"
+- Раздел "Raises" (при необходимости)
+- Блоки с примерами кода с правильной подсветкой синтаксиса
+
+Сгенерированная документация отображает публичный API точно так, как его импортируют из `trustgraph.api`, не раскрывая внутреннюю структуру модуля.
diff --git a/docs/README.api-docs.sw.md b/docs/README.api-docs.sw.md
new file mode 100644
index 00000000..b05af7d1
--- /dev/null
+++ b/docs/README.api-docs.sw.md
@@ -0,0 +1,62 @@
+---
+layout: default
+title: "Kuunda hati moja kwa moja"
+parent: "Swahili (Beta)"
+---
+
+**MAELEZI MUHIMU:**
+
+- Hifadhi KILA muundo wa Markdown, vichwa, viungo, na alama za HTML.
+- EISI tafsiri code ndani ya ` ` au katika mistari ya code.
+- Toa KAMA, tu maandishi iliyotumwa bila maelezo au maelekezo.
+
+Maandishi ya kutafsiri:
+
+# Kuunda hati moja kwa moja
+
+> **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.
+
+## Ufafanuzi wa API za REST na WebSocket
+
+- `specs/build-docs.sh` - Inaunda hati za REST na WebSocket kutoka kwenye
+ maelezo za OpenAPI na AsyncAPI.
+
+## Ufafanuzi wa API ya Python
+
+Ufafanuzi wa API ya Python unaoandaliwa kutoka kwa maelezo (docstrings) kwa kutumia skripti ya Python inayotumia, ambayo inaangalia pakiti `trustgraph.api`.
+
+### Vigezo
+
+Pakiti ya trustgraph lazima iweze kuagizwa. Ikiwa unatumia mazingira ya utengenezaji:
+
+```bash
+cd trustgraph-base
+pip install -e .
+```
+
+### Kuunda hati
+
+Kutoka kwenye orodha ya hati:
+
+```bash
+cd docs
+python3 generate-api-docs.py > python-api.md
+```
+
+Hii inaunda faili moja ya markdown yenye hati kamili ya API, inayoeleza:
+- Mwongozo wa usanidi na wa kuanza
+- Maelezo za kuagiza kwa kila sinema/aina
+- Maelezo kamili (docstrings) na mifano
+- Orodha ya maudhui iliyopangwa kwa kategoria
+
+### Mtindo wa hati
+
+Maelezo yote (docstrings) yanatumia mtindo wa Google:
+- Muhtasari wa mstari moja
+- Maelezo kamili
+- Kitengo cha "Args" na maelezo ya thamani
+- Kitengo cha "Returns"
+- Kitengo cha "Raises" (kama inatumika)
+- Mistari ya code na umbo sahihi
+
+Hati iliyoundwa inaonyesha API iliyo na umbo, kama watumiaji wanavyoagiza kutoka kwa `trustgraph.api`, bila kuonyesha muundo wa moduli.
diff --git a/docs/README.api-docs.tr.md b/docs/README.api-docs.tr.md
new file mode 100644
index 00000000..444ddb3d
--- /dev/null
+++ b/docs/README.api-docs.tr.md
@@ -0,0 +1,54 @@
+---
+layout: default
+title: "Otomatik olarak dokümantasyon oluşturma"
+parent: "Turkish (Beta)"
+---
+
+# Otomatik olarak dokümantasyon oluşturma
+
+> **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.
+
+## REST ve WebSocket API Dokümantasyonu
+
+`specs/build-docs.sh` - REST ve websocket dokümantasyonunu OpenAPI ve AsyncAPI özelliklerinden oluşturur.
+
+## Python API Dokümantasyonu
+
+
+Python API dokümantasyonu, `trustgraph.api` paketini inceleyen özel bir Python betiği kullanılarak, dokümantasyon dizelerinden (docstrings) oluşturulur.
+
+### Ön Koşullar
+
+trustgraph paketi içe aktarılabilir olmalıdır. Geliştirme ortamında çalışıyorsanız:
+
+```bash
+cd trustgraph-base
+pip install -e .
+```
+
+### Belgeler Oluşturma
+
+"docs" dizininden:
+
+```bash
+cd docs
+python3 generate-api-docs.py > python-api.md
+```
+
+Bu, eksiksiz API dokümantasyonunu içeren tek bir Markdown dosyası oluşturur ve şunları gösterir:
+Kurulum ve hızlı başlangıç kılavuzu
+Her sınıf/tip için içe aktarma ifadeleri
+Örneklerle birlikte tam dokümanlar
+Kategoriye göre düzenlenmiş içindekiler tablosu
+
+### Dokümantasyon Stili
+
+Tüm dokümanlar, Google stili biçimini izler:
+Kısa, tek satırlık özet
+Ayrıntılı açıklama
+Parametre açıklamalarıyla birlikte "Args" bölümü
+"Returns" bölümü
+"Raises" bölümü (uygulanabilir olduğunda)
+Doğru sözdizimi vurgulamasıyla birlikte örnek kod blokları
+
+Oluşturulan dokümantasyon, kullanıcıların `trustgraph.api`'dan içe aktardığı şekilde, tam olarak kamu API'sini gösterir ve dahili modül yapısını ortaya çıkarmaz.
diff --git a/docs/README.api-docs.zh-cn.md b/docs/README.api-docs.zh-cn.md
new file mode 100644
index 00000000..b28f2555
--- /dev/null
+++ b/docs/README.api-docs.zh-cn.md
@@ -0,0 +1,53 @@
+---
+layout: default
+title: "自动生成文档"
+parent: "Chinese (Beta)"
+---
+
+# 自动生成文档
+
+> **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.
+
+## REST 和 WebSocket API 文档
+
+- `specs/build-docs.sh` - 从 OpenAPI 和 AsyncAPI 规范生成 REST 和 WebSocket 文档。
+
+## Python API 文档
+
+Python API 文档是从 docstrings 使用自定义 Python 脚本生成的,该脚本会反向解析 `trustgraph.api` 包。
+
+### 预先条件
+
+`trustgraph` 包必须可导入。 如果您在开发环境中工作,请执行以下操作:
+
+```bash
+cd trustgraph-base
+pip install -e .
+```
+
+### 生成文档
+
+从 `docs` 目录:
+
+```bash
+cd docs
+python3 generate-api-docs.py > python-api.md
+```
+
+这将生成一个包含完整 API 文档的单个 Markdown 文件,其中包含:
+- 安装和快速入门指南
+- 每个类/类型的导入语句
+- 完整的 docstrings(包含示例)
+- 按类别组织的目录
+
+### 文档风格
+
+所有 docstrings 均遵循 Google 风格:
+- 简短的一行摘要
+- 详细描述
+- 参数描述的 Args 部分
+- Returns 部分
+- Raises 部分(如果适用)
+- 带有正确语法高亮的代码块(示例)
+
+生成的文档显示了用户从 `trustgraph.api` 中导入的公共 API,而无需暴露内部模块结构。
diff --git a/docs/README.ar.md b/docs/README.ar.md
new file mode 100644
index 00000000..4025bd30
--- /dev/null
+++ b/docs/README.ar.md
@@ -0,0 +1,35 @@
+---
+layout: default
+title: "وثائق TrustGraph"
+parent: "Arabic (Beta)"
+---
+
+**تعليمات مهمة:**
+
+- الحفاظ على جميع تنسيقات Markdown، والعناوين، والروابط، ووسوم HTML.
+- لا تترجم أي كود داخل علامات التنصيص المزدوجة أو كتل الكود.
+- قم بإخراج النص المترجم فقط، بدون أي مقدمات أو تفسيرات.
+
+النص المراد ترجمته:
+# وثائق 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.
+
+مرحبًا بكم في TrustGraph! للحصول على وثائق شاملة، يرجى زيارة:
+
+## 📖 [https://docs.trustgraph.ai](https://docs.trustgraph.ai)
+
+يتضمن الموقع الرئيسي الوثائق:
+
+- **[نظرة عامة](https://docs.trustgraph.ai/overview)** - مقدمة لمفاهيم وهيكل TrustGraph
+- **[دليل المستخدم](https://docs.trustgraph.ai/guides)** - دروس تعليمية خطوة بخطوة وإرشادات
+- **[التثبيت](https://docs.trustgraph.ai/deployment)** - خيارات التثبيت والإعداد
+- **[مرجع](https://docs.trustgraph.ai/reference)** - مواصفات API ووثائق سطر الأوامر
+
+## البدء
+
+**هل أنت جديد في TrustGraph؟** ابدأ بـ [نظرة عامة](https://docs.trustgraph.ai/overview) لفهم النظام.
+
+**هل أنت مستعد للتثبيت؟** تحقق من [دليل التثبيت](https://docs.trustgraph.ai/deployment).
+
+**هل تقوم بدمج الكود؟** راجع [مرجع API](https://docs.trustgraph.ai/reference) للحصول على وثائق REST و WebSocket و SDK.
diff --git a/docs/README.es.md b/docs/README.es.md
new file mode 100644
index 00000000..cad181b6
--- /dev/null
+++ b/docs/README.es.md
@@ -0,0 +1,28 @@
+---
+layout: default
+title: "Documentación de TrustGraph"
+parent: "Spanish (Beta)"
+---
+
+# Documentación de 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.
+
+¡Bienvenido a TrustGraph! Para una documentación completa, por favor visite:
+
+## 📖 [https://docs.trustgraph.ai](https://docs.trustgraph.ai)
+
+El sitio principal de documentación incluye:
+
+- **[Descripción general](https://docs.trustgraph.ai/overview)** - Introducción a los conceptos y la arquitectura de TrustGraph
+- **[Guías](https://docs.trustgraph.ai/guides)** - Tutoriales paso a paso y guías de cómo hacerlo
+- **[Implementación](https://docs.trustgraph.ai/deployment)** - Opciones de implementación y configuración
+- **[Referencia](https://docs.trustgraph.ai/reference)** - Especificaciones de la API y documentación de la línea de comandos
+
+## Primeros Pasos
+
+**¿Eres nuevo en TrustGraph?** Comienza con la [Descripción general](https://docs.trustgraph.ai/overview) para comprender el sistema.
+
+**¿Listo para implementar?** Consulta la [Guía de implementación](https://docs.trustgraph.ai/deployment).
+
+**¿Integrando con código?** Consulta la [Referencia de la API](https://docs.trustgraph.ai/reference) para la documentación de REST, WebSocket y SDK.
diff --git a/docs/README.he.md b/docs/README.he.md
new file mode 100644
index 00000000..62ecf440
--- /dev/null
+++ b/docs/README.he.md
@@ -0,0 +1,34 @@
+---
+layout: default
+title: "TrustGraph Documentation"
+parent: "Hebrew (Beta)"
+---
+
+**הוראות חשובות:**
+- שמרו על כל הפורמט של Markdown, כותרות, קישורים ותגי HTML.
+- אל תתרגמו קוד בתוך סימוני backticks או בלוקי קוד.
+- צרו רק את הטקסט המתורגם, ללא הקדמה או הסברים.
+
+טקסט לתרגום:
+# TrustGraph Documentation
+
+> **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.
+
+ברוכים הבאים ל-TrustGraph! עבור תיעוד מקיף, אנא בקרו ב:
+
+## 📖 [https://docs.trustgraph.ai](https://docs.trustgraph.ai)
+
+אתר התיעוד הראשי כולל:
+
+- **[סקירה](https://docs.trustgraph.ai/overview)** - מבוא להגדרות ואדריכלות של TrustGraph
+- **[מדריכים](https://docs.trustgraph.ai/guides)** - מדריכים וורסטיים
+- **[התקנה](https://docs.trustgraph.ai/deployment)** - אפשרויות התקנה והגדרות
+- **[מדריך](https://docs.trustgraph.ai/reference)** - ספקציפיות API ותיעוד CLI
+
+## התחלה
+
+**חדש ב-TrustGraph?** התחילו עם [הסקירה](https://docs.trustgraph.ai/overview) כדי להבין את המערכת.
+
+**מוכנים להתקין?** בדקו את [מדריך ההתקנה](https://docs.trustgraph.ai/deployment).
+
+**שילוב עם קוד?** עיינו ב-[מדריך ה-API](https://docs.trustgraph.ai/reference) עבור תיעוד REST, WebSocket ו-SDK.
diff --git a/docs/README.hi.md b/docs/README.hi.md
new file mode 100644
index 00000000..e9e5b69f
--- /dev/null
+++ b/docs/README.hi.md
@@ -0,0 +1,35 @@
+---
+layout: default
+title: "ट्रस्टग्राफ दस्तावेज़"
+parent: "Hindi (Beta)"
+---
+
+**महत्वपूर्ण निर्देश:**
+
+- सभी Markdown स्वरूपण, हेडर, लिंक और HTML टैग को बरकरार रखें।
+- बैकटिक या कोड ब्लॉक के अंदर मौजूद कोड का अनुवाद न करें।
+- केवल अनुवादित टेक्स्ट प्रदान करें, बिना किसी संवाद पूर्व-परिभाषा या स्पष्टीकरण के।
+
+अनुवाद के लिए पाठ:
+# ट्रस्टग्राफ दस्तावेज़
+
+> **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.
+
+ट्रस्टग्राफ में आपका स्वागत है! व्यापक दस्तावेज़ के लिए, कृपया इस पर जाएँ:
+
+## 📖 [https://docs.trustgraph.ai](https://docs.trustgraph.ai)
+
+मुख्य दस्तावेज़ साइट में शामिल हैं:
+
+- **[अवलोकन](https://docs.trustgraph.ai/overview)** - ट्रस्टग्राफ अवधारणाओं और वास्तुकला का परिचय
+- **[निर्देश](https://docs.trustgraph.ai/guides)** - चरण-दर-चरण ट्यूटोरियल और कैसे करें गाइड
+- **[परिनियोजन](https://docs.trustgraph.ai/deployment)** - परिनियोजन विकल्प और कॉन्फ़िगरेशन
+- **[संदर्भ](https://docs.trustgraph.ai/reference)** - एपीआई विनिर्देश और कमांड-लाइन दस्तावेज़
+
+## शुरुआत कैसे करें
+
+**क्या आप ट्रस्टग्राफ के नए हैं?** सिस्टम को समझने के लिए [अवलोकन](https://docs.trustgraph.ai/overview) से शुरुआत करें।
+
+**क्या आप परिनियोजित करने के लिए तैयार हैं?** [परिनियोजन गाइड](https://docs.trustgraph.ai/deployment) देखें।
+
+**कोड के साथ एकीकृत करना?** REST, WebSocket और SDK दस्तावेज़ के लिए [एपीआई संदर्भ](https://docs.trustgraph.ai/reference) देखें।
diff --git a/docs/README.md b/docs/README.md
index 35d70763..4c22c9b5 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -1,3 +1,9 @@
+---
+layout: default
+title: "Home"
+nav_order: 1
+---
+
# TrustGraph Documentation
Welcome to TrustGraph! For comprehensive documentation, please visit:
@@ -18,4 +24,3 @@ The main documentation site includes:
**Ready to deploy?** Check out the [Deployment Guide](https://docs.trustgraph.ai/deployment).
**Integrating with code?** See the [API Reference](https://docs.trustgraph.ai/reference) for REST, WebSocket, and SDK documentation.
-
diff --git a/docs/README.pt.md b/docs/README.pt.md
new file mode 100644
index 00000000..747bfa70
--- /dev/null
+++ b/docs/README.pt.md
@@ -0,0 +1,28 @@
+---
+layout: default
+title: "Documentação do TrustGraph"
+parent: "Portuguese (Beta)"
+---
+
+# Documentação do 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.
+
+Bem-vindo ao TrustGraph! Para documentação completa, visite:
+
+## 📖 [https://docs.trustgraph.ai](https://docs.trustgraph.ai)
+
+O site de documentação principal inclui:
+
+**[Visão Geral](https://docs.trustgraph.ai/overview)** - Introdução aos conceitos e arquitetura do TrustGraph
+**[Guias](https://docs.trustgraph.ai/guides)** - Tutoriais passo a passo e guias de como fazer
+**[Implantação](https://docs.trustgraph.ai/deployment)** - Opções de implantação e configuração
+**[Referência](https://docs.trustgraph.ai/reference)** - Especificações da API e documentação da CLI
+
+## Começando
+
+**Novo no TrustGraph?** Comece com a [Visão Geral](https://docs.trustgraph.ai/overview) para entender o sistema.
+
+**Pronto para implantar?** Consulte o [Guia de Implantação](https://docs.trustgraph.ai/deployment).
+
+**Integrando com código?** Consulte a [Referência da API](https://docs.trustgraph.ai/reference) para documentação REST, WebSocket e SDK.
diff --git a/docs/README.ru.md b/docs/README.ru.md
new file mode 100644
index 00000000..b7ea6c3c
--- /dev/null
+++ b/docs/README.ru.md
@@ -0,0 +1,28 @@
+---
+layout: default
+title: "Документация TrustGraph"
+parent: "Russian (Beta)"
+---
+
+# Документация 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.
+
+Добро пожаловать в TrustGraph! Для получения исчерпывающей документации, пожалуйста, посетите:
+
+## 📖 [https://docs.trustgraph.ai](https://docs.trustgraph.ai)
+
+Основной сайт документации включает:
+
+- **[Обзор](https://docs.trustgraph.ai/overview)** - Введение в концепции и архитектуру TrustGraph
+- **[Руководства](https://docs.trustgraph.ai/guides)** - Пошаговые руководства и инструкции
+- **[Развертывание](https://docs.trustgraph.ai/deployment)** - Варианты развертывания и конфигурация
+- **[Справочник](https://docs.trustgraph.ai/reference)** - Спецификации API и документация CLI
+
+## Начало работы
+
+**Вы новичок в TrustGraph?** Начните с [Обзора](https://docs.trustgraph.ai/overview), чтобы понять систему.
+
+**Готовы к развертыванию?** Обратитесь к [Руководству по развертыванию](https://docs.trustgraph.ai/deployment).
+
+**Интеграция с кодом?** Посмотрите [Справочник по API](https://docs.trustgraph.ai/reference) для документации REST, WebSocket и SDK.
diff --git a/docs/README.sw.md b/docs/README.sw.md
new file mode 100644
index 00000000..910577c4
--- /dev/null
+++ b/docs/README.sw.md
@@ -0,0 +1,28 @@
+---
+layout: default
+title: "Miongozo ya TrustGraph"
+parent: "Swahili (Beta)"
+---
+
+# Miongozo 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.
+
+Karibu kwenye TrustGraph! Kwa miongozo kamili, tafadhali tembelea:
+
+## 📖 [https://docs.trustgraph.ai](https://docs.trustgraph.ai)
+
+Tovuti kuu ya miongozo inajumuisha:
+
+**[Mawasilisho](https://docs.trustgraph.ai/overview)** - Utangulizi wa dhana na muundo wa TrustGraph
+**[Mwongozo](https://docs.trustgraph.ai/guides)** - Mafunzo ya hatua kwa hatua na mwongozo wa jinsi ya
+**[Ufungaji](https://docs.trustgraph.ai/deployment)** - Chaguo za ufungaji na usanidi
+**[Marejeleo](https://docs.trustgraph.ai/reference)** - Vipimo vya API na miongozo ya CLI
+
+## Kuanza
+
+**Je, wewe ni mpya katika TrustGraph?** Anza na [Mawasilisho](https://docs.trustgraph.ai/overview) ili kuelewa mfumo.
+
+**Uko tayari kufunga?** Angalia [Mwongozo wa Ufungaji](https://docs.trustgraph.ai/deployment).
+
+**Je, unataka kuunganisha na programu?** Angalia [Marejeleo ya API](https://docs.trustgraph.ai/reference) kwa miongozo ya REST, WebSocket, na SDK.
diff --git a/docs/README.tr.md b/docs/README.tr.md
new file mode 100644
index 00000000..1b582d6e
--- /dev/null
+++ b/docs/README.tr.md
@@ -0,0 +1,28 @@
+---
+layout: default
+title: "TrustGraph Belgeleri"
+parent: "Turkish (Beta)"
+---
+
+# TrustGraph Belgeleri
+
+> **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.
+
+TrustGraph'a hoş geldiniz! Kapsamlı belgeler için lütfen şu adresi ziyaret edin:
+
+## 📖 [https://docs.trustgraph.ai](https://docs.trustgraph.ai)
+
+Ana belge sitesi şunları içerir:
+
+**[Genel Bakış](https://docs.trustgraph.ai/overview)** - TrustGraph kavramlarına ve mimarisine giriş
+**[Kılavuzlar](https://docs.trustgraph.ai/guides)** - Adım adım eğitimler ve nasıl yapılır kılavuzları
+**[Dağıtım](https://docs.trustgraph.ai/deployment)** - Dağıtım seçenekleri ve yapılandırma
+**[Referans](https://docs.trustgraph.ai/reference)** - API özellikleri ve CLI belgeleri
+
+## Başlangıç
+
+**TrustGraph'e yeni mi geldiniz?** Sistemi anlamak için [Genel Bakış](https://docs.trustgraph.ai/overview) bölümüne bakın.
+
+**Dağıtıma hazır mısınız?** [Dağıtım Kılavuzu](https://docs.trustgraph.ai/deployment) bölümüne göz atın.
+
+**Koduyla entegre mi olmak istiyorsunuz?** REST, WebSocket ve SDK belgeleri için [API Referansı](https://docs.trustgraph.ai/reference) bölümüne bakın.
diff --git a/docs/README.zh-cn.md b/docs/README.zh-cn.md
new file mode 100644
index 00000000..91e31a25
--- /dev/null
+++ b/docs/README.zh-cn.md
@@ -0,0 +1,28 @@
+---
+layout: default
+title: "TrustGraph 文档"
+parent: "Chinese (Beta)"
+---
+
+# 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.
+
+欢迎使用 TrustGraph!为了获得全面的文档,请访问:
+
+## 📖 [https://docs.trustgraph.ai](https://docs.trustgraph.ai)
+
+主文档站点包含:
+
+- **[概述](https://docs.trustgraph.ai/overview)** - 介绍 TrustGraph 的概念和架构
+- **[指南](https://docs.trustgraph.ai/guides)** - 逐步教程和操作指南
+- **[部署](https://docs.trustgraph.ai/deployment)** - 部署选项和配置
+- **[参考](https://docs.trustgraph.ai/reference)** - API 规范和 CLI 文档
+
+## 快速入门
+
+**您是 TrustGraph 的新手吗?** 请从 [概述](https://docs.trustgraph.ai/overview) 开始,了解系统。
+
+**准备部署了吗?** 请查看 [部署指南](https://docs.trustgraph.ai/deployment)。
+
+**要与代码集成?** 请查看 [API 参考](https://docs.trustgraph.ai/reference),其中包含 REST、WebSocket 和 SDK 文档。
diff --git a/docs/api-gateway-changes-v1.8-to-v2.1.ar.md b/docs/api-gateway-changes-v1.8-to-v2.1.ar.md
new file mode 100644
index 00000000..d7d87ef3
--- /dev/null
+++ b/docs/api-gateway-changes-v1.8-to-v2.1.ar.md
@@ -0,0 +1,108 @@
+---
+layout: default
+title: "تغييرات في واجهة برمجة التطبيقات: v1.8 إلى v2.1"
+parent: "Arabic (Beta)"
+---
+
+# تغييرات في واجهة برمجة التطبيقات: v1.8 إلى v2.1
+
+> **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.
+
+## ملخص
+
+حصلت واجهة برمجة التطبيقات على مُسِير خدمات WebSocket الجديدة لإرسال استعلامات "التضمين"، ونقطة نهاية REST الجديدة للتدفق لمحتوى المستند، وتم إجراء تغيير كبير في تنسيق الكود من "القيمة" إلى "الحد". تم إعادة تسمية خدمة "الكائنات" إلى "الصفوف".
+
+---
+
+## مُسِير خدمات WebSocket الجديدة
+
+هذه هي خدمات طلب/استجابة جديدة متاحة من خلال مُضاعِف WebSocket في `/api/v1/socket` (محدد على مستوى التدفق):
+
+| مفتاح الخدمة | الوصف |
+|---|---|
+| `document-embeddings` | استعلام عن أجزاء المستند بناءً على التشابه النصي. يستخدم الطلب/الاستجابة مخططات `DocumentEmbeddingsRequest`/`DocumentEmbeddingsResponse`. |
+| `row-embeddings` | استعلام عن صفوف البيانات المنظمة بناءً على التشابه النصي في الحقول المفهرسة. يستخدم الطلب/الاستجابة مخططات `RowEmbeddingsRequest`/`RowEmbeddingsResponse`. |
+
+تضاف إلى مُسِير "graph-embeddings" الحالي (الذي كان موجودًا بالفعل في v1.8 ولكنه قد تم تحديثه).
+
+### قائمة كاملة بمُسِير خدمات تدفق WebSocket (v2.1)
+
+خدمات طلب/استجابة (عبر `/api/v1/flow/{flow}/service/{kind}` أو مُضاعِف WebSocket):
+
+- `agent`, `text-completion`, `prompt`, `mcp-tool`
+- `graph-rag`, `document-rag`
+- `embeddings`, `graph-embeddings`, `document-embeddings`
+- `triples`, `rows`, `nlp-query`, `structured-query`, `structured-diag`
+- `row-embeddings`
+
+---
+
+## نقطة نهاية REST الجديدة
+
+| الطريقة | المسار | الوصف |
+|---|---|---|
+| `GET` | `/api/v1/document-stream` | تدفق محتوى المستند من المكتبة كبيانات خام. معلمات الاستعلام: `user` (مطلوب)، `document-id` (مطلوب)، `chunk-size` (اختياري، القيمة الافتراضية 1 ميجابايت). يُرجع محتوى المستند بتنسيق نقل متقطع، مع فك ترميزه من base64 داخليًا. |
+
+---
+
+## إعادة تسمية الخدمة: "objects" إلى "rows"
+
+| v1.8 | v2.1 | الملاحظات |
+|---|---|---|
+| `objects_query.py` / `ObjectsQueryRequestor` | `rows_query.py` / `RowsQueryRequestor` | تغير المخطط من `ObjectsQueryRequest`/`ObjectsQueryResponse` إلى `RowsQueryRequest`/`RowsQueryResponse`. |
+| `objects_import.py` / `ObjectsImport` | `rows_import.py` / `RowsImport` | مُسِير الاستيراد للبيانات المنظمة. |
+
+تغير مفتاح خدمة WebSocket من `"objects"` إلى `"rows"`, وتغير مفتاح مُسِير الاستيراد بشكل مشابه من `"objects"` إلى `"rows"`.
+
+---
+
+## تغيير تنسيق الكود: Value إلى Term
+
+تم إعادة كتابة طبقة التسلسل (serialize.py) لاستخدام النوع الجديد "Term" بدلاً من النوع القديم "Value".
+
+### التنسيق القديم (v1.8 — Value)
+
+```json
+{"v": "http://example.org/entity", "e": true}
+```
+
+- `v`: القيمة (سلسلة)
+- `e`: علامة منطقية تشير إلى ما إذا كانت القيمة عبارة عن URI
+
+### التنسيق الجديد (v2.1 — Term)
+
+IRIs:
+```json
+{"t": "i", "i": "http://example.org/entity"}
+```
+
+Literals:
+```json
+{"t": "l", "v": "some text", "d": "datatype-uri", "l": "en"}
+```
+
+Quoted triples (RDF-star):
+```json
+{"t": "r", "r": {"s": {...}, "p": {...}, "o": {...}}}
+```
+
+- `t`: مُحدد النوع — `"i"` (URI)، `"l"` (حرف)، `"r"` (ثلاثي مُقتبس)، `"b"` (عقدة فارغة)
+- الآن يتم تفويض التسلسل إلى `TermTranslator` و `TripleTranslator` من `trustgraph.messaging.translators.primitives`
+
+### تغييرات التسلسل الأخرى
+
+| الحقل | v1.8 | v2.1 |
+|---|---|---|
+| البيانات الوصفية | `metadata.metadata` (البريد الفرعي) | `metadata.root` (قيمة بسيطة) |
+| كيان تضمينات الرسم البياني | `entity.vectors` (مجموع) | `entity.vector` (مفرد) |
+| جزء تضمين المستند | `chunk.vectors` + `chunk.chunk` (النص) | `chunk.vector` + `chunk.chunk_id` (مرجع المعرّف) |
+
+---
+
+## تغييرات في الكسر
+
+- **تنسيق الكود Value إلى Term**: يجب على جميع العملاء الذين يرسلون/يستقبلون ثلاثيات أو سياقات الكائنات أو التضمينات من خلال واجهة برمجة التطبيقات تحديثها إلى التنسيق الجديد Term.
+- **إعادة تسمية "objects" إلى "rows"**: تغير مفتاح خدمة WebSocket ومفتاح الاستيراد.
+- **تغيير حقل البيانات الوصفية**: تم استبدال `metadata.metadata` (مجموعة فرعية مُسلسلة) بـ `metadata.root` (قيمة بسيطة).
+- **تغييرات حقول التضمين**: أصبح `vectors` (مجموع) هو `vector` (مفرد)، وتستخدم تضمينات المستند الآن `chunk_id` بدلاً من النص المضمن.
+- **نقطة نهاية جديدة `/api/v1/document-stream`**: إضافية، وليست مُفسرة.
diff --git a/docs/api-gateway-changes-v1.8-to-v2.1.es.md b/docs/api-gateway-changes-v1.8-to-v2.1.es.md
new file mode 100644
index 00000000..7128333f
--- /dev/null
+++ b/docs/api-gateway-changes-v1.8-to-v2.1.es.md
@@ -0,0 +1,108 @@
+---
+layout: default
+title: "Cambios en el API Gateway: v1.8 a v2.1"
+parent: "Spanish (Beta)"
+---
+
+# Cambios en el API Gateway: v1.8 a v2.1
+
+> **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.
+
+## Resumen
+
+El gateway de API ha obtenido nuevos despachadores de servicios WebSocket para consultas de incrustaciones, un nuevo punto final REST para el streaming de contenido de documentos, y ha experimentado un cambio significativo en el formato del cableado de `Value` a `Term`. El "servicio de objetos" se ha renombrado a "filas".
+
+---
+
+## Nuevos Despachadores de Servicios WebSocket
+
+Estos son nuevos servicios de solicitud/respuesta disponibles a través del multiplexador WebSocket en `/api/v1/socket` (con ámbito de flujo):
+
+| Clave de servicio | Descripción |
+|-------------|-------------|
+| `document-embeddings` | Consulta fragmentos de documentos por similitud de texto. La solicitud/respuesta utiliza los esquemas `DocumentEmbeddingsRequest`/`DocumentEmbeddingsResponse`. |
+| `row-embeddings` | Consulta filas de datos estructurados por similitud de texto en campos indexados. La solicitud/respuesta utiliza los esquemas `RowEmbeddingsRequest`/`RowEmbeddingsResponse`. |
+
+Estos se unen al existente `graph-embeddings` dispatcher (que ya estaba presente en v1.8 pero puede que se haya actualizado).
+
+### Lista completa de despachadores de servicios de flujo WebSocket (v2.1)
+
+Servicios de solicitud/respuesta (a través de `/api/v1/flow/{flow}/service/{kind}` o multiplexador WebSocket):
+
+- `agent`, `text-completion`, `prompt`, `mcp-tool`
+- `graph-rag`, `document-rag`
+- `embeddings`, `graph-embeddings`, `document-embeddings`
+- `triples`, `rows`, `nlp-query`, `structured-query`, `structured-diag`
+- `row-embeddings`
+
+---
+
+## Nuevo Punto Final REST
+
+| Método | Ruta | Descripción |
+|--------|------|-------------|
+| `GET` | `/api/v1/document-stream` | Transmite contenido de documentos desde la biblioteca como bytes brutos. Parámetros de consulta: `user` (obligatorio), `document-id` (obligatorio), `chunk-size` (opcional, predeterminado 1MB). Devuelve el contenido del documento con el codificado de transferencia en fragmentos, decodificado internamente en base64. |
+
+---
+
+## Servicio Renombrado: "objects" a "rows"
+
+| v1.8 | v2.1 | Notas |
+|------|------|-------|
+| `objects_query.py` / `ObjectsQueryRequestor` | `rows_query.py` / `RowsQueryRequestor` | El esquema cambiado de `ObjectsQueryRequest`/`ObjectsQueryResponse` a `RowsQueryRequest`/`RowsQueryResponse`. |
+| `objects_import.py` / `ObjectsImport` | `rows_import.py` / `RowsImport` | Despachador de importación para datos estructurados. |
+
+La clave del servicio WebSocket cambió de `"objects"` a `"rows"`, y la clave del despachador de importación cambió de `"objects"` a `"rows"`.
+
+---
+
+## Cambio de Formato del Cable: Value a Term
+
+La capa de serialización (`serialize.py`) se ha reescrito para utilizar el nuevo tipo `Term` en lugar del antiguo tipo `Value`.
+
+### Formato antiguo (v1.8 — `Value`)
+
+```json
+{"v": "http://example.org/entity", "e": true}
+```
+
+- `v`: el valor (cadena)
+- `e`: indicador booleano que indica si el valor es un URI
+
+### Formato nuevo (v2.1 — `Term`)
+
+IRIs:
+```json
+{"t": "i", "i": "http://example.org/entity"}
+```
+
+Literales:
+```json
+{"t": "l", "v": "some text", "d": "datatype-uri", "l": "en"}
+```
+
+Triples con comillas (RDF-star):
+```json
+{"t": "r", "r": {"s": {...}, "p": {...}, "o": {...}}}
+```
+
+- `t`: discriminador de tipo — `"i"` (URI), `"l"` (literal), `"r"` (triple con comillas), `"b"` (nodo en blanco)
+- La serialización ahora delega a `TermTranslator` y `TripleTranslator` de `trustgraph.messaging.translators.primitives`
+
+### Otros cambios en la serialización
+
+| Campo | v1.8 | v2.1 |
+|-------|------|------|
+| Metadatos | `metadata.metadata` (subgrafo) | `metadata.root` (valor simple) |
+| Entidad de incrustación | `entity.vectors` (plural) | `entity.vector` (singular) |
+| Fragmento de incrustación de documento | `chunk.vectors` + `chunk.chunk` (texto) | `chunk.vector` + `chunk.chunk_id` (ID de referencia) |
+
+---
+
+## Cambios que Rompen
+
+- **Cambio de formato del cable `Value` a `Term`**: Todos los clientes que envían/reciben triples, incrustaciones o contextos de entidad a través del gateway deben actualizar al nuevo formato Term.
+- **Cambio de nombre de `objects` a `rows`**: Se ha modificado la clave del servicio WebSocket y la clave del despachador de importación.
+- **Cambio del campo de metadatos**: `metadata.metadata` (un subgrafo serializado) reemplazado por `metadata.root` (un valor simple).
+- **Cambios en los campos de incrustación**: `vectors` (plural) se convirtió en `vector` (singular); las incrustaciones de documentos ahora hacen referencia a `chunk_id` en lugar de a `chunk` de texto.
+- **Nuevo punto final `/api/v1/document-stream`**: Aditivo, no rompe.
diff --git a/docs/api-gateway-changes-v1.8-to-v2.1.he.md b/docs/api-gateway-changes-v1.8-to-v2.1.he.md
new file mode 100644
index 00000000..0f0f93d3
--- /dev/null
+++ b/docs/api-gateway-changes-v1.8-to-v2.1.he.md
@@ -0,0 +1,106 @@
+---
+layout: default
+title: "שינויים ב-API Gateway: v1.8 ל-v2.1"
+parent: "Hebrew (Beta)"
+---
+
+# שינויים ב-API Gateway: v1.8 ל-v2.1
+
+> **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.
+
+## תקציר
+
+ה-API Gateway קיבל ספקי שירות WebSocket חדשים עבור שאילתות של "embeddings", סוף שירות REST חדש להעברת תוכן מסמך, וכן שינוי משמעותי בפורמט של קוד: מ-"Value" ל-"Term". השירות "objects" שונה לשם "rows".
+
+---
+
+## ספקי שירות WebSocket חדשים
+
+אלו הם שירותי בקשה/תגובה חדשים הזמינים דרך המולטיפלקסר של WebSocket בכתובת `/api/v1/socket` (הקשור למערכת זרימה):
+
+| מפתח שירות | תיאור |
+|---|---|
+| `document-embeddings` | מבקש חלקים של מסמך על סמך דמיון טקסט. הבקשה/תגובה משתמשים בתבניות `DocumentEmbeddingsRequest`/`DocumentEmbeddingsResponse`. |
+| `row-embeddings` | מבקש שורות של נתונים מובנים על סמך דמיון טקסט בשדות המצביעים. הבקשה/תגובה משתמשות בתבניות `RowEmbeddingsRequest`/`RowEmbeddingsResponse`. |
+
+הם מצטרפים למספק הקיים `graph-embeddings` (שהיה קיים כבר ב-v1.8 אך ייתכן ששונה),
+
+### רשימה מלאה של ספקי שירות זרימה של WebSocket (v2.1)
+
+שירותי בקשה/תגובה (דרך `/api/v1/flow/{flow}/service/{kind}` או מולטיפלקסר WebSocket):
+
+- `agent`, `text-completion`, `prompt`, `mcp-tool`
+- `graph-rag`, `document-rag`
+- `embeddings`, `graph-embeddings`, `document-embeddings`
+- `triples`, `rows`, `nlp-query`, `structured-query`, `structured-diag`
+- `row-embeddings`
+
+---
+
+## סוף שירות REST חדש
+
+| שיטה | נתיב | תיאור |
+|---|---|---|
+| `GET` | `/api/v1/document-stream` | מעביר תוכן מסמך מהספרייה כביטים גולמיים. פרמטרי שאילתה: `user` (חובה), `document-id` (חובה), `chunk-size` (אופציונלי, ברירת מחדל 1MB). מחזיר את תוכן המסמך בתבנית העברת ביטים, לאחר פעולת Base64 פנימית. |
+
+---
+
+## שינוי שם שירות: "objects" ל-"rows"
+
+| v1.8 | v2.1 | הערות |
+|---|---|---|
+| `objects_query.py` / `ObjectsQueryRequestor` | `rows_query.py` / `RowsQueryRequestor` | התבנית שונתה מ-`ObjectsQueryRequest`/`ObjectsQueryResponse` ל-`RowsQueryRequest`/`RowsQueryResponse`. |
+| `objects_import.py` / `ObjectsImport` | `rows_import.py` / `RowsImport` | ספק ייבוא לנתונים מובנים. |
+
+מפתח השירות של WebSocket שונה מ-"objects" ל-"rows", וממילא מפתח ספק הייבוא שונה מ-"objects" ל-"rows".
+
+---
+
+## שינוי פורמט קוד: Value ל-Term
+
+שכבת הסריאליזציה (`serialize.py`) שונתה כדי להשתמש בסוג ה-"Term" החדש במקום בסוג ה-"Value" הישן.
+
+### פורמט ישן (v1.8 — Value)
+
+```json
+{"v": "http://example.org/entity", "e": true}
+```
+
+- `v`: הערך (מחרוזת)
+- `e`: דגל בוליאני המציין אם הערך הוא URI
+
+### פורמט חדש (v2.1 — Term)
+
+- IRI:
+```json
+{"t": "i", "i": "http://example.org/entity"}
+```
+- רשימות:
+```json
+{"t": "l", "v": "some text", "d": "datatype-uri", "l": "en"}
+```
+- טריפלים מוערים (RDF-star):
+```json
+{"t": "r", "r": {"s": {...}, "p": {...}, "o": {...}}}
+```
+
+- `t`: מחלקת סוג — `"i"` (IRI), `"l"` (רשימה), `"r"` (טריפל מוער), `"b"` (צומת ריק)
+- הסריאליזציה כעת מקפלת ל-`TermTranslator` ו-`TripleTranslator` מ-`trustgraph.messaging.translators.primitives
+
+### שינויי סריאליזציה אחרים
+
+| שדה | v1.8 | v2.1 |
+|---|---|---|
+| Metadata | `metadata.metadata` (סופר-גרף) | `metadata.root` (ערך פשוט) |
+| סוגי embeddings | `entity.vectors` (רשימה) | `entity.vector` (יחיד) |
+| חלקים של embeddings | `chunk.vectors` + `chunk.chunk` (טקסט) | `chunk.vector` + `chunk.chunk_id` (מזהה התייחסות) |
+
+---
+
+## שינויים משמעותיים
+
+- **פורמט קוד Value ל-Term:** כל לקוחות המשדרים/מקבלים טריפלים, embeddings או הקשרים של ישויות דרך ה-gateway צריכים לעדכן לפורמט ה-Term החדש.
+- **שינוי שם של "objects" ל-"rows":** שינוי מפתח שירות של WebSocket ומפתח ייבוא.
+- **שינוי שדה Metadata:** `metadata.metadata` (גרף סריאלי) הוחלף ב-`metadata.root` (ערך פשוט).
+- **שינויים בשדות Embeddings:** `vectors` (רשימה) הפך ל-`vector` (יחיד); embeddings של מסמכים כעת מתייחסים ל-`chunk_id` במקום הטקסט של ה-`chunk`
+- **סוף שירות חדש `/api/v1/document-stream`**: נוסף, לא משבש.
diff --git a/docs/api-gateway-changes-v1.8-to-v2.1.hi.md b/docs/api-gateway-changes-v1.8-to-v2.1.hi.md
new file mode 100644
index 00000000..9f8d747d
--- /dev/null
+++ b/docs/api-gateway-changes-v1.8-to-v2.1.hi.md
@@ -0,0 +1,108 @@
+---
+layout: default
+title: "Api Gateway Changes V1.8 To V2.1.Hi"
+parent: "Hindi (Beta)"
+---
+
+> **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.
+
+## API गेटवे में बदलाव: v1.8 से v2.1
+
+## सारांश
+
+API गेटवे में एम्बेडिंग प्रश्नों के लिए नए WebSocket सेवा डिस्पैचर, दस्तावेज़ सामग्री के लिए एक नया REST स्ट्रीमिंग एंडपॉइंट, और `Value` से `Term` में एक महत्वपूर्ण वायर प्रारूप परिवर्तन शामिल है। "ऑब्जेक्ट्स" सेवा को "रो" के रूप में पुनः नाम दिया गया।
+
+---
+
+## नए WebSocket सेवा डिस्पैचर
+
+ये `/api/v1/socket` पर उपलब्ध नए अनुरोध/प्रतिक्रिया सेवाएँ हैं (फ्लो-स्कोप):
+
+| सेवा कुंजी | विवरण |
+|---|---|
+| `document-embeddings` | टेक्स्ट समानता के आधार पर दस्तावेज़ टुकड़ों के लिए क्वेरी करता है। अनुरोध/प्रतिक्रिया `DocumentEmbeddingsRequest`/`DocumentEmbeddingsResponse` स्कीमा का उपयोग करते हैं। |
+| `row-embeddings` | इंडेक्स किए गए फ़ील्ड में टेक्स्ट समानता के आधार पर संरचित डेटा पंक्तियों के लिए क्वेरी करता है। अनुरोध/प्रतिक्रिया `RowEmbeddingsRequest`/`RowEmbeddingsResponse` स्कीमा का उपयोग करते हैं। |
+
+ये मौजूदा `graph-embeddings` डिस्पैचर (जो पहले से ही v1.8 में मौजूद है, लेकिन अपडेट किया जा सकता है) के साथ जुड़ते हैं।
+
+### WebSocket फ़्लो सेवा डिस्पैचर की पूरी सूची (v2.1)
+
+अनुरोध/प्रतिक्रिया सेवाएँ (`/api/v1/flow/{flow}/service/{kind}` या WebSocket मक्स) के माध्यम से:
+
+- `agent`, `text-completion`, `prompt`, `mcp-tool`
+- `graph-rag`, `document-rag`
+- `embeddings`, `graph-embeddings`, `document-embeddings`
+- `triples`, `rows`, `nlp-query`, `structured-query`, `structured-diag`
+- `row-embeddings`
+
+---
+
+## नया REST एंडपॉइंट
+
+| विधि | पथ | विवरण |
+|---|---|---|
+| `GET` | `/api/v1/document-stream` | लाइब्रेरी से मूल बाइट के रूप में दस्तावेज़ सामग्री स्ट्रीम करता है। क्वेरी पैरामीटर: `user` (आवश्यक), `document-id` (आवश्यक), `chunk-size` (वैकल्पिक, डिफ़ॉल्ट 1MB)। आंतरिक रूप से base64 से डिकोड करके दस्तावेज़ सामग्री को chunked transfer encoding में लौटाता है। |
+
+---
+
+## पुनः नामकरण की गई सेवा: "objects" से "rows"
+
+| v1.8 | v2.1 | नोट्स |
+|---|---|---|
+| `objects_query.py` / `ObjectsQueryRequestor` | `rows_query.py` / `RowsQueryRequestor` | `ObjectsQueryRequest`/`ObjectsQueryResponse` से `RowsQueryRequest`/`RowsQueryResponse` स्कीमा में बदलाव। |
+| `objects_import.py` / `ObjectsImport` | `rows_import.py` / `RowsImport` | संरचित डेटा के लिए आयात डिस्पैचर। |
+
+WebSocket सेवा कुंजी `"objects"` से `"rows"` में बदल गई है, और आयात डिस्पैचर कुंजी `"objects"` से `"rows"` में बदल गई है।
+
+---
+
+## वायर प्रारूप में बदलाव: Value से Term
+
+`serialize.py` में serialization लेयर को नए `Term` प्रकार का उपयोग करने के लिए फिर से लिखा गया है, बजाय पुराने `Value` प्रकार का।
+
+### पुराना प्रारूप (v1.8 — `Value`)
+
+```json
+{"v": "http://example.org/entity", "e": true}
+```
+
+- `v`: मान (स्ट्रिंग)
+- `e`: एक बूलियन ध्वज जो दर्शाता है कि मान एक URI है या नहीं
+
+### नया प्रारूप (v2.1 — `Term`)
+
+IRI:
+```json
+{"t": "i", "i": "http://example.org/entity"}
+```
+
+प्रत्यक्ष:
+```json
+{"t": "l", "v": "some text", "d": "datatype-uri", "l": "en"}
+```
+
+कोटेड ट्रिपल (RDF-star):
+```json
+{"t": "r", "r": {"s": {...}, "p": {...}, "o": {...}}}
+```
+
+- `t`: प्रकार डिस्क्रिमिनेटर — `"i"` (IRI), `"l"` (प्रत्यक्ष), `"r"` (कोटेड ट्रिपल), `"b"` (ब्लैंक नोड)
+- serialization अब `trustgraph.messaging.translators.primitives` से `TermTranslator` और `TripleTranslator` को सौंपता है।
+
+### अन्य serialization में बदलाव
+
+| फ़ील्ड | v1.8 | v2.1 |
+|---|---|---|
+| मेटाडेटा | `metadata.metadata` (उप-ग्राफ) | `metadata.root` (सरल मान) |
+| ग्राफ एम्बेडिंग इकाई | `entity.vectors` (बहु) | `entity.vector` (एकल) |
+| दस्तावेज़ एम्बेडिंग टुकड़ा | `chunk.vectors` + `chunk.chunk` (टेक्स्ट) | `chunk.vector` + `chunk.chunk_id` (आईडी संदर्भ) |
+
+---
+
+## महत्वपूर्ण बदलाव
+
+- **`Value` से `Term` वायर प्रारूप**: गेटवे के माध्यम से ट्रिपल, एम्बेडिंग या इकाई संदर्भ भेजने/प्राप्त करने वाले सभी क्लाइंट को नए Term प्रारूप के साथ अपडेट करना होगा।
+- **`objects` से `rows` का नामकरण**: WebSocket सेवा कुंजी और आयात कुंजी में बदलाव।
+- **मेटाडेटा फ़ील्ड में बदलाव**: `metadata.metadata` (एक serialized उप-ग्राफ) को `metadata.root` (एक सरल मान) से बदला गया।
+- **एम्बेडिंग फ़ील्ड में बदलाव**: `vectors` (बहु) को `vector` (एकल) से बदला गया; दस्तावेज़ एम्बेडिंग अब `chunk_id` को संदर्भित करती हैं, बजाय inline `chunk` टेक्स्ट के।
+- **नया `/api/v1/document-stream` एंडपॉइंट**: यह एक अतिरिक्त परिवर्तन है, जो पहले से ही मौजूद है।
diff --git a/docs/api-gateway-changes-v1.8-to-v2.1.pt.md b/docs/api-gateway-changes-v1.8-to-v2.1.pt.md
new file mode 100644
index 00000000..a4488bad
--- /dev/null
+++ b/docs/api-gateway-changes-v1.8-to-v2.1.pt.md
@@ -0,0 +1,116 @@
+---
+layout: default
+title: "Alterações no API Gateway: da versão 1.8 para a versão 2.1"
+parent: "Portuguese (Beta)"
+---
+
+# Alterações no API Gateway: da versão 1.8 para a versão 2.1
+
+> **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.
+
+## Resumo
+
+O gateway de API ganhou novos distribuidores de serviços WebSocket para consultas de incorporações
+e um novo endpoint REST para streaming de conteúdo de documentos, e passou por
+uma mudança significativa no formato de comunicação, de `Value` para `Term`. O serviço "objects"
+foi renomeado para "rows".
+
+--
+
+## Novos Distribuidores de Serviços WebSocket
+
+Estes são novos serviços de solicitação/resposta disponíveis através do
+multiplexador WebSocket em `/api/v1/socket` (com escopo de fluxo):
+
+| Chave do Serviço | Descrição |
+|-------------|-------------|
+| `document-embeddings` | Consulta de trechos de documentos por similaridade de texto. Solicitação/resposta usa os esquemas `DocumentEmbeddingsRequest`/`DocumentEmbeddingsResponse`. |
+| `row-embeddings` | Consulta de linhas de dados estruturados por similaridade de texto em campos indexados. Solicitação/resposta usa os esquemas `RowEmbeddingsRequest`/`RowEmbeddingsResponse`. |
+
+Estes se juntam ao distribuidor existente `graph-embeddings` (que já
+estava presente na versão 1.8, mas pode ter sido atualizado).
+
+### Lista completa de distribuidores de serviços de fluxo WebSocket (versão 2.1)
+
+Serviços de solicitação/resposta (via `/api/v1/flow/{flow}/service/{kind}` ou
+multiplexador WebSocket):
+
+`agent`, `text-completion`, `prompt`, `mcp-tool`
+`graph-rag`, `document-rag`
+`embeddings`, `graph-embeddings`, `document-embeddings`
+`triples`, `rows`, `nlp-query`, `structured-query`, `structured-diag`
+`row-embeddings`
+
+--
+
+## Novo Endpoint REST
+
+| Método | Caminho | Descrição |
+|--------|------|-------------|
+| `GET` | `/api/v1/document-stream` | Transmite o conteúdo do documento da biblioteca como bytes brutos. Parâmetros de consulta: `user` (obrigatório), `document-id` (obrigatório), `chunk-size` (opcional, padrão 1MB). Retorna o conteúdo do documento em codificação de transferência em blocos, decodificado de base64 internamente. |
+
+--
+
+## Serviço Renomeado: "objects" para "rows"
+
+| v1.8 | v2.1 | Notas |
+|------|------|-------|
+| `objects_query.py` / `ObjectsQueryRequestor` | `rows_query.py` / `RowsQueryRequestor` | Esquema alterado de `ObjectsQueryRequest`/`ObjectsQueryResponse` para `RowsQueryRequest`/`RowsQueryResponse`. |
+| `objects_import.py` / `ObjectsImport` | `rows_import.py` / `RowsImport` | Distribuidor de importação para dados estruturados. |
+
+A chave do serviço WebSocket foi alterada de `"objects"` para `"rows"`, e a
+chave do distribuidor de importação foi alterada de `"objects"` para `"rows"`.
+
+--
+
+## Mudança no Formato de Comunicação: Valor para Termo
+
+A camada de serialização (`serialize.py`) foi reescrita para usar o novo tipo `Term`
+em vez do tipo antigo `Value`.
+
+### Formato antigo (v1.8 — `Value`)
+
+```json
+{"v": "http://example.org/entity", "e": true}
+```
+
+`v`: o valor (string)
+`e`: flag booleano que indica se o valor é um URI
+
+### Novo formato (v2.1 — `Term`)
+
+IRIs:
+```json
+{"t": "i", "i": "http://example.org/entity"}
+```
+
+Literais:
+```json
+{"t": "l", "v": "some text", "d": "datatype-uri", "l": "en"}
+```
+
+Triplas citadas (RDF-star):
+```json
+{"t": "r", "r": {"s": {...}, "p": {...}, "o": {...}}}
+```
+
+`t`: tipo de discriminador — `"i"` (IRI), `"l"` (literal), `"r"` (tripla entre aspas), `"b"` (nó vazio)
+A serialização agora delega para `TermTranslator` e `TripleTranslator` a partir de `trustgraph.messaging.translators.primitives`
+
+### Outras alterações de serialização
+
+| Campo | v1.8 | v2.1 |
+|-------|------|------|
+| Metadados | `metadata.metadata` (subgrafo) | `metadata.root` (valor simples) |
+| Incorporação de entidade | `entity.vectors` (plural) | `entity.vector` (singular) |
+| Incorporação de fragmento de documento | `chunk.vectors` + `chunk.chunk` (texto) | `chunk.vector` + `chunk.chunk_id` (referência de ID) |
+
+--
+
+## Alterações Incompatíveis
+
+**Formato de fio de `Value` para `Term`**: Todos os clientes que enviam ou recebem triplas, incorporações ou contextos de entidade através do gateway devem atualizar para o novo formato de Termo.
+**Renomeação de `objects` para `rows`**: A chave do serviço WebSocket e a chave de importação foram alteradas.
+**Alteração do campo de metadados**: `metadata.metadata` (um subgrafo serializado) foi substituído por `metadata.root` (um valor simples).
+**Alterações nos campos de incorporação**: `vectors` (plural) se tornou `vector` (singular); as incorporações de documento agora fazem referência a `chunk_id` em vez de texto `chunk` inline.
+**Novo endpoint `/api/v1/document-stream`**: Aditivo, não quebra a compatibilidade.
diff --git a/docs/api-gateway-changes-v1.8-to-v2.1.ru.md b/docs/api-gateway-changes-v1.8-to-v2.1.ru.md
new file mode 100644
index 00000000..2d6c6875
--- /dev/null
+++ b/docs/api-gateway-changes-v1.8-to-v2.1.ru.md
@@ -0,0 +1,108 @@
+---
+layout: default
+title: "Изменения в API Gateway: v1.8 до v2.1"
+parent: "Russian (Beta)"
+---
+
+# Изменения в API Gateway: v1.8 до v2.1
+
+> **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.
+
+## Обзор
+
+API Gateway получил новые диспетчеры WebSocket для запросов на основе встраивания, новый REST-endpoint для потоковой передачи содержимого документов, и претерпел значительные изменения в формате представления данных, перейдя с `Value` на `Term`. Сервис "objects" был переименован в "rows".
+
+---
+
+## Новые диспетчеры WebSocket
+
+Это новые сервисы запросов/ответов, доступные через WebSocket-мультиплексор по адресу `/api/v1/socket` (с фокусом на flow):
+
+| Ключ сервиса | Описание |
+|---|---|
+| `document-embeddings` | Запросы на фрагменты документов по текстовому сходству. Используются схемы `DocumentEmbeddingsRequest`/`DocumentEmbeddingsResponse`. |
+| `row-embeddings` | Запросы на структурированные данные по текстовому сходству по индексированным полям. Используются схемы `RowEmbeddingsRequest`/`RowEmbeddingsResponse`. |
+
+Эти диспетчеры работают вместе с существующим диспетчером `graph-embeddings` (который уже был в v1.8, но мог быть обновлен).
+
+### Полный список диспетчеров WebSocket (v2.1)
+
+Сервисы запросов/ответов (через `/api/v1/flow/{flow}/service/{kind}` или WebSocket-мультиплексор):
+
+- `agent`, `text-completion`, `prompt`, `mcp-tool`
+- `graph-rag`, `document-rag`
+- `embeddings`, `graph-embeddings`, `document-embeddings`
+- `triples`, `rows`, `nlp-query`, `structured-query`, `structured-diag`
+- `row-embeddings`
+
+---
+
+## Новый REST Endpoint
+
+| Метод | Путь | Описание |
+|---|---|---|
+| `GET` | `/api/v1/document-stream` | Потоковая передача содержимого документов из библиотеки в виде сырых байтов. Параметры запроса: `user` (обязательно), `document-id` (обязательно), `chunk-size` (необязательно, значение по умолчанию 1MB). Возвращает содержимое документа в коде transfer encoding, который декодируется из base64 внутри. |
+
+---
+
+## Переименованный сервис: "objects" в "rows"
+
+| v1.8 | v2.1 | Примечания |
+|---|---|---|
+| `objects_query.py` / `ObjectsQueryRequestor` | `rows_query.py` / `RowsQueryRequestor` | Схема изменена с `ObjectsQueryRequest`/`ObjectsQueryResponse` на `RowsQueryRequest`/`RowsQueryResponse`. |
+| `objects_import.py` / `ObjectsImport` | `rows_import.py` / `RowsImport` | Импорт для структурированных данных. |
+
+Ключ WebSocket-сервиса изменился с `"objects"` на `"rows"`, а ключ импорт-диспатчера аналогично — с `"objects"` на `"rows"`.
+
+---
+
+## Изменение формата представления данных: Value на Term
+
+Слой сериализации (`serialize.py`) был переписан для использования нового типа `Term` вместо старого типа `Value`.
+
+### Старый формат (v1.8 — `Value`)
+
+```json
+{"v": "http://example.org/entity", "e": true}
+```
+
+- `v`: значение (строка)
+- `e`: булевский флаг, указывающий, является ли значение URI
+
+### Новый формат (v2.1 — `Term`)
+
+URI:
+```json
+{"t": "i", "i": "http://example.org/entity"}
+```
+
+Литералы:
+```json
+{"t": "l", "v": "some text", "d": "datatype-uri", "l": "en"}
+```
+
+Тройки, указанные в кавычках (RDF-star):
+```json
+{"t": "r", "r": {"s": {...}, "p": {...}, "o": {...}}}
+```
+
+- `t`: дискриминатор типа — `"i"` (URI), `"l"` (литерал), `"r"` (тройка), `"b"` (blank node)
+- Сериализация теперь делегируется `TermTranslator` и `TripleTranslator` из `trustgraph.messaging.translators.primitives`
+
+### Другие изменения в сериализации
+
+| Поле | v1.8 | v2.1 |
+|---|---|---|
+| Metadata | `metadata.metadata` (подграфа) | `metadata.root` (простое значение) |
+| Graph embeddings entity | `entity.vectors` (множественное) | `entity.vector` (одиночное) |
+| Document embeddings chunk | `chunk.vectors` + `chunk.chunk` (текст) | `chunk.vector` + `chunk.chunk_id` (ссылка на ID) |
+
+---
+
+## Изменения, требующие внимания
+
+- **Формат представления данных Value в Term**: Все клиенты, отправляющие/получающие тройки, встраивания или контексты сущностей через gateway, должны обновиться до нового формата Term.
+- **Переименование объектов в rows**: Изменился ключ WebSocket-сервиса и ключ импорт-диспатчера.
+- **Изменение поля metadata**: `metadata.metadata` (сериализованная подграфа) заменено на `metadata.root` (простое значение).
+- **Изменения полей embeddings**: `vectors` (множественное) стало `vector` (одиночное); теперь встраивания документов ссылаются на `chunk_id` вместо inline `chunk`.
+- **Новый endpoint `/api/v1/document-stream`**: Дополнительный, не является "breaking".
diff --git a/docs/api-gateway-changes-v1.8-to-v2.1.sw.md b/docs/api-gateway-changes-v1.8-to-v2.1.sw.md
new file mode 100644
index 00000000..cfb56112
--- /dev/null
+++ b/docs/api-gateway-changes-v1.8-to-v2.1.sw.md
@@ -0,0 +1,114 @@
+---
+layout: default
+title: "Mabadiliko ya API Gateway: v1.8 hadi v2.1"
+parent: "Swahili (Beta)"
+---
+
+**MAELEZO MAZOE:**
+- Weka ВИWAMU za muundo, vichungi, viungo na alama za HTML.
+- Usitafsiri nakala ndani ya alama za ``` au katika blok za nakala.
+- Toa NA TUJUI tu, bila utangulizi au maelezo.
+
+Nakala inayohitajika:
+# Mabadiliko ya API Gateway: v1.8 hadi v2.1
+
+> **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.
+
+## Muhtasari
+
+API gateway imepata mpya wa huduma za WebSocket kwa ajili ya majabuzi, kiungo cha mpya cha REST kwa maudhui, na imepitia mabadiliko muhimu katika muundo wa data kutoka `Value` hadi `Term`. Huduma "objects" imebadilishwa na "rows".
+
+---
+
+## Wengine Wepya wa Huduma za WebSocket
+
+Hizi ni huduma mpya za ombi/majibu zinazopatikana kupitia multiplexer ya WebSocket katika `/api/v1/socket` (na msingi wa "flow"):
+
+| Key ya Huduma | Maelezo |
+|-------------|-------------|
+| `document-embeddings` | Inatafuta sehemu za hati kwa utofauti wa maandishi. Ombi/majibu hutumia miundo `DocumentEmbeddingsRequest`/`DocumentEmbeddingsResponse`. |
+| `row-embeddings` | Inatafuta data iliyoandaliwa kwa utofauti wa maandishi kwenye majina iliyosawazwa. Ombi/majibu hutumia miundo `RowEmbeddingsRequest`/`RowEmbeddingsResponse`. |
+
+Hizi zinaunganishwa na `graph-embeddings` iliyopo tayari katika v1.8, lakini inaweza kuwa imeboreshwa.
+
+### Orodha kamili ya huduma za WebSocket (v2.1)
+
+Huduma za ombi/majibu (kupitia `/api/v1/flow/{flow}/service/{kind}` au WebSocket mux):
+
+- `agent`, `text-completion`, `prompt`, `mcp-tool`
+- `graph-rag`, `document-rag`
+- `embeddings`, `graph-embeddings`, `document-embeddings`
+- `triples`, `rows`, `nlp-query`, `structured-query`, `structured-diag`
+- `row-embeddings`
+
+---
+
+## Kiungo cha REST cha Mpya
+
+| Njia | Path | Maelezo |
+|--------|------|-------------|
+| `GET` | `/api/v1/document-stream` | Inatoa maudhui ya hati kutoka kwenye makala kama data ya msingi. Parametari za ombi: `user` (lazima), `document-id` (lazima), `chunk-size` (bora, chaguo, 1MB). Inarudisha maudhui ya hati kama data iliyobadilishwa, na inatumia teknolojia ya "chunked transfer encoding" ya base64. |
+
+---
+
+## Huduma iliyobadilishwa: "objects" hadi "rows"
+
+| v1.8 | v2.1 | Maelezo |
+|------|------|-------|
+| `objects_query.py` / `ObjectsQueryRequestor` | `rows_query.py` / `RowsQueryRequestor` | Muundo umebadilishwa kutoka `ObjectsQueryRequest`/`ObjectsQueryResponse` hadi `RowsQueryRequest`/`RowsQueryResponse`. |
+| `objects_import.py` / `ObjectsImport` | `rows_import.py` / `RowsImport` | Huduma ya import kwa data iliyoandaliwa. |
+
+Key ya huduma ya WebSocket imebadilishwa kutoka "objects" hadi "rows", na key ya import pia imebadilishwa.
+
+---
+
+## Mabadiliko ya Muundo: Value hadi Term
+
+Sura ya usimamizaji (`serialize.py`) imeandikwa upya ili kutumia aina mpya ya "Term" badala ya aina ya "Value" iliyokuwa.
+
+### Sura ya awali (v1.8 — Value)
+
+```json
+{"v": "http://example.org/entity", "e": true}
+```
+
+- `v`: thamani (string)
+- `e`: bendera ya booleani inayoeleza kama thamani ni URI
+
+### Sura mpya (v2.1 — Term)
+
+IRIs:
+```json
+{"t": "i", "i": "http://example.org/entity"}
+```
+
+Literals:
+```json
+{"t": "l", "v": "some text", "d": "datatype-uri", "l": "en"}
+```
+
+Triple za mlangano (RDF-star):
+```json
+{"t": "r", "r": {"s": {...}, "p": {...}, "o": {...}}}
+```
+
+- `t`: makazi - `"i"` (URI), `"l"` (thamini), `"r"` (triple), `"b"` (blank node)
+- Usimamizi sasa unaendeleza kwa `TermTranslator` na `TripleTranslator` kutoka `trustgraph.messaging.translators.primitives`
+
+### Mabadiliko mengine ya usimamizaji
+
+| Kipa | v1.8 | v2.1 |
+|-------|------|------|
+| Metadata | `metadata.metadata` (subgraph) | `metadata.root` (thamini rahisi) |
+| Graph embeddings entity | `entity.vectors` (pl) | `entity.vector` (singular) |
+| Document embeddings chunk | `chunk.vectors` + `chunk.chunk` (text) | `chunk.vector` + `chunk.chunk_id` (ID reference) |
+
+---
+
+## Mabadiliko Muhimu
+
+- **Muundo Value hadi Term**: Wote wa wateja wanaotumia nakala, ujumizi, au maudhui wanapaswa kubadilishwa kwa muundo mpya wa Term.
+- **"objects" hadi "rows"**: Key ya huduma na key ya import zimebadilishwa.
+- **Mabadiliko ya key ya Metadata**: `metadata.metadata` (subgraph iliyosimamizwa) imebadilishwa na `metadata.root` (thamini rahisi).
+- **Mabadiliko ya key ya Embeddings**: `vectors` (plural) imebadilishwa na `vector` (singular); ujumizi wa hati sasa inaangalia `chunk_id` badala ya "chunk" ya msingi.
+- **Kiungo cha mpya `/api/v1/document-stream`**: Haiathiri.
diff --git a/docs/api-gateway-changes-v1.8-to-v2.1.tr.md b/docs/api-gateway-changes-v1.8-to-v2.1.tr.md
new file mode 100644
index 00000000..5f646fa7
--- /dev/null
+++ b/docs/api-gateway-changes-v1.8-to-v2.1.tr.md
@@ -0,0 +1,116 @@
+---
+layout: default
+title: "API Ağ Geçidi Değişiklikleri: v1.8'den v2.1'e"
+parent: "Turkish (Beta)"
+---
+
+# API Ağ Geçidi Değişiklikleri: v1.8'den v2.1'e
+
+> **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.
+
+## Özet
+
+API ağ geçidi, gömülü sorgular için yeni WebSocket hizmet yönlendiricileri, belge içeriği için yeni bir REST akış uç noktası kazandı ve ⟦CODE_0⟧'dan ⟦CODE_1⟧'e önemli bir veri formatı değişikliğine uğradı. "objects" hizmeti "rows" olarak yeniden adlandırıldı.
+sorguları, belge içeriği için yeni bir REST akış uç noktası ve aşağıdaki değişiklikleri içerdi:
+önemli bir tel format değişikliği, `Value`'dan `Term`'e geçiş. "Nesneler"
+
+
+--
+
+## Yeni WebSocket Hizmet Yönlendiricileri
+
+Bunlar, WebSocket üzerinden sunulan yeni istek/yanıt servisleridir.
+`/api/v1/socket` adresindeki çoklayıcı (akış kapsamlı):
+
+| Servis Anahtarı | Açıklama |
+|-------------|-------------|
+| `document-embeddings` | Metin benzerliği ile belge parçalarını sorgular. İstek/yanıt, `DocumentEmbeddingsRequest`/`DocumentEmbeddingsResponse` şemalarını kullanır. |
+| `row-embeddings` | İndekslenmiş alanlarda metin benzerliği ile yapılandırılmış veri satırlarını sorgular. İstek/yanıt, `RowEmbeddingsRequest`/`RowEmbeddingsResponse` şemalarını kullanır. |
+
+Bunlar, mevcut `graph-embeddings` dağıtım aracına (v1.8'de zaten
+bulunan ancak güncellenmiş olabilecek) eklenir.
+
+### WebSocket akış hizmeti dağıtım araçlarının tam listesi (v2.1)
+
+İstek/yanıt hizmetleri (`/api/v1/flow/{flow}/service/{kind}` veya
+WebSocket çoklayıcısı aracılığıyla):
+
+`agent`, `text-completion`, `prompt`, `mcp-tool`
+`graph-rag`, `document-rag`
+`embeddings`, `graph-embeddings`, `document-embeddings`
+`triples`, `rows`, `nlp-query`, `structured-query`, `structured-diag`
+`row-embeddings`
+
+--
+
+## Yeni REST Uç Noktası
+
+| Yöntem | Yol | Açıklama |
+|--------|------|-------------|
+| `GET` | `/api/v1/document-stream` | Kütüphaneden belge içeriğini ham baytlar olarak aktarır. Sorgu parametreleri: `user` (gerekli), `document-id` (gerekli), `chunk-size` (isteğe bağlı, varsayılan 1MB). Belge içeriğini, dahili olarak base64'ten çözülmüş olarak, parçalı aktarım kodlamasıyla döndürür. |
+
+--
+
+## Yeniden Adlandırılan Hizmet: "objects" -> "rows"
+
+| v1.8 | v2.1 | Notlar |
+|------|------|-------|
+| `objects_query.py` / `ObjectsQueryRequestor` | `rows_query.py` / `RowsQueryRequestor` | Şema, `ObjectsQueryRequest`/`ObjectsQueryResponse`'den `RowsQueryRequest`/`RowsQueryResponse`'ye dönüştürüldü. |
+| `objects_import.py` / `ObjectsImport` | `rows_import.py` / `RowsImport` | Yapılandırılmış veri için import yöneticisi. |
+
+WebSocket hizmet anahtarı `"objects"`'dan `"rows"`'e değişti ve
+import yöneticisi anahtarı da benzer şekilde `"objects"`'dan `"rows"`'e değişti.
+
+--
+
+## Kablo Formatındaki Değişiklik: Değerden Terime
+
+Seri hale getirme katmanı (`serialize.py`), yeni `Term`'i kullanmak üzere yeniden yazıldı.
+eski `Value` türünün yerine bu türü kullanın.
+
+### Eski format (v1.8 — `Value`)
+
+```json
+{"v": "http://example.org/entity", "e": true}
+```
+
+`v`: değer (string)
+`e`: değerin bir URI olup olmadığını gösteren boolean işaretleyici
+
+### Yeni format (v2.1 — `Term`)
+
+IRIs:
+```json
+{"t": "i", "i": "http://example.org/entity"}
+```
+
+Sabitler:
+```json
+{"t": "l", "v": "some text", "d": "datatype-uri", "l": "en"}
+```
+
+Tırnak içinde belirtilen üçlüler (RDF-star):
+```json
+{"t": "r", "r": {"s": {...}, "p": {...}, "o": {...}}}
+```
+
+`t`: tür belirleyici — `"i"` (IRI), `"l"` (literal), `"r"` (tırnak içinde belirtilmiş üçlü), `"b"` (boş düğüm)
+Serileştirme artık `trustgraph.messaging.translators.primitives`'den `TermTranslator` ve `TripleTranslator`'e devrediliyor.
+
+### Diğer serileştirme değişiklikleri
+
+| Alan | v1.8 | v2.1 |
+|-------|------|------|
+| Meta veri | `metadata.metadata` (alt grafik) | `metadata.root` (basit değer) |
+| Grafik gömme varlığı | `entity.vectors` (çoğul) | `entity.vector` (tekil) |
+| Belge gömme parçası | `chunk.vectors` + `chunk.chunk` (metin) | `chunk.vector` + `chunk.chunk_id` (ID referansı) |
+
+--
+
+## Uyumsuz Değişiklikler
+
+**`Value`'dan `Term`'e kablo formatı**: Ağ geçidi üzerinden üçlü, gömme veya varlık bağlamı gönderen/alan tüm istemcilerin, yeni Terim formatına güncellenmesi gerekir.
+**`objects`'dan `rows`'e yeniden adlandırma**: WebSocket hizmet anahtarı ve içe aktarma anahtarı değiştirildi.
+**Meta veri alanı değişikliği**: `metadata.metadata` (serileştirilmiş bir alt grafik), `metadata.root` (basit bir değer) ile değiştirildi.
+**Gömme alanı değişiklikleri**: `vectors` (çoğul), `vector` (tekil) haline geldi; belge gömmeleri artık iç içe `chunk` metni yerine `chunk_id`'yi referans alıyor.
+**Yeni `/api/v1/document-stream` uç noktası**: Uyumsuz değil, eklemeli.
diff --git a/docs/api-gateway-changes-v1.8-to-v2.1.zh-cn.md b/docs/api-gateway-changes-v1.8-to-v2.1.zh-cn.md
new file mode 100644
index 00000000..447df209
--- /dev/null
+++ b/docs/api-gateway-changes-v1.8-to-v2.1.zh-cn.md
@@ -0,0 +1,108 @@
+---
+layout: default
+title: "API 网关变更:v1.8 到 v2.1"
+parent: "Chinese (Beta)"
+---
+
+# API 网关变更:v1.8 到 v2.1
+
+> **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.
+
+## 摘要
+
+API 网关新增了用于嵌入查询的 WebSocket 服务分发器,新增了 REST 串流端点,用于文档内容,并进行了重要的 Wire 格式变化,从 `Value` 变为 `Term`。 "对象" 服务已被重命名为 "行"。
+
+---
+
+## 新的 WebSocket 服务分发器
+
+这些是可通过 WebSocket 多路复用器 `/api/v1/socket` (范围限定) 访问的新请求/响应服务:
+
+| 服务键 | 描述 |
+|---|---|
+| `document-embeddings` | 通过文本相似性查询文档块。 请求/响应使用 `DocumentEmbeddingsRequest`/`DocumentEmbeddingsResponse` 模式。 |
+| `row-embeddings` | 通过在索引字段上对结构化数据行进行文本相似性查询。 请求/响应使用 `RowEmbeddingsRequest`/`RowEmbeddingsResponse` 模式。 |
+
+这些与现有的 `graph-embeddings` 分发器 (已存在于 v1.8 但可能已被更新) 关联。
+
+### WebSocket 流程服务分发器的完整列表 (v2.1)
+
+请求/响应服务 (通过 `/api/v1/flow/{flow}/service/{kind}` 或 WebSocket 多路复用器):
+
+- `agent`, `text-completion`, `prompt`, `mcp-tool`
+- `graph-rag`, `document-rag`
+- `embeddings`, `graph-embeddings`, `document-embeddings`
+- `triples`, `rows`, `nlp-query`, `structured-query`, `structured-diag`
+- `row-embeddings`
+
+---
+
+## 新的 REST 端点
+
+| 方法 | 路径 | 描述 |
+|---|---|---|
+| `GET` | `/api/v1/document-stream` | 从库中流式传输文档内容为原始字节。 查询参数:`user` (必需), `document-id` (必需), `chunk-size` (可选, 默认 1MB)。 返回文档内容,通过内部进行 base64 解码,并以块传输编码传输。 |
+
+---
+
+## 重命名服务: "objects" 为 "rows"
+
+| v1.8 | v2.1 | 备注 |
+|---|---|---|
+| `objects_query.py` / `ObjectsQueryRequestor` | `rows_query.py` / `RowsQueryRequestor` | 模式从 `ObjectsQueryRequest`/`ObjectsQueryResponse` 变为 `RowsQueryRequest`/`RowsQueryResponse`。 |
+| `objects_import.py` / `ObjectsImport` | `rows_import.py` / `RowsImport` | 结构化数据导入分发器。 |
+
+WebSocket 服务键已从 `"objects"` 变为 `"rows"`,以及导入分发器的键也从 `"objects"` 变为 `"rows"`。
+
+---
+
+## Wire 格式变化: Value 为 Term
+
+`serialize.py` (序列化层) 已重写为使用新的 `Term` 类型,而不是旧的 `Value` 类型。
+
+### 旧格式 (v1.8 - `Value`)
+
+```json
+{"v": "http://example.org/entity", "e": true}
+```
+
+- `v`: 值 (字符串)
+- `e`: 布尔标志,指示值是否为 URI
+
+### 新格式 (v2.1 - `Term`)
+
+IRI:
+```json
+{"t": "i", "i": "http://example.org/entity"}
+```
+
+字面量:
+```json
+{"t": "l", "v": "some text", "d": "datatype-uri", "l": "en"}
+```
+
+带引号的三元组 (RDF-star):
+```json
+{"t": "r", "r": {"s": {...}, "p": {...}, "o": {...}}}
+```
+
+- `t`: 类型区分值 — `"i"` (IRI), `"l"` (字面量), `"r"` (带引号的三元组), `"b"` (空节点)
+- 序列化现在委托给 `trustgraph.messaging.translators.primitives` 中的 `TermTranslator` 和 `TripleTranslator`
+
+### 其他序列化更改
+
+| 字段 | v1.8 | v2.1 |
+|---|---|---|
+| 元数据 | `metadata.metadata` (子图) | `metadata.root` (简单值) |
+| 图嵌入实体 | `entity.vectors` (复数) | `entity.vector` (单数) |
+| 文档嵌入块 | `chunk.vectors` + `chunk.chunk` (文本) | `chunk.vector` + `chunk.chunk_id` (ID 引用) |
+
+---
+
+## 破坏性变更
+
+- **Value 到 Term 的 Wire 格式**: 任何通过网关发送/接收三元组、嵌入或实体上下文的客户端都必须更新为新的 Term 格式。
+- **objects 到 rows 的重命名**: WebSocket 服务键和导入键已更改。
+- **元数据字段更改**: `metadata.metadata` (序列化的子图) 已被 `metadata.root` (简单值) 替换。
+- **嵌入字段更改**: `vectors` (复数) 变为 `vector` (单数);文档嵌入现在引用 `chunk_id` 而不是内联 `chunk` 文本。
+- **新的 `/api/v1/document-stream` 端点**: 添加的,非破坏性。
diff --git a/docs/cli-changes-v1.8-to-v2.1.ar.md b/docs/cli-changes-v1.8-to-v2.1.ar.md
new file mode 100644
index 00000000..c9daba1f
--- /dev/null
+++ b/docs/cli-changes-v1.8-to-v2.1.ar.md
@@ -0,0 +1,119 @@
+---
+layout: default
+title: "تغييرات واجهة سطر الأوامر: من v1.8 إلى v2.1"
+parent: "Arabic (Beta)"
+---
+
+# تغييرات واجهة سطر الأوامر: من v1.8 إلى v2.1
+
+> **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.
+
+## ملخص
+
+تمت إضافة العديد من الميزات إلى واجهة سطر الأوامر (`trustgraph-cli`)، مع التركيز على ثلاثة مجالات:
+**القابلية للتفسير/الأصل،** **الوصول إلى التضمينات،** و **استعلامات الرسم البياني.**
+تم إزالة أدوات قديمة، وتم تغيير اسم أداة واحدة، وحصلت العديد من الأدوات الموجودة على قدرات جديدة.
+
+---
+
+## أدوات واجهة سطر الأوامر الجديدة
+
+### القابلية للتفسير والأصل
+
+| الأمر | الوصف |
+|---|---|
+| `tg-list-explain-traces` | يسرد جميع جلسات القابلية للتفسير (GraphRAG و Agent) في المجموعة، مع عرض معرفات الجلسة ونوعها ونص السؤال وتوقيتات الإصدار. |
+| `tg-show-explain-trace` | يعرض مسار القابلية للتفسير الكامل لجلسة. لـ GraphRAG: مرحلة السؤال، والبحث/التنقيب، والتركيز، والتوليف. لـ Agent: مرحلة الجلسة، والتكرارات (فكر/عمل/ملاحظة)، والإجابة النهائية. يكتشف تلقائيًا نوع المسار. يدعم الخيارات `--show-provenance` لتتبع الحواف مرة أخرى إلى المستندات المصدر. |
+| `tg-show-extraction-provenance` | بالنظر إلى معرف المستند، فإنه يتتبع سلسلة الأصل: المستند -> الصفحات -> القطع -> الحواف، باستخدام علاقات `prov:wasDerivedFrom`. يدعم الخيارات `--show-content` و `--max-content`. |
+
+### التضمينات
+
+| الأمر | الوصف |
+|---|---|
+| `tg-invoke-embeddings` | يحول النص إلى تضمين متجه عبر خدمة التضمينات. يقبل إدخالات نصية واحدة أو أكثر، ويعيد المتجهات كمصفوفات من الأرقام العشرية. |
+| `tg-invoke-graph-embeddings` | يستعلم عن الكيانات في الرسم البياني باستخدام التضمينات النصية. يعيد الكيانات المطابقة مع درجات التشابه. |
+| `tg-invoke-document-embeddings` | يستعلم عن قطع المستند باستخدام التضمينات النصية. يعيد معرّفات القطع المطابقة مع درجات التشابه. |
+| `tg-invoke-row-embeddings` | يستعلم عن صفوف البيانات المهيكلة باستخدام التشابه النصي على الحقول الفهرسية. يعيد الصفوف المطابقة مع قيم الفهرس ودرجاتها. يتطلب `--schema-name` ويدعم `--index-name`. |
+
+### استعلام الرسم البياني
+
+| الأمر | الوصف |
+|---|---|
+| `tg-query-graph` | استعلام مخزن ثلاثي يعتمد على الأنماط. على عكس `tg-show-graph` (الذي يعرض كل شيء)، فإنه يسمح بالاستعلامات الانتقائية باستخدام أي مجموعة من الموضوع والصفة والكائن والرسم البياني. يكتشف تلقائيًا أنواع القيم: IRIs (`http://...`, `urn:...`, `<...>`)، ثلاثيات مُقتبسة (`<>`)، والمفردات. |
+| `tg-get-document-content` | يسترجع محتوى المستند من المكتبة بمعرف المستند. يمكن إخراجها إلى ملف أو stdout، ويدعم كلًا من المحتوى النصي والمحتوى الثنائي. |
+
+---
+
+## أدوات واجهة سطر الأوامر المحذوفة
+
+| الأمر | الملاحظات |
+|---|---|
+| `tg-load-pdf` | تم حذفه. يتم الآن التعامل مع تحميل المستند من خلال المكتبة/مسار المعالجة. |
+| `tg-load-text` | تم حذفه. يتم الآن التعامل مع تحميل المستند من خلال المكتبة/مسار المعالجة. |
+
+---
+
+## تغيير أسماء أدوات واجهة سطر الأوامر
+
+| الاسم القديم | الاسم الجديد | الملاحظات |
+|---|---|---|
+| `tg-invoke-objects-query` | `tg-invoke-rows-query` | يعكس تغيير التسمية من "الكائنات" إلى "الصفوف" للبيانات المهيكلة. |
+
+---
+
+## تغييرات كبيرة في الأدوات الموجودة
+
+### `tg-invoke-graph-rag`
+
+- **دعم القابلية للتفسير:** يدعم الآن مسار قابلية تفسير مكون من 4 مراحل (السؤال، والبحث/التنقيب، والتركيز، والتوليف) مع عرض متكامل للأحداث المتعلقة بالأصل.
+- **الاستمرارية:** يستخدم بث WebSocket لإخراج في الوقت الفعلي.
+- **تتبع الأصل:** يمكن تتبع الحواف المحددة مرة أخرى إلى المستندات المصدر من خلال إعادة التشكيل و سلاسل `prov:wasDerivedFrom`.
+- زادت من حوالي 30 سطرًا إلى 760 سطرًا لاستيعاب مسار القابلية للتفسير الكامل.
+
+### `tg-invoke-document-rag`
+
+- **دعم القابلية للتفسير:** أضاف وضع `question_explainable()` الذي يخرج استجابات RAG للمستند مع أحداث الأصل المتداخلة (مراحل السؤال، والبحث، والتنقيب، والتوليف).
+
+### `tg-invoke-agent`
+
+- **دعم القابلية للتفسير:** أضاف وضع `question_explainable()` الذي يعرض أحداث الأصل المتداخلة أثناء تنفيذ الوكيل (مراحل السؤال، والتحليل، والاستنتاج، و AgentThought، و AgentObservation، و AgentAnswer).
+- يظهر الوضع التفصيلي سلاسل فكر/ملاحظة مع بادئات رموز تعبيرية.
+
+### `tg-show-graph`
+
+- **وضع الاستمرارية:** يستخدم الآن `triples_query_stream()` مع أحجام دفع قابلة للتكوين للحصول على النتيجة الأولى في أدنى وقت وتقليل الحمل الزائد للذاكرة.
+- **دعم الرسم البياني المسمى:** خيار جديد `--graph`. يكتشف الرسوم البيانية المسماة:
+ - الرسم البياني الافتراضي (فارغ): حقائق المعرفة الأساسية.
+ - `urn:graph:source`: الأصل لاستخراج
+ - `urn:graph:retrieval`: استعلام في وقت التشغيل للقابلية للتفسير
+- **عرض عمود الرسم البياني:** علامة جديدة `--show-graph` لعرض الرسم البياني المسماة لكل ثلاثي.
+- **حدود قابلة للتكوين:** خيارات جديدة `--limit` و `--batch-size`.
+
+### `tg-graph-to-turtle`
+
+- **دعم RDF-star:** يتعامل الآن مع الثلاثيات المقتبسة (إعادة تشكيل RDF-star).
+- **وضع الاستمرارية:** يستخدم الاستمرارية للتحقيق في وقت المعالجة في أدنى وقت.
+- **معالجة تنسيق الكابل:** تم تحديثه لاستخدام تنسيق الكابل الجديد (`{"t": "i", "i": uri}` لـ IRIs، و `{"t": "l", "v": value}` للمفردات، و `{"t": "r", "r": {...}}` للاثلاثيات المقتبسة).
+- **دعم الرسم البياني المسمى:** خيار جديد `--graph`.
+
+### `tg-set-tool`
+
+- **نوع أداة جديد:** `row-embeddings-query` للبحث الدلالي عن فهارس البيانات المهيكلة.
+- **خيارات جديدة:** `--schema-name` و `--index-name` و `--limit` لتكوين أدوات استعلام تضمينات الصفوف.
+
+### `tg-show-tools`
+
+- يعرض نوع الأداة الجديد `row-embeddings-query` مع حقول `schema-name` و `index-name` و `limit`.
+
+### `tg-load-knowledge`
+
+- **إعداد التقارير عن التقدم:** الآن يحسب ويسجل عدد ثلاثيات وسياقات الكيانات التي تم تحميلها لكل ملف بشكل إجمالي.
+- **تحديث تنسيق المصطلح:** تتضمن سياقات الكيانات الآن تنسيق المصطلح الجديد (`{"t": "i", "i": uri}`) بدلاً من تنسيق القيمة القديم (`{"v": entity, "e": True}`).
+
+---
+
+## تغييرات مدمرة
+
+- **تغيير التسمية:** تم تغيير اسم مخطط `Value` إلى `Term` في جميع أنحاء النظام (PR #622). وهذا يؤثر على الأدوات التي تتفاعل مع مخزن الرسم البياني والتي تستخدم تنسيق الكابل الجديد. يستخدم التنسيق الجديد `{"t": "i", "i": uri}` لـ IRIs و `{"t": "l", "v": value}` للمفردات، بدلاً من التنسيق القديم `{"v": ..., "e": ...}`.
+- **`tg-invoke-objects-query` تم تغيير الاسم** إلى `tg-invoke-rows-query`.
+- تم حذف `tg-load-pdf` و `tg-load-text`.
diff --git a/docs/cli-changes-v1.8-to-v2.1.es.md b/docs/cli-changes-v1.8-to-v2.1.es.md
new file mode 100644
index 00000000..c9121a4e
--- /dev/null
+++ b/docs/cli-changes-v1.8-to-v2.1.es.md
@@ -0,0 +1,120 @@
+---
+layout: default
+title: "Cambios en la CLI: v1.8 a v2.1"
+parent: "Spanish (Beta)"
+---
+
+# Cambios en la CLI: v1.8 a v2.1
+
+> **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.
+
+## Resumen
+
+La CLI (`trustgraph-cli`) tiene importantes adiciones centradas en tres temas:
+**explicabilidad/origen**, **acceso a embeddings** y **consultas en el grafo**.
+Se eliminaron dos herramientas heredadas, una se renombró y varias herramientas existentes
+adquirieron nuevas capacidades.
+
+---
+
+## Nuevas Herramientas CLI
+
+### Explicabilidad y Origen
+
+| Comando | Descripción |
+|---------|-------------|
+| `tg-list-explain-traces` | Lista todas las sesiones de explicabilidad (GraphRAG y Agent) en una colección, mostrando los IDs de sesión, tipo, texto de la pregunta y marcas de tiempo. |
+| `tg-show-explain-trace` | Muestra la traza completa de explicabilidad para una sesión. Para GraphRAG: Etapas de Pregunta, Exploración, Enfoque, Síntesis. Para Agent: Etapas de Sesión, Iteraciones (pensamiento/acción/observación), Respuesta Final. Detecta automáticamente el tipo de traza. Soporta la opción `--show-provenance` para rastrear los bordes de vuelta a los documentos originales. |
+| `tg-show-extraction-provenance` | Dados un ID de documento, recorre la cadena de origen: Documento -> Páginas -> Bloques -> Bordes, utilizando las relaciones `prov:wasDerivedFrom`. Soporta las opciones `--show-content` y `--max-content`. |
+
+### Embeddings
+
+| Comando | Descripción |
+|---------|-------------|
+| `tg-invoke-embeddings` | Convierte texto en un embedding vectorial a través del servicio de embeddings. Acepta uno o más entradas de texto, devuelve vectores como listas de flotantes. |
+| `tg-invoke-graph-embeddings` | Consulta entidades del grafo por similitud de texto utilizando embeddings vectoriales. Devuelve las entidades coincidentes con puntuaciones de similitud. |
+| `tg-invoke-document-embeddings` | Consulta fragmentos de documentos por similitud de texto utilizando embeddings vectoriales. Devuelve los IDs de fragmentos coincidentes con puntuaciones de similitud. |
+| `tg-invoke-row-embeddings` | Consulta filas de datos estructurados por similitud de texto en campos indexados. Devuelve las filas coincidentes con valores de índice y puntuaciones. Requiere `--schema-name` y soporta `--index-name`. |
+
+### Consultas en el grafo
+
+| Comando | Descripción |
+|---------|-------------|
+| `tg-query-graph` | Consulta basada en patrones para el almacén de triples. A diferencia de `tg-show-graph` (que muestra todo), esto permite consultas selectivas para cualquier combinación de sujeto, predicado, objeto y grafo. Detecta automáticamente los tipos de valor: IRIs (`http://...`, `urn:...`, `<...>`), triples anclados (`<>`), y literales. |
+| `tg-get-document-content` | Recupera el contenido del documento de la biblioteca por ID de documento. Puede mostrar en un archivo o en stdout, maneja tanto contenido de texto como binario. |
+
+---
+
+## Herramientas CLI eliminadas
+
+| Comando | Notas |
+|---------|-------|
+| `tg-load-pdf` | Eliminado. La carga de documentos ahora se maneja a través de la biblioteca/pipeline de procesamiento. |
+| `tg-load-text` | Eliminado. La carga de documentos ahora se maneja a través de la biblioteca/pipeline de procesamiento. |
+
+---
+
+## Herramientas CLI renombradas
+
+| Nombre antiguo | Nombre nuevo | Notas |
+|----------|----------|-------|
+| `tg-invoke-objects-query` | `tg-invoke-rows-query` | Refleja el cambio de terminología de "objetos" a "filas" para datos estructurados. |
+
+---
+
+## Cambios Significativos en Herramientas Existentes
+
+### `tg-invoke-graph-rag`
+
+- **Soporte de explicabilidad**: Ahora soporta una tubería de explicabilidad de 4 etapas (Pregunta, Fundamentación/Exploración, Enfoque, Síntesis) con visualización de eventos de origen en línea.
+- **Streaming**: Utiliza el streaming de WebSocket para la salida en tiempo real.
+- **Rastreo de origen**: Puede rastrear bordes seleccionados de vuelta a los documentos originales a través de la reificación y cadenas `prov:wasDerivedFrom`.
+- Crecer de ~30 líneas a ~760 líneas para acomodar la tubería de explicabilidad completa.
+
+### `tg-invoke-document-rag`
+
+- **Soporte de explicabilidad**: Añadido el modo `question_explainable()` que transmite las respuestas de RAG de Documento con eventos de origen en línea (etapas de Pregunta, Fundamentación, Exploración, Síntesis).
+
+### `tg-invoke-agent`
+
+- **Soporte de explicabilidad**: Añadido el modo `question_explainable()` que muestra los eventos de origen en línea durante la ejecución del agente (etapas de Pregunta, Análisis, Conclusión, AgentThought, AgentObservation, AgentAnswer).
+- El modo verboso muestra las transmisiones de pensamentos/observaciones con prefijos de emojis.
+
+### `tg-show-graph`
+
+- **Modo de streaming**: Ahora utiliza `triples_query_stream()` con tamaños de lote configurables para un tiempo de primer resultado más bajo y una menor sobrecarga de memoria.
+- **Soporte de grafo nombrado**: Nueva opción `--graph` de filtro. Reconoce grafos nombrados:
+ - Grafo predeterminado (vacío): Hechos de conocimiento básicos
+ - `urn:graph:source`: Origen de extracción
+ - `urn:graph:retrieval`: Explicabilidad en tiempo de consulta
+- **Mostrar columna de grafo**: Nueva bandera `--show-graph` para mostrar el grafo nombrado para cada triple.
+- **Límites configurables**: Nuevas opciones `--limit` y `--batch-size`.
+
+### `tg-graph-to-turtle`
+
+- **Soporte de RDF-star**: Ahora maneja triples anclados (reificación de RDF-star).
+- **Modo de streaming**: Utiliza streaming para un tiempo de procesamiento más rápido.
+- **Manejo del formato de cable**: Actualizado para utilizar el nuevo formato de cable (`{"t": "i", "i": uri}` para IRIs, `{"t": "l", "v": value}` para literales, `{"t": "r", "r": {...}}` para triples anclados)
+- **Soporte de grafo nombrado**: Nueva opción `--graph` de filtro.
+
+### `tg-set-tool`
+
+- **Nuevo tipo de herramienta**: `row-embeddings-query` para búsqueda semántica en índices de datos estructurados.
+- **Nuevas opciones**: `--schema-name`, `--index-name`, `--limit` para configurar herramientas de consulta de embeddings de fila.
+
+### `tg-show-tools`
+
+- Muestra el nuevo tipo de herramienta `row-embeddings-query` con sus campos `schema-name`, `index-name` y `limit`.
+
+### `tg-load-knowledge`
+
+- **Informes de progreso**: Ahora cuenta y reporta los triples y contextos de entidad cargados por archivo y en total.
+- **Actualización del formato de término**: Los contextos de entidad ahora utilizan el nuevo formato de término (`{"t": "i", "i": uri}`) en lugar del formato de valor antiguo (`{"v": ..., "e": ...}`).
+
+---
+
+## Cambios de rompimiento
+
+- **Cambio de terminología**: El esquema `Value` se renombró a `Term` en todo el sistema (PR #622). Esto afecta al formato de cable utilizado por las herramientas CLI que interactúan con el almacén de grafos. El nuevo formato utiliza `{"t": "i", "i": uri}` para IRIs y `{"t": "l", "v": value}` para literales, reemplazando el formato antiguo `{"v": ..., "e": ...}`.
+- **`tg-invoke-objects-query` renombrado** a `tg-invoke-rows-query`.
+- **`tg-load-pdf` y `tg-load-text` eliminados**.
diff --git a/docs/cli-changes-v1.8-to-v2.1.he.md b/docs/cli-changes-v1.8-to-v2.1.he.md
new file mode 100644
index 00000000..07c9d6c7
--- /dev/null
+++ b/docs/cli-changes-v1.8-to-v2.1.he.md
@@ -0,0 +1,119 @@
+---
+layout: default
+title: "שינויים ב-CLI: מ-v1.8 ל-v2.1"
+parent: "Hebrew (Beta)"
+---
+
+# שינויים ב-CLI: מ-v1.8 ל-v2.1
+
+> **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.
+
+## סיכום
+
+ה-CLI (`trustgraph-cli`) כולל שינויים משמעותיים המתמקדים בשלוש תחומים:
+**הסבר/מקוריות**, **גישה להטמעות**, ו**שאילתות גרף**.
+שני כלי ישנים הוסרו, אחד שונה שמו, ורבים מכלי קיימים קיבלו יכולות חדשות.
+
+---
+
+## כלים חדשים ב-CLI
+
+### הסבר ומקוריות
+
+| פקודה | תיאור |
+|---|---|
+| `tg-list-explain-traces` | רשימת כל סשנים של הסבר (GraphRAG ו-Agent) בקולקציה, המציגים מזהי סשן, סוג, טקסט שאלה, וחותמות זמן. |
+| `tg-show-explain-trace` | מציג את הרשומת ההסבר המלאה לסשן. עבור GraphRAG: שלב השאלה, החקירה, ההתמקדות, והסינתזה. עבור Agent: שלב הסשן, איטרציות (מחשבה/פעולה/תצפית), התשובה הסופית. מזהה אוטומטית את סוג הרשומת. תומך באפשרות `--show-provenance` כדי לעקוב אחר קצוות בחזרה לתיקי המסמך המקוריים. |
+| `tg-show-extraction-provenance` | בהתבסס על מזהה מסמך, עובר על שרשרת המקוריות: מסמך -> עמודים -> קטעים -> קצוות, תוך שימוש ביחסים של `prov:wasDerivedFrom`. תומך באפשרויות `--show-content` ו-`--max-content`. |
+
+### הטמעות
+
+| פקודה | תיאור |
+|---|---|
+| `tg-invoke-embeddings` | ממיר טקסט לייצוג וקטורי באמצעות שירות ההטמעות. מקבל אחד או יותר של קלדי טקסט, ומחזיר וקטורים כרשימות של מספרים ממשיים. |
+| `tg-invoke-graph-embeddings` | שאילת ישויות גרף באמצעות טקסט על סמך ייצוגים וקטוריים. מחזיר ישויות תואמות עם ציוני דמיון. |
+| `tg-invoke-document-embeddings` | שאילת קטעי מסמך באמצעות טקסט על סמך ייצוגים וקטוריים. מחזיר מזהי קטעים תואמים עם ציוני דמיון. |
+| `tg-invoke-row-embeddings` | שאילת שורות של נתונים מובנים על סמך טקסט על שדות מסומנים. מחזיר שורות תואמות עם ערכי אינדקס וציון. דורש `--schema-name` ומקבל תמיכה ב-`--index-name`. |
+
+### שאילתות גרף
+
+| פקודה | תיאור |
+|---|---|
+| `tg-query-graph` | שאילתת אחסון טריפלים מבוססת תבנית. בניגוד ל-`tg-show-graph` (שמציג הכל), זה מאפשר שאילתות סלקטיביות באמצעות כל שילוב של נושא, תחביר, אובייקט וגרף. מזהה באופן אוטומטי סוגי ערכים: IRI (`http://...`, `urn:...`, `<...>`), טריפלים מוטבעים (`<>`), וערכים. |
+| `tg-get-document-content` | אחזר תוכן מסמך מהספרייה על סמך מזהה מסמך. יכול להפיק לתיק או ל-stdout, ומטפל גם בתוכן טקסט וגם בתוכן בינארי. |
+
+---
+
+## כלים שהוסרו ב-CLI
+
+| פקודה | הערות |
+|---|---|
+| `tg-load-pdf` | הוסר. טעינת מסמך מטופלת כעת באמצעות הספריה/צינור העיבוד. |
+| `tg-load-text` | הוסר. טעינת מסמך מטופלת כעת באמצעות הספריה/צינור העיבוד. |
+
+---
+
+## שמות כלים חדשים
+
+| שם ישן | שם חדש | הערות |
+|---|---|---|
+| `tg-invoke-objects-query` | `tg-invoke-rows-query` | משקף את השינוי בשם המושג מ"אובייקטים" ל"שורות" עבור נתונים מובנים. |
+
+---
+
+## שינויים משמעותיים בכלים קיימים
+
+### `tg-invoke-graph-rag`
+
+- **תמיכה בהסבר**: תומך כעת בפונקציית הסבר של 4 שלבים (שאלה, חקירה/התמקדות, סינתזה) עם הצגת אירועי מקוריות מקומיים.
+- **זרם**: משתמש בזרם WebSocket עבור פלט בזמן אמת.
+- **מעקב אחר מקוריות**: יכול לעקוב אחר קצוות שנבחרו בחזרה למסמכים מקוריים באמצעות ריפוי ושרשראות של `prov:wasDerivedFrom`.
+- גדל מ-~30 שורות ל-~760 שורות כדי להסב את כל פונקציית ההסבר.
+
+### `tg-invoke-document-rag`
+
+- **תמיכה בהסבר**: הוספה של מצב `question_explainable()` המפיק תגובות של RAG עבור מסמכים עם אירועי מקוריות מקומיים (שלבי שאלה, חקירה, התמקדות, סינתזה).
+
+### `tg-invoke-agent`
+
+- **תמיכה בהסבר**: הוספת מצב `question_explainable()` המציג אירועי מקוריות במהלך ביצוע סוכן (שלבי שאלה, ניתוח, מסקנה, AgentThought, AgentObservation, AgentAnswer).
+- מצב מפורט מציג זרימות של מחשבה/תצפית עם קידומים של סמלים.
+
+### `tg-show-graph`
+
+- **מצב זרימה**: משתמש כעת ב-`triples_query_stream()` עם גדלי אצווה מוגדרים כדי להפחית את זמן התגובה הראשון ולהקטין את צריכת הזיכרון.
+- **תמיכה בגרף משמות**: אפשרות חדשה `--graph`. מזהה גרפים משמות:
+ - גרף ברירת מחדל (ריק): עובדות ידע בסיסיות
+ - `urn:graph:source`: מקוריות של הסתרה
+ - `urn:graph:retrieval`: הסבר בזמן שאילתה
+- **הצגת עמוד גרף**: תגית חדשה `--show-graph` להצגת הגרף המשמות לכל טריפל.
+- **גבולות ניתנים להתאמה**: אפשרויות חדשות `--limit` ו-`--batch-size`.
+
+### `tg-graph-to-turtle`
+
+- **תמיכה ב-RDF-star**: מטפל בטריפלים מוטבעים (ריפוי RDF-star).
+- **מצב זרימה**: משתמש בזרם להפחתת זמן התגובה הראשון.
+- **טיפול בפורמט חוטי**: מעודכן כדי להשתמש בפורמט החוט החדש (`{"t": "i", "i": uri}` עבור IRI, `{"t": "l", "v": value}` עבור ערכים, `{"t": "r", "r": {...}}` עבור טריפלים מוטבעים).
+- **תמיכה בגרף משמות**: אפשרות חדשה `--graph`.
+
+### `tg-set-tool`
+
+- **סוג כלי חדש**: `row-embeddings-query` לשאילתות סמנטיות על אינדקסים של נתונים מובנים.
+- **אפשרויות חדשות**: `--schema-name`, `--index-name`, `--limit` כדי להגדיר כלים לשאילתות הטמעות שורות.
+
+### `tg-show-tools`
+
+- מציג את סוג הכלי החדש `row-embeddings-query` עם השדות שלו `schema-name`, `index-name`, ו-`limit`.
+
+### `tg-load-knowledge`
+
+- **דיווח התקדמות**: סופר ומדווח על מספר הטרפולים ועל הקטעי של ישויות המועמסים, לפי קובץ וגם בסך הכל.
+- **עדכון פורמט מונח**: קטעי ישויות משתמשים כעת בפורמט המונח החדש (`{"t": "i", "i": uri}`) במקום בפורמט הערך הישן (`{"v": entity, "e": True}`).
+
+---
+
+## שינויים שבורים
+
+- **שינוי שמות**: הסכימה `Value` שונתה לשם `Term` בכל המערכת (PR #622). זה משפיע על הציוד שמשתמש בכלי ה-CLI שמתקשר עם מאגר הגרף. הפורמט החדש משתמש ב-`{"t": "i", "i": uri}` עבור IRI ו-`{"t": "l", "v": value}` עבור ערכים, במקום הפורמט הישן `{"v": ..., "e": ...}`.
+- **השינוי בשם של `tg-invoke-objects-query`** ל- `tg-invoke-rows-query`.
+- **הוסרו `tg-load-pdf` ו-`tg-load-text`.
diff --git a/docs/cli-changes-v1.8-to-v2.1.hi.md b/docs/cli-changes-v1.8-to-v2.1.hi.md
new file mode 100644
index 00000000..c9928ee6
--- /dev/null
+++ b/docs/cli-changes-v1.8-to-v2.1.hi.md
@@ -0,0 +1,119 @@
+---
+layout: default
+title: "CLI में परिवर्तन: v1.8 से v2.1"
+parent: "Hindi (Beta)"
+---
+
+# CLI में परिवर्तन: v1.8 से v2.1
+
+> **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.
+
+## सारांश
+
+CLI (`trustgraph-cli`) में तीन मुख्य क्षेत्रों पर ध्यान केंद्रित किए गए महत्वपूर्ण परिवर्धन शामिल हैं:
+**व्याख्यात्मकता/उत्पत्ति, एम्बेडिंग एक्सेस, और ग्राफ़ क्वेरी।**
+दो पुरानी उपकरण हटा दिए गए थे, एक का नाम बदल दिया गया, और कई मौजूदा उपकरणों में नई क्षमताएं जोड़ी गईं।
+
+---
+
+## नए CLI उपकरण
+
+### व्याख्यात्मकता और उत्पत्ति
+
+| कमांड | विवरण |
+|---------|-------------|
+| `tg-list-explain-traces` | एक संग्रह में सभी व्याख्या सत्रों (GraphRAG और एजेंट) की सूची, जिसमें सत्र आईडी, प्रकार, प्रश्न पाठ और टाइमस्टैम्प शामिल हैं। |
+| `tg-show-explain-trace` | किसी सत्र के लिए पूरी व्याख्यात्मक ट्रेस प्रदर्शित करता है। GraphRAG के लिए: प्रश्न, खोज, ध्यान केंद्रित, संश्लेषण चरण। एजेंट के लिए: सत्र, पुनरावृत्तियाँ (सोच/क्रिया/अवलोकन), अंतिम उत्तर। स्वचालित रूप से ट्रेस प्रकार का पता लगाता है। `--show-provenance` का उपयोग करके स्रोत दस्तावेजों तक किनारों को ट्रेस करने का समर्थन करता है। |
+| `tg-show-extraction-provenance` | एक दस्तावेज़ आईडी दिए जाने पर, `prov:wasDerivedFrom` संबंधों का उपयोग करके उत्पत्ति श्रृंखला को पार करता है: दस्तावेज़ -> पृष्ठ -> खंड -> किनारे। `--show-content` और `--max-content` विकल्पों का समर्थन करता है। |
+
+### एम्बेडिंग
+
+| कमांड | विवरण |
+|---------|-------------|
+| `tg-invoke-embeddings` | एम्बेडिंग सेवा के माध्यम से टेक्स्ट को वेक्टर एम्बेडिंग में परिवर्तित करता है। एक या अधिक टेक्स्ट इनपुट स्वीकार करता है, और फ़्लोट की सूची के रूप में वेक्टर लौटाता है। |
+| `tg-invoke-graph-embeddings` | वेक्टर एम्बेडिंग का उपयोग करके ग्राफ संस्थाओं को क्वेरी करता है। मिलान संस्थाओं और समानता स्कोर लौटाता है। |
+| `tg-invoke-document-embeddings` | वेक्टर एम्बेडिंग का उपयोग करके दस्तावेज़ खंडों को क्वेरी करता है। मिलान खंड आईडी और समानता स्कोर लौटाता है। |
+| `tg-invoke-row-embeddings` | इंडेक्स किए गए फ़ील्ड पर टेक्स्ट समानता का उपयोग करके संरचित डेटा पंक्तियों को क्वेरी करता है। मिलान पंक्तियों और स्कोर लौटाता है। `--schema-name` और `--index-name` का समर्थन करता है। |
+
+### ग्राफ़ क्वेरी
+
+| कमांड | विवरण |
+|---------|-------------|
+| `tg-query-graph` | पैटर्न-आधारित ट्रिपल स्टोर क्वेरी। `tg-show-graph` (जो सब कुछdumps करता है) के विपरीत, यह किसी भी संयोजन के विषय, विधेय, वस्तु और ग्राफ़ द्वारा चयनशील क्वेरी की अनुमति देता है। स्वचालित रूप से मूल्य प्रकार का पता लगाता है: IRI (`http://...`, `urn:...`, `<...>`), उद्धृत ट्रिपल (`<>`), और अक्षर। |
+| `tg-get-document-content` | लाइब्रेरी से दस्तावेज़ आईडी द्वारा दस्तावेज़ सामग्री प्राप्त करता है। फ़ाइल या stdout पर आउटपुट कर सकता है, और टेक्स्ट और बाइनरी सामग्री दोनों को संभालता है। |
+
+---
+
+## हटाए गए CLI उपकरण
+
+| कमांड | नोट्स |
+|---------|-------|
+| `tg-load-pdf` | हटा दिया गया। दस्तावेज़ लोडिंग अब लाइब्रेरी/प्रसंस्करण पाइपलाइन के माध्यम से संभाली जाती है। |
+| `tg-load-text` | हटा दिया गया। दस्तावेज़ लोडिंग अब लाइब्रेरी/प्रसंस्करण पाइपलाइन के माध्यम से संभाली जाती है। |
+
+---
+
+## नाम बदले गए CLI उपकरण
+
+| पुराना नाम | नया नाम | नोट्स |
+|----------|----------|-------|
+| `tg-invoke-objects-query` | `tg-invoke-rows-query` | संरचित डेटा के लिए "ऑब्जेक्ट" से "पंक्ति" के शब्दावली में बदलाव को दर्शाता है। |
+
+---
+
+## मौजूदा उपकरणों में महत्वपूर्ण परिवर्तन
+
+### `tg-invoke-graph-rag`
+
+- **व्याख्यात्मकता समर्थन**: 4-चरण व्याख्यात्मक पाइपलाइन (प्रश्न, ग्राउंडिंग/खोज, ध्यान केंद्रित, संश्लेषण) का समर्थन करता है जिसमें इनलाइन उत्पत्ति घटना प्रदर्शन भी शामिल है।
+- **स्ट्रीमिंग**: वास्तविक समय के आउटपुट के लिए WebSocket स्ट्रीमिंग का उपयोग करता है।
+- **उत्पत्ति ट्रेसिंग**: पुनरावर्तन और `prov:wasDerivedFrom` श्रृंखलाओं के माध्यम से चयनित किनारों को स्रोत दस्तावेजों तक ट्रेस कर सकता है।
+- ~30 पंक्तियों से ~760 पंक्तियों तक बढ़ गया है ताकि पूरे व्याख्यात्मक पाइपलाइन को समायोजित किया जा सके।
+
+### `tg-invoke-document-rag`
+
+- **व्याख्यात्मकता समर्थन**: `question_explainable()` मोड जोड़ा गया जो दस्तावेज़ RAG प्रतिक्रियाओं को इनलाइन उत्पत्ति घटनाओं (प्रश्न, ग्राउंडिंग, खोज, संश्लेषण चरण) के साथ प्रवाहित करता है।
+
+### `tg-invoke-agent`
+
+- **व्याख्यात्मकता समर्थन**: `question_explainable()` मोड जोड़ा गया जो एजेंट निष्पादन के दौरान इनलाइन उत्पत्ति घटनाओं (प्रश्न, विश्लेषण, निष्कर्ष, एजेंटसोच, एजेंटअवलोकन, एजेंटउत्तर) को प्रदर्शित करता है।
+- वर्बोस मोड में, इमोजी उपसर्ग के साथ सोच/अवलोकन धाराओं को दिखाया जाता है।
+
+### `tg-show-graph`
+
+- **स्ट्रीमिंग मोड**: `triples_query_stream()` का उपयोग करता है जिसमें कम समय-से-पहले-परिणाम और कम मेमोरी ओवरहेड के लिए कॉन्फ़िगरेबल बैच आकार होते हैं।
+- **नाम वाले ग्राफ़ समर्थन**: नया `--graph` फ़िल्टर विकल्प। निम्नलिखित नाम वाले ग्राफ़ को पहचानता है:
+ - डिफ़ॉल्ट ग्राफ़ (खाली): मुख्य ज्ञान तथ्य
+ - `urn:graph:source`: निष्कर्षण उत्पत्ति
+ - `urn:graph:retrieval`: क्वेरी-समय व्याख्यात्मकता
+- **ग्राफ़ कॉलम दिखाना**: `--show-graph` ध्वज जोड़ा गया।
+- **कॉन्फ़िगरेबल सीमाएँ**: नए `--limit` और `--batch-size` विकल्प।
+
+### `tg-graph-to-turtle`
+
+- **RDF-स्टार समर्थन**: उद्धृत ट्रिपल (RDF-स्टार पुनरावर्तन) को संभालता है।
+- **स्ट्रीमिंग मोड**: कम समय-से-पहले-प्रसंस्करण के लिए स्ट्रीमिंग का उपयोग करता है।
+- **वायर फॉर्मेट हैंडलिंग**: नई वायर फॉर्मेट (`{"t": "i", "i": uri}` के लिए IRI, `{"t": "l", "v": value}` के लिए अक्षर, `{"t": "r", "r": {...}}` के लिए उद्धृत ट्रिपल) का उपयोग करने के लिए अपडेट किया गया है।
+- **नाम वाले ग्राफ़ समर्थन**: नया `--graph` फ़िल्टर विकल्प।
+
+### `tg-set-tool`
+
+- **नया उपकरण प्रकार**: संरचित डेटा सूचकांकों पर अर्थपूर्ण खोज के लिए `row-embeddings-query`।
+- **नया विकल्प**: संरचित डेटा क्वेरी टूल के लिए `--schema-name`, `--index-name`, `--limit` विकल्प जोड़े गए।
+
+### `tg-show-tools`
+
+- `row-embeddings-query` के नए उपकरण प्रकार और उसके `schema-name`, `index-name` और `limit` फ़ील्ड को प्रदर्शित करता है।
+
+### `tg-load-knowledge`
+
+- **प्रगति रिपोर्टिंग**: प्रत्येक फ़ाइल और कुल में लोड किए गए ट्रिपल और संस्था संदर्भों की गणना और रिपोर्ट करता है।
+- **टर्म फॉर्मेट अपडेट**: संस्था संदर्भ अब नए टर्म फॉर्मेट (`{"t": "i", "i": uri}`) का उपयोग करते हैं, जबकि पुराने मूल्य फॉर्मेट (`{"v": entity, "e": True}`) का उपयोग किया जाता था।
+
+---
+
+## ब्रेकिंग परिवर्तन
+
+- **शब्दावली का नाम बदलना**: `Value` स्कीम को पूरे सिस्टम में `Term` नाम दिया गया है (PR #622)। यह CLI टूल के लिए जो ग्राफ स्टोर के साथ इंटरैक्ट करते हैं, उनके वायर फॉर्मेट को प्रभावित करता है। नया फॉर्मेट `{"t": "i", "i": uri}` IRI के लिए और `{"t": "l", "v": value}` अक्षर के लिए, पिछले `{"v": ..., "e": ...}` फॉर्मेट के स्थान पर उपयोग करता है।
+- **`tg-invoke-objects-query` को `tg-invoke-rows-query` में नाम बदला गया**।
+- **`tg-load-pdf` और `tg-load-text` हटा दिए गए**।
diff --git a/docs/cli-changes-v1.8-to-v2.1.pt.md b/docs/cli-changes-v1.8-to-v2.1.pt.md
new file mode 100644
index 00000000..3aa7401a
--- /dev/null
+++ b/docs/cli-changes-v1.8-to-v2.1.pt.md
@@ -0,0 +1,120 @@
+---
+layout: default
+title: "Alterações na CLI: da v1.8 para v2.1"
+parent: "Portuguese (Beta)"
+---
+
+# Alterações na CLI: da v1.8 para v2.1
+
+> **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.
+
+## Resumo
+
+A CLI (`trustgraph-cli`) possui adições significativas focadas em três temas:
+**explicabilidade/proveniência**, **acesso a embeddings** e **consulta de grafos**.
+Duas ferramentas legadas foram removidas, uma foi renomeada e várias ferramentas existentes
+adquiriram novas funcionalidades.
+
+--
+
+## Novas Ferramentas da CLI
+
+### Explicabilidade e Proveniência
+
+| Comando | Descrição |
+|---------|-------------|
+| `tg-list-explain-traces` | Lista todas as sessões de explicabilidade (GraphRAG e Agent) em uma coleção, mostrando IDs de sessão, tipo, texto da pergunta e carimbos de data/hora. |
+| `tg-show-explain-trace` | Exibe o rastreamento completo de explicabilidade para uma sessão. Para GraphRAG: Estágios de Pergunta, Exploração, Foco, Síntese. Para Agent: Sessão, Iterações (pensamento/ação/observação), Resposta Final. Detecta automaticamente o tipo de rastreamento. Suporta `--show-provenance` para rastrear arestas de volta para documentos de origem. |
+| `tg-show-extraction-provenance` | Dado um ID de documento, percorre a cadeia de proveniência: Documento -> Páginas -> Trechos -> Arestas, usando relacionamentos `prov:wasDerivedFrom`. Suporta opções `--show-content` e `--max-content`. |
+
+### Embeddings
+
+| Comando | Descrição |
+|---------|-------------|
+| `tg-invoke-embeddings` | Converte texto em um embedding vetorial por meio do serviço de embeddings. Aceita uma ou mais entradas de texto, retorna vetores como listas de floats. |
+| `tg-invoke-graph-embeddings` | Consulta entidades de grafo por similaridade de texto usando embeddings vetoriais. Retorna entidades correspondentes com pontuações de similaridade. |
+| `tg-invoke-document-embeddings` | Consulta trechos de documentos por similaridade de texto usando embeddings vetoriais. Retorna IDs de trechos correspondentes com pontuações de similaridade. |
+| `tg-invoke-row-embeddings` | Consulta linhas de dados estruturados por similaridade de texto em campos indexados. Retorna linhas correspondentes com valores de índice e pontuações. Requer `--schema-name` e suporta `--index-name`. |
+
+### Consulta de Grafos
+
+| Comando | Descrição |
+|---------|-------------|
+| `tg-query-graph` | Consulta de grafo baseada em padrões. Diferentemente de `tg-show-graph` (que despeja tudo), isso permite consultas seletivas por qualquer combinação de sujeito, predicado, objeto e grafo. Detecta automaticamente os tipos de valor: IRIs (`http://...`, `urn:...`, `<...>`), triplas entre aspas (`<>`) e literais. |
+| `tg-get-document-content` | Recupera o conteúdo do documento da biblioteca por ID do documento. Pode ser direcionado para um arquivo ou stdout, lida com conteúdo de texto e binário. |
+
+--
+
+## Ferramentas da CLI Removidas
+
+| Comando | Notas |
+|---------|-------|
+| `tg-load-pdf` | Removido. O carregamento de documentos é agora tratado por meio do pipeline de biblioteca/processamento. |
+| `tg-load-text` | Removido. O carregamento de documentos é agora tratado por meio do pipeline de biblioteca/processamento. |
+
+--
+
+## Ferramentas da CLI Renomeadas
+
+| Nome Antigo | Novo Nome | Notas |
+|----------|----------|-------|
+| `tg-invoke-objects-query` | `tg-invoke-rows-query` | Reflete a alteração de terminologia de "objetos" para "linhas" para dados estruturados. |
+
+--
+
+## Mudanças Significativas em Ferramentas Existentes
+
+### `tg-invoke-graph-rag`
+
+**Suporte para explicabilidade**: Agora suporta um pipeline de explicabilidade de 4 etapas (Pergunta, Fundamentação/Exploração, Foco, Síntese) com exibição inline de eventos de rastreabilidade.
+**Streaming**: Utiliza streaming WebSocket para saída em tempo real.
+**Rastreabilidade**: Pode rastrear arestas selecionadas de volta para documentos de origem por meio de reificação e cadeias `prov:wasDerivedFrom`.
+Cresceu de ~30 linhas para ~760 linhas para acomodar o pipeline completo de explicabilidade.
+
+### `tg-invoke-document-rag`
+
+**Suporte para explicabilidade**: Adicionado modo `question_explainable()` que transmite respostas do Document RAG com eventos de rastreabilidade inline (etapas de Pergunta, Fundamentação, Exploração, Síntese).
+
+### `tg-invoke-agent`
+
+**Suporte para explicabilidade**: Adicionado modo `question_explainable()` que exibe eventos de rastreabilidade inline durante a execução do agente (etapas de Pergunta, Análise, Conclusão, AgentThought, AgentObservation, AgentAnswer).
+O modo verboso exibe fluxos de pensamento/observação com prefixos de emoji.
+
+### `tg-show-graph`
+
+**Modo de streaming**: Agora usa `triples_query_stream()` com tamanhos de lote configuráveis para um tempo de primeiro resultado menor e menor sobrecarga de memória.
+**Suporte para grafos nomeados**: Nova opção de filtro `--graph`. Reconhece grafos nomeados:
+ Grafo padrão (vazio): Fatos de conhecimento principais
+ `urn:graph:source`: Rastreabilidade de extração
+ `urn:graph:retrieval`: Explicabilidade no momento da consulta
+**Mostrar coluna do grafo**: Nova flag `--show-graph` para exibir o grafo nomeado para cada tripla.
+**Limites configuráveis**: Novas opções `--limit` e `--batch-size`.
+
+### `tg-graph-to-turtle`
+
+**Suporte para RDF-star**: Agora lida com triplas citadas (reificação RDF-star).
+**Modo de streaming**: Utiliza streaming para um tempo de processamento inicial menor.
+**Manipulação de formato de fio**: Atualizado para usar o novo formato de fio de termos (`{"t": "i", "i": uri}` para IRIs, `{"t": "l", "v": value}` para literais, `{"t": "r", "r": {...}}` para triplas citadas).
+**Suporte para grafos nomeados**: Nova opção de filtro `--graph`.
+
+### `tg-set-tool`
+
+**Novo tipo de ferramenta**: `row-embeddings-query` para pesquisa semântica em índices de dados estruturados.
+**Novas opções**: `--schema-name`, `--index-name`, `--limit` para configurar ferramentas de consulta de incorporações de linhas.
+
+### `tg-show-tools`
+
+Exibe o novo tipo de ferramenta `row-embeddings-query` com seus campos `schema-name`, `index-name` e `limit`.
+
+### `tg-load-knowledge`
+
+**Relatório de progresso**: Agora conta e relata triplas e contextos de entidade carregados por arquivo e no total.
+**Atualização do formato de termo**: Os contextos de entidade agora usam o novo formato de Termo (`{"t": "i", "i": uri}`) em vez do formato de Valor antigo (`{"v": entity, "e": True}`).
+
+--
+
+## Mudanças Incompatíveis
+
+**Renomeação de terminologia**: O esquema `Value` foi renomeado para `Term` em todo o sistema (PR #622). Isso afeta o formato de fio usado por ferramentas de linha de comando que interagem com o armazenamento de grafo. O novo formato usa `{"t": "i", "i": uri}` para IRIs e `{"t": "l", "v": value}` para literais, substituindo o formato antigo `{"v": ..., "e": ...}`.
+**`tg-invoke-objects-query` renomeado** para `tg-invoke-rows-query`.
+**`tg-load-pdf` e `tg-load-text` removidos**.
diff --git a/docs/cli-changes-v1.8-to-v2.1.ru.md b/docs/cli-changes-v1.8-to-v2.1.ru.md
new file mode 100644
index 00000000..99b1e8ce
--- /dev/null
+++ b/docs/cli-changes-v1.8-to-v2.1.ru.md
@@ -0,0 +1,119 @@
+---
+layout: default
+title: "Изменения в CLI: v1.8 to v2.1"
+parent: "Russian (Beta)"
+---
+
+# Изменения в CLI: v1.8 to v2.1
+
+> **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.
+
+## Обзор
+
+CLI (`trustgraph-cli`) включает в себя значительные дополнения, ориентированные на три основные темы:
+**объяснимость/происхождение**, **доступ к вложениям** и **запросы к графу**.
+Два устарелых инструмента были удалены, один был переименован, а несколько существующих инструментов получили новые возможности.
+
+---
+
+## Новые инструменты CLI
+
+### Объяснимость и происхождение
+
+| Команда | Описание |
+|---------|-------------|
+| `tg-list-explain-traces` | Перечисляет все сеансы объяснения (GraphRAG и Agent) в коллекции, показывая идентификаторы сеансов, тип, текст вопроса и временные метки. |
+| `tg-show-explain-trace` | Отображает полный трас сеанса объяснения. Для GraphRAG: этапы Вопрос, Исследование, Фокусировка, Синтез. Для Agent: этапы Сеанс, Итерации (мысль/действие/наблюдение), Конечный ответ. Автоматически определяет тип траса. Поддерживает опцию `--show-provenance` для отслеживания связей обратно к исходным документам. |
+| `tg-show-extraction-provenance` | Принимает идентификатор документа, проходящего по цепочке происхождения: Документ -> Страницы -> Блоки -> Связи, используя отношения `prov:wasDerivedFrom`. Поддерживает опции `--show-content` и `--max-content`. |
+
+### Вложения
+
+| Команда | Описание |
+|---------|-------------|
+| `tg-invoke-embeddings` | Преобразует текст в векторное представление посредством сервиса вложений. Принимает один или несколько текстовых входных данных, возвращает векторы в виде списков чисел с плавающей точкой. |
+| `tg-invoke-graph-embeddings` | Запрашивает сущности графа по текстовому сходству с использованием векторных представлений. Возвращает соответствующие сущности со значениями сходства. |
+| `tg-invoke-document-embeddings` | Запрашивает текстовые блоки документа по текстовому сходству с использованием векторных представлений. Возвращает идентификаторы соответствующих текстовых блоков со значениями сходства. |
+| `tg-invoke-row-embeddings` | Запрашивает структурированные данные строк по текстовому сходству в индексированных полях. Возвращает соответствующие строки со значениями индексов и значениями сходства. Требует опции `--schema-name` и поддерживает `--index-name`. |
+
+### Запросы к графу
+
+| Команда | Описание |
+|---------|-------------|
+| `tg-query-graph` | Запрос хранилища троек на основе шаблона. В отличие от `tg-show-graph` (который отображает всё), это позволяет осуществлять выборочные запросы с использованием любой комбинации субъекта, предиката, объекта и графа. Автоматически определяет типы значений: URI (`http://...`, `urn:...`, `<...>`), закодированные тройки (`<>`) и литералы. |
+| `tg-get-document-content` | Получает содержимое документа из библиотеки по идентификатору документа. Может отображать в файл или stdout, обрабатывает как текст, так и двоичные данные. |
+
+---
+
+## Удаленные инструменты CLI
+
+| Команда | Примечания |
+|---------|-------|
+| `tg-load-pdf` | Удалено. Загрузка документов теперь осуществляется через библиотеку/процессную цепочку. |
+| `tg-load-text` | Удалено. Загрузка документов теперь осуществляется через библиотеку/процессную цепочку. |
+
+---
+
+## Переименованные инструменты CLI
+
+| Старое имя | Новое имя | Примечания |
+|----------|----------|-------|
+| `tg-invoke-objects-query` | `tg-invoke-rows-query` | Отражает изменение терминологии с "объектов" на "строки" для структурированных данных. |
+
+---
+
+## Значительные изменения существующих инструментов
+
+### `tg-invoke-graph-rag`
+
+- **Поддержка объяснимости:** Поддерживает четырехэтапную пайплайн объяснения (Вопрос, Поиск/Исследование, Фокусировка, Синтез) с отображением событий происхождения.
+- **Стриминг:** Использует стриминг WebSocket для получения результатов в реальном времени.
+- **Отслеживание происхождения:** Может отслеживать выбранные связи обратно к исходным документам с использованием рефикации и цепочек `prov:wasDerivedFrom`.
+- Увеличился размер кода с ~30 строк до ~760 строк, чтобы вместить полный пайплайн объяснения.
+
+### `tg-invoke-document-rag`
+
+- **Поддержка объяснимости:** Добавлен режим `question_explainable()`, который отображает ответы RAG для документов со встроенными событиями происхождения (этапы Вопрос, Поиск, Исследование, Синтез).
+
+### `tg-invoke-agent`
+
+- **Поддержка объяснимости:** Добавлен режим `question_explainable()`, который отображает происхождение во время выполнения агента (этапы Вопрос, Анализ, Вывод, AgentThought, AgentObservation, AgentAnswer).
+- Режим "verbose" показывает потоки мыслей/наблюдений с префиксами эмодзи.
+
+### `tg-show-graph`
+
+- **Режим стриминга:** Теперь использует `triples_query_stream()` с настраиваемыми размерами пакетов для более быстрого получения первого результата и снижения использования памяти.
+- **Поддержка именованного графа:** Новая опция `--graph`. Распознает именованные графы:
+ - Основной граф (пустой): Основные факты знаний
+ - `urn:graph:source`: Происхождение извлечения
+ - `urn:graph:retrieval`: Объяснение в момент запроса
+- **Отображение столбца графа:** Ножная опция `--show-graph` для отображения именованного графа для каждой тройки.
+- **Конфигурируемые лимиты:** Новые опции `--limit` и `--batch-size`.
+
+### `tg-graph-to-turtle`
+
+- **Поддержка RDF-star:** Теперь обрабатывает закодированные тройки (рефикация RDF-star).
+- **Режим стриминга:** Использует стриминг для более быстрого получения первого результата.
+- **Обработка формата wire:** Обновлено для использования нового формата wire (`{"t": "i", "i": uri}` для URI, `{"t": "l", "v": value}` для литералов, `{"t": "r", "r": {...}}` для закодированных троек).
+- **Поддержка именованного графа:** Новая опция `--graph`.
+
+### `tg-set-tool`
+
+- **Новый тип инструмента:** `row-embeddings-query` для семантического поиска по индексированным структурированным данным.
+- **Новые опции:** `--schema-name`, `--index-name`, `--limit` для настройки инструментов запроса вложений строк.
+
+### `tg-show-tools`
+
+- Отображает новый тип инструмента `row-embeddings-query` с его полями `schema-name`, `index-name` и `limit`.
+
+### `tg-load-knowledge`
+
+- **Отчет о прогрессе:** Теперь считает и отображает количество загруженных троек и контекстов сущностей в файл и в целом.
+- **Обновление формата термина:** Контексты сущностей теперь используют новый формат термина (`{"t": "i", "i": uri}`) вместо старого формата значения (`{"v": ..., "e": ...}`).
+
+---
+
+## Разрывные изменения
+
+- **Переименование терминологии:** Схема `Value` была переименована в `Term` во всей системе (PR #622). Это влияет на формат wire, используемый инструментами CLI, взаимодействующими с хранилищем графов. Новый формат использует `{"t": "i", "i": uri}` для URI и `{"t": "l", "v": value}` для литералов, заменяя старый формат `{"v": ..., "e": ...}`.
+- **`tg-invoke-objects-query` переименовано** в `tg-invoke-rows-query`.
+- **`tg-load-pdf` и `tg-load-text` удалены**.
diff --git a/docs/cli-changes-v1.8-to-v2.1.sw.md b/docs/cli-changes-v1.8-to-v2.1.sw.md
new file mode 100644
index 00000000..e96863dc
--- /dev/null
+++ b/docs/cli-changes-v1.8-to-v2.1.sw.md
@@ -0,0 +1,123 @@
+---
+layout: default
+title: "Mabadiliko ya CLI: v1.8 hadi v2.1"
+parent: "Swahili (Beta)"
+---
+
+**MAELEMAZO MAKUUUUU:**
+- Hifadhi FORMATI YOTE ya Markdown, vichungi, viungo na alama za HTML.
+- Usitafsiri code ndani ya apostrophe au makundi ya code.
+- Onyesho TU MAELEZO bila maelezo au maelezo.
+
+MAELEZO YA KUTAFSIRI:
+# Mabadiliko ya CLI: v1.8 hadi v2.1
+
+> **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.
+
+## Muhtasari
+
+CLI (`trustgraph-cli`) ina ongezeko kubwa, iliyoangazia vipande tatu:
+**ufafanuzi/asili,** **ufaa wa data,** na **utafutaji wa graphs.**
+Zochorwa zote, mojawapo ilibadilishwa, na zochorwa za soko zimepata uwezo mpya.
+
+---
+
+## Zochorwa Mpya za CLI
+
+### Ufafanuzi na Asili
+| Amri | Maelezo |
+|---------|-------------|
+| `tg-list-explain-traces` | Inaorodha zote za ufafanuzi (GraphRAG na Agent) katika mkusanyiko, inaonyesha ID za mkusanyiko, aina, maandishi ya swali, na tarehe. |
+| `tg-show-explain-trace` | Inaonyesha mstari kamili wa ufafanuzi kwa mkusanyiko. Kwa GraphRAG: Swali, Tafuta, Futa, na Safu za Mfumo. Kwa Agent: Mkusanyiko, Iterasi (fikra/hatua/taarifa), Jibu. Inaagizwa moja kwa moja. Inaunga mkono `--show-provenance` ili kurudisha miisho kwenye hati za asili. |
+| `tg-show-extraction-provenance` | Ikiwa na ID ya hati, inaendesha mkondo wa asili: Hati -> Kurasa -> Chunks -> Miisho, kwa kutumia mahusiano ya `prov:wasDerivedFrom`. Inaunga mkono chaguzi `--show-content` na `--max-content`. |
+
+### Data
+| Amri | Maelezo |
+|---------|-------------|
+| `tg-invoke-embeddings` | Hufanya maandishi kuwa na upinzani wa vector kupitia huduma ya upinzani. Inasoma moja au zaidi maandishi, inaondoa vipindi kama orodha. |
+| `tg-invoke-graph-embeddings` | Inaweka maandishi na graphs kupitia upinzani. Inaondoa vipindi kama orodha. |
+| `tg-invoke-document-embeddings` | Inaweka maandishi kupitia upinzani. Inaondoa vipindi kama orodha. |
+| `tg-invoke-row-embeddings` | Inaweka data iliyoandaliwa kupitia upinzani. Inaondoa vipindi kama orodha. |
+
+### Tafutaji wa Graphs
+
+| Amri | Maelezo |
+|---------|-------------|
+| `tg-query-graph` | Tafutaji la triple store. Mbali na `tg-show-graph` (ambayo inatumia kila kitu), inawezesha tafuta maalum kwa uwingi wa majimbo, mahusiano, na graphs. Inaagiza orodha moja kwa moja. Inaunga mkono `http://...`, `urn:...`, na `<...>`. |
+| `tg-get-document-content` | Inaagiza maudhui ya hati kutoka kwenye library kupitia ID ya hati. Inaweza kuonyesha kwenye faili au stdout, na inaweza kuuza maandishi na data. |
+
+---
+
+## Zochorwa Zilizoondolewa za CLI
+
+| Amri | Maelezo |
+|---------|-------|
+| `tg-load-pdf` | Imeondolewa. Utoaaji wa hati sasa unaendesha kupitia pipeline ya library/utumiaji. |
+| `tg-load-text` | Imeondolewa. Utoaaji wa hati sasa unaendesha kupitia pipeline ya library/utumiaji. |
+
+---
+
+## Zochorwa Zilizo badilishwa za CLI
+
+| Jina la Zamani | Jina la mpya | Maelezo |
+|----------|----------|-------|
+| `tg-invoke-objects-query` | `tg-invoke-rows-query` | Ina maelezo kuhusu jina. |
+
+---
+
+## Mabadiliko Makubwa katika Zochorwa za Soko
+
+### `tg-invoke-graph-rag`
+
+- **Ufafanuzi**: Sasa ina 4-stage pipeline ya ufafanuzi (Swali, Tafuta/Tafuta, Futa, Mfumo) na maonyesho ya matukio ya asili.
+- **Streami**: Inaendesha WebSocket kwa matokeo ya muda halisi.
+- **Ufafanuzi**: Inawezesha kufuatilia miisho kwenye hati za asili kupitia reification na miisho ya `prov:wasDerivedFrom`.
+- Imebadilishwa na ~30 mistari hadi ~760 mistari ili kukidhi pipeline ya ufafanuzi.
+
+### `tg-invoke-document-rag`
+
+- **Ufafanuzi**: Inaongeza mode `question_explainable()` ambayo inatumia Graph RAG na maonyesho ya matukio ya asili.
+
+### `tg-invoke-agent`
+
+- **Ufafanuzi**: Inaongeza mode `question_explainable()` inayoeleza matukio ya asili wakati wa utumiaji wa agent (Swali, Tafuta, Mfumo, AgentThought, AgentObservation, AgentAnswer).
+- Mode ya verbose inaonyesha miisho za fikra/taarifa na prefixes za emoji.
+
+### `tg-show-graph`
+
+- **Mode ya Streami**: Inaendesha `triples_query_stream()` na ukubwa wa chombo configurable kwa muda wa matokeo wa kwanza na uzoefu wa kughushi.
+- **Uunganisho wa graph**: Mpya `--graph` chaguo. Inaagiza graphs:
+ - Graph chungu (tupu): Hekalu
+ - `urn:graph:source`: Asili
+ - `urn:graph:retrieval`: Tafuta
+- **Maonyesho ya graph**: Mpya `--show-graph` flag. Inaonyesha graph iliyochorwa kwa kila triple.
+- **Ukubwa wa Chaguzi**: Mpya `--limit` na chaguzi `--batch-size`.
+
+### `tg-graph-to-turtle`
+
+- **RDF-star support**: Inaendesha miisho za apostrophe (RDF-star reification).
+- **Mode ya Streami**: Inaendesha stream kwa muda wa matokezo wa kwanza.
+- **Uhandishi wa format**: Inaendesha format mpya (`{"t": "i", "i": uri}` kwa IRIs, `{"t": "l", "v": value}` kwa literals, `{"t": "r", "r": {...}}` kwa miisho).
+- **Uunganisho wa graph**: Mpya `--graph` chaguo.
+
+### `tg-set-tool`
+
+- **Aina mpya ya tool**: `row-embeddings-query` kwa utafutaji wa semantic kwenye data iliyoandaliwa.
+- **Chaguzi mpya**: `--schema-name`, `--index-name`, `--limit` kwa kuunda zochorwa za upinzani.
+
+### `tg-show-tools`
+
+- Inaonyesha zochorwa za mpya za `row-embeddings-query` na chaguzi zake.
+
+### `tg-load-knowledge`
+
+- **Ripoti za Maendeleo**: Inahesabu na inaonyesha miisho na miisho za entity za ililoandaliwa kwa kila faili na kwa jumla.
+- **Mbadilisho wa format**: Miisho za entity sasa inaformat mpya (`{"t": "i", "i": uri}`) badala ya format ya awali (`{"v": ..., "e": ...}`).
+
+---
+
+## Mabadiliko Masharti
+
+- **Jina la jumla**: Jina la `Value` lilibadilishwa kuwa `Term` katika mfumo kote (PR #622). Hii inafanya na format mpya `{"t": "i", "i": uri}` kwa IRIs na `{"t": "l", "v": value}` kwa literals, badala ya format ya zamani `{"v": ..., "e": ...}`.
+- **`tg-invoke-objects-query`** lilibadilishwa kuwa `tg-invoke-rows-query`.
+- **`tg-load-pdf`** na **`tg-load-text`** liliondolewa.
diff --git a/docs/cli-changes-v1.8-to-v2.1.tr.md b/docs/cli-changes-v1.8-to-v2.1.tr.md
new file mode 100644
index 00000000..0b801676
--- /dev/null
+++ b/docs/cli-changes-v1.8-to-v2.1.tr.md
@@ -0,0 +1,120 @@
+---
+layout: default
+title: "CLI Değişiklikleri: v1.8'den v2.1'e"
+parent: "Turkish (Beta)"
+---
+
+# CLI Değişiklikleri: v1.8'den v2.1'e
+
+> **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.
+
+## Özet
+
+CLI (`trustgraph-cli`), üç tema üzerine odaklanmış önemli eklemeler içerir:
+**açıklanabilirlik/kaynak**, **gömme erişimi** ve **graf sorgulama**.
+İki eski araç kaldırıldı, biri yeniden adlandırıldı ve birkaç mevcut araç
+yeni yetenekler kazandı.
+
+--
+
+## Yeni CLI Araçları
+
+### Açıklanabilirlik ve Kaynak
+
+| Komut | Açıklama |
+|---------|-------------|
+| `tg-list-explain-traces` | Bir koleksiyondaki tüm açıklanabilirlik oturumlarını (GraphRAG ve Agent) listeler, oturum kimliklerini, türü, soru metnini ve zaman damgalarını gösterir. |
+| `tg-show-explain-trace` | Bir oturum için tam açıklanabilirlik izini görüntüler. GraphRAG için: Soru, Keşif, Odak, Sentez aşamaları. Agent için: Oturum, Yinelemeler (düşünce/eylem/gözlem), Son Cevap. İz türünü otomatik olarak algılar. `--show-provenance` ile kaynak belgelere kadar kenarları izlemeyi destekler. |
+| `tg-show-extraction-provenance` | Bir belge kimliği verildiğinde, kaynak zincirini izler: Belge -> Sayfalar -> Parçalar -> Kenarlar, `prov:wasDerivedFrom` ilişkilerini kullanarak. `--show-content` ve `--max-content` seçeneklerini destekler. |
+
+### Gömme (Embeddings)
+
+| Komut | Açıklama |
+|---------|-------------|
+| `tg-invoke-embeddings` | Metni, gömme hizmeti aracılığıyla bir vektör gömmesine dönüştürür. Bir veya daha fazla metin girişi alır, vektörleri kayan nokta listeleri olarak döndürür. |
+| `tg-invoke-graph-embeddings` | Vektör gömmelerini kullanarak grafik varlıklarını metin benzerliğiyle sorgular. Eşleşen varlıkları benzerlik puanlarıyla döndürür. |
+| `tg-invoke-document-embeddings` | Vektör gömmelerini kullanarak belge parçalarını metin benzerliğiyle sorgular. Eşleşen parça kimliklerini benzerlik puanlarıyla döndürür. |
+| `tg-invoke-row-embeddings` | Vektör gömmelerini kullanarak dizinlenmiş alanlarda yapılandırılmış veri satırlarını metin benzerliğiyle sorgular. Eşleşen satırları, indeks değerlerini ve puanları döndürür. `--schema-name` gerektirir ve `--index-name`'yi destekler. |
+
+### Graf Sorgulama
+
+| Komut | Açıklama |
+|---------|-------------|
+| `tg-query-graph` | Desen tabanlı üçlü depolama sorgusu. `tg-show-graph`'in aksine (her şeyi dökerek), bu, herhangi bir konu, yüklem, nesne ve graf kombinasyonuyla seçici sorgular yapmayı sağlar. Değer türlerini otomatik olarak algılar: IRI'lar (`http://...`, `urn:...`, `<...>`), tırnak işaretli üçlüler (`<>`) ve literal'lar. |
+| `tg-get-document-content` | Belge kimliğine göre kütüphaneden belge içeriğini alır. Dosyaya veya standart çıktıya yazabilir, hem metin hem de ikili içeriği işler. |
+
+--
+
+## Kaldırılan CLI Araçları
+
+| Komut | Notlar |
+|---------|-------|
+| `tg-load-pdf` | Kaldırıldı. Belge yükleme artık kütüphane/işlem hattı aracılığıyla yapılır. |
+| `tg-load-text` | Kaldırıldı. Belge yükleme artık kütüphane/işlem hattı aracılığıyla yapılır. |
+
+--
+
+## Yeniden Adlandırılan CLI Araçları
+
+| Eski Ad | Yeni Ad | Notlar |
+|----------|----------|-------|
+| `tg-invoke-objects-query` | `tg-invoke-rows-query` | Yapılandırılmış veri için "nesneler" teriminin "satırlar" terimine dönüştürülmesini yansıtır. |
+
+--
+
+## Mevcut Araçlara Yönelik Önemli Değişiklikler
+
+### `tg-invoke-graph-rag`
+
+**Açıklanabilirlik desteği**: Artık, yerleşik kaynak olay gösterimiyle (Question, Grounding/Exploration, Focus, Synthesis) 4 aşamalı bir açıklanabilirlik işlem hattını destekler.
+**Akış**: Gerçek zamanlı çıktı için WebSocket akışını kullanır.
+**Kaynak takibi**: Seçilen kenarları yeniden yapılandırma ve `prov:wasDerivedFrom` zincirleri aracılığıyla kaynak belgelere kadar izleyebilir.
+Tam açıklanabilirlik işlem hattını barındırmak için ~30 satırdan ~760 satıra yükseldi.
+
+### `tg-invoke-document-rag`
+
+**Açıklanabilirlik desteği**: İçerik tabanlı yanıtları (Document RAG) yerleşik kaynak olaylarıyla (Question, Grounding, Exploration, Synthesis aşamaları) akışla gönderen `question_explainable()` modunu ekledi.
+
+### `tg-invoke-agent`
+
+**Açıklanabilirlik desteği**: Ajan yürütülmesi sırasında kaynak olaylarını yerleşik olarak gösteren `question_explainable()` modunu ekledi (Question, Analysis, Conclusion, AgentThought, AgentObservation, AgentAnswer).
+Ayrıntılı mod, düşünce/gözlem akışlarını emoji ön ekleriyle gösterir.
+
+### `tg-show-graph`
+
+**Akış modu**: Daha düşük ilk sonuç süresi ve azaltılmış bellek yükü için yapılandırılabilir toplu boyutlarla `triples_query_stream()`'ı kullanır.
+**Adlandırılmış grafik desteği**: Yeni `--graph` filtre seçeneği. Adlandırılmış grafikleri tanır:
+ Varsayılan grafik (boş): Temel bilgi gerçekleri
+ `urn:graph:source`: Çıkarma kaynağı
+ `urn:graph:retrieval`: Sorgu zamanı açıklanabilirliği
+**Grafik sütununu göster**: Her üçlü için adlandırılmış grafiği görüntülemek için yeni `--show-graph` bayrağı.
+**Yapılandırılabilir sınırlar**: Yeni `--limit` ve `--batch-size` seçenekleri.
+
+### `tg-graph-to-turtle`
+
+**RDF-star desteği**: Artık tırnaklı üçlüleri (RDF-star yeniden yapılandırması) işler.
+**Akış modu**: Daha düşük ilk işleme süresi için akışı kullanır.
+**Tel formatı işleme**: IRIs için `{"t": "i", "i": uri}`, literal'lar için `{"t": "l", "v": value}` ve tırnaklı üçlüler için `{"t": "r", "r": {...}}` kullanan yeni terim tel formatını kullanmak üzere güncellendi.
+**Adlandırılmış grafik desteği**: Yeni `--graph` filtre seçeneği.
+
+### `tg-set-tool`
+
+**Yeni araç türü**: Yapılandırılmış veri dizinlerinde semantik arama için `row-embeddings-query`.
+**Yeni seçenekler**: Satır gömme sorgu araçlarını yapılandırmak için `--schema-name`, `--index-name`, `--limit`.
+
+### `tg-show-tools`
+
+`schema-name`, `index-name` ve `limit` alanlarıyla yeni `row-embeddings-query` araç türünü görüntüler.
+
+### `tg-load-knowledge`
+
+**İlerleme raporlama**: Her dosya ve toplamda yüklenen üçlü ve varlık bağlamlarının sayısını sayar ve raporlar.
+**Terim formatı güncellemesi**: Varlık bağlamları artık eski Değer formatının (`{"v": entity, "e": True}`) yerine yeni Terim formatını (`{"t": "i", "i": uri}`) kullanır.
+
+--
+
+## Uyumluluk Sorunları
+
+**Terminoloji yeniden adlandırması**: `Value` şeması, sistem genelinde `Term` olarak yeniden adlandırıldı (PR #622). Bu, grafik deposuyla etkileşimde bulunan CLI araçları tarafından kullanılan tel formatını etkiler. Yeni format, eski `{"v": ..., "e": ...}` formatının yerini alarak IRIs için `{"t": "i", "i": uri}` ve literal'lar için `{"t": "l", "v": value}` kullanır.
+`tg-invoke-objects-query` yeniden adlandırıldı `tg-invoke-rows-query`.
+`tg-load-pdf` ve `tg-load-text` kaldırıldı.
diff --git a/docs/cli-changes-v1.8-to-v2.1.zh-cn.md b/docs/cli-changes-v1.8-to-v2.1.zh-cn.md
new file mode 100644
index 00000000..661082fc
--- /dev/null
+++ b/docs/cli-changes-v1.8-to-v2.1.zh-cn.md
@@ -0,0 +1,119 @@
+---
+layout: default
+title: "CLI 修改:v1.8 到 v2.1"
+parent: "Chinese (Beta)"
+---
+
+# CLI 修改:v1.8 到 v2.1
+
+> **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.
+
+## 摘要
+
+CLI (`trustgraph-cli`) 包含大量新增功能,主要集中在以下三个方面:
+**可解释性/来源追溯**, **嵌入式访问**, 和 **图查询**。
+移除两个旧工具,一个重命名,并且多个现有工具获得了新的功能。
+
+---
+
+## 新的 CLI 工具
+
+### 可解释性 & 来源追溯
+
+| 命令 | 描述 |
+|---------|-------------|
+| `tg-list-explain-traces` | 列出集合中所有 Explain 实例(GraphRAG 和 Agent),显示实例 ID、类型、问题文本和时间戳。 |
+| `tg-show-explain-trace` | 显示 Explain 实例的完整追溯信息。 对于 GraphRAG:问题、探索、聚焦、合成阶段。 对于 Agent:会话、迭代(思考/行动/观察)、最终答案。 自动检测追溯类型。 支持 `--show-provenance` 选项,用于追溯边缘到源文档。 |
+| `tg-show-extraction-provenance` | 给出文档 ID,遍历来源链:文档 -> 页面 -> 块 -> 边缘,使用 `prov:wasDerivedFrom` 关系。 支持 `--show-content` 和 `--max-content` 选项。 |
+
+### 嵌入式
+
+| 命令 | 描述 |
+|---------|-------------|
+| `tg-invoke-embeddings` | 通过嵌入服务将文本转换为向量嵌入。 接受一个或多个文本输入,返回向量为浮点数的列表。 |
+| `tg-invoke-graph-embeddings` | 使用向量嵌入根据文本相似性查询图实体。 返回匹配的实体以及相似度得分。 |
+| `tg-invoke-document-embeddings` | 使用向量嵌入根据文本相似性查询文档块。 返回匹配的块 ID 以及相似度得分。 |
+| `tg-invoke-row-embeddings` | 使用在索引字段上进行的文本相似性查询,查询结构化数据行。 返回与索引值和得分匹配的行。 需要 `--schema-name` 且支持 `--index-name`。 |
+
+### 图查询
+
+| 命令 | 描述 |
+|---------|-------------|
+| `tg-query-graph` | 基于模式的图存储查询。 与 `tg-show-graph` 不同(它会显示所有内容),这允许通过任何组合的子句、谓词、对象和图进行选择性查询。 自动检测值类型:IRI (`http://...`, `urn:...`, `<...>`)、带有引号的三重 (`<>`) 和字面量。 |
+| `tg-get-document-content` | 从库中通过文档 ID 获取文档内容。 可以输出到文件或 stdout,支持文本和二进制内容。 |
+
+---
+
+## 已移除的 CLI 工具
+
+| 命令 | 备注 |
+|---------|-------|
+| `tg-load-pdf` | 已移除。 文档加载现在通过库/处理流程进行。 |
+| `tg-load-text` | 已移除。 文档加载现在通过库/处理流程进行。 |
+
+---
+
+## 重命名后的 CLI 工具
+
+| 旧名称 | 新名称 | 备注 |
+|----------|----------|-------|
+| `tg-invoke-objects-query` | `tg-invoke-rows-query` | 反映了从 "对象" 到 "行" 的术语重命名,用于结构化数据。 |
+
+---
+
+## 现有工具的重要变更
+
+### `tg-invoke-graph-rag`
+
+- **可解释性支持**: 现在支持 4 阶段的可解释性管道(问题、基础/探索、聚焦、合成),并显示内联来源事件。
+- **流式传输**: 使用 WebSocket 流式传输实现实时输出。
+- **来源追溯**: 可以通过重构和 `prov:wasDerivedFrom` 链,追溯选定的边缘回源文档。
+- 从约 30 行增长到约 760 行,以适应完整的可解释性管道。
+
+### `tg-invoke-document-rag`
+
+- **可解释性支持**: 添加了 `question_explainable()` 模式,可以流式传输带有内联来源事件的文档 RAG 响应(问题、基础、探索、合成阶段)。
+
+### `tg-invoke-agent`
+
+- **可解释性支持**: 添加了 `question_explainable()` 模式,在执行代理时显示内联来源事件(问题、分析、结论、AgentThought、AgentObservation、AgentAnswer)。
+- 详细模式显示了带有表情符号前缀的思考/观察流。
+
+### `tg-show-graph`
+
+- **流式传输模式**: 现在使用 `triples_query_stream()` 与可配置的批次大小,实现更快的首次结果时间和减少内存开销。
+- **命名图支持**: 新的 `--graph` 过滤选项。 识别命名图:
+ - 默认图 (空): 核心知识的事实
+ - `urn:graph:source`: 提取来源
+ - `urn:graph:retrieval`: 查询时追溯
+- **显示图列**: 新的 `--show-graph` 标志,显示每个三元组的命名图。
+- **可配置的限制**: 新的 `--limit` 和 `--batch-size` 选项。
+
+### `tg-graph-to-turtle`
+
+- **RDF-star 支持**: 现在可以处理带有引号的三元 (`RDF-star reification`)。
+- **流式传输模式**: 使用流式传输实现更快的首次处理时间。
+- **Wire 格式处理**: 已更新为使用新的 wire 格式 (`{"t": "i", "i": uri}` 用于 IRI,`{"t": "l", "v": value}` 用于字面量,`{"t": "r", "r": {...}}` 用于带有引号的三元),代替旧的 `{"v": ..., "e": ...}` 格式。
+- **命名图支持**: 新的 `--graph` 过滤选项。
+
+### `tg-set-tool`
+
+- **新的工具类型**: `row-embeddings-query` 用于在结构化数据索引上进行语义搜索。
+- **新的选项**: `--schema-name`, `--index-name`, `--limit` 用于配置 `row-embeddings-query` 工具。
+
+### `tg-show-tools`
+
+- 显示新的 `row-embeddings-query` 工具类型及其 `schema-name`、`index-name` 和 `limit` 字段。
+
+### `tg-load-knowledge`
+
+- **进度报告**: 现在统计并报告每个文件的加载三元和实体上下文的数量,以及总数。
+- **术语格式更新**: 实体上下文现在使用新的术语格式 (`{"t": "i", "i": uri}`) 代替旧的 Value 格式 (`{"v": entity, "e": True}`)。
+
+---
+
+## 破坏性变更
+
+- **术语重命名**: `Value` 模式已重命名为 `Term`,该重命名影响了与图存储交互的 CLI 工具。 新格式使用 `{"t": "i", "i": uri}` 用于 IRI,`{"t": "l", "v": value}` 用于字面量,代替旧的 `{"v": ..., "e": ...}` 格式。
+- **`tg-invoke-objects-query` 重命名**为 `tg-invoke-rows-query`。
+- **`tg-load-pdf` 和 `tg-load-text` 已移除**。
diff --git a/docs/contributor-licence-agreement.ar.md b/docs/contributor-licence-agreement.ar.md
new file mode 100644
index 00000000..c8385416
--- /dev/null
+++ b/docs/contributor-licence-agreement.ar.md
@@ -0,0 +1,16 @@
+---
+layout: default
+title: "اتفاقية الترخيص للمساهمين"
+parent: "Arabic (Beta)"
+---
+
+# اتفاقية الترخيص للمساهمين
+
+> **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.
+
+نطلب من كل المساهمين التوقيع على اتفاقية الترخيص للمساهمين قبل أن نتمكن من دمج طلب السحب. لا تنقل اتفاقية الترخيص حقوق الطبع والنشر - أنت تحتفظ بالملكية الكاملة لعملك. إنها ببساطة تمنح مشروع TrustGraph ترخيصًا دائمًا، وخاليًا من الرسوم، لتوزيع مساهمتك بموجب ترخيص [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0) الخاص بالمشروع، وتؤكد أن لديك الحق في تقديم المساهمة. وهذا يحمي المشروع ومستخدميه من خلال ضمان أن لكل مساهمة الأساس القانوني الواضح.
+
+عندما تفتح طلب سحب، سيقوم روبوت اتفاقية الترخيص بنشر تعليق يطلب منك مراجعة وتوقيع الاتفاقية المناسبة - ويستغرق ذلك لحظة فقط، وعليك القيام بذلك مرة واحدة فقط عبر جميع مستودعات TrustGraph.
+
+- المساهمة ك**فرد**؟ قم بتوقيع [اتفاقية الترخيص الفردية](https://github.com/trustgraph-ai/contributor-license-agreement/blob/main/Fiduciary-Contributor-License-Agreement.md)
+- المساهمة **بالنيابة عن شركة أو منظمة**؟ قم بتوقيع [اتفاقية الترخيص التنظيمية](https://github.com/trustgraph-ai/contributor-license-agreement/blob/main/Entity-Fiduciary-Contributor-License-Agreement.md)
diff --git a/docs/contributor-licence-agreement.es.md b/docs/contributor-licence-agreement.es.md
new file mode 100644
index 00000000..208b9957
--- /dev/null
+++ b/docs/contributor-licence-agreement.es.md
@@ -0,0 +1,16 @@
+---
+layout: default
+title: "Acuerdo de Licencia para Contribuyentes"
+parent: "Spanish (Beta)"
+---
+
+# Acuerdo de Licencia para Contribuyentes
+
+> **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.
+
+Solicitamos que todos los contribuyentes firmen un Acuerdo de Licencia para Contribuyentes antes de que podamos fusionar una solicitud de extracción. El acuerdo **no** transfiere la propiedad del copyright; usted mantiene la propiedad total de su trabajo. Simplemente otorga al proyecto TrustGraph una licencia perpetua, sin regalías, para distribuir su contribución bajo la licencia [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0), y confirma que tiene el derecho de hacer la contribución. Esto protege tanto al proyecto como a sus usuarios, garantizando que cada contribución tenga una base legal clara.
+
+Cuando abra una solicitud de extracción, el bot de CLA publicará un comentario solicitándole que revise y firme el acuerdo correspondiente; solo requiere un momento y solo necesita hacerlo una vez en todos los repositorios de TrustGraph.
+
+- ¿Contribuyendo como **individuo**? Firme el [Acuerdo de Licencia para Contribuyentes Individual](https://github.com/trustgraph-ai/contributor-license-agreement/blob/main/Fiduciary-Contributor-License-Agreement.md)
+- ¿Contribuyendo en nombre de una **empresa o organización**? Firme el [Acuerdo de Licencia para Contribuyentes de Entidad](https://github.com/trustgraph-ai/contributor-license-agreement/blob/main/Entity-Fiduciary-Contributor-License-Agreement.md)
diff --git a/docs/contributor-licence-agreement.he.md b/docs/contributor-licence-agreement.he.md
new file mode 100644
index 00000000..182ccc47
--- /dev/null
+++ b/docs/contributor-licence-agreement.he.md
@@ -0,0 +1,16 @@
+---
+layout: default
+title: "הסכם רישיון לתורמים"
+parent: "Hebrew (Beta)"
+---
+
+# הסכם רישיון לתורמים
+
+> **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.
+
+אנו מבקשים מכל תורם לחתום על הסכם רישיון לתורמים לפני שנוכל לשלב בקשת פול. ההסכם **אינו** מעביר זכויות יוצרים – אתם שומרים על בעלות מלאה על עבודתכם. הוא פשוט מעניק לפרויקט TrustGraph רישיון נצחי, ללא תמלוגים, להפצת התרומה שלכם על פי הרישיון [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0), וכן מאשר שאתם רשאים להעביר את התרומה. זה מגן הן על הפרויקט והן על המשתמשים שלו, על ידי הבטחת שכל תרומה תהיה בעלת בסיס משפטי ברור.
+
+כשאתם פותחים בקשת פול, בוט ה-CLA יפרסם הערה המבקש מכם לבדוק ולחתום על ההסכם המתאים – זה לוקח רק רגע, ואתם צריכים לעשות זאת רק פעם אחת בכל מאגרי ה-TrustGraph.
+
+- תורמים כ**אינדיבידואל**? חתמו על [הסכם רישיון אינדיבידואלי](https://github.com/trustgraph-ai/contributor-license-agreement/blob/main/Fiduciary-Contributor-License-Agreement.md)
+- תורמים **מטעמ חברה או ארגון**? חתמו על [הסכם רישיון עבור ארגון](https://github.com/trustgraph-ai/contributor-license-agreement/blob/main/Entity-Fiduciary-Contributor-License-Agreement.md)
diff --git a/docs/contributor-licence-agreement.hi.md b/docs/contributor-licence-agreement.hi.md
new file mode 100644
index 00000000..88dab727
--- /dev/null
+++ b/docs/contributor-licence-agreement.hi.md
@@ -0,0 +1,24 @@
+---
+layout: default
+title: "योगदानकर्ता लाइसेंस समझौता (CLA)"
+parent: "Hindi (Beta)"
+---
+
+**महत्वपूर्ण निर्देश:**
+
+- सभी Markdown फॉर्मेटिंग, हेडर, लिंक और HTML टैग को बनाए रखें।
+- बैक टिक (` `) या कोड ब्लॉक के अंदर मौजूद कोड का अनुवाद न करें।
+- केवल अनुवादित टेक्स्ट को ही आउटपुट करें, जिसमें कोई भी प्रारंभिक या स्पष्टीकरण शामिल न हों।
+
+अनुवाद करने के लिए पाठ:
+
+# योगदानकर्ता लाइसेंस समझौता (CLA)
+
+> **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.
+
+हम हर योगदानकर्ता से एक योगदानकर्ता लाइसेंस समझौते पर हस्ताक्षर करने का अनुरोध करते हैं, इससे पहले कि हम किसी पुल अनुरोध को मर्ज कर सकें। CLA कॉपीराइट को **नहीं** हस्तांतरित करता है — आप अपने कार्य का पूर्ण स्वामित्व बनाए रखते हैं। यह केवल TrustGraph परियोजना को आपके योगदान को परियोजना के [Apache 2.0 लाइसेंस](https://www.apache.org/licenses/LICENSE-2.0) के तहत वितरित करने का एक स्थायी, रॉयल्टी-मुक्त लाइसेंस प्रदान करता है, और यह पुष्टि करता है कि आपके पास योगदान करने का अधिकार है। यह परियोजना और उसके उपयोगकर्ताओं दोनों की रक्षा करता है, यह सुनिश्चित करके कि प्रत्येक योगदान का एक स्पष्ट कानूनी आधार है।
+
+जब आप एक पुल अनुरोध खोलते हैं, तो CLA बॉट आपसे उचित समझौते की समीक्षा और हस्ताक्षर करने के लिए एक टिप्पणी पोस्ट करेगा - इसमें केवल एक पल लगता है और आपको इसे ट्रस्टग्राफ रिपॉजिटरी के सभी में केवल एक बार करने की आवश्यकता है।
+
+- एक **व्यक्ति** के रूप में योगदान कर रहे हैं? [व्यक्तिगत CLA](https://github.com/trustgraph-ai/contributor-license-agreement/blob/main/Fiduciary-Contributor-License-Agreement.md) पर हस्ताक्षर करें।
+- एक **कंपनी या संगठन** की ओर से योगदान कर रहे हैं? [कंपनी CLA](https://github.com/trustgraph-ai/contributor-license-agreement/blob/main/Entity-Fiduciary-Contributor-License-Agreement.md) पर हस्ताक्षर करें।
diff --git a/docs/contributor-licence-agreement.md b/docs/contributor-licence-agreement.md
index 48314516..7d247116 100644
--- a/docs/contributor-licence-agreement.md
+++ b/docs/contributor-licence-agreement.md
@@ -1,3 +1,9 @@
+---
+layout: default
+title: "Contributor Licence Agreement (CLA)"
+nav_order: 4
+---
+
# Contributor Licence Agreement (CLA)
We ask every contributor to sign a Contributor Licence Agreement before
@@ -16,4 +22,3 @@ and you only need to do it once across all TrustGraph repositories.
- Contributing as an **individual**? Sign the [Individual CLA](https://github.com/trustgraph-ai/contributor-license-agreement/blob/main/Fiduciary-Contributor-License-Agreement.md)
- Contributing on behalf of a **company or organisation**? Sign the [Entity CLA](https://github.com/trustgraph-ai/contributor-license-agreement/blob/main/Entity-Fiduciary-Contributor-License-Agreement.md)
-
diff --git a/docs/contributor-licence-agreement.pt.md b/docs/contributor-licence-agreement.pt.md
new file mode 100644
index 00000000..f3a39fc7
--- /dev/null
+++ b/docs/contributor-licence-agreement.pt.md
@@ -0,0 +1,26 @@
+---
+layout: default
+title: "Acordo de Licença para Contribuintes (CLA)"
+parent: "Portuguese (Beta)"
+---
+
+# Acordo de Licença para Contribuintes (CLA)
+
+> **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.
+
+Pedimos a cada contribuinte que assine um Acordo de Licença para Contribuintes antes
+que possamos mesclar um pull request. O CLA não transfere os direitos autorais —
+você mantém a propriedade total do seu trabalho. Ele simplesmente concede ao projeto TrustGraph
+uma licença perpétua e sem royalties para distribuir sua
+contribuição sob a licença
+[Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0) do projeto, e
+confirma que você tem o direito de fazer a contribuição. Isso protege
+tanto o projeto quanto seus usuários, garantindo que cada contribuição tenha
+uma base legal clara.
+
+Quando você abre um pull request, o bot do CLA postará um comentário pedindo que você
+revise e assine o acordo apropriado — leva apenas um momento
+e você só precisa fazer isso uma vez em todos os repositórios do TrustGraph.
+
+Contribuindo como um **indivíduo**? Assine o [CLA Individual](https://github.com/trustgraph-ai/contributor-license-agreement/blob/main/Fiduciary-Contributor-License-Agreement.md)
+Contribuindo em nome de uma **empresa ou organização**? Assine o [CLA para Entidades](https://github.com/trustgraph-ai/contributor-license-agreement/blob/main/Entity-Fiduciary-Contributor-License-Agreement.md)
diff --git a/docs/contributor-licence-agreement.ru.md b/docs/contributor-licence-agreement.ru.md
new file mode 100644
index 00000000..be047f66
--- /dev/null
+++ b/docs/contributor-licence-agreement.ru.md
@@ -0,0 +1,16 @@
+---
+layout: default
+title: "Договор лицензии для вкладчиков"
+parent: "Russian (Beta)"
+---
+
+# Договор лицензии для вкладчиков
+
+> **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.
+
+Мы требуем, чтобы каждый вкладчик подписал Договор лицензии для вкладчиков, прежде чем мы сможем принять ваш запрос на слияние. Договор лицензии **не** передаёт авторские права — вы сохраняете полное право собственности на свою работу. Он просто предоставляет проекту TrustGraph пожизненную, без роялти лицензию на распространение вашего вклада в соответствии с лицензией [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0), а также подтверждает, что у вас есть право внести вклад. Это защищает как проект, так и его пользователей, обеспечивая, чтобы каждый вклад имел четкое юридическое обоснование.
+
+Когда вы создаёте запрос на слияние, бот CLA опубликует комментарий, в котором попросит вас ознакомиться и подписать соответствующий договор — это занимает всего несколько минут, и вам нужно сделать это только один раз для всех репозиториев TrustGraph.
+
+- Вклад в качестве **индивидуального** участника? Подпишите [Индивидуальный договор лицензии](https://github.com/trustgraph-ai/contributor-license-agreement/blob/main/Fiduciary-Contributor-License-Agreement.md)
+- Вклад от имени **компании или организации**? Подпишите [Организационный договор лицензии](https://github.com/trustgraph-ai/contributor-license-agreement/blob/main/Entity-Fiduciary-Contributor-License-Agreement.md)
diff --git a/docs/contributor-licence-agreement.sw.md b/docs/contributor-licence-agreement.sw.md
new file mode 100644
index 00000000..6e6ebe46
--- /dev/null
+++ b/docs/contributor-licence-agreement.sw.md
@@ -0,0 +1,24 @@
+---
+layout: default
+title: "Mkataba wa Lisensi wa Mhudumu (CLA)"
+parent: "Swahili (Beta)"
+---
+
+**MAELEZI MUHIMU:**
+- Hifadhi KILA muundo wa Markdown, vichwa, viungo, na lebo za HTML.
+- EISIUSHA kutafsiri kodio iliyo ndani ya leseni (`code`) au katika blok za kodio.
+- Toa TU matini iliyotafsiri bila maelezo au utangulizi.
+
+Matini ya kutafsiri:
+# Mkataba wa Lisensi wa Mhudumu (CLA)
+
+> **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.
+
+Tunatoa ombi kwa kila mhudumu kusaini Mkataba wa Lisensi wa Mhudumu kabla
+tunaweza kuingiza ombi la "pull". Mkataba huu **sisi** huhamisha haki za udani —
+unaendelea kuwa mmiliki kamili wa kazi yako. Hii kwa upande wake huipa Mradi wa TrustGraph lisensi ya kudumu, bila malipo, ya kusambaza mchango wako chini ya lisensi ya [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0), na ina hakikisha kuwa una haki ya kufanya mchango. Hii inalinda kila mmoja, mradi na watumiaji, kwa kuhakikisha kwamba kila mchango una msingi wa kisheria.
+
+Unapouingiza ombi la "pull", bot ya CLA italeta maoni ya kukuelekeza kukagua na kusaini mkataba unaofaa— hili lina kuchukua tu dakika nadra, na unahitaji kufanya hivyo mara moja kwenye lahat ya TrustGraph.
+
+- Kichango kama **mshiriki binafsi**? Saini [Mkataba wa Lisensi wa Mshiriki](https://github.com/trustgraph-ai/contributor-license-agreement/blob/main/Fiduciary-Contributor-License-Agreement.md)
+- Kichango kwa niaba ya **kampuni au shirika**? Saini [Mkataba wa Lisensi wa Shirika](https://github.com/trustgraph-ai/contributor-license-agreement/blob/main/Entity-Fiduciary-Contributor-License-Agreement.md)
diff --git a/docs/contributor-licence-agreement.tr.md b/docs/contributor-licence-agreement.tr.md
new file mode 100644
index 00000000..d10ee8f9
--- /dev/null
+++ b/docs/contributor-licence-agreement.tr.md
@@ -0,0 +1,26 @@
+---
+layout: default
+title: "Katkıda Bulunanlar Lisans Sözleşmesi (KBL)"
+parent: "Turkish (Beta)"
+---
+
+# Katkıda Bulunanlar Lisans Sözleşmesi (KBL)
+
+> **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.
+
+Her katkıda bulunan kişiden, bir çekme isteğini (pull request) birleştirmeden önce, bir Katkıda Bulunan Lisans Sözleşmesi (Contributor Licence Agreement) imzalamasını rica ediyoruz.
+CLA, telif hakkını devretmez;
+siz, yaptığınız işin tam mülkiyetini koruyorsunuz. Sadece TrustGraph
+projesine, katkınızı projenin
+altında dağıtmak için kalıcı, telifsiz bir lisans verir.
+[Apache 2.0 lisansı](https://www.apache.org/licenses/LICENSE-2.0) ve
+katkıyı yapma hakkınız olduğunu teyit eder. Bu, her katkının açık bir yasal temele sahip olmasını sağlayarak hem projeyi hem de kullanıcılarını korur.
+
+
+
+Bir çekme isteği (pull request) açtığınızda, CLA bot'u size uygun sözleşmeyi incelemeniz ve imzalamanız için bir yorum yayınlayacaktır; bu sadece birkaç dakika sürer.
+Ve bunu yalnızca TrustGraph'taki tüm depolarda bir kez yapmanız gerekir.
+
+
+**Bireysel** olarak katkıda bulunuyor musunuz? [Bireysel CLA](https://github.com/trustgraph-ai/contributor-license-agreement/blob/main/Fiduciary-Contributor-License-Agreement.md) sözleşmesini imzalayın.
+Bir **şirket veya kuruluş** adına katkıda bulunuyor musunuz? [Kuruluş CLA](https://github.com/trustgraph-ai/contributor-license-agreement/blob/main/Entity-Fiduciary-Contributor-License-Agreement.md) sözleşmesini imzalayın.
diff --git a/docs/contributor-licence-agreement.zh-cn.md b/docs/contributor-licence-agreement.zh-cn.md
new file mode 100644
index 00000000..94c29ce1
--- /dev/null
+++ b/docs/contributor-licence-agreement.zh-cn.md
@@ -0,0 +1,16 @@
+---
+layout: default
+title: "贡献者许可协议 (CLA)"
+parent: "Chinese (Beta)"
+---
+
+# 贡献者许可协议 (CLA)
+
+> **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.
+
+我们要求所有贡献者在合并拉取请求之前签署贡献者许可协议。该协议**不**会转移版权——您仍然拥有您的作品的全部所有权。它仅授予 TrustGraph 项目一项永久、免版税的使用许可,以在项目的 [Apache 2.0 许可](https://www.apache.org/licenses/LICENSE-2.0) 下分发您的贡献,并确认您有权进行贡献。这既保护了项目本身,也保护了其用户,确保每个贡献都有明确的法律依据。
+
+当您提交拉取请求时,CLA 机器人会发布一条评论,要求您审查并签署相应的协议——这只需要几秒钟,您只需要在所有 TrustGraph 仓库中执行一次。
+
+- 作为**个人**贡献?请签署 [个人 CLA](https://github.com/trustgraph-ai/contributor-license-agreement/blob/main/Fiduciary-Contributor-License-Agreement.md)
+- 代表**公司或组织**贡献?请签署 [实体 CLA](https://github.com/trustgraph-ai/contributor-license-agreement/blob/main/Entity-Fiduciary-Contributor-License-Agreement.md)
diff --git a/docs/lang-index-ar.md b/docs/lang-index-ar.md
new file mode 100644
index 00000000..e560ca4f
--- /dev/null
+++ b/docs/lang-index-ar.md
@@ -0,0 +1,10 @@
+---
+layout: default
+title: "Arabic (Beta)"
+has_children: true
+nav_order: 99
+---
+
+# Arabic (Beta) Documentation
+
+> **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.
diff --git a/docs/lang-index-es.md b/docs/lang-index-es.md
new file mode 100644
index 00000000..ef9a51e9
--- /dev/null
+++ b/docs/lang-index-es.md
@@ -0,0 +1,10 @@
+---
+layout: default
+title: "Spanish (Beta)"
+has_children: true
+nav_order: 99
+---
+
+# Spanish (Beta) Documentation
+
+> **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.
diff --git a/docs/lang-index-he.md b/docs/lang-index-he.md
new file mode 100644
index 00000000..3e6e1cba
--- /dev/null
+++ b/docs/lang-index-he.md
@@ -0,0 +1,10 @@
+---
+layout: default
+title: "Hebrew (Beta)"
+has_children: true
+nav_order: 99
+---
+
+# Hebrew (Beta) Documentation
+
+> **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.
diff --git a/docs/lang-index-hi.md b/docs/lang-index-hi.md
new file mode 100644
index 00000000..cc1d3fa3
--- /dev/null
+++ b/docs/lang-index-hi.md
@@ -0,0 +1,10 @@
+---
+layout: default
+title: "Hindi (Beta)"
+has_children: true
+nav_order: 99
+---
+
+# Hindi (Beta) Documentation
+
+> **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.
diff --git a/docs/lang-index-pt.md b/docs/lang-index-pt.md
new file mode 100644
index 00000000..b146d03e
--- /dev/null
+++ b/docs/lang-index-pt.md
@@ -0,0 +1,10 @@
+---
+layout: default
+title: "Portuguese (Beta)"
+has_children: true
+nav_order: 99
+---
+
+# Portuguese (Beta) Documentation
+
+> **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.
diff --git a/docs/lang-index-ru.md b/docs/lang-index-ru.md
new file mode 100644
index 00000000..d456fc65
--- /dev/null
+++ b/docs/lang-index-ru.md
@@ -0,0 +1,10 @@
+---
+layout: default
+title: "Russian (Beta)"
+has_children: true
+nav_order: 99
+---
+
+# Russian (Beta) Documentation
+
+> **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.
diff --git a/docs/lang-index-sw.md b/docs/lang-index-sw.md
new file mode 100644
index 00000000..a5178afa
--- /dev/null
+++ b/docs/lang-index-sw.md
@@ -0,0 +1,10 @@
+---
+layout: default
+title: "Swahili (Beta)"
+has_children: true
+nav_order: 99
+---
+
+# Swahili (Beta) Documentation
+
+> **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.
diff --git a/docs/lang-index-tr.md b/docs/lang-index-tr.md
new file mode 100644
index 00000000..c1458416
--- /dev/null
+++ b/docs/lang-index-tr.md
@@ -0,0 +1,10 @@
+---
+layout: default
+title: "Turkish (Beta)"
+has_children: true
+nav_order: 99
+---
+
+# Turkish (Beta) Documentation
+
+> **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.
diff --git a/docs/lang-index-zh-cn.md b/docs/lang-index-zh-cn.md
new file mode 100644
index 00000000..5c9c3889
--- /dev/null
+++ b/docs/lang-index-zh-cn.md
@@ -0,0 +1,10 @@
+---
+layout: default
+title: "Chinese (Beta)"
+has_children: true
+nav_order: 99
+---
+
+# Chinese (Beta) Documentation
+
+> **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.
diff --git a/docs/python-api.ar.md b/docs/python-api.ar.md
new file mode 100644
index 00000000..0d534502
--- /dev/null
+++ b/docs/python-api.ar.md
@@ -0,0 +1,4078 @@
+---
+layout: default
+title: "مرجع واجهة برمجة التطبيقات (API) الخاصة بـ TrustGraph بلغة بايثون."
+parent: "Arabic (Beta)"
+---
+
+# مرجع واجهة برمجة التطبيقات (API) الخاصة بـ TrustGraph بلغة بايثون.
+
+> **Beta Translation:** This document was translated via Machine Learning and as such may not be 100% accurate. All non-English languages are currently classified as Beta.
+
+## التثبيت
+
+```bash
+pip install trustgraph
+```
+
+## البدء السريع
+
+يتم استيراد جميع الفئات والأنواع من الحزمة `trustgraph.api`:
+
+```python
+from trustgraph.api import Api, Triple, ConfigKey
+
+# Create API client
+api = Api(url="http://localhost:8088/")
+
+# Get a flow instance
+flow = api.flow().id("default")
+
+# Execute a graph RAG query
+response = flow.graph_rag(
+ query="What are the main topics?",
+ user="trustgraph",
+ collection="default"
+)
+```
+
+## جدول المحتويات
+
+### الأساس
+
+[Api](#api)
+
+### عملاء التدفق
+
+[Flow](#flow)
+[FlowInstance](#flowinstance)
+[AsyncFlow](#asyncflow)
+[AsyncFlowInstance](#asyncflowinstance)
+
+### عملاء WebSocket
+
+[SocketClient](#socketclient)
+[SocketFlowInstance](#socketflowinstance)
+[AsyncSocketClient](#asyncsocketclient)
+[AsyncSocketFlowInstance](#asyncsocketflowinstance)
+
+### العمليات المجمعة
+
+[BulkClient](#bulkclient)
+[AsyncBulkClient](#asyncbulkclient)
+
+### المقاييس
+
+[Metrics](#metrics)
+[AsyncMetrics](#asyncmetrics)
+
+### أنواع البيانات
+
+[Triple](#triple)
+[ConfigKey](#configkey)
+[ConfigValue](#configvalue)
+[DocumentMetadata](#documentmetadata)
+[ProcessingMetadata](#processingmetadata)
+[CollectionMetadata](#collectionmetadata)
+[StreamingChunk](#streamingchunk)
+[AgentThought](#agentthought)
+[AgentObservation](#agentobservation)
+[AgentAnswer](#agentanswer)
+[RAGChunk](#ragchunk)
+
+### الاستثناءات
+
+[ProtocolException](#protocolexception)
+[TrustGraphException](#trustgraphexception)
+[AgentError](#agenterror)
+[ConfigError](#configerror)
+[DocumentRagError](#documentragerror)
+[FlowError](#flowerror)
+[GatewayError](#gatewayerror)
+[GraphRagError](#graphragerror)
+[LLMError](#llmerror)
+[LoadError](#loaderror)
+[LookupError](#lookuperror)
+[NLPQueryError](#nlpqueryerror)
+[RowsQueryError](#rowsqueryerror)
+[RequestError](#requesterror)
+[StructuredQueryError](#structuredqueryerror)
+[UnexpectedError](#unexpectederror)
+[ApplicationException](#applicationexception)
+
+--
+
+## `Api`
+
+```python
+from trustgraph.api import Api
+```
+
+عميل واجهة برمجة التطبيقات (API) الرئيسي لـ TrustGraph للعمليات المتزامنة وغير المتزامنة.
+
+توفر هذه الفئة الوصول إلى جميع خدمات TrustGraph بما في ذلك إدارة التدفق،
+وعمليات الرسم البياني المعرفي، ومعالجة المستندات، واستعلامات RAG، والمزيد. وهي تدعم
+أنماط الاتصال القائمة على REST والقائمة على WebSocket.
+
+يمكن استخدام العميل كمدير سياق للتنظيف التلقائي للموارد:
+ ```python
+ with Api(url="http://localhost:8088/") as api:
+ result = api.flow().id("default").graph_rag(query="test")
+ ```
+
+### الطرق
+
+### `__aenter__(self)`
+
+أدخل مدير السياق غير المتزامن.
+
+### `__aexit__(self, *args)`
+
+اخرج من مدير السياق غير المتزامن وأغلق الاتصالات.
+
+### `__enter__(self)`
+
+أدخل مدير السياق المتزامن.
+
+### `__exit__(self, *args)`
+
+اخرج من مدير السياق المتزامن وأغلق الاتصالات.
+
+### `__init__(self, url='http://localhost:8088/', timeout=60, token: str | None = None)`
+
+تهيئة عميل واجهة برمجة تطبيقات TrustGraph.
+
+**الوسائط:**
+
+`url`: عنوان URL الأساسي لواجهة برمجة تطبيقات TrustGraph (الافتراضي: "http://localhost:8088/"")
+`timeout`: المهلة الزمنية للطلبات بالثواني (الافتراضي: 60)
+`token`: رمز مميز اختياري للمصادقة
+
+**مثال:**
+
+```python
+# Local development
+api = Api()
+
+# Production with authentication
+api = Api(
+ url="https://trustgraph.example.com/",
+ timeout=120,
+ token="your-api-token"
+)
+```
+
+### `aclose(self)`
+
+إغلاق جميع اتصالات العميل غير المتزامنة.
+
+تقوم هذه الطريقة بإغلاق اتصالات WebSocket غير المتزامنة، والعمليات المجمعة، واتصالات التدفق.
+يتم استدعاؤها تلقائيًا عند الخروج من مدير السياق غير المتزامن.
+
+**مثال:**
+
+```python
+api = Api()
+async_socket = api.async_socket()
+# ... use async_socket
+await api.aclose() # Clean up connections
+
+# Or use async context manager (automatic cleanup)
+async with Api() as api:
+ async_socket = api.async_socket()
+ # ... use async_socket
+# Automatically closed
+```
+
+### `async_bulk(self)`
+
+احصل على عميل لعمليات مجمعة غير متزامنة.
+
+يوفر عمليات استيراد وتصدير مجمعة بنمط async/await عبر WebSocket
+للتعامل بكفاءة مع مجموعات البيانات الكبيرة.
+
+**المرتجعات:** AsyncBulkClient: عميل للعمليات المجمعة غير المتزامنة.
+
+**مثال:**
+
+```python
+async_bulk = api.async_bulk()
+
+# Export triples asynchronously
+async for triple in async_bulk.export_triples(flow="default"):
+ print(f"{triple.s} {triple.p} {triple.o}")
+
+# Import with async generator
+async def triple_gen():
+ yield Triple(s="subj", p="pred", o="obj")
+ # ... more triples
+
+await async_bulk.import_triples(
+ flow="default",
+ triples=triple_gen()
+)
+```
+
+### `async_flow(self)`
+
+احصل على عميل تدفق قائم على REST غير متزامن.
+
+يوفر وصولاً بنمط async/await إلى عمليات التدفق. هذا هو الخيار المفضل
+لتطبيقات وأطر عمل Python غير المتزامنة (FastAPI، aiohttp، إلخ).
+
+**المرتجعات:** AsyncFlow: عميل تدفق غير متزامن
+
+**مثال:**
+
+```python
+async_flow = api.async_flow()
+
+# List flows
+flow_ids = await async_flow.list()
+
+# Execute operations
+instance = async_flow.id("default")
+result = await instance.text_completion(
+ system="You are helpful",
+ prompt="Hello"
+)
+```
+
+### `async_metrics(self)`
+
+احصل على عميل مقاييس غير متزامن.
+
+يوفر وصولاً بنمط async/await إلى مقاييس Prometheus.
+
+**المرتجعات:** AsyncMetrics: عميل مقاييس غير متزامن.
+
+**مثال:**
+
+```python
+async_metrics = api.async_metrics()
+prometheus_text = await async_metrics.get()
+print(prometheus_text)
+```
+
+### `async_socket(self)`
+
+احصل على عميل WebSocket غير متزامن لعمليات البث.
+
+يوفر وصول WebSocket بنمط async/await مع دعم البث.
+هذه هي الطريقة المفضلة للبث غير المتزامن في Python.
+
+**المرتجعات:** AsyncSocketClient: عميل WebSocket غير متزامن.
+
+**مثال:**
+
+```python
+async_socket = api.async_socket()
+flow = async_socket.flow("default")
+
+# Stream agent responses
+async for chunk in flow.agent(
+ question="Explain quantum computing",
+ user="trustgraph",
+ streaming=True
+):
+ if hasattr(chunk, 'content'):
+ print(chunk.content, end='', flush=True)
+```
+
+### `bulk(self)`
+
+احصل على عميل لعمليات مجمعة متزامنة للاستيراد/التصدير.
+
+تسمح العمليات المجمعة بنقل فعال لمجموعات بيانات كبيرة عبر اتصالات WebSocket، بما في ذلك الثلاثيات، والتضمينات، وسياقات الكيانات، والكائنات.
+
+**الإرجاع:** BulkClient: عميل للعمليات المجمعة المتزامنة.
+
+**مثال:**
+
+
+```python
+bulk = api.bulk()
+
+# Export triples
+for triple in bulk.export_triples(flow="default"):
+ print(f"{triple.s} {triple.p} {triple.o}")
+
+# Import triples
+def triple_generator():
+ yield Triple(s="subj", p="pred", o="obj")
+ # ... more triples
+
+bulk.import_triples(flow="default", triples=triple_generator())
+```
+
+### `close(self)`
+
+إغلاق جميع اتصالات العملاء المتزامنة.
+
+تقوم هذه الطريقة بإغلاق اتصالات WebSocket والعمليات المجمعة.
+يتم استدعاؤها تلقائيًا عند الخروج من مدير السياق.
+
+**مثال:**
+
+```python
+api = Api()
+socket = api.socket()
+# ... use socket
+api.close() # Clean up connections
+
+# Or use context manager (automatic cleanup)
+with Api() as api:
+ socket = api.socket()
+ # ... use socket
+# Automatically closed
+```
+
+### `collection(self)`
+
+احصل على عميل المجموعة لإدارة مجموعات البيانات.
+
+تقوم المجموعات بتنظيم المستندات وبيانات الرسم البياني المعرفي في
+تجمعات منطقية للعزل والتحكم في الوصول.
+
+**الإرجاع:** Collection: عميل إدارة المجموعة.
+
+**مثال:**
+
+```python
+collection = api.collection()
+
+# List collections
+colls = collection.list_collections(user="trustgraph")
+
+# Update collection metadata
+collection.update_collection(
+ user="trustgraph",
+ collection="default",
+ name="Default Collection",
+ description="Main data collection"
+)
+```
+
+### `config(self)`
+
+احصل على عميل إعدادات لتنظيم إعدادات التكوين.
+
+**المرتجعات:** Config: عميل إدارة التكوين.
+
+**مثال:**
+
+```python
+config = api.config()
+
+# Get configuration values
+values = config.get([ConfigKey(type="llm", key="model")])
+
+# Set configuration
+config.put([ConfigValue(type="llm", key="model", value="gpt-4")])
+```
+
+### `flow(self)`
+
+احصل على عميل Flow لإدارة والتفاعل مع التدفقات.
+
+التدفقات هي الوحدات الأساسية للتنفيذ في TrustGraph، وتوفر الوصول إلى
+الخدمات مثل الوكلاء، واستعلامات RAG، والتضمينات، ومعالجة المستندات.
+
+**الإرجاع:** Flow: عميل إدارة التدفق.
+
+**مثال:**
+
+```python
+flow_client = api.flow()
+
+# List available blueprints
+blueprints = flow_client.list_blueprints()
+
+# Get a specific flow instance
+flow_instance = flow_client.id("default")
+response = flow_instance.text_completion(
+ system="You are helpful",
+ prompt="Hello"
+)
+```
+
+### `knowledge(self)`
+
+احصل على عميل Knowledge لإدارة نوى الرسم البياني للمعرفة.
+
+**المرتجعات:** عميل إدارة الرسم البياني للمعرفة: Knowledge
+
+**مثال:**
+
+```python
+knowledge = api.knowledge()
+
+# List available KG cores
+cores = knowledge.list_kg_cores(user="trustgraph")
+
+# Load a KG core
+knowledge.load_kg_core(id="core-123", user="trustgraph")
+```
+
+### `library(self)`
+
+احصل على عميل مكتبة لإدارة المستندات.
+
+توفر المكتبة تخزين المستندات، وإدارة البيانات الوصفية، و
+تنسيق سير العمل للمعالجة.
+
+**المرتجعات:** Library: عميل إدارة مكتبة المستندات.
+
+**مثال:**
+
+```python
+library = api.library()
+
+# Add a document
+library.add_document(
+ document=b"Document content",
+ id="doc-123",
+ metadata=[],
+ user="trustgraph",
+ title="My Document",
+ comments="Test document"
+)
+
+# List documents
+docs = library.get_documents(user="trustgraph")
+```
+
+### `metrics(self)`
+
+احصل على عميل مقاييس متزامن للمراقبة.
+
+يسترجع مقاييس بتنسيق Prometheus من خدمة TrustGraph
+للمراقبة والرؤية.
+
+**الإرجاع:** المقاييس: عميل المقاييس المتزامن
+
+**مثال:**
+
+```python
+metrics = api.metrics()
+prometheus_text = metrics.get()
+print(prometheus_text)
+```
+
+### `request(self, path, request)`
+
+إجراء طلب واجهة برمجة تطبيقات REST منخفض المستوى.
+
+هذه الطريقة مخصصة بشكل أساسي للاستخدام الداخلي ولكن يمكن استخدامها للوصول المباشر إلى
+واجهة برمجة التطبيقات عند الحاجة.
+
+**الوسائط:**
+
+`path`: مسار نقطة نهاية واجهة برمجة التطبيقات (بالنسبة لعنوان URL الأساسي)
+`request`: حمولة الطلب كقاموس
+
+**الإرجاع:** dict: كائن الاستجابة
+
+**يُثير:**
+
+`ProtocolException`: إذا لم يكن رمز حالة الاستجابة 200 أو إذا لم تكن الاستجابة بتنسيق JSON
+`ApplicationException`: إذا احتوت الاستجابة على خطأ
+
+**مثال:**
+
+```python
+response = api.request("flow", {
+ "operation": "list-flows"
+})
+```
+
+### `socket(self)`
+
+احصل على عميل WebSocket متزامن لعمليات البث.
+
+توفر اتصالات WebSocket دعمًا للبث لعمليات الاستجابة في الوقت الفعلي
+من الوكلاء، واستعلامات RAG، وإكمال النصوص. تُرجع هذه الطريقة غلافًا متزامنًا
+حول بروتوكول WebSocket.
+
+**الإرجاع:** SocketClient: عميل WebSocket متزامن.
+
+**مثال:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+# Stream agent responses
+for chunk in flow.agent(
+ question="Explain quantum computing",
+ user="trustgraph",
+ streaming=True
+):
+ if hasattr(chunk, 'content'):
+ print(chunk.content, end='', flush=True)
+```
+
+
+--
+
+## `Flow`
+
+```python
+from trustgraph.api import Flow
+```
+
+عميل إدارة التدفق للعمليات المتعلقة بقوالب التدفق ومثيلات التدفق.
+
+توفر هذه الفئة طرقًا لإدارة قوالب التدفق (القوالب) و
+مثيلات التدفق (التدفقات قيد التشغيل). تحدد القوالب الهيكل و
+معلمات التدفقات، بينما تمثل المثيلات التدفقات النشطة التي يمكن
+أن تنفذ الخدمات.
+
+### الطرق
+
+### `__init__(self, api)`
+
+تهيئة عميل التدفق.
+
+**الوسائط:**
+
+`api`: مثيل واجهة برمجة التطبيقات (API) الأب لإجراء الطلبات.
+
+### `delete_blueprint(self, blueprint_name)`
+
+حذف قالب تدفق.
+
+**الوسائط:**
+
+`blueprint_name`: اسم القالب المراد حذفه.
+
+**مثال:**
+
+```python
+api.flow().delete_blueprint("old-blueprint")
+```
+
+### `get(self, id)`
+
+الحصول على تعريف لمثيل عملية قيد التشغيل.
+
+**الوسائط:**
+
+`id`: معرف مثيل العملية
+
+**الإرجاع:** قاموس: تعريف مثيل العملية
+
+**مثال:**
+
+```python
+flow_def = api.flow().get("default")
+print(flow_def)
+```
+
+### `get_blueprint(self, blueprint_name)`
+
+الحصول على تعريف مخطط تدفق بالاسم.
+
+**الوسائط:**
+
+`blueprint_name`: اسم المخطط المراد استرجاعه.
+
+**الإرجاع:** قاموس: تعريف المخطط كقاموس.
+
+**مثال:**
+
+```python
+blueprint = api.flow().get_blueprint("default")
+print(blueprint) # Blueprint configuration
+```
+
+### `id(self, id='default')`
+
+الحصول على مثيل تدفق لتنفيذ العمليات على تدفق معين.
+
+**الوسائط:**
+
+`id`: مُعرّف التدفق (الافتراضي: "default")
+
+**الإرجاع:** FlowInstance: مثيل التدفق لعمليات الخدمة
+
+**مثال:**
+
+```python
+flow = api.flow().id("my-flow")
+response = flow.text_completion(
+ system="You are helpful",
+ prompt="Hello"
+)
+```
+
+### `list(self)`
+
+عرض جميع مثيلات التدفق النشطة.
+
+**النتائج:** list[str]: قائمة بمعرفات مثيلات التدفق.
+
+**مثال:**
+
+```python
+flows = api.flow().list()
+print(flows) # ['default', 'flow-1', 'flow-2', ...]
+```
+
+### `list_blueprints(self)`
+
+عرض جميع مخططات سير العمل المتاحة.
+
+**النتائج:** list[str]: قائمة بأسماء المخططات.
+
+**مثال:**
+
+```python
+blueprints = api.flow().list_blueprints()
+print(blueprints) # ['default', 'custom-flow', ...]
+```
+
+### `put_blueprint(self, blueprint_name, definition)`
+
+إنشاء أو تحديث مخطط سير العمل.
+
+**الوسائط:**
+
+`blueprint_name`: اسم للمخطط.
+`definition`: قاموس تعريف المخطط.
+
+**مثال:**
+
+```python
+definition = {
+ "services": ["text-completion", "graph-rag"],
+ "parameters": {"model": "gpt-4"}
+}
+api.flow().put_blueprint("my-blueprint", definition)
+```
+
+### `request(self, path=None, request=None)`
+
+إرسال طلب واجهة برمجة تطبيقات (API) ضمن نطاق التدفق.
+
+**الوسائط:**
+
+`path`: لاحقة مسار اختيارية لنقاط نهاية التدفق.
+`request`: قاموس حمولة الطلب.
+
+**الإرجاع:** dict: كائن الاستجابة.
+
+**الاستثناءات:**
+
+`RuntimeError`: إذا لم يتم تحديد معلمة الطلب.
+
+### `start(self, blueprint_name, id, description, parameters=None)`
+
+بدء مثيل تدفق جديد من مخطط.
+
+**الوسائط:**
+
+`blueprint_name`: اسم المخطط المراد إنشاؤه.
+`id`: معرف فريد لمثيل التدفق.
+`description`: وصف يمكن قراءته بواسطة الإنسان.
+`parameters`: قاموس اختياري للمعلمات.
+
+**مثال:**
+
+```python
+api.flow().start(
+ blueprint_name="default",
+ id="my-flow",
+ description="My custom flow",
+ parameters={"model": "gpt-4"}
+)
+```
+
+### `stop(self, id)`
+
+إيقاف مثيل تدفق قيد التشغيل.
+
+**الوسائط:**
+
+`id`: معرف مثيل التدفق الذي سيتم إيقافه.
+
+**مثال:**
+
+```python
+api.flow().stop("my-flow")
+```
+
+
+--
+
+## `FlowInstance`
+
+```python
+from trustgraph.api import FlowInstance
+```
+
+عميل مثيل التدفق لتنفيذ الخدمات في تدفق معين.
+
+توفر هذه الفئة الوصول إلى جميع خدمات TrustGraph بما في ذلك:
+إكمال النص والتضمينات.
+عمليات الوكيل مع إدارة الحالة.
+استعلامات Graph و RAG للوثائق.
+عمليات الرسم البياني المعرفي (ثلاثيات، كائنات).
+تحميل الوثائق ومعالجتها.
+تحويل اللغة الطبيعية إلى استعلام GraphQL.
+تحليل البيانات المنظمة واكتشاف المخطط.
+تنفيذ أداة MCP.
+قالب المطالبات.
+
+يتم الوصول إلى الخدمات من خلال مثيل تدفق قيد التشغيل يتم تحديده بواسطة معرّف.
+
+### الطرق
+
+### `__init__(self, api, id)`
+
+تهيئة FlowInstance.
+
+**الوسائط:**
+
+`api`: عميل التدفق الرئيسي.
+`id`: معرّف مثيل التدفق.
+
+### `agent(self, question, user='trustgraph', state=None, group=None, history=None)`
+
+تنفيذ عملية وكيل مع قدرات الاستدلال واستخدام الأدوات.
+
+يمكن للوكلاء إجراء استدلال متعدد الخطوات، واستخدام الأدوات، والحفاظ على حالة المحادثة
+عبر التفاعلات. هذه نسخة متزامنة وغير متدفقة.
+
+**الوسائط:**
+
+`question`: سؤال المستخدم أو التعليمات.
+`user`: معرف المستخدم (افتراضي: "trustgraph").
+`state`: قاموس حالة اختياري للمحادثات التي تحتفظ بالحالة.
+`group`: معرف مجموعة اختياري للسياقات متعددة المستخدمين.
+`history`: سجل محادثة اختياري كقائمة من قواميس الرسائل.
+
+**الإرجاع:** str: إجابة الوكيل النهائية.
+
+**مثال:**
+
+```python
+flow = api.flow().id("default")
+
+# Simple question
+answer = flow.agent(
+ question="What is the capital of France?",
+ user="trustgraph"
+)
+
+# With conversation history
+history = [
+ {"role": "user", "content": "Hello"},
+ {"role": "assistant", "content": "Hi! How can I help?"}
+]
+answer = flow.agent(
+ question="Tell me about Paris",
+ user="trustgraph",
+ history=history
+)
+```
+
+### `detect_type(self, sample)`
+
+اكتشاف نوع البيانات لعينة بيانات منظمة.
+
+**الوسائط:**
+
+`sample`: عينة البيانات المراد تحليلها (محتوى نصي)
+
+**النتائج:** قاموس يحتوي على detected_type و confidence و بيانات وصفية اختيارية.
+
+### `diagnose_data(self, sample, schema_name=None, options=None)`
+
+إجراء تشخيص بيانات مدمج: اكتشاف النوع وإنشاء وصف.
+
+**الوسائط:**
+
+`sample`: عينة البيانات المراد تحليلها (محتوى نصي)
+`schema_name`: اسم المخطط المستهدف الاختياري لإنشاء الوصف.
+`options`: معلمات اختيارية (مثل فاصل CSV).
+
+**النتائج:** قاموس يحتوي على detected_type و confidence و descriptor و بيانات وصفية.
+
+### `document_embeddings_query(self, text, user, collection, limit=10)`
+
+الاستعلام عن أجزاء المستندات باستخدام التشابه الدلالي.
+
+يجد أجزاء المستندات التي يكون محتوىها متشابهًا دلاليًا مع
+النص المدخل، باستخدام تضمينات المتجهات.
+
+**الوسائط:**
+
+`text`: نص الاستعلام للبحث الدلالي.
+`user`: معرف المستخدم/المساحة.
+`collection`: معرف المجموعة.
+`limit`: الحد الأقصى لعدد النتائج (افتراضي: 10).
+
+**النتائج:** قاموس: نتائج الاستعلام مع الأجزاء التي تحتوي على chunk_id و score.
+
+**مثال:**
+
+```python
+flow = api.flow().id("default")
+results = flow.document_embeddings_query(
+ text="machine learning algorithms",
+ user="trustgraph",
+ collection="research-papers",
+ limit=5
+)
+# results contains {"chunks": [{"chunk_id": "doc1/p0/c0", "score": 0.95}, ...]}
+```
+
+### `document_rag(self, query, user='trustgraph', collection='default', doc_limit=10)`
+
+تنفيذ استعلام استرجاع مُعزز بالبيانات (RAG) يعتمد على المستندات.
+
+يستخدم استرجاع البيانات المُعزز بالبيانات (RAG) تضمينات المتجهات للعثور على أجزاء المستندات ذات الصلة،
+ثم يقوم بإنشاء استجابة باستخدام نموذج لغوي كبير (LLM) مع استخدام تلك الأجزاء كسياق.
+
+**الوسائط:**
+
+`query`: استعلام بلغة طبيعية.
+`user`: مُعرّف المستخدم/مساحة المفاتيح (الافتراضي: "trustgraph").
+`collection`: مُعرّف المجموعة (الافتراضي: "default").
+`doc_limit`: الحد الأقصى لعدد أجزاء المستندات التي سيتم استرجاعها (الافتراضي: 10).
+
+**الإرجاع:** str: الاستجابة التي تم إنشاؤها والتي تتضمن سياق المستند.
+
+**مثال:**
+
+```python
+flow = api.flow().id("default")
+response = flow.document_rag(
+ query="Summarize the key findings",
+ user="trustgraph",
+ collection="research-papers",
+ doc_limit=5
+)
+print(response)
+```
+
+### `embeddings(self, texts)`
+
+توليد تضمينات متجهة لنص أو أكثر.
+
+تحويل النصوص إلى تمثيلات متجهة كثيفة مناسبة للبحث الدلالي
+ومقارنة التشابه.
+
+**الوسائط:**
+
+`texts`: قائمة بالنصوص المدخلة المراد تضمينها.
+
+**النتائج:** list[list[list[float]]]: تضمينات متجهة، مجموعة واحدة لكل نص مدخل.
+
+**مثال:**
+
+```python
+flow = api.flow().id("default")
+vectors = flow.embeddings(["quantum computing"])
+print(f"Embedding dimension: {len(vectors[0][0])}")
+```
+
+### `generate_descriptor(self, sample, data_type, schema_name, options=None)`
+
+إنشاء وصف لربط البيانات المهيكلة بمخطط معين.
+
+**الوسائط:**
+
+`sample`: عينة البيانات لتحليلها (محتوى نصي)
+`data_type`: نوع البيانات (csv، json، xml)
+`schema_name`: اسم المخطط المستهدف لإنشاء الوصف
+`options`: معلمات اختيارية (مثل فاصل CSV)
+
+**الإرجاع:** قاموس يحتوي على الوصف والبيانات الوصفية
+
+### `graph_embeddings_query(self, text, user, collection, limit=10)`
+
+الاستعلام عن كيانات الرسم البياني المعرفي باستخدام التشابه الدلالي.
+
+يجد الكيانات في الرسم البياني المعرفي والتي تكون أوصافها متشابهة دلاليًا
+مع النص المدخل، باستخدام تضمينات المتجهات.
+
+**الوسائط:**
+
+`text`: نص الاستعلام للبحث الدلالي
+`user`: معرف المستخدم/المساحة
+`collection`: معرف المجموعة
+`limit`: الحد الأقصى لعدد النتائج (افتراضي: 10)
+
+**الإرجاع:** قاموس: نتائج الاستعلام مع الكيانات المشابهة
+
+**مثال:**
+
+```python
+flow = api.flow().id("default")
+results = flow.graph_embeddings_query(
+ text="physicist who discovered radioactivity",
+ user="trustgraph",
+ collection="scientists",
+ limit=5
+)
+# results contains {"entities": [{"entity": {...}, "score": 0.95}, ...]}
+```
+
+### `graph_rag(self, query, user='trustgraph', collection='default', entity_limit=50, triple_limit=30, max_subgraph_size=150, max_path_length=2)`
+
+تنفيذ استعلام يعتمد على الرسم البياني لإنشاء استجابات مُعززة بالاسترجاع (RAG).
+
+يستخدم الرسم البياني RAG هيكل الرسم البياني للمعرفة للعثور على السياق ذي الصلة من خلال
+استكشاف علاقات الكيانات، ثم يقوم بإنشاء استجابة باستخدام نموذج لغوي كبير (LLM).
+
+**الوسائط:**
+
+`query`: استعلام بلغة طبيعية.
+`user`: مُعرّف المستخدم/مساحة المفاتيح (الافتراضي: "trustgraph").
+`collection`: مُعرّف المجموعة (الافتراضي: "default").
+`entity_limit`: الحد الأقصى للكيانات التي سيتم استرجاعها (الافتراضي: 50).
+`triple_limit`: الحد الأقصى للثلاثيات لكل كيان (الافتراضي: 30).
+`max_subgraph_size`: الحد الأقصى لإجمالي عدد الثلاثيات في الرسم البياني الفرعي (الافتراضي: 150).
+`max_path_length`: الحد الأقصى لعمق الاستكشاف (الافتراضي: 2).
+
+**الإرجاع:** str: الاستجابة التي تم إنشاؤها والتي تتضمن سياق الرسم البياني.
+
+**مثال:**
+
+```python
+flow = api.flow().id("default")
+response = flow.graph_rag(
+ query="Tell me about Marie Curie's discoveries",
+ user="trustgraph",
+ collection="scientists",
+ entity_limit=20,
+ max_path_length=3
+)
+print(response)
+```
+
+### `load_document(self, document, id=None, metadata=None, user=None, collection=None)`
+
+تحميل مستند ثنائي للمعالجة.
+
+تحميل مستند (PDF، DOCX، صور، إلخ) لاستخراج ومعالجة
+من خلال مسار المستند الخاص بالتدفق.
+
+**الوسائط:**
+
+`document`: محتوى المستند كبايت.
+`id`: مُعرّف المستند الاختياري (يتم إنشاؤه تلقائيًا إذا كان فارغًا).
+`metadata`: بيانات وصفية اختيارية (قائمة من الثلاثيات أو كائن مع طريقة الإرسال).
+`user`: مُعرّف المستخدم/مساحة المفاتيح (اختياري).
+`collection`: مُعرّف المجموعة (اختياري).
+
+**الإرجاع:** قاموس: استجابة المعالجة.
+
+**يُثير:**
+
+`RuntimeError`: إذا تم توفير البيانات الوصفية بدون مُعرّف.
+
+**مثال:**
+
+```python
+flow = api.flow().id("default")
+
+# Load a PDF document
+with open("research.pdf", "rb") as f:
+ result = flow.load_document(
+ document=f.read(),
+ id="research-001",
+ user="trustgraph",
+ collection="papers"
+ )
+```
+
+### `load_text(self, text, id=None, metadata=None, charset='utf-8', user=None, collection=None)`
+
+تحميل محتوى نصي للمعالجة.
+
+تحميل محتوى نصي لاستخلاصه ومعالجته من خلال مسار المعالجة النصية.
+
+
+**الوسائط:**
+
+`text`: محتوى نصي كبايت.
+`id`: مُعرّف المستند الاختياري (يتم إنشاؤه تلقائيًا إذا كان فارغًا).
+`metadata`: بيانات وصفية اختيارية (قائمة من الثلاثيات أو كائن مع طريقة الإرسال).
+`charset`: ترميز الأحرف (افتراضي: "utf-8").
+`user`: مُعرّف المستخدم/مساحة المفاتيح (اختياري).
+`collection`: مُعرّف المجموعة (اختياري).
+
+**الإرجاع:** قاموس: استجابة المعالجة.
+
+**الأخطاء:**
+
+`RuntimeError`: إذا تم توفير البيانات الوصفية بدون مُعرّف.
+
+**مثال:**
+
+```python
+flow = api.flow().id("default")
+
+# Load text content
+text_content = b"This is the document content..."
+result = flow.load_text(
+ text=text_content,
+ id="text-001",
+ charset="utf-8",
+ user="trustgraph",
+ collection="documents"
+)
+```
+
+### `mcp_tool(self, name, parameters={})`
+
+تنفيذ أداة بروتوكول سياق النموذج (MCP).
+
+توفر أدوات MCP وظائف قابلة للتوسيع للوكلاء وسير العمل،
+مما يسمح بالتكامل مع الأنظمة والخدمات الخارجية.
+
+**الوسائط:**
+
+`name`: اسم/معرّف الأداة.
+`parameters`: قاموس معلمات الأداة (الافتراضي: {}).
+
+**الإرجاع:** str أو dict: نتيجة تنفيذ الأداة.
+
+**يُثير:**
+
+`ProtocolException`: إذا كان تنسيق الاستجابة غير صالح.
+
+**مثال:**
+
+```python
+flow = api.flow().id("default")
+
+# Execute a tool
+result = flow.mcp_tool(
+ name="search-web",
+ parameters={"query": "latest AI news", "limit": 5}
+)
+```
+
+### `nlp_query(self, question, max_results=100)`
+
+تحويل سؤال بلغة طبيعية إلى استعلام GraphQL.
+
+**الوسائط:**
+
+`question`: سؤال بلغة طبيعية
+`max_results`: الحد الأقصى لعدد النتائج المراد إرجاعها (افتراضي: 100)
+
+**الإرجاع:** قاموس يحتوي على graphql_query و variables و detected_schemas و confidence
+
+### `prompt(self, id, variables)`
+
+تنفيذ نموذج مطالبة مع استبدال المتغيرات.
+
+تسمح نماذج المطالبات بأنماط مطالبات قابلة لإعادة الاستخدام مع متغيرات ديناميكية
+استبدال، وهو مفيد لهندسة المطالبات المتسقة.
+
+**الوسائط:**
+
+`id`: معرف نموذج المطالبة
+`variables`: قاموس لتعيين اسم المتغير إلى القيمة
+
+**الإرجاع:** سلسلة أو قاموس: نتيجة المطالبة المعروضة (نص أو كائن منظم)
+
+**يسبب:**
+
+`ProtocolException`: إذا كان تنسيق الاستجابة غير صالح
+
+**مثال:**
+
+```python
+flow = api.flow().id("default")
+
+# Text template
+result = flow.prompt(
+ id="summarize-template",
+ variables={"topic": "quantum computing", "length": "brief"}
+)
+
+# Structured template
+result = flow.prompt(
+ id="extract-entities",
+ variables={"text": "Marie Curie won Nobel Prizes"}
+)
+```
+
+### `request(self, path, request)`
+
+قم بإنشاء طلب خدمة في هذه نسخة التدفق.
+
+**الوسائط:**
+
+`path`: مسار الخدمة (مثل: "service/text-completion")
+`request`: قاموس حمولة الطلب
+
+**الإرجاع:** dict: استجابة الخدمة
+
+### `row_embeddings_query(self, text, schema_name, user='trustgraph', collection='default', index_name=None, limit=10)`
+
+استعلام عن بيانات الصفوف باستخدام التشابه الدلالي في الحقول المفهرسة.
+
+يجد الصفوف التي تكون فيها قيم الحقول المفهرسة متشابهة دلاليًا مع
+النص المدخل، باستخدام تضمينات المتجهات. هذا يتيح المطابقة التقريبية/الدلالية
+على البيانات المنظمة.
+
+**الوسائط:**
+
+`text`: نص الاستعلام للبحث الدلالي
+`schema_name`: اسم المخطط للبحث داخله
+`user`: معرف المستخدم/مساحة المفاتيح (افتراضي: "trustgraph")
+`collection`: معرف المجموعة (افتراضي: "default")
+`index_name`: اسم الفهرس الاختياري لتصفية البحث في فهرس معين
+`limit`: الحد الأقصى لعدد النتائج (افتراضي: 10)
+
+**الإرجاع:** dict: نتائج الاستعلام مع المطابقات التي تحتوي على index_name و index_value و text و score
+
+**مثال:**
+
+```python
+flow = api.flow().id("default")
+
+# Search for customers by name similarity
+results = flow.row_embeddings_query(
+ text="John Smith",
+ schema_name="customers",
+ user="trustgraph",
+ collection="sales",
+ limit=5
+)
+
+# Filter to specific index
+results = flow.row_embeddings_query(
+ text="machine learning engineer",
+ schema_name="employees",
+ index_name="job_title",
+ limit=10
+)
+```
+
+### `rows_query(self, query, user='trustgraph', collection='default', variables=None, operation_name=None)`
+
+تنفيذ استعلام GraphQL مقابل الصفوف المنظمة في الرسم البياني المعرفي.
+
+الاستعلام عن البيانات المنظمة باستخدام بناء جملة GraphQL، مما يسمح باستعلامات معقدة
+مع التصفية والتجميع وتجاوز العلاقات.
+
+**الوسائط:**
+
+`query`: سلسلة استعلام GraphQL
+`user`: معرف المستخدم/مساحة الاسم (الافتراضي: "trustgraph")
+`collection`: معرف المجموعة (الافتراضي: "default")
+`variables`: قاموس اختياري لمتغيرات الاستعلام
+`operation_name`: اسم عملية اختياري للمستندات متعددة العمليات
+
+**الإرجاع:** dict: استجابة GraphQL مع حقول 'data' و 'errors' و/أو 'extensions'
+
+**يثير:**
+
+`ProtocolException`: إذا حدث خطأ على مستوى النظام
+
+**مثال:**
+
+```python
+flow = api.flow().id("default")
+
+# Simple query
+query = '''
+{
+ scientists(limit: 10) {
+ name
+ field
+ discoveries
+ }
+}
+'''
+result = flow.rows_query(
+ query=query,
+ user="trustgraph",
+ collection="scientists"
+)
+
+# Query with variables
+query = '''
+query GetScientist($name: String!) {
+ scientists(name: $name) {
+ name
+ nobelPrizes
+ }
+}
+'''
+result = flow.rows_query(
+ query=query,
+ variables={"name": "Marie Curie"}
+)
+```
+
+### `schema_selection(self, sample, options=None)`
+
+تحديد مخططات مطابقة لعينة بيانات باستخدام تحليل المطالبات.
+
+**الوسائط:**
+
+`sample`: عينة البيانات المراد تحليلها (محتوى نصي)
+`options`: معلمات اختيارية
+
+**الإرجاع:** قاموس يحتوي على مصفوفة schema_matches والبيانات الوصفية.
+
+### `structured_query(self, question, user='trustgraph', collection='default')`
+
+تنفيذ سؤال بلغة طبيعية مقابل بيانات منظمة.
+يجمع بين تحويل استعلام معالجة اللغة الطبيعية وتنفيذ GraphQL.
+
+**الوسائط:**
+
+`question`: سؤال بلغة طبيعية
+`user`: معرف مساحة مفاتيح Cassandra (افتراضي: "trustgraph")
+`collection`: معرف مجموعة البيانات (افتراضي: "default")
+
+**الإرجاع:** قاموس يحتوي على البيانات والأخطاء الاختيارية.
+
+### `text_completion(self, system, prompt)`
+
+تنفيذ إكمال نص باستخدام نموذج اللغة الكبير (LLM) الخاص بالتدفق.
+
+**الوسائط:**
+
+`system`: مطالبة النظام التي تحدد سلوك المساعد
+`prompt`: مطالبة المستخدم/سؤال
+
+**الإرجاع:** نص: النص الذي تم إنشاؤه.
+
+**مثال:**
+
+```python
+flow = api.flow().id("default")
+response = flow.text_completion(
+ system="You are a helpful assistant",
+ prompt="What is quantum computing?"
+)
+print(response)
+```
+
+### `triples_query(self, s=None, p=None, o=None, user=None, collection=None, limit=10000)`
+
+البحث في ثلاثيات الرسم البياني المعرفي باستخدام مطابقة الأنماط.
+
+تبحث عن ثلاثيات RDF تتطابق مع الموضوع والفاعل والمفعول به المحددة. تعمل المعلمات غير المحددة كرموز بدل.
+
+
+**الوسائط:**
+
+`s`: معرف الموضوع (اختياري، استخدم None للرمز بدل)
+`p`: معرف الفاعل (اختياري، استخدم None للرمز بدل)
+`o`: معرف المفعول به أو حرفي (اختياري، استخدم None للرمز بدل)
+`user`: معرف المستخدم/مساحة المفاتيح (اختياري)
+`collection`: معرف المجموعة (اختياري)
+`limit`: الحد الأقصى للنتائج المراد إرجاعها (افتراضي: 10000)
+
+**الإرجاع:** list[Triple]: قائمة بكائنات Triple المطابقة
+
+**يسبب أخطاء:**
+
+`RuntimeError`: إذا كان s أو p ليس Uri، أو o ليس Uri/Literal
+
+**مثال:**
+
+```python
+from trustgraph.knowledge import Uri, Literal
+
+flow = api.flow().id("default")
+
+# Find all triples about a specific subject
+triples = flow.triples_query(
+ s=Uri("http://example.org/person/marie-curie"),
+ user="trustgraph",
+ collection="scientists"
+)
+
+# Find all instances of a specific relationship
+triples = flow.triples_query(
+ p=Uri("http://example.org/ontology/discovered"),
+ limit=100
+)
+```
+
+
+--
+
+## `AsyncFlow`
+
+```python
+from trustgraph.api import AsyncFlow
+```
+
+عميل إدارة التدفق غير المتزامن باستخدام واجهة برمجة تطبيقات REST.
+
+يوفر عمليات إدارة التدفق المستندة إلى `async/await` بما في ذلك عمليات القائمة،
+والبدء، والإيقاف، وإدارة تعريفات فئات التدفق. كما يوفر
+الوصول إلى الخدمات الخاصة بنطاق التدفق مثل الوكلاء، وRAG، والاستعلامات عبر نقاط نهاية REST غير متدفقة.
+
+
+ملاحظة: للحصول على دعم التدفق، استخدم `AsyncSocketClient` بدلاً من ذلك.
+
+### الطرق
+
+### `__init__(self, url: str, timeout: int, token: str | None) -> None`
+
+تهيئة عميل التدفق غير المتزامن.
+
+**الوسائط:**
+
+`url`: عنوان URL الأساسي لواجهة برمجة تطبيقات TrustGraph.
+`timeout`: المهلة المطلوبة بالثواني.
+`token`: رمز مميز اختياري للمصادقة.
+
+### `aclose(self) -> None`
+
+إغلاق العميل غير المتزامن وتنظيف الموارد.
+
+ملاحظة: يتم التعامل مع التنظيف تلقائيًا بواسطة مديري سياق جلسة `aiohttp`.
+تم توفير هذه الطريقة لضمان الاتساق مع العملاء غير المتزامنين الآخرين.
+
+### `delete_class(self, class_name: str)`
+
+حذف تعريف فئة تدفق.
+
+يزيل مخطط فئة التدفق من النظام. لا يؤثر على
+مثيلات التدفق قيد التشغيل.
+
+**الوسائط:**
+
+`class_name`: اسم فئة التدفق المراد حذفها.
+
+**مثال:**
+
+```python
+async_flow = await api.async_flow()
+
+# Delete a flow class
+await async_flow.delete_class("old-flow-class")
+```
+
+### `get(self, id: str) -> Dict[str, Any]`
+
+الحصول على تعريف التدفق.
+
+يسترجع التكوين الكامل للتدفق بما في ذلك اسم الفئة الخاص به،
+والوصف، والمعلمات.
+
+**الوسائط:**
+
+`id`: مُعرّف التدفق
+
+**الإرجاع:** dict: كائن تعريف التدفق
+
+**مثال:**
+
+```python
+async_flow = await api.async_flow()
+
+# Get flow definition
+flow_def = await async_flow.get("default")
+print(f"Flow class: {flow_def.get('class-name')}")
+print(f"Description: {flow_def.get('description')}")
+```
+
+### `get_class(self, class_name: str) -> Dict[str, Any]`
+
+الحصول على تعريف الفئة التدفق.
+
+يسترجع تعريف النموذج لفئة التدفق، بما في ذلك
+مخطط التكوين وارتباطات الخدمة.
+
+**الوسائط:**
+
+`class_name`: اسم فئة التدفق
+
+**الإرجاع:** dict: كائن تعريف فئة التدفق
+
+**مثال:**
+
+```python
+async_flow = await api.async_flow()
+
+# Get flow class definition
+class_def = await async_flow.get_class("default")
+print(f"Services: {class_def.get('services')}")
+```
+
+### `id(self, flow_id: str)`
+
+احصل على مثيل عميل التدفق غير المتزامن.
+
+يُرجع عميلاً للتفاعل مع خدمات تدفق معين (وكيل، واسترجاع المعلومات، والاستعلامات، والتضمينات، إلخ).
+
+
+**الوسائط:**
+
+`flow_id`: مُعرّف التدفق
+
+**الإرجاع:** AsyncFlowInstance: عميل للعمليات الخاصة بالتدفق
+
+**مثال:**
+
+```python
+async_flow = await api.async_flow()
+
+# Get flow instance
+flow = async_flow.id("default")
+
+# Use flow services
+result = await flow.graph_rag(
+ query="What is TrustGraph?",
+ user="trustgraph",
+ collection="default"
+)
+```
+
+### `list(self) -> List[str]`
+
+قم بإدراج جميع معرفات التدفق.
+
+يسترجع معرفات جميع التدفقات المنشورة حاليًا في النظام.
+
+**الإرجاع:** list[str]: قائمة بمعرفات التدفق.
+
+**مثال:**
+
+```python
+async_flow = await api.async_flow()
+
+# List all flows
+flows = await async_flow.list()
+print(f"Available flows: {flows}")
+```
+
+### `list_classes(self) -> List[str]`
+
+قم بإدراج جميع أسماء فئات التدفق.
+
+يسترجع أسماء جميع فئات التدفق (القوالب) المتاحة في النظام.
+
+**الإرجاع:** list[str]: قائمة بأسماء فئات التدفق.
+
+**مثال:**
+
+```python
+async_flow = await api.async_flow()
+
+# List available flow classes
+classes = await async_flow.list_classes()
+print(f"Available flow classes: {classes}")
+```
+
+### `put_class(self, class_name: str, definition: Dict[str, Any])`
+
+إنشاء أو تحديث تعريف لفئة التدفق.
+
+يخزن مخططًا لفئة التدفق يمكن استخدامه لإنشاء مثيلات التدفق.
+
+**الوسائط:**
+
+`class_name`: اسم فئة التدفق
+`definition`: كائن تعريف فئة التدفق
+
+**مثال:**
+
+```python
+async_flow = await api.async_flow()
+
+# Create a custom flow class
+class_def = {
+ "services": {
+ "agent": {"module": "agent", "config": {...}},
+ "graph-rag": {"module": "graph-rag", "config": {...}}
+ }
+}
+await async_flow.put_class("custom-flow", class_def)
+```
+
+### `request(self, path: str, request_data: Dict[str, Any]) -> Dict[str, Any]`
+
+إرسال طلب HTTP POST غير متزامن إلى واجهة برمجة التطبيقات (API) الخاصة بالبوابة.
+
+طريقة داخلية لإجراء طلبات مصادقة إلى واجهة برمجة التطبيقات (API) الخاصة بـ TrustGraph.
+
+**الوسائط:**
+
+`path`: مسار نقطة نهاية واجهة برمجة التطبيقات (API) (بالنسبة إلى عنوان URL الأساسي).
+`request_data`: قاموس حمولة الطلب.
+
+**الإرجاع:** dict: كائن الاستجابة من واجهة برمجة التطبيقات (API).
+
+**يُصدر:**
+
+`ProtocolException`: إذا كان رمز حالة HTTP ليس 200 أو إذا كانت الاستجابة ليست JSON صالحة.
+`ApplicationException`: إذا أرجع الـ API استجابة خطأ.
+
+### `start(self, class_name: str, id: str, description: str, parameters: Dict | None = None)`
+
+ابدأ نسخة جديدة من التدفق.
+
+ينشئ ويبدأ تدفقًا من تعريف فئة التدفق مع المعلمات المحددة.
+
+
+**الوسائط:**
+
+`class_name`: اسم فئة التدفق المراد إنشاؤه.
+`id`: معرف للنسخة الجديدة من التدفق.
+`description`: وصف قابل للقراءة البشرية للتدفق.
+`parameters`: معلمات تكوين اختيارية للتدفق.
+
+**مثال:**
+
+```python
+async_flow = await api.async_flow()
+
+# Start a flow from a class
+await async_flow.start(
+ class_name="default",
+ id="my-flow",
+ description="Custom flow instance",
+ parameters={"model": "claude-3-opus"}
+)
+```
+
+### `stop(self, id: str)`
+
+إيقاف عملية جارية.
+
+يوقف ويحذف نسخة من العملية، ويحرر مواردها.
+
+**الوسائط:**
+
+`id`: مُعرّف العملية المراد إيقافها.
+
+**مثال:**
+
+```python
+async_flow = await api.async_flow()
+
+# Stop a flow
+await async_flow.stop("my-flow")
+```
+
+
+--
+
+## `AsyncFlowInstance`
+
+```python
+from trustgraph.api import AsyncFlowInstance
+```
+
+عميل مثيل التدفق غير المتزامن.
+
+يوفر الوصول إلى الخدمات ذات النطاق التدريجي باستخدام آليات المزامنة (async/await)، بما في ذلك الوكلاء،
+واستعلامات RAG، والتضمينات، واستعلامات الرسم البياني. تُرجع جميع العمليات استجابات كاملة (غير متدفقة).
+
+
+ملاحظة: للحصول على دعم التدفق، استخدم AsyncSocketFlowInstance بدلاً من ذلك.
+
+### الطرق
+
+### `__init__(self, flow: trustgraph.api.async_flow.AsyncFlow, flow_id: str)`
+
+تهيئة مثيل التدفق غير المتزامن.
+
+**الوسائط:**
+
+`flow`: عميل التدفق غير المتزامن الرئيسي.
+`flow_id`: معرف التدفق.
+
+### `agent(self, question: str, user: str, state: Dict | None = None, group: str | None = None, history: List | None = None, **kwargs: Any) -> Dict[str, Any]`
+
+تنفيذ عملية وكيل (غير متدفقة).
+
+يقوم بتشغيل وكيل للإجابة على سؤال، مع حالة محادثة وسجل اختياري. تُرجع الاستجابة الكاملة بعد انتهاء الوكيل من
+المعالجة.
+
+
+ملاحظة: لا تدعم هذه الطريقة التدفق. للحصول على أفكار وملاحظات الوكيل في الوقت الفعلي، استخدم AsyncSocketFlowInstance.agent() بدلاً من ذلك.
+
+
+**الوسائط:**
+
+`question`: سؤال المستخدم أو التعليمات.
+`user`: معرف المستخدم.
+`state`: قاموس حالة اختياري لسياق المحادثة.
+`group`: معرف مجموعة اختياري لإدارة الجلسة.
+`history`: قائمة سجل المحادثة الاختيارية.
+`**kwargs`: معلمات إضافية خاصة بالخدمة.
+
+**الإرجاع:** dict: استجابة الوكيل الكاملة بما في ذلك الإجابة والبيانات الوصفية.
+
+**مثال:**
+
+```python
+async_flow = await api.async_flow()
+flow = async_flow.id("default")
+
+# Execute agent
+result = await flow.agent(
+ question="What is the capital of France?",
+ user="trustgraph"
+)
+print(f"Answer: {result.get('response')}")
+```
+
+### `document_rag(self, query: str, user: str, collection: str, doc_limit: int = 10, **kwargs: Any) -> str`
+
+تنفيذ استعلام RAG المستند إلى المستندات (غير متدفق).
+
+يقوم بتنفيذ توليد معزز بالاسترجاع باستخدام تضمينات المستندات.
+يسترجع أجزاء المستندات ذات الصلة من خلال البحث الدلالي، ثم يقوم بإنشاء
+استجابة تستند إلى المستندات المسترجعة. يُرجع الاستجابة الكاملة.
+
+ملاحظة: لا تدعم هذه الطريقة التدفق. للاستجابات المتدفقة لـ RAG،
+استخدم AsyncSocketFlowInstance.document_rag() بدلاً من ذلك.
+
+**الوسائط:**
+
+`query`: نص استعلام المستخدم.
+`user`: معرف المستخدم.
+`collection`: معرف المجموعة التي تحتوي على المستندات.
+`doc_limit`: الحد الأقصى لعدد أجزاء المستندات التي سيتم استرجاعها (افتراضي: 10).
+`**kwargs`: معلمات إضافية خاصة بالخدمة.
+
+**الإرجاع:** str: الاستجابة الكاملة التي تم إنشاؤها والتي تستند إلى بيانات المستند.
+
+**مثال:**
+
+```python
+async_flow = await api.async_flow()
+flow = async_flow.id("default")
+
+# Query documents
+response = await flow.document_rag(
+ query="What does the documentation say about authentication?",
+ user="trustgraph",
+ collection="docs",
+ doc_limit=5
+)
+print(response)
+```
+
+### `embeddings(self, texts: list, **kwargs: Any)`
+
+توليد تضمينات للنصوص المدخلة.
+
+تحويل النصوص إلى تمثيلات متجهة رقمية باستخدام نموذج التضمين المُكوّن في التدفق.
+مفيد للبحث الدلالي ومقارنات التشابه.
+
+
+**الوسائط:**
+
+`texts`: قائمة بالنصوص المدخلة المراد تضمينها.
+`**kwargs`: معلمات إضافية خاصة بالخدمة.
+
+**الإرجاع:** dict: استجابة تحتوي على متجهات التضمين.
+
+**مثال:**
+
+```python
+async_flow = await api.async_flow()
+flow = async_flow.id("default")
+
+# Generate embeddings
+result = await flow.embeddings(texts=["Sample text to embed"])
+vectors = result.get("vectors")
+print(f"Embedding dimension: {len(vectors[0][0])}")
+```
+
+### `graph_embeddings_query(self, text: str, user: str, collection: str, limit: int = 10, **kwargs: Any)`
+
+البحث عن تضمينات الرسم البياني للاستعلام عن الكيانات الدلالية.
+
+يقوم بإجراء بحث دلالي عبر تضمينات الكيانات في الرسم البياني للعثور على الكيانات
+الأكثر صلة بالنص المدخل. يُرجع الكيانات مرتبة حسب التشابه.
+
+**الوسائط:**
+
+`text`: نص الاستعلام للبحث الدلالي
+`user`: معرف المستخدم
+`collection`: معرف المجموعة التي تحتوي على تضمينات الرسم البياني
+`limit`: الحد الأقصى لعدد النتائج المراد إرجاعها (افتراضي: 10)
+`**kwargs`: معلمات إضافية خاصة بالخدمة
+
+**الإرجاع:** dict: استجابة تحتوي على تطابقات الكيانات المرتبة مع درجات التشابه
+
+**مثال:**
+
+```python
+async_flow = await api.async_flow()
+flow = async_flow.id("default")
+
+# Find related entities
+results = await flow.graph_embeddings_query(
+ text="machine learning algorithms",
+ user="trustgraph",
+ collection="tech-kb",
+ limit=5
+)
+
+for entity in results.get("entities", []):
+ print(f"{entity['name']}: {entity['score']}")
+```
+
+### `graph_rag(self, query: str, user: str, collection: str, max_subgraph_size: int = 1000, max_subgraph_count: int = 5, max_entity_distance: int = 3, **kwargs: Any) -> str`
+
+تنفيذ استعلام RAG المستند إلى الرسم البياني (غير متدفق).
+
+يقوم بتنفيذ توليد مُعزز بالاسترجاع باستخدام بيانات الرسم البياني المعرفي.
+يحدد الكيانات ذات الصلة وعلاقاتها، ثم يقوم بإنشاء
+استجابة تستند إلى هيكل الرسم البياني. يُرجع الاستجابة الكاملة.
+
+ملاحظة: لا تدعم هذه الطريقة التدفق. للاستجابات المتدفقة لـ RAG،
+استخدم AsyncSocketFlowInstance.graph_rag() بدلاً من ذلك.
+
+**الوسائط:**
+
+`query`: نص استعلام المستخدم.
+`user`: مُعرّف المستخدم.
+`collection`: مُعرّف المجموعة التي تحتوي على الرسم البياني المعرفي.
+`max_subgraph_size`: الحد الأقصى لعدد الثلاثيات لكل رسم بياني فرعي (افتراضي: 1000).
+`max_subgraph_count`: الحد الأقصى لعدد الرسوم البيانية الفرعية المراد استرجاعها (افتراضي: 5).
+`max_entity_distance`: أقصى مسافة للرسم البياني لتوسيع الكيانات (افتراضي: 3).
+`**kwargs`: معلمات إضافية خاصة بالخدمة.
+
+**الإرجاع:** str: الاستجابة الكاملة التي تم إنشاؤها والتي تستند إلى بيانات الرسم البياني.
+
+**مثال:**
+
+```python
+async_flow = await api.async_flow()
+flow = async_flow.id("default")
+
+# Query knowledge graph
+response = await flow.graph_rag(
+ query="What are the relationships between these entities?",
+ user="trustgraph",
+ collection="medical-kb",
+ max_subgraph_count=3
+)
+print(response)
+```
+
+### `request(self, service: str, request_data: Dict[str, Any]) -> Dict[str, Any]`
+
+إرسال طلب إلى خدمة ذات نطاق محدد.
+
+طريقة داخلية لاستدعاء الخدمات داخل مثيل التدفق هذا.
+
+**الوسائط:**
+
+`service`: اسم الخدمة (مثل، "agent"، "graph-rag"، "triples")
+`request_data`: حمولة طلب الخدمة
+
+**الإرجاع:** dict: كائن استجابة الخدمة
+
+**يُصدر:**
+
+`ProtocolException`: إذا فشل الطلب أو كانت الاستجابة غير صالحة
+`ApplicationException`: إذا أرجعت الخدمة خطأ
+
+### `row_embeddings_query(self, text: str, schema_name: str, user: str = 'trustgraph', collection: str = 'default', index_name: str | None = None, limit: int = 10, **kwargs: Any)`
+
+الاستعلام عن تضمينات الصفوف للبحث الدلالي عن البيانات المهيكلة.
+
+يقوم بإجراء بحث دلالي عبر تضمينات فهرس الصفوف للعثور على الصفوف التي
+تكون قيم الحقول المفهرسة فيها الأكثر تشابهًا مع النص المدخل. يتيح
+المطابقة التقريبية/الدلالية على البيانات المهيكلة.
+
+**الوسائط:**
+
+`text`: نص الاستعلام للبحث الدلالي
+`schema_name`: اسم المخطط للبحث داخله
+`user`: معرف المستخدم (افتراضي: "trustgraph")
+`collection`: معرف المجموعة (افتراضي: "default")
+`index_name`: اسم الفهرس الاختياري لتصفية البحث في فهرس معين
+`limit`: الحد الأقصى لعدد النتائج المراد إرجاعها (افتراضي: 10)
+`**kwargs`: معلمات إضافية خاصة بالخدمة
+
+**الإرجاع:** dict: استجابة تحتوي على التطابقات مع index_name و index_value و text و score
+
+**مثال:**
+
+```python
+async_flow = await api.async_flow()
+flow = async_flow.id("default")
+
+# Search for customers by name similarity
+results = await flow.row_embeddings_query(
+ text="John Smith",
+ schema_name="customers",
+ user="trustgraph",
+ collection="sales",
+ limit=5
+)
+
+for match in results.get("matches", []):
+ print(f"{match['index_name']}: {match['index_value']} (score: {match['score']})")
+```
+
+### `rows_query(self, query: str, user: str, collection: str, variables: Dict | None = None, operation_name: str | None = None, **kwargs: Any)`
+
+تنفيذ استعلام GraphQL على الصفوف المخزنة.
+
+تستخدم الاستعلامات صفوف البيانات المهيكلة باستخدام بناء جملة GraphQL. تدعم الاستعلامات المعقدة
+مع المتغيرات والعمليات المسماة.
+
+**الوسائط:**
+
+`query`: سلسلة استعلام GraphQL
+`user`: معرف المستخدم
+`collection`: معرف المجموعة التي تحتوي على الصفوف
+`variables`: متغيرات استعلام GraphQL اختيارية
+`operation_name`: اسم العملية الاختياري للاستعلامات متعددة العمليات
+`**kwargs`: معلمات إضافية خاصة بالخدمة
+
+**الإرجاع:** dict: استجابة GraphQL مع البيانات و/أو الأخطاء
+
+**مثال:**
+
+```python
+async_flow = await api.async_flow()
+flow = async_flow.id("default")
+
+# Execute GraphQL query
+query = '''
+ query GetUsers($status: String!) {
+ users(status: $status) {
+ id
+ name
+ email
+ }
+ }
+'''
+
+result = await flow.rows_query(
+ query=query,
+ user="trustgraph",
+ collection="users",
+ variables={"status": "active"}
+)
+
+for user in result.get("data", {}).get("users", []):
+ print(f"{user['name']}: {user['email']}")
+```
+
+### `text_completion(self, system: str, prompt: str, **kwargs: Any) -> str`
+
+توليد إكمال النص (غير متدفق).
+
+يقوم بإنشاء استجابة نصية من نموذج لغوي كبير (LLM) بناءً على موجه النظام وموجه المستخدم.
+يُرجع النص الكامل للاستجابة.
+
+ملاحظة: هذه الطريقة لا تدعم التدفق. لتوليد النص المتدفق،
+استخدم AsyncSocketFlowInstance.text_completion() بدلاً من ذلك.
+
+**الوسائط:**
+
+`system`: موجه النظام الذي يحدد سلوك نموذج اللغة الكبير.
+`prompt`: موجه المستخدم أو السؤال.
+`**kwargs`: معلمات إضافية خاصة بالخدمة.
+
+**الإرجاع:** str: النص الكامل للاستجابة التي تم إنشاؤها.
+
+**مثال:**
+
+```python
+async_flow = await api.async_flow()
+flow = async_flow.id("default")
+
+# Generate text
+response = await flow.text_completion(
+ system="You are a helpful assistant.",
+ prompt="Explain quantum computing in simple terms."
+)
+print(response)
+```
+
+### `triples_query(self, s=None, p=None, o=None, user=None, collection=None, limit=100, **kwargs: Any)`
+
+الاستعلام عن ثلاثيات RDF باستخدام مطابقة الأنماط.
+
+تبحث عن ثلاثيات تتطابق مع الموضوع والفاعل والمفعول به المحددة. تستخدم الأنماط "None" كحرف بدل لمطابقة أي قيمة.
+
+
+**الوسائط:**
+
+`s`: نمط الموضوع (None للجميع)
+`p`: نمط الفاعل (None للجميع)
+`o`: نمط المفعول به (None للجميع)
+`user`: معرف المستخدم (None لجميع المستخدمين)
+`collection`: معرف المجموعة (None لجميع المجموعات)
+`limit`: الحد الأقصى لعدد الثلاثيات المراد إرجاعها (الافتراضي: 100)
+`**kwargs`: معلمات إضافية خاصة بالخدمة
+
+**الإرجاع:** dict: استجابة تحتوي على الثلاثيات المتطابقة
+
+**مثال:**
+
+```python
+async_flow = await api.async_flow()
+flow = async_flow.id("default")
+
+# Find all triples with a specific predicate
+results = await flow.triples_query(
+ p="knows",
+ user="trustgraph",
+ collection="social",
+ limit=50
+)
+
+for triple in results.get("triples", []):
+ print(f"{triple['s']} knows {triple['o']}")
+```
+
+
+--
+
+## `SocketClient`
+
+```python
+from trustgraph.api import SocketClient
+```
+
+عميل WebSocket متزامن لعمليات البث.
+
+يوفر واجهة متزامنة لخدمات TrustGraph القائمة على WebSocket،
+مع تغليف مكتبة WebSocket غير المتزامنة باستخدام مولدات متزامنة لسهولة الاستخدام.
+يدعم عمليات البث من الوكلاء، واستعلامات RAG، وإكمال النصوص.
+
+ملاحظة: هذا هو غلاف متزامن لعمليات WebSocket غير المتزامنة. للحصول على دعم غير متزامن حقيقي، استخدم AsyncSocketClient بدلاً من ذلك.
+
+### الطرق
+
+
+### `__init__(self, url: str, timeout: int, token: str | None) -> None`
+
+تهيئة عميل WebSocket متزامن.
+
+**الوسائط:**
+
+`url`: عنوان URL الأساسي لواجهة برمجة تطبيقات TrustGraph (سيتم تحويل HTTP/HTTPS إلى WS/WSS).
+`timeout`: مهلة WebSocket بالثواني.
+`token`: رمز مميز اختياري للمصادقة.
+
+### `close(self) -> None`
+
+إغلاق اتصالات WebSocket.
+
+ملاحظة: تتم معالجة التنظيف تلقائيًا بواسطة مديري السياق في التعليمات البرمجية غير المتزامنة.
+
+### `flow(self, flow_id: str) -> 'SocketFlowInstance'`
+
+الحصول على مثيل تدفق لعمليات بث WebSocket.
+
+**الوسائط:**
+
+`flow_id`: معرف التدفق.
+
+**الإرجاع:** SocketFlowInstance: مثيل التدفق مع طرق البث.
+
+**مثال:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+# Stream agent responses
+for chunk in flow.agent(question="Hello", user="trustgraph", streaming=True):
+ print(chunk.content, end='', flush=True)
+```
+
+
+--
+
+## `SocketFlowInstance`
+
+```python
+from trustgraph.api import SocketFlowInstance
+```
+
+مثال على تدفق WebSocket المتزامن لعمليات البث.
+
+يوفر نفس الواجهة مثل FlowInstance الخاص بـ REST ولكنه يدعم
+بثًا يعتمد على WebSocket للاستجابات في الوقت الفعلي. تدعم جميع الطرق معلمة اختيارية
+`streaming` لتمكين تسليم النتائج التدريجي.
+
+### الطرق
+
+### `__init__(self, client: trustgraph.api.socket_client.SocketClient, flow_id: str) -> None`
+
+تهيئة مثيل تدفق المقبس.
+
+**الوسائط:**
+
+`client`: عميل المقبس الأبوي.
+`flow_id`: معرف التدفق.
+
+### `agent(self, question: str, user: str, state: Dict[str, Any] | None = None, group: str | None = None, history: List[Dict[str, Any]] | None = None, streaming: bool = False, **kwargs: Any) -> Dict[str, Any] | Iterator[trustgraph.api.types.StreamingChunk]`
+
+تنفيذ عملية وكيل مع دعم البث.
+
+يمكن للوكلاء إجراء عمليات استدلال متعددة الخطوات مع استخدام الأدوات. تقوم هذه الطريقة دائمًا
+بإرجاع أجزاء البث (الأفكار والملاحظات والإجابات) حتى عندما
+يكون streaming=False، لإظهار عملية تفكير الوكيل.
+
+**الوسائط:**
+
+`question`: سؤال المستخدم أو التعليمات.
+`user`: معرف المستخدم.
+`state`: قاموس حالة اختياري للمحادثات التي تعتمد على الحالة.
+`group`: معرف مجموعة اختياري للسياقات متعددة المستخدمين.
+`history`: سجل محادثة اختياري كقائمة من قواميس الرسائل.
+`streaming`: تمكين وضع البث (افتراضي: False).
+`**kwargs`: معلمات إضافية يتم تمريرها إلى خدمة الوكيل.
+
+**الإرجاع:** Iterator[StreamingChunk]: سلسلة من أفكار الوكيل وملاحظاته وإجاباته.
+
+**مثال:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+# Stream agent reasoning
+for chunk in flow.agent(
+ question="What is quantum computing?",
+ user="trustgraph",
+ streaming=True
+):
+ if isinstance(chunk, AgentThought):
+ print(f"[Thinking] {chunk.content}")
+ elif isinstance(chunk, AgentObservation):
+ print(f"[Observation] {chunk.content}")
+ elif isinstance(chunk, AgentAnswer):
+ print(f"[Answer] {chunk.content}")
+```
+
+### `agent_explain(self, question: str, user: str, collection: str, state: Dict[str, Any] | None = None, group: str | None = None, history: List[Dict[str, Any]] | None = None, **kwargs: Any) -> Iterator[trustgraph.api.types.StreamingChunk | trustgraph.api.types.ProvenanceEvent]`
+
+تنفيذ عملية وكيل مع دعم الشفافية.
+
+يقوم بإرسال كل من أجزاء المحتوى (أفكار الوكيل، ملاحظات الوكيل، إجابات الوكيل)
+وأحداث المصدر (ProvenanceEvent). تحتوي أحداث المصدر على عناوين URI
+يمكن استردادها باستخدام ExplainabilityClient للحصول على معلومات تفصيلية
+حول عملية تفكير الوكيل.
+
+يتكون تتبع الوكيل من:
+الجلسة: السؤال الأولي وبيانات تعريف الجلسة.
+التكرارات: كل دورة من الأفكار/الإجراءات/الملاحظات.
+الاستنتاج: الإجابة النهائية.
+
+**الوسائط:**
+
+`question`: سؤال المستخدم أو التعليمات.
+`user`: معرف المستخدم.
+`collection`: معرف المجموعة لتخزين المصادر.
+`state`: قاموس حالة اختياري للمحادثات التي تعتمد على الحالة.
+`group`: معرف المجموعة الاختياري للسياقات متعددة المستخدمين.
+`history`: سجل المحادثة الاختياري كقائمة من قواميس الرسائل.
+`**kwargs`: معلمات إضافية يتم تمريرها إلى خدمة الوكيل.
+`Yields`:
+`Union[StreamingChunk, ProvenanceEvent]`: أجزاء الوكيل وأحداث المصدر.
+
+**مثال:**
+
+```python
+from trustgraph.api import Api, ExplainabilityClient, ProvenanceEvent
+from trustgraph.api import AgentThought, AgentObservation, AgentAnswer
+
+socket = api.socket()
+flow = socket.flow("default")
+explain_client = ExplainabilityClient(flow)
+
+provenance_ids = []
+for item in flow.agent_explain(
+ question="What is the capital of France?",
+ user="trustgraph",
+ collection="default"
+):
+ if isinstance(item, AgentThought):
+ print(f"[Thought] {item.content}")
+ elif isinstance(item, AgentObservation):
+ print(f"[Observation] {item.content}")
+ elif isinstance(item, AgentAnswer):
+ print(f"[Answer] {item.content}")
+ elif isinstance(item, ProvenanceEvent):
+ provenance_ids.append(item.explain_id)
+
+# Fetch session trace after completion
+if provenance_ids:
+ trace = explain_client.fetch_agent_trace(
+ provenance_ids[0], # Session URI is first
+ graph="urn:graph:retrieval",
+ user="trustgraph",
+ collection="default"
+ )
+```
+
+### `document_embeddings_query(self, text: str, user: str, collection: str, limit: int = 10, **kwargs: Any) -> Dict[str, Any]`
+
+الاستعلام عن أجزاء المستندات باستخدام التشابه الدلالي.
+
+**الوسائط:**
+
+`text`: نص الاستعلام للبحث الدلالي
+`user`: معرف المستخدم/مساحة المفاتيح
+`collection`: معرف المجموعة
+`limit`: الحد الأقصى لعدد النتائج (افتراضي: 10)
+`**kwargs`: معلمات إضافية يتم تمريرها إلى الخدمة
+
+**الإرجاع:** قاموس: نتائج الاستعلام مع معرفات الأجزاء لأجزاء المستندات المطابقة
+
+**مثال:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+results = flow.document_embeddings_query(
+ text="machine learning algorithms",
+ user="trustgraph",
+ collection="research-papers",
+ limit=5
+)
+# results contains {"chunks": [{"chunk_id": "...", "score": 0.95}, ...]}
+```
+
+### `document_rag(self, query: str, user: str, collection: str, doc_limit: int = 10, streaming: bool = False, **kwargs: Any) -> str | Iterator[str]`
+
+تنفيذ استعلام RAG يعتمد على المستندات مع خيار التدفق.
+
+يستخدم تضمينات المتجهات للعثور على أجزاء المستندات ذات الصلة، ثم يقوم بإنشاء
+استجابة باستخدام نموذج لغوي كبير. يوفر وضع التدفق النتائج بشكل تدريجي.
+
+**الوسائط:**
+
+`query`: استعلام بلغة طبيعية
+`user`: معرف المستخدم/مساحة الاسم
+`collection`: معرف المجموعة
+`doc_limit`: الحد الأقصى لعدد أجزاء المستندات التي سيتم استرجاعها (افتراضي: 10)
+`streaming`: تمكين وضع التدفق (افتراضي: False)
+`**kwargs`: معلمات إضافية يتم تمريرها إلى الخدمة
+
+**الإرجاع:** Union[str, Iterator[str]]: الاستجابة الكاملة أو سلسلة من أجزاء النص
+
+**مثال:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+# Streaming document RAG
+for chunk in flow.document_rag(
+ query="Summarize the key findings",
+ user="trustgraph",
+ collection="research-papers",
+ doc_limit=5,
+ streaming=True
+):
+ print(chunk, end='', flush=True)
+```
+
+### `document_rag_explain(self, query: str, user: str, collection: str, doc_limit: int = 10, **kwargs: Any) -> Iterator[trustgraph.api.types.RAGChunk | trustgraph.api.types.ProvenanceEvent]`
+
+تنفيذ استعلام RAG يعتمد على المستند مع دعم الشفافية.
+
+يقوم بإرسال كل من أجزاء المحتوى (RAGChunk) وأحداث المصدر (ProvenanceEvent).
+تحتوي أحداث المصدر على عناوين URI يمكن استردادها باستخدام ExplainabilityClient
+للحصول على معلومات تفصيلية حول كيفية إنشاء الاستجابة.
+
+يتكون تتبع RAG للمستند من:
+السؤال: استعلام المستخدم.
+الاستكشاف: الأجزاء المستردة من مستودع المستندات (عدد الأجزاء).
+التوليف: الإجابة التي تم إنشاؤها.
+
+**الوسائط:**
+
+`query`: استعلام بلغة طبيعية.
+`user`: معرف المستخدم/المساحة.
+`collection`: معرف المجموعة.
+`doc_limit`: الحد الأقصى لعدد أجزاء المستندات التي سيتم استردادها (افتراضي: 10).
+`**kwargs`: معلمات إضافية يتم تمريرها إلى الخدمة.
+`Yields`:
+`Union[RAGChunk, ProvenanceEvent]`: أجزاء المحتوى وأحداث المصدر.
+
+**مثال:**
+
+```python
+from trustgraph.api import Api, ExplainabilityClient, RAGChunk, ProvenanceEvent
+
+socket = api.socket()
+flow = socket.flow("default")
+explain_client = ExplainabilityClient(flow)
+
+for item in flow.document_rag_explain(
+ query="Summarize the key findings",
+ user="trustgraph",
+ collection="research-papers",
+ doc_limit=5
+):
+ if isinstance(item, RAGChunk):
+ print(item.content, end='', flush=True)
+ elif isinstance(item, ProvenanceEvent):
+ # Fetch entity details
+ entity = explain_client.fetch_entity(
+ item.explain_id,
+ graph=item.explain_graph,
+ user="trustgraph",
+ collection="research-papers"
+ )
+ print(f"Event: {entity}", file=sys.stderr)
+```
+
+### `embeddings(self, texts: list, **kwargs: Any) -> Dict[str, Any]`
+
+توليد تضمينات متجهة لنص أو أكثر.
+
+**الوسائط:**
+
+`texts`: قائمة بالنصوص المدخلة لإنشاء التضمينات.
+`**kwargs`: معلمات إضافية يتم تمريرها إلى الخدمة.
+
+**الإرجاع:** قاموس: استجابة تحتوي على المتجهات (مجموعة واحدة لكل نص مدخل).
+
+**مثال:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+result = flow.embeddings(["quantum computing"])
+vectors = result.get("vectors", [])
+```
+
+### `graph_embeddings_query(self, text: str, user: str, collection: str, limit: int = 10, **kwargs: Any) -> Dict[str, Any]`
+
+الاستعلام عن كيانات الرسم البياني المعرفي باستخدام التشابه الدلالي.
+
+**الوسائط:**
+
+`text`: نص الاستعلام للبحث الدلالي
+`user`: معرف المستخدم/مساحة المفاتيح
+`collection`: معرف المجموعة
+`limit`: الحد الأقصى لعدد النتائج (افتراضي: 10)
+`**kwargs`: معلمات إضافية يتم تمريرها إلى الخدمة
+
+**الإرجاع:** dict: نتائج الاستعلام مع الكيانات المشابهة
+
+**مثال:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+results = flow.graph_embeddings_query(
+ text="physicist who discovered radioactivity",
+ user="trustgraph",
+ collection="scientists",
+ limit=5
+)
+```
+
+### `graph_rag(self, query: str, user: str, collection: str, max_subgraph_size: int = 1000, max_subgraph_count: int = 5, max_entity_distance: int = 3, streaming: bool = False, **kwargs: Any) -> str | Iterator[str]`
+
+تنفيذ استعلام RAG يعتمد على الرسم البياني مع خيار التدفق.
+
+يستخدم هيكل الرسم البياني للمعرفة للعثور على السياق ذي الصلة، ثم يقوم بإنشاء
+استجابة باستخدام نموذج لغوي كبير. يوفر وضع التدفق النتائج بشكل تدريجي.
+
+**الوسائط:**
+
+`query`: استعلام بلغة طبيعية
+`user`: معرف المستخدم/مساحة الاسم
+`collection`: معرف المجموعة
+`max_subgraph_size`: الحد الأقصى لإجمالي الثلاثيات في الرسم البياني الفرعي (افتراضي: 1000)
+`max_subgraph_count`: الحد الأقصى لعدد الرسوم البيانية الفرعية (افتراضي: 5)
+`max_entity_distance`: الحد الأقصى لعمق المسار (افتراضي: 3)
+`streaming`: تمكين وضع التدفق (افتراضي: False)
+`**kwargs`: معلمات إضافية يتم تمريرها إلى الخدمة
+
+**الإرجاع:** Union[str, Iterator[str]]: الاستجابة الكاملة أو سلسلة من أجزاء النص
+
+**مثال:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+# Streaming graph RAG
+for chunk in flow.graph_rag(
+ query="Tell me about Marie Curie",
+ user="trustgraph",
+ collection="scientists",
+ streaming=True
+):
+ print(chunk, end='', flush=True)
+```
+
+### `graph_rag_explain(self, query: str, user: str, collection: str, max_subgraph_size: int = 1000, max_subgraph_count: int = 5, max_entity_distance: int = 3, **kwargs: Any) -> Iterator[trustgraph.api.types.RAGChunk | trustgraph.api.types.ProvenanceEvent]`
+
+تنفيذ استعلام RAG المستند إلى الرسم البياني مع دعم الشفافية.
+
+يقوم بإرسال كل من أجزاء المحتوى (RAGChunk) وأحداث المصدر (ProvenanceEvent).
+تحتوي أحداث المصدر على معرفات URI يمكن استردادها باستخدام ExplainabilityClient
+للحصول على معلومات تفصيلية حول كيفية إنشاء الاستجابة.
+
+**الوسائط:**
+
+`query`: استعلام بلغة طبيعية.
+`user`: معرف المستخدم/المساحة.
+`collection`: معرف المجموعة.
+`max_subgraph_size`: الحد الأقصى لإجمالي الثلاثيات في الرسم البياني الفرعي (افتراضي: 1000).
+`max_subgraph_count`: الحد الأقصى لعدد الرسوم البيانية الفرعية (افتراضي: 5).
+`max_entity_distance`: الحد الأقصى لعمق المسار (افتراضي: 3).
+`**kwargs`: معلمات إضافية يتم تمريرها إلى الخدمة.
+`Yields`:
+`Union[RAGChunk, ProvenanceEvent]`: أجزاء المحتوى وأحداث المصدر.
+
+**مثال:**
+
+```python
+from trustgraph.api import Api, ExplainabilityClient, RAGChunk, ProvenanceEvent
+
+socket = api.socket()
+flow = socket.flow("default")
+explain_client = ExplainabilityClient(flow)
+
+provenance_ids = []
+response_text = ""
+
+for item in flow.graph_rag_explain(
+ query="Tell me about Marie Curie",
+ user="trustgraph",
+ collection="scientists"
+):
+ if isinstance(item, RAGChunk):
+ response_text += item.content
+ print(item.content, end='', flush=True)
+ elif isinstance(item, ProvenanceEvent):
+ provenance_ids.append(item.provenance_id)
+
+# Fetch explainability details
+for prov_id in provenance_ids:
+ entity = explain_client.fetch_entity(
+ prov_id,
+ graph="urn:graph:retrieval",
+ user="trustgraph",
+ collection="scientists"
+ )
+ print(f"Entity: {entity}")
+```
+
+### `mcp_tool(self, name: str, parameters: Dict[str, Any], **kwargs: Any) -> Dict[str, Any]`
+
+تنفيذ أداة بروتوكول سياق النموذج (MCP).
+
+**الوسائط:**
+
+`name`: اسم/معرّف الأداة
+`parameters`: قاموس معلمات الأداة
+`**kwargs`: معلمات إضافية يتم تمريرها إلى الخدمة
+
+**النتائج:** dict: نتيجة تنفيذ الأداة
+
+**مثال:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+result = flow.mcp_tool(
+ name="search-web",
+ parameters={"query": "latest AI news", "limit": 5}
+)
+```
+
+### `prompt(self, id: str, variables: Dict[str, str], streaming: bool = False, **kwargs: Any) -> str | Iterator[str]`
+
+تنفيذ قالب إرشادي مع إمكانية التدفق الاختياري.
+
+**الوسائط:**
+
+`id`: مُعرّف قالب الإرشادي.
+`variables`: قاموس لربط أسماء المتغيرات بقيمها.
+`streaming`: تفعيل وضع التدفق (افتراضي: False).
+`**kwargs`: معلمات إضافية يتم تمريرها إلى الخدمة.
+
+**الإرجاع:** Union[str, Iterator[str]]: الاستجابة الكاملة أو سلسلة من أجزاء النص.
+
+**مثال:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+# Streaming prompt execution
+for chunk in flow.prompt(
+ id="summarize-template",
+ variables={"topic": "quantum computing", "length": "brief"},
+ streaming=True
+):
+ print(chunk, end='', flush=True)
+```
+
+### `row_embeddings_query(self, text: str, schema_name: str, user: str = 'trustgraph', collection: str = 'default', index_name: str | None = None, limit: int = 10, **kwargs: Any) -> Dict[str, Any]`
+
+استعلام عن بيانات الصفوف باستخدام التشابه الدلالي على الحقول المفهرسة.
+
+يجد الصفوف التي تكون فيها قيم الحقول المفهرسة متشابهة دلاليًا مع
+النص المدخل، وذلك باستخدام تضمينات المتجهات. هذا يتيح المطابقة التقريبية/الدلالية
+على البيانات المنظمة.
+
+**الوسائط:**
+
+`text`: نص الاستعلام للبحث الدلالي
+`schema_name`: اسم المخطط للبحث داخله
+`user`: معرف المستخدم/مساحة المفاتيح (الافتراضي: "trustgraph")
+`collection`: معرف المجموعة (الافتراضي: "default")
+`index_name`: اسم الفهرس الاختياري لتصفية البحث في فهرس معين
+`limit`: الحد الأقصى لعدد النتائج (الافتراضي: 10)
+`**kwargs`: معلمات إضافية يتم تمريرها إلى الخدمة
+
+**الإرجاع:** dict: نتائج الاستعلام مع التطابقات التي تحتوي على index_name و index_value و text و score
+
+**مثال:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+# Search for customers by name similarity
+results = flow.row_embeddings_query(
+ text="John Smith",
+ schema_name="customers",
+ user="trustgraph",
+ collection="sales",
+ limit=5
+)
+
+# Filter to specific index
+results = flow.row_embeddings_query(
+ text="machine learning engineer",
+ schema_name="employees",
+ index_name="job_title",
+ limit=10
+)
+```
+
+### `rows_query(self, query: str, user: str, collection: str, variables: Dict[str, Any] | None = None, operation_name: str | None = None, **kwargs: Any) -> Dict[str, Any]`
+
+تنفيذ استعلام GraphQL مقابل الصفوف المنظمة.
+
+**الوسائط:**
+
+`query`: سلسلة استعلام GraphQL
+`user`: معرف المستخدم/مساحة المفاتيح
+`collection`: معرف المجموعة
+`variables`: قاموس اختياري لمتغيرات الاستعلام
+`operation_name`: اسم العملية الاختياري للمستندات متعددة العمليات
+`**kwargs`: معلمات إضافية يتم تمريرها إلى الخدمة
+
+**الإرجاع:** dict: استجابة GraphQL مع البيانات والأخطاء و/أو الامتدادات
+
+**مثال:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+query = '''
+{
+ scientists(limit: 10) {
+ name
+ field
+ discoveries
+ }
+}
+'''
+result = flow.rows_query(
+ query=query,
+ user="trustgraph",
+ collection="scientists"
+)
+```
+
+### `text_completion(self, system: str, prompt: str, streaming: bool = False, **kwargs) -> str | Iterator[str]`
+
+تنفيذ إكمال النص مع خيار التدفق.
+
+**الوسائط:**
+
+`system`: نص النظام الذي يحدد سلوك المساعد.
+`prompt`: نص المستخدم/سؤال.
+`streaming`: تمكين وضع التدفق (افتراضي: False).
+`**kwargs`: معلمات إضافية يتم تمريرها إلى الخدمة.
+
+**الإرجاع:** Union[str, Iterator[str]]: الاستجابة الكاملة أو سلسلة من أجزاء النص.
+
+**مثال:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+# Non-streaming
+response = flow.text_completion(
+ system="You are helpful",
+ prompt="Explain quantum computing",
+ streaming=False
+)
+print(response)
+
+# Streaming
+for chunk in flow.text_completion(
+ system="You are helpful",
+ prompt="Explain quantum computing",
+ streaming=True
+):
+ print(chunk, end='', flush=True)
+```
+
+### `triples_query(self, s: str | Dict[str, Any] | None = None, p: str | Dict[str, Any] | None = None, o: str | Dict[str, Any] | None = None, g: str | None = None, user: str | None = None, collection: str | None = None, limit: int = 100, **kwargs: Any) -> List[Dict[str, Any]]`
+
+الاستعلام عن ثلاثيات الرسم البياني المعرفي باستخدام مطابقة الأنماط.
+
+**الوسائط:**
+
+`s`: عامل تصفية الموضوع - سلسلة URI، أو قاموس مصطلحات، أو None للرمز البري.
+`p`: عامل تصفية المسند - سلسلة URI، أو قاموس مصطلحات، أو None للرمز البري.
+`o`: عامل تصفية الكائن - سلسلة URI/حرفية، أو قاموس مصطلحات، أو None للرمز البري.
+`g`: عامل تصفية الرسم البياني المسمى - سلسلة URI أو None لجميع الرسوم البيانية.
+`user`: معرف المستخدم/مساحة المفاتيح (اختياري).
+`collection`: معرف المجموعة (اختياري).
+`limit`: الحد الأقصى للنتائج المراد إرجاعها (الافتراضي: 100).
+`**kwargs`: معلمات إضافية يتم تمريرها إلى الخدمة.
+
+**الإرجاع:** List[Dict]: قائمة بالثلاثيات المتطابقة بتنسيق السلك.
+
+**مثال:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+# Find all triples about a specific subject
+triples = flow.triples_query(
+ s="http://example.org/person/marie-curie",
+ user="trustgraph",
+ collection="scientists"
+)
+
+# Query with named graph filter
+triples = flow.triples_query(
+ s="urn:trustgraph:session:abc123",
+ g="urn:graph:retrieval",
+ user="trustgraph",
+ collection="default"
+)
+```
+
+### `triples_query_stream(self, s: str | Dict[str, Any] | None = None, p: str | Dict[str, Any] | None = None, o: str | Dict[str, Any] | None = None, g: str | None = None, user: str | None = None, collection: str | None = None, limit: int = 100, batch_size: int = 20, **kwargs: Any) -> Iterator[List[Dict[str, Any]]]`
+
+الاستعلام عن ثلاثيات الرسم البياني المعرفي باستخدام دفعات متدفقة.
+
+ينتج دفعات من الثلاثيات أثناء وصولها، مما يقلل من الوقت اللازم للحصول على النتيجة الأولى
+وتقليل الحمل الزائد للذاكرة لمجموعات النتائج الكبيرة.
+
+**الوسائط:**
+
+`s`: عامل تصفية الموضوع - سلسلة URI، أو قاموس مصطلحات، أو None للرمز البرمجي.
+`p`: عامل تصفية المسند - سلسلة URI، أو قاموس مصطلحات، أو None للرمز البرمجي.
+`o`: عامل تصفية الكائن - سلسلة URI/حرفية، أو قاموس مصطلحات، أو None للرمز البرمجي.
+`g`: عامل تصفية الرسم البياني المسمى - سلسلة URI أو None لجميع الرسوم البيانية.
+`user`: معرف المستخدم/مساحة المفاتيح (اختياري).
+`collection`: معرف المجموعة (اختياري).
+`limit`: الحد الأقصى للنتائج المراد إرجاعها (الافتراضي: 100).
+`batch_size`: الثلاثيات لكل دفعة (الافتراضي: 20).
+`**kwargs`: معلمات إضافية يتم تمريرها إلى الخدمة.
+`Yields`:
+`List[Dict]`: دفعات من الثلاثيات بتنسيق السلك.
+
+**مثال:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+for batch in flow.triples_query_stream(
+ user="trustgraph",
+ collection="default"
+):
+ for triple in batch:
+ print(triple["s"], triple["p"], triple["o"])
+```
+
+
+--
+
+## `AsyncSocketClient`
+
+```python
+from trustgraph.api import AsyncSocketClient
+```
+
+عميل WebSocket غير متزامن.
+
+### الطرق.
+
+### `__init__(self, url: str, timeout: int, token: str | None)`
+
+تهيئة الكائن الذاتي. راجع help(type(self)) للحصول على التوقيع الدقيق.
+
+### `aclose(self)`
+
+إغلاق اتصال WebSocket.
+
+### `flow(self, flow_id: str)`
+
+الحصول على مثيل التدفق غير المتزامن لعمليات WebSocket.
+
+
+--
+
+## `AsyncSocketFlowInstance`
+
+```python
+from trustgraph.api import AsyncSocketFlowInstance
+```
+
+مثيل تدفق WebSocket غير متزامن.
+
+### الطرق
+
+### `__init__(self, client: trustgraph.api.async_socket_client.AsyncSocketClient, flow_id: str)`
+
+تهيئة الكائن الذاتي. راجع help(type(self)) للحصول على التوقيع الدقيق.
+
+### `agent(self, question: str, user: str, state: Dict[str, Any] | None = None, group: str | None = None, history: list | None = None, streaming: bool = False, **kwargs) -> Dict[str, Any] | AsyncIterator`
+
+وكيل مع تدفق اختياري.
+
+### `document_rag(self, query: str, user: str, collection: str, doc_limit: int = 10, streaming: bool = False, **kwargs)`
+
+توثيق RAG مع تدفق اختياري.
+
+### `embeddings(self, texts: list, **kwargs)`
+
+إنشاء تضمينات نصية.
+
+### `graph_embeddings_query(self, text: str, user: str, collection: str, limit: int = 10, **kwargs)`
+
+الاستعلام عن تضمينات الرسم البياني للبحث الدلالي.
+
+### `graph_rag(self, query: str, user: str, collection: str, max_subgraph_size: int = 1000, max_subgraph_count: int = 5, max_entity_distance: int = 3, streaming: bool = False, **kwargs)`
+
+RAG للرسم البياني مع تدفق اختياري.
+
+### `mcp_tool(self, name: str, parameters: Dict[str, Any], **kwargs)`
+
+تنفيذ أداة MCP.
+
+### `prompt(self, id: str, variables: Dict[str, str], streaming: bool = False, **kwargs)`
+
+تنفيذ موجه مع تدفق اختياري.
+
+### `row_embeddings_query(self, text: str, schema_name: str, user: str = 'trustgraph', collection: str = 'default', index_name: str | None = None, limit: int = 10, **kwargs)`
+
+الاستعلام عن تضمينات الصفوف للبحث الدلالي على البيانات المنظمة.
+
+### `rows_query(self, query: str, user: str, collection: str, variables: Dict | None = None, operation_name: str | None = None, **kwargs)`
+
+استعلام GraphQL عن الصفوف المنظمة.
+
+### `text_completion(self, system: str, prompt: str, streaming: bool = False, **kwargs)`
+
+إكمال النص مع تدفق اختياري.
+
+### `triples_query(self, s=None, p=None, o=None, user=None, collection=None, limit=100, **kwargs)`
+
+استعلام نمط ثلاثي.
+
+
+--
+
+### `build_term(value: Any, term_type: str | None = None, datatype: str | None = None, language: str | None = None) -> Dict[str, Any] | None`
+
+إنشاء قاموس Term بتنسيق سلكي من قيمة.
+
+قواعد الكشف التلقائي (عندما يكون term_type هو None):
+ إذا كان بالفعل قاموسًا مع مفتاح 't' -> إرجاعه كما هو (قاموس Term بالفعل)
+ يبدأ بـ http://, https://, urn: -> IRI
+ محاط بأقواس الزاوية (مثل ) -> IRI (إزالة أقواس الزاوية)
+ أي شيء آخر -> حرفي
+
+**الوسائط:**
+
+`value`: قيمة المصطلح (سلسلة، قاموس، أو None)
+`term_type`: واحد من 'iri'، 'literal'، أو None للكشف التلقائي
+`datatype`: نوع البيانات للكائنات الحرفية (مثل xsd:integer)
+`language`: علامة اللغة للكائنات الحرفية (مثل en)
+
+**الإرجاع:** قاموس: قاموس Term بتنسيق سلكي، أو None إذا كانت القيمة هي None
+
+
+--
+
+## `BulkClient`
+
+```python
+from trustgraph.api import BulkClient
+```
+
+عميل للعمليات المجمعة المتزامنة للاستيراد/التصدير.
+
+يوفر نقل بيانات مجمع فعال عبر WebSocket لمجموعات البيانات الكبيرة.
+يغلف عمليات WebSocket غير المتزامنة باستخدام مولدات متزامنة لسهولة الاستخدام.
+
+ملاحظة: للحصول على دعم غير متزامن حقيقي، استخدم AsyncBulkClient بدلاً من ذلك.
+
+### الطرق
+
+### `__init__(self, url: str, timeout: int, token: str | None) -> None`
+
+تهيئة عميل مجمع متزامن.
+
+**الوسائط:**
+
+`url`: عنوان URL الأساسي لواجهة برمجة تطبيقات TrustGraph (سيتم تحويل HTTP/HTTPS إلى WS/WSS).
+`timeout`: مهلة WebSocket بالثواني.
+`token`: رمز مميز اختياري للمصادقة.
+
+### `close(self) -> None`
+
+إغلاق الاتصالات.
+
+### `export_document_embeddings(self, flow: str, **kwargs: Any) -> Iterator[Dict[str, Any]]`
+
+تصدير مجمّع لتضمينات المستندات من تدفق.
+
+يقوم بتنزيل جميع تضمينات أجزاء المستندات بكفاءة عبر بث WebSocket.
+
+**الوسائط:**
+
+`flow`: معرف التدفق.
+`**kwargs`: معلمات إضافية (محجوزة للاستخدام المستقبلي).
+
+**الإرجاع:** Iterator[Dict[str, Any]]: دفق من قواميس التضمين.
+
+**مثال:**
+
+```python
+bulk = api.bulk()
+
+# Export and process document embeddings
+for embedding in bulk.export_document_embeddings(flow="default"):
+ chunk_id = embedding.get("chunk_id")
+ vector = embedding.get("embedding")
+ print(f"{chunk_id}: {len(vector)} dimensions")
+```
+
+### `export_entity_contexts(self, flow: str, **kwargs: Any) -> Iterator[Dict[str, Any]]`
+
+تصدير كميات كبيرة من سياقات الكيانات من تدفق.
+
+يقوم بتنزيل جميع معلومات سياق الكيانات بكفاءة عبر بث WebSocket.
+
+**الوسائط:**
+
+`flow`: مُعرّف التدفق
+`**kwargs`: معلمات إضافية (محجوزة للاستخدام المستقبلي)
+
+**الإرجاع:** Iterator[Dict[str, Any]]: سلسلة من قواميس السياق
+
+**مثال:**
+
+```python
+bulk = api.bulk()
+
+# Export and process entity contexts
+for context in bulk.export_entity_contexts(flow="default"):
+ entity = context.get("entity")
+ text = context.get("context")
+ print(f"{entity}: {text[:100]}...")
+```
+
+### `export_graph_embeddings(self, flow: str, **kwargs: Any) -> Iterator[Dict[str, Any]]`
+
+تصدير جماعي لتمثيلات الرسم البياني من تدفق.
+
+يقوم بتنزيل جميع تمثيلات الكيانات في الرسم البياني بكفاءة عبر بث WebSocket.
+
+**الوسائط:**
+
+`flow`: مُعرّف التدفق.
+`**kwargs`: معلمات إضافية (محجوزة للاستخدام المستقبلي).
+
+**الإرجاع:** Iterator[Dict[str, Any]]: تدفق لقواميس التمثيل.
+
+**مثال:**
+
+```python
+bulk = api.bulk()
+
+# Export and process embeddings
+for embedding in bulk.export_graph_embeddings(flow="default"):
+ entity = embedding.get("entity")
+ vector = embedding.get("embedding")
+ print(f"{entity}: {len(vector)} dimensions")
+```
+
+### `export_triples(self, flow: str, **kwargs: Any) -> Iterator[trustgraph.api.types.Triple]`
+
+تصدير كميات كبيرة من الثلاثيات RDF من تدفق.
+
+يقوم بتنزيل جميع الثلاثيات بكفاءة عبر بث WebSocket.
+
+**الوسائط:**
+
+`flow`: مُعرّف التدفق.
+`**kwargs`: معلمات إضافية (محجوزة للاستخدام المستقبلي).
+
+**الإرجاع:** Iterator[Triple]: دفق لكائنات Triple.
+
+**مثال:**
+
+```python
+bulk = api.bulk()
+
+# Export and process triples
+for triple in bulk.export_triples(flow="default"):
+ print(f"{triple.s} -> {triple.p} -> {triple.o}")
+```
+
+### `import_document_embeddings(self, flow: str, embeddings: Iterator[Dict[str, Any]], **kwargs: Any) -> None`
+
+استيراد كميات كبيرة من تضمينات المستندات إلى مسار عمل.
+
+يقوم بتحميل تضمينات أجزاء المستندات بكفاءة عبر بث WebSocket
+لاستخدامها في استعلامات استرجاع المعلومات من المستندات (RAG).
+
+**الوسائط:**
+
+`flow`: مُعرّف مسار العمل.
+`embeddings`: مُكرّر ينتج قواميس التضمين.
+`**kwargs`: معلمات إضافية (محجوزة للاستخدام المستقبلي).
+
+**مثال:**
+
+```python
+bulk = api.bulk()
+
+# Generate document embeddings to import
+def doc_embedding_generator():
+ yield {"chunk_id": "doc1/p0/c0", "embedding": [0.1, 0.2, ...]}
+ yield {"chunk_id": "doc1/p0/c1", "embedding": [0.3, 0.4, ...]}
+ # ... more embeddings
+
+bulk.import_document_embeddings(
+ flow="default",
+ embeddings=doc_embedding_generator()
+)
+```
+
+### `import_entity_contexts(self, flow: str, contexts: Iterator[Dict[str, Any]], metadata: Dict[str, Any] | None = None, batch_size: int = 100, **kwargs: Any) -> None`
+
+استيراد كميات كبيرة من سياقات الكيانات إلى تدفق.
+
+يقوم بتحميل معلومات سياق الكيانات بكفاءة عبر بث WebSocket.
+توفر سياقات الكيانات سياقًا نصيًا إضافيًا حول كيانات الرسم البياني
+لتحسين أداء RAG.
+
+**الوسائط:**
+
+`flow`: مُعرّف التدفق.
+`contexts`: مُكرّر ينتج قواميس السياق.
+`metadata`: قاموس بيانات التعريف مع id و metadata والمستخدم والمجموعة.
+`batch_size`: عدد السياقات لكل دفعة (افتراضي 100).
+`**kwargs`: معلمات إضافية (محجوزة للاستخدام المستقبلي).
+
+**مثال:**
+
+```python
+bulk = api.bulk()
+
+# Generate entity contexts to import
+def context_generator():
+ yield {"entity": {"v": "entity1", "e": True}, "context": "Description..."}
+ yield {"entity": {"v": "entity2", "e": True}, "context": "Description..."}
+ # ... more contexts
+
+bulk.import_entity_contexts(
+ flow="default",
+ contexts=context_generator(),
+ metadata={"id": "doc1", "metadata": [], "user": "user1", "collection": "default"}
+)
+```
+
+### `import_graph_embeddings(self, flow: str, embeddings: Iterator[Dict[str, Any]], **kwargs: Any) -> None`
+
+استيراد كميات كبيرة من تضمينات الرسم البياني إلى مسار عمل.
+
+يقوم بتحميل تضمينات كيانات الرسم البياني بكفاءة عبر بث WebSocket.
+
+**الوسائط:**
+
+`flow`: مُعرّف مسار العمل.
+`embeddings`: مُكرّر ينتج قواميس التضمين.
+`**kwargs`: معلمات إضافية (محجوزة للاستخدام المستقبلي).
+
+**مثال:**
+
+```python
+bulk = api.bulk()
+
+# Generate embeddings to import
+def embedding_generator():
+ yield {"entity": "entity1", "embedding": [0.1, 0.2, ...]}
+ yield {"entity": "entity2", "embedding": [0.3, 0.4, ...]}
+ # ... more embeddings
+
+bulk.import_graph_embeddings(
+ flow="default",
+ embeddings=embedding_generator()
+)
+```
+
+### `import_rows(self, flow: str, rows: Iterator[Dict[str, Any]], **kwargs: Any) -> None`
+
+استيراد كميات كبيرة من الصفوف المنظمة إلى مسار عمل.
+
+يقوم بتحميل بيانات منظمة بكفاءة عبر بث WebSocket
+للاستخدام في استعلامات GraphQL.
+
+**الوسائط:**
+
+`flow`: مُعرّف مسار العمل.
+`rows`: مُكرّر ينتج قواميس الصفوف.
+`**kwargs`: معلمات إضافية (محجوزة للاستخدام المستقبلي).
+
+**مثال:**
+
+```python
+bulk = api.bulk()
+
+# Generate rows to import
+def row_generator():
+ yield {"id": "row1", "name": "Row 1", "value": 100}
+ yield {"id": "row2", "name": "Row 2", "value": 200}
+ # ... more rows
+
+bulk.import_rows(
+ flow="default",
+ rows=row_generator()
+)
+```
+
+### `import_triples(self, flow: str, triples: Iterator[trustgraph.api.types.Triple], metadata: Dict[str, Any] | None = None, batch_size: int = 100, **kwargs: Any) -> None`
+
+استيراد كميات كبيرة من الثلاثيات RDF إلى تدفق.
+
+يقوم بتحميل أعداد كبيرة من الثلاثيات بكفاءة عبر بث WebSocket.
+
+**الوسائط:**
+
+`flow`: مُعرّف التدفق.
+`triples`: مُكرّر ينتج كائنات Triple.
+`metadata`: قاموس بيانات وصفية بمعرف، وبيانات وصفية، ومستخدم، ومجموعة.
+`batch_size`: عدد الثلاثيات لكل دفعة (افتراضي 100).
+`**kwargs`: معلمات إضافية (محجوزة للاستخدام المستقبلي).
+
+**مثال:**
+
+```python
+from trustgraph.api import Triple
+
+bulk = api.bulk()
+
+# Generate triples to import
+def triple_generator():
+ yield Triple(s="subj1", p="pred", o="obj1")
+ yield Triple(s="subj2", p="pred", o="obj2")
+ # ... more triples
+
+# Import triples
+bulk.import_triples(
+ flow="default",
+ triples=triple_generator(),
+ metadata={"id": "doc1", "metadata": [], "user": "user1", "collection": "default"}
+)
+```
+
+
+--
+
+## `AsyncBulkClient`
+
+```python
+from trustgraph.api import AsyncBulkClient
+```
+
+عميل العمليات المجمعة غير المتزامنة.
+
+### الطرق
+
+### `__init__(self, url: str, timeout: int, token: str | None) -> None`
+
+تهيئة الكائن الذاتي. راجع help(type(self)) للحصول على التوقيع الدقيق.
+
+### `aclose(self) -> None`
+
+إغلاق الاتصالات.
+
+### `export_document_embeddings(self, flow: str, **kwargs: Any) -> AsyncIterator[Dict[str, Any]]`
+
+تصدير مجمّع لتمثيلات المستندات عبر WebSocket.
+
+### `export_entity_contexts(self, flow: str, **kwargs: Any) -> AsyncIterator[Dict[str, Any]]`
+
+تصدير مجمّع لسياقات الكيانات عبر WebSocket.
+
+### `export_graph_embeddings(self, flow: str, **kwargs: Any) -> AsyncIterator[Dict[str, Any]]`
+
+تصدير مجمّع لتمثيلات الرسم البياني عبر WebSocket.
+
+### `export_triples(self, flow: str, **kwargs: Any) -> AsyncIterator[trustgraph.api.types.Triple]`
+
+تصدير مجمّع للثلاثيات عبر WebSocket.
+
+### `import_document_embeddings(self, flow: str, embeddings: AsyncIterator[Dict[str, Any]], **kwargs: Any) -> None`
+
+استيراد مجمّع لتمثيلات المستندات عبر WebSocket.
+
+### `import_entity_contexts(self, flow: str, contexts: AsyncIterator[Dict[str, Any]], **kwargs: Any) -> None`
+
+استيراد مجمّع لسياقات الكيانات عبر WebSocket.
+
+### `import_graph_embeddings(self, flow: str, embeddings: AsyncIterator[Dict[str, Any]], **kwargs: Any) -> None`
+
+استيراد مجمّع لتمثيلات الرسم البياني عبر WebSocket.
+
+### `import_rows(self, flow: str, rows: AsyncIterator[Dict[str, Any]], **kwargs: Any) -> None`
+
+استيراد مجمّع للصفوف عبر WebSocket.
+
+### `import_triples(self, flow: str, triples: AsyncIterator[trustgraph.api.types.Triple], **kwargs: Any) -> None`
+
+استيراد مجمّع للثلاثيات عبر WebSocket.
+
+
+--
+
+## `Metrics`
+
+```python
+from trustgraph.api import Metrics
+```
+
+عميل المقاييس المتزامنة.
+
+### الطرق.
+
+### `__init__(self, url: str, timeout: int, token: str | None) -> None`
+
+قم بتهيئة `self`. راجع `help(type(self))` للحصول على التوقيع الدقيق.
+
+### `get(self) -> str`
+
+احصل على مقاييس بروميثيوس كنص.
+
+
+--
+
+## `AsyncMetrics`
+
+```python
+from trustgraph.api import AsyncMetrics
+```
+
+عميل المقاييس غير المتزامن.
+
+### الطرق.
+
+### `__init__(self, url: str, timeout: int, token: str | None) -> None`
+
+قم بتهيئة `self`. راجع `help(type(self))` للحصول على التوقيع الدقيق.
+
+### `aclose(self) -> None`
+
+أغلق الاتصالات.
+
+### `get(self) -> str`
+
+احصل على مقاييس Prometheus كنص.
+
+
+--
+
+## `ExplainabilityClient`
+
+```python
+from trustgraph.api import ExplainabilityClient
+```
+
+عميل لجلب كيانات التفسير مع معالجة الاتساق النهائي.
+
+يستخدم اكتشاف حالة السكون: الجلب، الانتظار، الجلب مرة أخرى، المقارنة.
+إذا كانت النتائج متطابقة، فإن البيانات مستقرة.
+
+### الطرق
+
+### `__init__(self, flow_instance, retry_delay: float = 0.2, max_retries: int = 10)`
+
+تهيئة عميل التفسير.
+
+**الوسائط:**
+
+`flow_instance`: مثيل SocketFlowInstance للاستعلام عن الثلاثيات.
+`retry_delay`: التأخير بين عمليات إعادة المحاولة بالثواني (افتراضي: 0.2).
+`max_retries`: الحد الأقصى لعدد محاولات إعادة المحاولة (افتراضي: 10).
+
+### `detect_session_type(self, session_uri: str, graph: str | None = None, user: str | None = None, collection: str | None = None) -> str`
+
+الكشف عما إذا كانت الجلسة من نوع GraphRAG أو Agent.
+
+**الوسائط:**
+
+`session_uri`: عنوان URI للجلسة/السؤال.
+`graph`: الرسم البياني المسمى.
+`user`: معرف المستخدم/مساحة المفاتيح.
+`collection`: معرف المجموعة.
+
+**الإرجاع:** "graphrag" أو "agent".
+
+### `fetch_agent_trace(self, session_uri: str, graph: str | None = None, user: str | None = None, collection: str | None = None, api: Any = None, max_content: int = 10000) -> Dict[str, Any]`
+
+جلب مسار Agent الكامل بدءًا من عنوان URI للجلسة.
+
+يتبع سلسلة الأصل: سؤال -> تحليل (قائمة التحليلات) -> استنتاج.
+
+**الوسائط:**
+
+`session_uri`: عنوان URI لجلسة/سؤال الوكيل.
+`graph`: الرسم البياني المسمى (افتراضي: urn:graph:retrieval).
+`user`: معرف المستخدم/مساحة المفاتيح.
+`collection`: معرف المجموعة.
+`api`: مثيل TrustGraph Api للوصول إلى أمين المكتبة (اختياري).
+`max_content`: الحد الأقصى لطول المحتوى للاستنتاج.
+
+**الإرجاع:** قاموس يحتوي على السؤال والتكرارات (قائمة التحليلات) والكيانات الاستنتاجية.
+
+### `fetch_docrag_trace(self, question_uri: str, graph: str | None = None, user: str | None = None, collection: str | None = None, api: Any = None, max_content: int = 10000) -> Dict[str, Any]`
+
+جلب مسار DocumentRAG الكامل بدءًا من عنوان URI للسؤال.
+
+يتبع سلسلة الأصل:
+ سؤال -> تثبيت -> استكشاف -> توليف.
+
+**الوسائط:**
+
+`question_uri`: عنوان URI لكيان السؤال.
+`graph`: الرسم البياني المسمى (افتراضي: urn:graph:retrieval).
+`user`: معرف المستخدم/مساحة المفاتيح.
+`collection`: معرف المجموعة.
+`api`: مثيل TrustGraph Api للوصول إلى أمين المكتبة (اختياري).
+`max_content`: الحد الأقصى لطول المحتوى للتوليف.
+
+**الإرجاع:** قاموس يحتوي على السؤال والتثبيت والاستكشاف والكيانات التوليفية.
+
+### `fetch_document_content(self, document_uri: str, api: Any, user: str | None = None, max_content: int = 10000) -> str`
+
+جلب المحتوى من أمين المكتبة بواسطة عنوان URI للمستند.
+
+**الوسائط:**
+
+`document_uri`: عنوان URI للمستند في أمين المكتبة.
+`api`: مثيل TrustGraph Api للوصول إلى أمين المكتبة.
+`user`: معرف المستخدم لأمين المكتبة.
+`max_content`: الحد الأقصى لطول المحتوى المراد إرجاعه.
+
+**الإرجاع:** محتوى المستند كسلسلة.
+
+### `fetch_edge_selection(self, uri: str, graph: str | None = None, user: str | None = None, collection: str | None = None) -> trustgraph.api.explainability.EdgeSelection | None`
+
+جلب كيان تحديد الحافة (يستخدم بواسطة Focus).
+
+**الوسائط:**
+
+`uri`: عنوان URI لتحديد الحافة.
+`graph`: الرسم البياني المسمى للاستعلام عنه.
+`user`: معرف المستخدم/مساحة المفاتيح.
+`collection`: معرف المجموعة.
+
+**الإرجاع:** EdgeSelection أو None إذا لم يتم العثور عليه.
+
+### `fetch_entity(self, uri: str, graph: str | None = None, user: str | None = None, collection: str | None = None) -> trustgraph.api.explainability.ExplainEntity | None`
+
+جلب كيان قابل للتفسير باستخدام عنوان URI مع معالجة الاتساق النهائي.
+
+يستخدم اكتشاف حالة السكون:
+1. جلب الثلاثيات لعنوان URI
+2. إذا كانت النتائج صفرًا، أعد المحاولة
+3. إذا كانت النتائج غير صفرية، انتظر وجلب مرة أخرى
+4. إذا كانت النتائج هي نفسها، فإن البيانات مستقرة - قم بتحليلها وأرجعها
+5. إذا كانت النتائج مختلفة، لا تزال البيانات قيد الكتابة - أعد المحاولة
+
+**الوسائط:**
+
+`uri`: عنوان URI للكيان المراد جلبه
+`graph`: الرسم البياني المسمى للاستعلام (مثل "urn:graph:retrieval")
+`user`: معرف المستخدم/مساحة المفاتيح
+`collection`: معرف المجموعة
+
+**الإرجاع:** فئة ExplainEntity أو None إذا لم يتم العثور عليها
+
+### `fetch_focus_with_edges(self, uri: str, graph: str | None = None, user: str | None = None, collection: str | None = None) -> trustgraph.api.explainability.Focus | None`
+
+جلب كيان Focus وجميع اختيارات الحواف الخاصة به.
+
+**الوسائط:**
+
+`uri`: عنوان URI لكيان Focus
+`graph`: الرسم البياني المسمى للاستعلام
+`user`: معرف المستخدم/مساحة المفاتيح
+`collection`: معرف المجموعة
+
+**الإرجاع:** Focus مع اختيارات الحواف المعبأة، أو None
+
+### `fetch_graphrag_trace(self, question_uri: str, graph: str | None = None, user: str | None = None, collection: str | None = None, api: Any = None, max_content: int = 10000) -> Dict[str, Any]`
+
+جلب مسار GraphRAG الكامل بدءًا من عنوان URI لسؤال.
+
+يتبع سلسلة الأصل: سؤال -> تجسيد -> استكشاف -> Focus -> توليف
+
+**الوسائط:**
+
+`question_uri`: عنوان URI لكيان السؤال
+`graph`: الرسم البياني (افتراضي: urn:graph:retrieval)
+`user`: معرف المستخدم/مساحة المفاتيح
+`collection`: معرف المجموعة
+`api`: مثيل TrustGraph Api للوصول إلى أمين المكتبة (اختياري)
+`max_content`: أقصى طول للمحتوى للتوليف
+
+**الإرجاع:** قاموس يحتوي على كيانات السؤال والتجسيد والاستكشاف وFocus والتوليف
+
+### `list_sessions(self, graph: str | None = None, user: str | None = None, collection: str | None = None, limit: int = 50) -> List[trustgraph.api.explainability.Question]`
+
+سرد جميع جلسات التفسير (الأسئلة) في مجموعة.
+
+**الوسائط:**
+
+`graph`: الرسم البياني (افتراضي: urn:graph:retrieval)
+`user`: معرف المستخدم/مساحة المفاتيح
+`collection`: معرف المجموعة
+`limit`: الحد الأقصى لعدد الجلسات المراد إرجاعها
+
+**الإرجاع:** قائمة بكيانات السؤال مرتبة حسب الطابع الزمني (الأحدث أولاً)
+
+### `resolve_edge_labels(self, edge: Dict[str, str], user: str | None = None, collection: str | None = None) -> Tuple[str, str, str]`
+
+حل تسميات جميع مكونات ثلاثية الحافة.
+
+**الوسائط:**
+
+`edge`: قاموس مع مفاتيح "s" و "p" و "o"
+`user`: معرف المستخدم/مساحة المفاتيح
+`collection`: معرف المجموعة
+
+**الإرجاع:** مجموعة من (s_label, p_label, o_label)
+
+### `resolve_label(self, uri: str, user: str | None = None, collection: str | None = None) -> str`
+
+حل rdfs:label لعنوان URI، مع التخزين المؤقت.
+
+**الوسائط:**
+
+`uri`: عنوان URI للحصول على التسمية
+`user`: معرف المستخدم/مساحة المفاتيح
+`collection`: معرف المجموعة
+
+**الإرجاع:** التسمية إذا تم العثور عليها، وإلا فإن عنوان URI نفسه
+
+
+--
+
+## `ExplainEntity`
+
+```python
+from trustgraph.api import ExplainEntity
+```
+
+الفئة الأساسية لكائنات التفسير.
+
+**الحقول:**
+
+`uri`:
+`entity_type`:
+
+### الطرق
+
+### `__init__(self, uri: str, entity_type: str = '') -> None`
+
+تهيئة الكائن الذاتي. راجع help(type(self)) للحصول على التوقيع الدقيق.
+
+
+--
+
+## `Question`
+
+```python
+from trustgraph.api import Question
+```
+
+كيان السؤال - استعلام المستخدم الذي بدأ الجلسة.
+
+**الحقول:**
+
+`uri`:
+`entity_type`:
+`query`:
+`timestamp`:
+`question_type`:
+
+### الطرق
+
+### `__init__(self, uri: str, entity_type: str = '', query: str = '', timestamp: str = '', question_type: str = '') -> None`
+
+تهيئة الذات. راجع help(type(self)) للحصول على التوقيع الدقيق.
+
+
+--
+
+## `Exploration`
+
+```python
+from trustgraph.api import Exploration
+```
+
+كيان الاستكشاف - الحواف/الأجزاء المسترجعة من مستودع المعرفة.
+
+**الحقول:**
+
+`uri`:
+`entity_type`:
+`edge_count`:
+`chunk_count`:
+`entities`: typing.List[str]
+
+### الطرق
+
+### `__init__(self, uri: str, entity_type: str = '', edge_count: int = 0, chunk_count: int = 0, entities: List[str] = ) -> None`
+
+تهيئة الذات. راجع help(type(self)) للحصول على التوقيع الدقيق.
+
+
+--
+
+## `Focus`
+
+```python
+from trustgraph.api import Focus
+```
+
+الكيان المستهدف - الحواف المحددة مع الاستدلال باستخدام نماذج اللغة الكبيرة (GraphRAG فقط).
+
+**الحقول:**
+
+`uri`:
+`entity_type`:
+`selected_edge_uris`: typing.List[str]
+`edge_selections`: typing.List[trustgraph.api.explainability.EdgeSelection]
+
+### الطرق
+
+### `__init__(self, uri: str, entity_type: str = '', selected_edge_uris: List[str] = , edge_selections: List[trustgraph.api.explainability.EdgeSelection] = ) -> None`
+
+تهيئة الذات. راجع help(type(self)) للحصول على التوقيع الدقيق.
+
+
+--
+
+## `Synthesis`
+
+```python
+from trustgraph.api import Synthesis
+```
+
+الكيان التجميعي - الإجابة النهائية.
+
+**الحقول:**
+
+`uri`:
+`entity_type`:
+`document`:
+
+### الطرق
+
+### `__init__(self, uri: str, entity_type: str = '', document: str = '') -> None`
+
+تهيئة الذات. راجع help(type(self)) للحصول على التوقيع الدقيق.
+
+
+--
+
+## `Analysis`
+
+```python
+from trustgraph.api import Analysis
+```
+
+كيان التحليل - دورة تفكير/فعل/ملاحظة واحدة (للوكيل فقط).
+
+**الحقول:**
+
+`uri`:
+`entity_type`:
+`action`:
+`arguments`:
+`thought`:
+`observation`:
+
+### الطرق
+
+### `__init__(self, uri: str, entity_type: str = '', action: str = '', arguments: str = '', thought: str = '', observation: str = '') -> None`
+
+تهيئة الذات. راجع help(type(self)) للحصول على التوقيع الدقيق.
+
+
+--
+
+## `Conclusion`
+
+```python
+from trustgraph.api import Conclusion
+```
+
+الخلاصة: الإجابة النهائية (للممثل فقط).
+
+**الحقول:**
+
+`uri`:
+`entity_type`:
+`document`:
+
+### الطرق
+
+### `__init__(self, uri: str, entity_type: str = '', document: str = '') -> None`
+
+تهيئة الذات. راجع help(type(self)) للحصول على التوقيع الدقيق.
+
+
+--
+
+## `EdgeSelection`
+
+```python
+from trustgraph.api import EdgeSelection
+```
+
+حافة محددة مع شرح من خطوة GraphRAG Focus.
+
+**الحقول:**
+
+`uri`:
+`edge`: typing.Dict[str, str] | None
+`reasoning`:
+
+### الطرق
+
+### `__init__(self, uri: str, edge: Dict[str, str] | None = None, reasoning: str = '') -> None`
+
+تهيئة الذات. راجع help(type(self)) للحصول على التوقيع الدقيق.
+
+
+--
+
+### `wire_triples_to_tuples(wire_triples: List[Dict[str, Any]]) -> List[Tuple[str, str, Any]]`
+
+تحويل الثلاثيات بتنسيق الأسلاك إلى صفوف (s, p, o).
+
+
+--
+
+### `extract_term_value(term: Dict[str, Any]) -> Any`
+
+استخراج القيمة من قاموس Term بتنسيق الأسلاك.
+
+
+--
+
+## `Triple`
+
+```python
+from trustgraph.api import Triple
+```
+
+ثلاثية RDF تمثل عبارة في رسم بياني للمعرفة.
+
+**الحقول:**
+
+`s`:
+`p`:
+`o`:
+
+### الطرق
+
+### `__init__(self, s: str, p: str, o: str) -> None`
+
+تهيئة الذات. راجع help(type(self)) للحصول على التوقيع الدقيق.
+
+
+--
+
+## `Uri`
+
+```python
+from trustgraph.api import Uri
+```
+
+str(object='') -> str
+str(bytes_or_buffer[, encoding[, errors]]) -> str
+
+إنشاء كائن سلسلة جديد من الكائن المعطى. إذا تم تحديد ترميز أو
+معالج أخطاء، فيجب أن يعرض الكائن مخزن بيانات سيتم فك ترميزه باستخدام الترميز ومعالج الأخطاء المحددين.
+بخلاف ذلك، يتم إرجاع نتيجة object.__str__() (إذا تم تعريفه)
+أو repr(object).
+الترميز الافتراضي هو 'utf-8'.
+معالج الأخطاء الافتراضي هو 'strict'.
+
+
+### الطرق
+
+### `is_literal(self)`
+
+### `is_triple(self)`
+
+### `is_uri(self)`
+
+
+--
+
+## `Literal`
+
+```python
+from trustgraph.api import Literal
+```
+
+str(object='') -> str
+str(bytes_or_buffer[, encoding[, errors]]) -> str
+
+إنشاء كائن سلسلة جديد من الكائن المعطى. إذا تم تحديد ترميز أو
+معالجة الأخطاء، فيجب أن يعرض الكائن مخزن بيانات سيتم فك ترميزه باستخدام الترميز ومعالج الأخطاء المحدد.
+بخلاف ذلك، يتم إرجاع نتيجة object.__str__() (إذا تم تعريفه)
+أو repr(object).
+الترميز الافتراضي هو 'utf-8'.
+معالجة الأخطاء الافتراضية هي 'strict'.
+
+
+### الطرق
+
+### `is_literal(self)`
+
+### `is_triple(self)`
+
+### `is_uri(self)`
+
+
+--
+
+## `ConfigKey`
+
+```python
+from trustgraph.api import ConfigKey
+```
+
+مُعرّف مفتاح التكوين.
+
+**الحقول:**
+
+`type`:
+`key`:
+
+### الطرق
+
+### `__init__(self, type: str, key: str) -> None`
+
+تهيئة الذات. راجع help(type(self)) للحصول على التوقيع الدقيق.
+
+
+--
+
+## `ConfigValue`
+
+```python
+from trustgraph.api import ConfigValue
+```
+
+زوج مفتاح-قيمة للتكوين.
+
+**الحقول:**
+
+`type`:
+`key`:
+`value`:
+
+### الطرق
+
+### `__init__(self, type: str, key: str, value: str) -> None`
+
+تهيئة الذات. راجع help(type(self)) للحصول على التوقيع الدقيق.
+
+
+--
+
+## `DocumentMetadata`
+
+```python
+from trustgraph.api import DocumentMetadata
+```
+
+بيانات وصفية لـمستند في المكتبة.
+
+**الخصائص:**
+
+`parent_id: Parent document ID for child documents (empty for top`: (مستوى المستندات)
+
+**الحقول:**
+
+`id`:
+`time`:
+`kind`:
+`title`:
+`comments`:
+`metadata`: typing.List[trustgraph.api.types.Triple]
+`user`:
+`tags`: typing.List[str]
+`parent_id`:
+`document_type`:
+
+### الطرق
+
+### `__init__(self, id: str, time: datetime.datetime, kind: str, title: str, comments: str, metadata: List[trustgraph.api.types.Triple], user: str, tags: List[str], parent_id: str = '', document_type: str = 'source') -> None`
+
+تهيئة self. راجع help(type(self)) للحصول على التوقيع الدقيق.
+
+
+--
+
+## `ProcessingMetadata`
+
+```python
+from trustgraph.api import ProcessingMetadata
+```
+
+بيانات وصفية لعملية معالجة مستند نشطة.
+
+**الحقول:**
+
+`id`:
+`document_id`:
+`time`:
+`flow`:
+`user`:
+`collection`:
+`tags`: typing.List[str]
+
+### الطرق
+
+### `__init__(self, id: str, document_id: str, time: datetime.datetime, flow: str, user: str, collection: str, tags: List[str]) -> None`
+
+تهيئة الـ self. راجع help(type(self)) للحصول على التوقيع الدقيق.
+
+
+--
+
+## `CollectionMetadata`
+
+```python
+from trustgraph.api import CollectionMetadata
+```
+
+بيانات وصفية لمجموعة بيانات.
+
+توفر المجموعات تجميعًا منطقيًا وعزلًا للمستندات وبيانات الرسم البياني المعرفي.
+
+
+**الخصائص:**
+
+`name: Human`: اسم المجموعة الذي يمكن قراءته.
+
+**الحقول:**
+
+`user`:
+`collection`:
+`name`:
+`description`:
+`tags`: typing.List[str]
+
+### الطرق
+
+### `__init__(self, user: str, collection: str, name: str, description: str, tags: List[str]) -> None`
+
+تهيئة الذات. راجع help(type(self)) للحصول على التوقيع الدقيق.
+
+
+--
+
+## `StreamingChunk`
+
+```python
+from trustgraph.api import StreamingChunk
+```
+
+الفئة الأساسية لمعالجة أجزاء الاستجابة المتدفقة.
+
+تُستخدم لعمليات التدفق المستندة إلى WebSocket حيث يتم تسليم الاستجابات
+بشكل تدريجي أثناء إنشائها.
+
+**الحقول:**
+
+`content`:
+`end_of_message`:
+
+### الطرق
+
+### `__init__(self, content: str, end_of_message: bool = False) -> None`
+
+تهيئة الكائن الذاتي. راجع help(type(self)) للحصول على التوقيع الدقيق.
+
+
+--
+
+## `AgentThought`
+
+```python
+from trustgraph.api import AgentThought
+```
+
+جزء من تفكير أو عملية استنتاج الوكيل.
+
+يمثل خطوات التفكير أو التخطيط الداخلية للوكيل أثناء التنفيذ.
+تُظهر هذه الأجزاء كيف يفكر الوكيل في المشكلة.
+
+**الحقول:**
+
+`content`:
+`end_of_message`:
+`chunk_type`:
+
+### الطرق
+
+### `__init__(self, content: str, end_of_message: bool = False, chunk_type: str = 'thought') -> None`
+
+تهيئة الذات. راجع help(type(self)) للحصول على التوقيع الدقيق.
+
+
+--
+
+## `AgentObservation`
+
+```python
+from trustgraph.api import AgentObservation
+```
+
+جزء من ملاحظات تنفيذ أداة الوكيل.
+
+يمثل النتيجة أو الملاحظة الناتجة عن تنفيذ أداة أو إجراء.
+تُظهر هذه الأجزاء ما تعلمه الوكيل من استخدام الأدوات.
+
+**الحقول:**
+
+`content`:
+`end_of_message`:
+`chunk_type`:
+
+### الطرق
+
+### `__init__(self, content: str, end_of_message: bool = False, chunk_type: str = 'observation') -> None`
+
+تهيئة الذات. راجع help(type(self)) للحصول على التوقيع الدقيق.
+
+
+--
+
+## `AgentAnswer`
+
+```python
+from trustgraph.api import AgentAnswer
+```
+
+الجزء النهائي للإجابة من الوكيل.
+
+يمثل الاستجابة النهائية للوكيل للمستخدم بعد الانتهاء من
+عملية التفكير واستخدام الأدوات.
+
+**الخصائص:**
+
+`chunk_type: Always "final`: answer"
+
+**الحقول:**
+
+`content`:
+`end_of_message`:
+`chunk_type`:
+`end_of_dialog`:
+
+### الطرق
+
+### `__init__(self, content: str, end_of_message: bool = False, chunk_type: str = 'final-answer', end_of_dialog: bool = False) -> None`
+
+تهيئة الـ self. راجع help(type(self)) للحصول على التوقيع الدقيق.
+
+
+--
+
+## `RAGChunk`
+
+```python
+from trustgraph.api import RAGChunk
+```
+
+تدفق جزء (Chunk) لـ RAG (الجيل المعزز بالاسترجاع).
+
+يُستخدم لإرسال الاستجابات من مخطط RAG، و RAG المستندات، وإكمال النصوص،
+والخدمات التوليدية الأخرى.
+
+**الحقول:**
+
+`content`:
+`end_of_message`:
+`chunk_type`:
+`end_of_stream`:
+`error`: typing.Dict[str, str] | None
+
+### الطرق
+
+### `__init__(self, content: str, end_of_message: bool = False, chunk_type: str = 'rag', end_of_stream: bool = False, error: Dict[str, str] | None = None) -> None`
+
+تهيئة الذات (self). راجع help(type(self)) للحصول على التوقيع الدقيق.
+
+
+--
+
+## `ProvenanceEvent`
+
+```python
+from trustgraph.api import ProvenanceEvent
+```
+
+حدث التتبع الأصلي لغرض التوضيح.
+
+يتم إصداره أثناء استعلامات GraphRAG عندما يكون وضع التوضيح مفعلاً.
+يمثل كل حدث عقدة تتبع أصل تم إنشاؤها أثناء معالجة الاستعلام.
+
+**الحقول:**
+
+`explain_id`:
+`explain_graph`:
+`event_type`:
+
+### الطرق
+
+### `__init__(self, explain_id: str, explain_graph: str = '', event_type: str = '') -> None`
+
+تهيئة الذات. راجع help(type(self)) للحصول على التوقيع الدقيق.
+
+
+--
+
+## `ProtocolException`
+
+```python
+from trustgraph.api import ProtocolException
+```
+
+يتم إطلاق هذا الحدث عند حدوث أخطاء في بروتوكول WebSocket.
+
+
+--
+
+## `TrustGraphException`
+
+```python
+from trustgraph.api import TrustGraphException
+```
+
+الفئة الأساسية لجميع أخطاء خدمة TrustGraph.
+
+
+--
+
+## `AgentError`
+
+```python
+from trustgraph.api import AgentError
+```
+
+خطأ في خدمة الوكيل.
+
+
+--
+
+## `ConfigError`
+
+```python
+from trustgraph.api import ConfigError
+```
+
+خطأ في خدمة التكوين.
+
+
+--
+
+## `DocumentRagError`
+
+```python
+from trustgraph.api import DocumentRagError
+```
+
+خطأ استرجاع المستندات.
+
+
+--
+
+## `FlowError`
+
+```python
+from trustgraph.api import FlowError
+```
+
+خطأ في إدارة التدفق.
+
+
+--
+
+## `GatewayError`
+
+```python
+from trustgraph.api import GatewayError
+```
+
+خطأ في بوابة واجهة برمجة التطبيقات (API Gateway).
+
+
+--
+
+## `GraphRagError`
+
+```python
+from trustgraph.api import GraphRagError
+```
+
+خطأ استرجاع الرسوم البيانية.
+
+
+--
+
+## `LLMError`
+
+```python
+from trustgraph.api import LLMError
+```
+
+خطأ في خدمة نموذج اللغة الكبير.
+
+
+--
+
+## `LoadError`
+
+```python
+from trustgraph.api import LoadError
+```
+
+خطأ في تحميل البيانات.
+
+
+--
+
+## `LookupError`
+
+```python
+from trustgraph.api import LookupError
+```
+
+خطأ في البحث/الاستعلام.
+
+
+--
+
+## `NLPQueryError`
+
+```python
+from trustgraph.api import NLPQueryError
+```
+
+خطأ في خدمة الاستعلام عن معالجة اللغة الطبيعية.
+
+
+--
+
+## `RowsQueryError`
+
+```python
+from trustgraph.api import RowsQueryError
+```
+
+خطأ في خدمة استعلام الصفوف.
+
+
+--
+
+## `RequestError`
+
+```python
+from trustgraph.api import RequestError
+```
+
+خطأ في معالجة الطلب.
+
+
+--
+
+## `StructuredQueryError`
+
+```python
+from trustgraph.api import StructuredQueryError
+```
+
+خطأ في خدمة الاستعلامات المنظمة.
+
+
+--
+
+## `UnexpectedError`
+
+```python
+from trustgraph.api import UnexpectedError
+```
+
+خطأ غير متوقع/مجهول.
+
+
+--
+
+## `ApplicationException`
+
+```python
+from trustgraph.api import ApplicationException
+```
+
+الفئة الأساسية لجميع أخطاء خدمة TrustGraph.
+
+
+--
diff --git a/docs/python-api.es.md b/docs/python-api.es.md
new file mode 100644
index 00000000..78302da5
--- /dev/null
+++ b/docs/python-api.es.md
@@ -0,0 +1,4078 @@
+---
+layout: default
+title: "Referencia de la API de Python de TrustGraph"
+parent: "Spanish (Beta)"
+---
+
+# Referencia de la API de Python de 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.
+
+## Instalación
+
+```bash
+pip install trustgraph
+```
+
+## Inicio rápido
+
+Todas las clases y tipos se importan del paquete `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"
+)
+```
+
+## Tabla de Contenidos
+
+### Núcleo
+
+[Api](#api)
+
+### Clientes de Flujo
+
+[Flow](#flow)
+[FlowInstance](#flowinstance)
+[AsyncFlow](#asyncflow)
+[AsyncFlowInstance](#asyncflowinstance)
+
+### Clientes de WebSocket
+
+[SocketClient](#socketclient)
+[SocketFlowInstance](#socketflowinstance)
+[AsyncSocketClient](#asyncsocketclient)
+[AsyncSocketFlowInstance](#asyncsocketflowinstance)
+
+### Operaciones Masivas
+
+[BulkClient](#bulkclient)
+[AsyncBulkClient](#asyncbulkclient)
+
+### Métricas
+
+[Metrics](#metrics)
+[AsyncMetrics](#asyncmetrics)
+
+### Tipos de Datos
+
+[Triple](#triple)
+[ConfigKey](#configkey)
+[ConfigValue](#configvalue)
+[DocumentMetadata](#documentmetadata)
+[ProcessingMetadata](#processingmetadata)
+[CollectionMetadata](#collectionmetadata)
+[StreamingChunk](#streamingchunk)
+[AgentThought](#agentthought)
+[AgentObservation](#agentobservation)
+[AgentAnswer](#agentanswer)
+[RAGChunk](#ragchunk)
+
+### Excepciones
+
+[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
+```
+
+Cliente principal de la API TrustGraph para operaciones sincrónicas y asincrónicas.
+
+Esta clase proporciona acceso a todos los servicios de TrustGraph, incluyendo la gestión de flujos,
+operaciones de grafos de conocimiento, procesamiento de documentos, consultas RAG y más. Soporta
+tanto patrones de comunicación basados en REST como en WebSocket.
+
+El cliente se puede utilizar como un administrador de contexto para la limpieza automática de recursos:
+ ```python
+ with Api(url="http://localhost:8088/") as api:
+ result = api.flow().id("default").graph_rag(query="test")
+ ```
+
+### Métodos
+
+### `__aenter__(self)`
+
+Ingrese al administrador de contexto asíncrono.
+
+### `__aexit__(self, *args)`
+
+Salga del administrador de contexto asíncrono y cierre las conexiones.
+
+### `__enter__(self)`
+
+Ingrese al administrador de contexto síncrono.
+
+### `__exit__(self, *args)`
+
+Salga del administrador de contexto síncrono y cierre las conexiones.
+
+### `__init__(self, url='http://localhost:8088/', timeout=60, token: str | None = None)`
+
+Inicialice el cliente de la API TrustGraph.
+
+**Argumentos:**
+
+`url`: URL base para la API TrustGraph (por defecto: "http://localhost:8088/"")
+`timeout`: Tiempo de espera de la solicitud en segundos (por defecto: 60)
+`token`: Token de portador opcional para la autenticación
+
+**Ejemplo:**
+
+```python
+# Local development
+api = Api()
+
+# Production with authentication
+api = Api(
+ url="https://trustgraph.example.com/",
+ timeout=120,
+ token="your-api-token"
+)
+```
+
+### `aclose(self)`
+
+Cerrar todas las conexiones de cliente asíncronas.
+
+Este método cierra las conexiones asíncronas de WebSocket, las operaciones masivas y los flujos.
+Se llama automáticamente al salir de un administrador de contexto asíncrono.
+
+**Ejemplo:**
+
+```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)`
+
+Obtenga un cliente para operaciones masivas asíncronas.
+
+Proporciona operaciones de importación/exportación masivas en estilo async/await a través de WebSocket
+para un manejo eficiente de grandes conjuntos de datos.
+
+**Devuelve:** AsyncBulkClient: Cliente para operaciones masivas asíncronas.
+
+**Ejemplo:**
+
+```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)`
+
+Obtenga un cliente de flujo basado en REST asíncrono.
+
+Proporciona acceso al estilo async/await a las operaciones de flujo. Esto es preferible
+para aplicaciones y marcos de trabajo de Python asíncronos (FastAPI, aiohttp, etc.).
+
+**Devuelve:** AsyncFlow: Cliente de flujo asíncrono
+
+**Ejemplo:**
+
+```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)`
+
+Obtenga un cliente de métricas asíncrono.
+
+Proporciona acceso al estilo async/await a las métricas de Prometheus.
+
+**Retorna:** AsyncMetrics: Cliente de métricas asíncrono
+
+**Ejemplo:**
+
+```python
+async_metrics = api.async_metrics()
+prometheus_text = await async_metrics.get()
+print(prometheus_text)
+```
+
+### `async_socket(self)`
+
+Obtenga un cliente WebSocket asíncrono para operaciones de transmisión.
+
+Proporciona acceso a WebSocket con estilo async/await y soporte para transmisión.
+Este es el método preferido para la transmisión asíncrona en Python.
+
+**Retorna:** AsyncSocketClient: Cliente WebSocket asíncrono
+
+**Ejemplo:**
+
+```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)`
+
+Obtenga un cliente de operaciones masivas sincrónicas para la importación/exportación.
+
+Las operaciones masivas permiten la transferencia eficiente de grandes conjuntos de datos a través de conexiones WebSocket,
+incluyendo triples, incrustaciones, contextos de entidades y objetos.
+
+**Devuelve:** BulkClient: Cliente de operaciones masivas sincrónicas.
+
+**Ejemplo:**
+
+```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)`
+
+Cerrar todas las conexiones de cliente sincrónicas.
+
+Este método cierra las conexiones de WebSocket y de operaciones masivas.
+Se llama automáticamente al salir de un administrador de contexto.
+
+**Ejemplo:**
+
+```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)`
+
+Obtenga un cliente de Collection para administrar colecciones de datos.
+
+Las colecciones organizan documentos y datos de grafos de conocimiento en
+agrupaciones lógicas para el aislamiento y el control de acceso.
+
+**Devuelve:** Collection: Cliente de administración de colecciones
+
+**Ejemplo:**
+
+```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)`
+
+Obtenga un cliente de Config para administrar la configuración.
+
+**Retorna:** Config: Cliente de administración de configuración
+
+**Ejemplo:**
+
+```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)`
+
+Obtenga un cliente de Flow para administrar e interactuar con flujos.
+
+Los flujos son las unidades de ejecución principales en TrustGraph, y proporcionan acceso a
+servicios como agentes, consultas RAG, incrustaciones y procesamiento de documentos.
+
+**Devuelve:** Flow: Cliente de administración de flujos.
+
+**Ejemplo:**
+
+```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)`
+
+Obtenga un cliente de Knowledge para administrar los núcleos de grafos de conocimiento.
+
+**Retorna:** Knowledge: Cliente de administración de grafos de conocimiento.
+
+**Ejemplo:**
+
+```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)`
+
+Obtenga un cliente de la biblioteca para la gestión de documentos.
+
+La biblioteca proporciona almacenamiento de documentos, gestión de metadatos y
+coordinación del flujo de trabajo de procesamiento.
+
+**Devuelve:** Biblioteca: Cliente de gestión de la biblioteca de documentos
+
+**Ejemplo:**
+
+```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)`
+
+Obtiene un cliente de métricas sincrónico para la monitorización.
+
+Recupera métricas en formato Prometheus del servicio TrustGraph
+para la monitorización y la observabilidad.
+
+**Devuelve:** Métricas: Cliente de métricas sincrónico
+
+**Ejemplo:**
+
+```python
+metrics = api.metrics()
+prometheus_text = metrics.get()
+print(prometheus_text)
+```
+
+### `request(self, path, request)`
+
+Realizar una solicitud de API REST de bajo nivel.
+
+Este método se utiliza principalmente para uso interno, pero se puede utilizar para acceder directamente
+a la API cuando sea necesario.
+
+**Argumentos:**
+
+`path`: Ruta del punto final de la API (relativa a la URL base)
+`request`: Carga útil de la solicitud como un diccionario
+
+**Retorna:** dict: Objeto de respuesta
+
+**Lanza:**
+
+`ProtocolException`: Si el estado de la respuesta no es 200 o la respuesta no es JSON
+`ApplicationException`: Si la respuesta contiene un error
+
+**Ejemplo:**
+
+```python
+response = api.request("flow", {
+ "operation": "list-flows"
+})
+```
+
+### `socket(self)`
+
+Obtenga un cliente WebSocket síncrono para operaciones de transmisión.
+
+Las conexiones WebSocket proporcionan soporte de transmisión para respuestas en tiempo real
+de agentes, consultas RAG y finalizaciones de texto. Este método devuelve un
+envoltorio síncrono alrededor del protocolo WebSocket.
+
+**Retorna:** SocketClient: Cliente WebSocket síncrono
+
+**Ejemplo:**
+
+```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
+```
+
+Cliente de gestión de flujo para operaciones de planos de flujo y instancias de flujo.
+
+Esta clase proporciona métodos para administrar planos de flujo (plantillas) y
+instancias de flujo (flujos en ejecución). Los planos definen la estructura y
+los parámetros de los flujos, mientras que las instancias representan flujos activos que
+pueden ejecutar servicios.
+
+### Métodos
+
+### `__init__(self, api)`
+
+Inicializar el cliente de flujo.
+
+**Argumentos:**
+
+`api`: Instancia de Api principal para realizar solicitudes.
+
+### `delete_blueprint(self, blueprint_name)`
+
+Eliminar un plano de flujo.
+
+**Argumentos:**
+
+`blueprint_name`: Nombre del plano a eliminar.
+
+**Ejemplo:**
+
+```python
+api.flow().delete_blueprint("old-blueprint")
+```
+
+### `get(self, id)`
+
+Obtener la definición de una instancia de flujo en ejecución.
+
+**Argumentos:**
+
+`id`: ID de la instancia de flujo
+
+**Retorna:** dict: Definición de la instancia de flujo
+
+**Ejemplo:**
+
+```python
+flow_def = api.flow().get("default")
+print(flow_def)
+```
+
+### `get_blueprint(self, blueprint_name)`
+
+Obtener una definición de diagrama de flujo por nombre.
+
+**Argumentos:**
+
+`blueprint_name`: Nombre del diagrama de flujo a recuperar
+
+**Retorna:** dict: Definición del diagrama de flujo como un diccionario
+
+**Ejemplo:**
+
+```python
+blueprint = api.flow().get_blueprint("default")
+print(blueprint) # Blueprint configuration
+```
+
+### `id(self, id='default')`
+
+Obtener una instancia de FlowInstance para ejecutar operaciones en un flujo específico.
+
+**Argumentos:**
+
+`id`: Identificador del flujo (predeterminado: "default")
+
+**Retorna:** FlowInstance: Instancia de flujo para operaciones de servicio
+
+**Ejemplo:**
+
+```python
+flow = api.flow().id("my-flow")
+response = flow.text_completion(
+ system="You are helpful",
+ prompt="Hello"
+)
+```
+
+### `list(self)`
+
+Listar todas las instancias de flujo activas.
+
+**Retorna:** list[str]: Lista de identificadores de instancias de flujo.
+
+**Ejemplo:**
+
+```python
+flows = api.flow().list()
+print(flows) # ['default', 'flow-1', 'flow-2', ...]
+```
+
+### `list_blueprints(self)`
+
+Listar todos los planos de flujo disponibles.
+
+**Retorna:** list[str]: Lista de nombres de planos.
+
+**Ejemplo:**
+
+```python
+blueprints = api.flow().list_blueprints()
+print(blueprints) # ['default', 'custom-flow', ...]
+```
+
+### `put_blueprint(self, blueprint_name, definition)`
+
+Crear o actualizar un esquema de flujo.
+
+**Argumentos:**
+
+`blueprint_name`: Nombre para el esquema.
+`definition`: Diccionario de definición del esquema.
+
+**Ejemplo:**
+
+```python
+definition = {
+ "services": ["text-completion", "graph-rag"],
+ "parameters": {"model": "gpt-4"}
+}
+api.flow().put_blueprint("my-blueprint", definition)
+```
+
+### `request(self, path=None, request=None)`
+
+Realizar una solicitud de API con ámbito de flujo.
+
+**Argumentos:**
+
+`path`: Sufijo de ruta opcional para los puntos finales de flujo.
+`request`: Diccionario de carga útil de la solicitud.
+
+**Retorna:** dict: Objeto de respuesta.
+
+**Genera:**
+
+`RuntimeError`: Si no se especifica el parámetro de solicitud.
+
+### `start(self, blueprint_name, id, description, parameters=None)`
+
+Iniciar una nueva instancia de flujo a partir de un plano.
+
+**Argumentos:**
+
+`blueprint_name`: Nombre del plano a instanciar.
+`id`: Identificador único para la instancia de flujo.
+`description`: Descripción legible por humanos.
+`parameters`: Diccionario de parámetros opcionales.
+
+**Ejemplo:**
+
+```python
+api.flow().start(
+ blueprint_name="default",
+ id="my-flow",
+ description="My custom flow",
+ parameters={"model": "gpt-4"}
+)
+```
+
+### `stop(self, id)`
+
+Detener una instancia de flujo en ejecución.
+
+**Argumentos:**
+
+`id`: ID de la instancia de flujo a detener.
+
+**Ejemplo:**
+
+```python
+api.flow().stop("my-flow")
+```
+
+
+--
+
+## `FlowInstance`
+
+```python
+from trustgraph.api import FlowInstance
+```
+
+Cliente de instancia de flujo para ejecutar servicios en un flujo específico.
+
+Esta clase proporciona acceso a todos los servicios de TrustGraph, incluyendo:
+Completado de texto y embeddings
+Operaciones de agentes con gestión de estado
+Consultas RAG de gráficos y documentos
+Operaciones de grafos de conocimiento (triples, objetos)
+Carga y procesamiento de documentos
+Conversión de lenguaje natural a consulta GraphQL
+Análisis de datos estructurados y detección de esquemas
+Ejecución de herramientas MCP
+Plantillas de prompts
+
+Los servicios se acceden a través de una instancia de flujo en ejecución identificada por ID.
+
+### Métodos
+
+### `__init__(self, api, id)`
+
+Inicializar FlowInstance.
+
+**Argumentos:**
+
+`api`: Cliente de flujo padre
+`id`: Identificador de la instancia de flujo
+
+### `agent(self, question, user='trustgraph', state=None, group=None, history=None)`
+
+Ejecutar una operación de agente con capacidades de razonamiento y uso de herramientas.
+
+Los agentes pueden realizar razonamiento en múltiples pasos, usar herramientas y mantener el
+estado de la conversación en las interacciones. Esta es una versión síncrona no basada en streaming.
+
+**Argumentos:**
+
+`question`: Pregunta o instrucción del usuario
+`user`: Identificador del usuario (por defecto: "trustgraph")
+`state`: Diccionario de estado opcional para conversaciones con estado
+`group`: Identificador de grupo opcional para contextos multiusuario
+`history`: Historial de conversación opcional como lista de diccionarios de mensajes
+
+**Retorna:** str: Respuesta final del agente
+
+**Ejemplo:**
+
+```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)`
+
+Detectar el tipo de datos de una muestra de datos estructurados.
+
+**Argumentos:**
+
+`sample`: Muestra de datos a analizar (contenido de cadena)
+
+**Retorna:** diccionario con detected_type, confidence y metadatos opcionales.
+
+### `diagnose_data(self, sample, schema_name=None, options=None)`
+
+Realizar un diagnóstico de datos combinado: detectar el tipo y generar un descriptor.
+
+**Argumentos:**
+
+`sample`: Muestra de datos a analizar (contenido de cadena)
+`schema_name`: Nombre de esquema de destino opcional para la generación del descriptor.
+`options`: Parámetros opcionales (por ejemplo, delimitador para CSV).
+
+**Retorna:** diccionario con detected_type, confidence, descriptor y metadatos.
+
+### `document_embeddings_query(self, text, user, collection, limit=10)`
+
+Consultar fragmentos de documentos utilizando similitud semántica.
+
+Encuentra fragmentos de documentos cuyo contenido sea semánticamente similar al
+texto de entrada, utilizando incrustaciones vectoriales.
+
+**Argumentos:**
+
+`text`: Texto de consulta para la búsqueda semántica.
+`user`: Identificador de usuario/espacio de claves.
+`collection`: Identificador de colección.
+`limit`: Número máximo de resultados (por defecto: 10).
+
+**Retorna:** diccionario: Resultados de la consulta con fragmentos que contienen chunk_id y score.
+
+**Ejemplo:**
+
+```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)`
+
+Ejecutar una consulta de Generación Aumentada por Recuperación (RAG) basada en documentos.
+
+RAG basada en documentos utiliza incrustaciones vectoriales para encontrar fragmentos de documentos relevantes,
+y luego genera una respuesta utilizando un LLM con esos fragmentos como contexto.
+
+**Argumentos:**
+
+`query`: Consulta en lenguaje natural
+`user`: Identificador de usuario/espacio de claves (por defecto: "trustgraph")
+`collection`: Identificador de colección (por defecto: "default")
+`doc_limit`: Número máximo de fragmentos de documentos a recuperar (por defecto: 10)
+
+**Retorna:** str: Respuesta generada que incorpora el contexto del documento
+
+**Ejemplo:**
+
+```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)`
+
+Genera incrustaciones vectoriales para uno o más textos.
+
+Convierte textos en representaciones vectoriales densas adecuadas para la
+búsqueda semántica y la comparación de similitud.
+
+**Argumentos:**
+
+`texts`: Lista de textos de entrada para incrustar
+
+**Retorna:** list[list[list[float]]]: Incrustaciones vectoriales, un conjunto por texto de entrada
+
+**Ejemplo:**
+
+```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)`
+
+Generar un descriptor para el mapeo de datos estructurados a un esquema específico.
+
+**Argumentos:**
+
+`sample`: Muestra de datos a analizar (contenido de cadena)
+`data_type`: Tipo de datos (csv, json, xml)
+`schema_name`: Nombre del esquema de destino para la generación del descriptor
+`options`: Parámetros opcionales (por ejemplo, delimitador para CSV)
+
+**Retorna:** diccionario con el descriptor y metadatos
+
+### `graph_embeddings_query(self, text, user, collection, limit=10)`
+
+Consultar entidades de un grafo de conocimiento utilizando similitud semántica.
+
+Encuentra entidades en el grafo de conocimiento cuyas descripciones son semánticamente
+similares al texto de entrada, utilizando incrustaciones vectoriales.
+
+**Argumentos:**
+
+`text`: Texto de consulta para la búsqueda semántica
+`user`: Identificador de usuario/espacio de claves
+`collection`: Identificador de colección
+`limit`: Número máximo de resultados (por defecto: 10)
+
+**Retorna:** diccionario: Resultados de la consulta con entidades similares
+
+**Ejemplo:**
+
+```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)`
+
+Ejecutar una consulta de Generación Aumentada por Recuperación (RAG) basada en grafos.
+
+Graph RAG utiliza la estructura del grafo de conocimiento para encontrar el contexto relevante mediante
+el recorrido de las relaciones entre entidades, y luego genera una respuesta utilizando un LLM.
+
+**Argumentos:**
+
+`query`: Consulta en lenguaje natural
+`user`: Identificador de usuario/espacio de claves (por defecto: "trustgraph")
+`collection`: Identificador de colección (por defecto: "default")
+`entity_limit`: Número máximo de entidades a recuperar (por defecto: 50)
+`triple_limit`: Número máximo de triples por entidad (por defecto: 30)
+`max_subgraph_size`: Número máximo total de triples en el subgrafo (por defecto: 150)
+`max_path_length`: Profundidad máxima de recorrido (por defecto: 2)
+
+**Retorna:** str: Respuesta generada que incorpora el contexto del grafo
+
+**Ejemplo:**
+
+```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)`
+
+Cargar un documento binario para su procesamiento.
+
+Sube un documento (PDF, DOCX, imágenes, etc.) para la extracción y
+procesamiento a través de la canalización de documentos del flujo.
+
+**Argumentos:**
+
+`document`: Contenido del documento como bytes
+`id`: Identificador de documento opcional (se genera automáticamente si es None)
+`metadata`: Metadatos opcionales (lista de Triples o objeto con método emit)
+`user`: Identificador de usuario/espacio de claves (opcional)
+`collection`: Identificador de colección (opcional)
+
+**Retorna:** dict: Respuesta de procesamiento
+
+**Lanza:**
+
+`RuntimeError`: Si se proporcionan metadatos sin id
+
+**Ejemplo:**
+
+```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)`
+
+Cargar contenido de texto para su procesamiento.
+
+Carga contenido de texto para la extracción y el procesamiento a través de la
+canalización de texto del flujo.
+
+**Argumentos:**
+
+`text`: Contenido de texto como bytes
+`id`: Identificador de documento opcional (se genera automáticamente si es None)
+`metadata`: Metadatos opcionales (lista de Triples o objeto con método emit)
+`charset`: Codificación de caracteres (predeterminado: "utf-8")
+`user`: Identificador de usuario/espacio de claves (opcional)
+`collection`: Identificador de colección (opcional)
+
+**Retorna:** dict: Respuesta de procesamiento
+
+**Genera:**
+
+`RuntimeError`: Si se proporcionan metadatos sin id
+
+**Ejemplo:**
+
+```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={})`
+
+Ejecutar una herramienta de Protocolo de Contexto de Modelo (MCP).
+
+Las herramientas MCP proporcionan funcionalidades extensibles para agentes y flujos de trabajo,
+permitiendo la integración con sistemas y servicios externos.
+
+**Argumentos:**
+
+`name`: Nombre/identificador de la herramienta
+`parameters`: Diccionario de parámetros de la herramienta (por defecto: {})
+
+**Retorna:** str o dict: Resultado de la ejecución de la herramienta
+
+**Genera:**
+
+`ProtocolException`: Si el formato de la respuesta no es válido
+
+**Ejemplo:**
+
+```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)`
+
+Convertir una pregunta en lenguaje natural en una consulta GraphQL.
+
+**Argumentos:**
+
+`question`: Pregunta en lenguaje natural
+`max_results`: Número máximo de resultados a devolver (por defecto: 100)
+
+**Retorna:** diccionario con graphql_query, variables, detected_schemas, confidence
+
+### `prompt(self, id, variables)`
+
+Ejecutar una plantilla de prompt con sustitución de variables.
+
+Las plantillas de solicitud permiten patrones de solicitud reutilizables con variables dinámicas.
+de sustitución, útiles para una ingeniería de solicitudes consistente.
+
+**Argumentos:**
+
+`id`: Identificador de la plantilla de solicitud.
+`variables`: Diccionario de mapeos de nombres de variables a valores.
+
+**Retorna:** str o dict: Resultado de la solicitud renderizada (texto u objeto estructurado).
+
+**Genera:**
+
+`ProtocolException`: Si el formato de la respuesta no es válido.
+
+**Ejemplo:**
+
+```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)`
+
+Realice una solicitud de servicio en esta instancia de flujo.
+
+**Argumentos:**
+
+`path`: Ruta del servicio (por ejemplo, "service/text-completion")
+`request`: Diccionario de carga útil de la solicitud
+
+**Retorna:** dict: Respuesta del servicio
+
+### `row_embeddings_query(self, text, schema_name, user='trustgraph', collection='default', index_name=None, limit=10)`
+
+Consulta datos de fila utilizando similitud semántica en campos indexados.
+
+Encuentra filas cuyos valores de campo indexados son semánticamente similares al
+texto de entrada, utilizando incrustaciones vectoriales. Esto permite la coincidencia difusa/semántica
+en datos estructurados.
+
+**Argumentos:**
+
+`text`: Texto de consulta para la búsqueda semántica
+`schema_name`: Nombre del esquema para buscar
+`user`: Identificador de usuario/espacio de claves (predeterminado: "trustgraph")
+`collection`: Identificador de colección (predeterminado: "default")
+`index_name`: Nombre de índice opcional para filtrar la búsqueda a un índice específico
+`limit`: Número máximo de resultados (predeterminado: 10)
+
+**Retorna:** dict: Resultados de la consulta con coincidencias que contienen index_name, index_value, text y score
+
+**Ejemplo:**
+
+```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)`
+
+Ejecutar una consulta GraphQL contra filas estructuradas en el grafo de conocimiento.
+
+Consulta datos estructurados utilizando la sintaxis GraphQL, lo que permite consultas complejas
+con filtrado, agregación y recorrido de relaciones.
+
+**Argumentos:**
+
+`query`: Cadena de consulta GraphQL
+`user`: Identificador de usuario/espacio de claves (por defecto: "trustgraph")
+`collection`: Identificador de colección (por defecto: "default")
+`variables`: Diccionario opcional de variables de consulta
+`operation_name`: Nombre de operación opcional para documentos de múltiples operaciones
+
+**Retorna:** dict: Respuesta GraphQL con los campos 'data', 'errors' y/o 'extensions'
+
+**Genera:**
+
+`ProtocolException`: Si ocurre un error a nivel del sistema
+
+**Ejemplo:**
+
+```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)`
+
+Seleccionar esquemas coincidentes para una muestra de datos utilizando análisis de consultas.
+
+**Argumentos:**
+
+`sample`: Muestra de datos a analizar (contenido de cadena)
+`options`: Parámetros opcionales
+
+**Retorna:** diccionario con el array schema_matches y metadatos
+
+### `structured_query(self, question, user='trustgraph', collection='default')`
+
+Ejecutar una pregunta en lenguaje natural contra datos estructurados.
+Combina la conversión de consultas NLP y la ejecución de GraphQL.
+
+**Argumentos:**
+
+`question`: Pregunta en lenguaje natural
+`user`: Identificador de keyspace de Cassandra (por defecto: "trustgraph")
+`collection`: Identificador de colección de datos (por defecto: "default")
+
+**Retorna:** diccionario con datos y posibles errores
+
+### `text_completion(self, system, prompt)`
+
+Ejecutar la finalización de texto utilizando el LLM del flujo.
+
+**Argumentos:**
+
+`system`: Prompt del sistema que define el comportamiento del asistente
+`prompt`: Prompt/pregunta del usuario
+
+**Retorna:** str: Texto de respuesta generado
+
+**Ejemplo:**
+
+```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)`
+
+Consultar tripletas del grafo de conocimiento utilizando la coincidencia de patrones.
+
+Busca tripletas RDF que coincidan con los patrones de sujeto, predicado y/o
+objeto dados. Los parámetros no especificados actúan como comodines.
+
+**Argumentos:**
+
+`s`: URI del sujeto (opcional, usar None para comodín)
+`p`: URI del predicado (opcional, usar None para comodín)
+`o`: URI del objeto o Literal (opcional, usar None para comodín)
+`user`: Identificador de usuario/espacio de claves (opcional)
+`collection`: Identificador de colección (opcional)
+`limit`: Número máximo de resultados a devolver (por defecto: 10000)
+
+**Devuelve:** list[Triple]: Lista de objetos Triple coincidentes
+
+**Genera:**
+
+`RuntimeError`: Si s o p no son un Uri, o o no es un Uri/Literal
+
+**Ejemplo:**
+
+```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
+```
+
+Cliente de gestión de flujos asíncronos que utiliza la API REST.
+
+Proporciona operaciones de gestión de flujos basadas en async/await, incluyendo listar,
+iniciar, detener flujos y gestionar definiciones de clases de flujos. También proporciona
+acceso a servicios específicos del flujo, como agentes, RAG y consultas, a través de
+puntos finales REST no basados en transmisión.
+
+Nota: Para el soporte de transmisión, utilice AsyncSocketClient en su lugar.
+
+### Métodos
+
+### `__init__(self, url: str, timeout: int, token: str | None) -> None`
+
+Inicializa el cliente de flujo asíncrono.
+
+**Argumentos:**
+
+`url`: URL base para la API de TrustGraph
+`timeout`: Tiempo de espera de la solicitud en segundos
+`token`: Token de portador opcional para la autenticación
+
+### `aclose(self) -> None`
+
+Cierra el cliente asíncrono y libera recursos.
+
+Nota: La limpieza se gestiona automáticamente por los administradores de contexto de sesión de aiohttp.
+Este método se proporciona para mantener la coherencia con otros clientes asíncronos.
+
+### `delete_class(self, class_name: str)`
+
+Elimina una definición de clase de flujo.
+
+Elimina una plantilla de clase de flujo del sistema. No afecta a
+instancias de flujo en ejecución.
+
+**Argumentos:**
+
+`class_name`: Nombre de la clase de flujo a eliminar
+
+**Ejemplo:**
+
+```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]`
+
+Obtener la definición del flujo.
+
+Recupera la configuración completa del flujo, incluyendo su nombre de clase,
+descripción y parámetros.
+
+**Argumentos:**
+
+`id`: Identificador del flujo
+
+**Retorna:** dict: Objeto de definición del flujo
+
+**Ejemplo:**
+
+```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]`
+
+Obtener la definición de la clase de flujo.
+
+Recupera la definición del esquema para una clase de flujo, incluyendo su
+esquema de configuración y enlaces de servicio.
+
+**Argumentos:**
+
+`class_name`: Nombre de la clase de flujo
+
+**Retorna:** dict: Objeto de definición de la clase de flujo
+
+**Ejemplo:**
+
+```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)`
+
+Obtener una instancia de cliente de flujo asíncrono.
+
+Devuelve un cliente para interactuar con los servicios de un flujo específico
+(agente, RAG, consultas, incrustaciones, etc.).
+
+**Argumentos:**
+
+`flow_id`: Identificador del flujo
+
+**Devuelve:** AsyncFlowInstance: Cliente para operaciones específicas del flujo
+
+**Ejemplo:**
+
+```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]`
+
+Listar todos los identificadores de flujo.
+
+Recupera los ID de todos los flujos actualmente implementados en el sistema.
+
+**Retorna:** list[str]: Lista de identificadores de flujo.
+
+**Ejemplo:**
+
+```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]`
+
+Listar todos los nombres de las clases de flujo.
+
+Recupera los nombres de todas las clases de flujo (plantillas) disponibles en el sistema.
+
+**Retorna:** list[str]: Lista de nombres de clases de flujo.
+
+**Ejemplo:**
+
+```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])`
+
+Crear o actualizar una definición de clase de flujo.
+
+Almacena un esquema de clase de flujo que se puede utilizar para instanciar flujos.
+
+**Argumentos:**
+
+`class_name`: Nombre de la clase de flujo
+`definition`: Objeto de definición de la clase de flujo
+
+**Ejemplo:**
+
+```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]`
+
+Realizar una solicitud HTTP POST asíncrona a la API de Gateway.
+
+Método interno para realizar solicitudes autenticadas a la API de TrustGraph.
+
+**Argumentos:**
+
+`path`: Ruta de punto final de la API (relativa a la URL base)
+`request_data`: Diccionario de carga útil de la solicitud
+
+**Retorna:** dict: Objeto de respuesta de la API
+
+**Genera:**
+
+`ProtocolException`: Si el estado HTTP no es 200 o la respuesta no es un JSON válido
+`ApplicationException`: Si la API devuelve una respuesta de error
+
+### `start(self, class_name: str, id: str, description: str, parameters: Dict | None = None)`
+
+Inicia una nueva instancia de flujo.
+
+Crea e inicia un flujo a partir de una definición de clase de flujo con los
+parámetros especificados.
+
+**Argumentos:**
+
+`class_name`: Nombre de la clase de flujo a instanciar
+`id`: Identificador para la nueva instancia de flujo
+`description`: Descripción legible por humanos del flujo
+`parameters`: Parámetros de configuración opcionales para el flujo
+
+**Ejemplo:**
+
+```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)`
+
+Detener un flujo en ejecución.
+
+Detiene y elimina una instancia de flujo, liberando sus recursos.
+
+**Argumentos:**
+
+`id`: Identificador del flujo a detener
+
+**Ejemplo:**
+
+```python
+async_flow = await api.async_flow()
+
+# Stop a flow
+await async_flow.stop("my-flow")
+```
+
+
+--
+
+## `AsyncFlowInstance`
+
+```python
+from trustgraph.api import AsyncFlowInstance
+```
+
+Cliente de instancia de flujo asíncrono.
+
+Proporciona acceso async/await a servicios con ámbito de flujo, incluyendo agentes,
+consultas RAG, incrustaciones y consultas de grafos. Todas las operaciones devuelven
+respuestas completas (no en streaming).
+
+Nota: Para soporte de streaming, utilice AsyncSocketFlowInstance en su lugar.
+
+### Métodos
+
+### `__init__(self, flow: trustgraph.api.async_flow.AsyncFlow, flow_id: str)`
+
+Inicializa una instancia de flujo asíncrono.
+
+**Argumentos:**
+
+`flow`: Cliente AsyncFlow padre
+`flow_id`: Identificador de flujo
+
+### `agent(self, question: str, user: str, state: Dict | None = None, group: str | None = None, history: List | None = None, **kwargs: Any) -> Dict[str, Any]`
+
+Ejecuta una operación de agente (no en streaming).
+
+Ejecuta un agente para responder a una pregunta, con un estado de conversación opcional y
+historial. Devuelve la respuesta completa después de que el agente haya terminado de
+procesar.
+
+Nota: Este método no admite streaming. Para los pensamientos y observaciones del agente en tiempo real,
+utilice AsyncSocketFlowInstance.agent() en su lugar.
+
+**Argumentos:**
+
+`question`: Pregunta o instrucción del usuario
+`user`: Identificador del usuario
+`state`: Diccionario de estado opcional para el contexto de la conversación
+`group`: Identificador de grupo opcional para la gestión de sesiones
+`history`: Lista de historial de conversación opcional
+`**kwargs`: Parámetros adicionales específicos del servicio
+
+**Devuelve:** dict: Respuesta completa del agente, incluyendo la respuesta y los metadatos
+
+**Ejemplo:**
+
+```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`
+
+Ejecutar consulta RAG basada en documentos (no en streaming).
+
+Realiza Generación Aumentada por Recuperación utilizando incrustaciones de documentos.
+Recupera fragmentos de documentos relevantes mediante búsqueda semántica y luego genera
+una respuesta basada en los documentos recuperados. Devuelve la respuesta completa.
+
+Nota: Este método no admite el streaming. Para respuestas RAG en streaming,
+utilice AsyncSocketFlowInstance.document_rag() en su lugar.
+
+**Argumentos:**
+
+`query`: Texto de la consulta del usuario
+`user`: Identificador del usuario
+`collection`: Identificador de la colección que contiene los documentos
+`doc_limit`: Número máximo de fragmentos de documentos a recuperar (por defecto: 10)
+`**kwargs`: Parámetros adicionales específicos del servicio
+
+**Devuelve:** str: Respuesta generada completa basada en los datos del documento
+
+**Ejemplo:**
+
+```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)`
+
+Generar incrustaciones (embeddings) para textos de entrada.
+
+Convierte textos en representaciones vectoriales numéricas utilizando el modelo de incrustación configurado en el flujo. Útil para la búsqueda semántica y comparaciones de similitud.
+
+
+
+**Argumentos:**
+
+`texts`: Lista de textos de entrada para incrustar
+`**kwargs`: Parámetros adicionales específicos del servicio
+
+**Retorna:** dict: Respuesta que contiene vectores de incrustación
+
+**Ejemplo:**
+
+```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)`
+
+Consulta incrustaciones de grafos para la búsqueda semántica de entidades.
+
+Realiza una búsqueda semántica sobre las incrustaciones de entidades de grafos para encontrar entidades
+más relevantes para el texto de entrada. Devuelve entidades clasificadas por similitud.
+
+**Argumentos:**
+
+`text`: Texto de consulta para la búsqueda semántica
+`user`: Identificador de usuario
+`collection`: Identificador de la colección que contiene las incrustaciones de grafos
+`limit`: Número máximo de resultados a devolver (por defecto: 10)
+`**kwargs`: Parámetros adicionales específicos del servicio
+
+**Devuelve:** dict: Respuesta que contiene coincidencias de entidades clasificadas con puntuaciones de similitud
+
+**Ejemplo:**
+
+```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`
+
+Ejecutar consulta RAG basada en grafos (no en streaming).
+
+Realiza la generación aumentada con recuperación utilizando datos de grafos de conocimiento.
+Identifica entidades relevantes y sus relaciones, y luego genera una
+respuesta basada en la estructura del grafo. Devuelve la respuesta completa.
+
+Nota: Este método no admite el streaming. Para respuestas RAG en streaming,
+utilice AsyncSocketFlowInstance.graph_rag() en su lugar.
+
+**Argumentos:**
+
+`query`: Texto de la consulta del usuario
+`user`: Identificador del usuario
+`collection`: Identificador de la colección que contiene el grafo de conocimiento
+`max_subgraph_size`: Número máximo de triples por subgrafo (por defecto: 1000)
+`max_subgraph_count`: Número máximo de subgrafos a recuperar (por defecto: 5)
+`max_entity_distance`: Distancia máxima del grafo para la expansión de entidades (por defecto: 3)
+`**kwargs`: Parámetros adicionales específicos del servicio
+
+**Devuelve:** str: Respuesta completa generada basada en datos del grafo
+
+**Ejemplo:**
+
+```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]`
+
+Realizar una solicitud a un servicio con ámbito de flujo.
+
+Método interno para llamar a servicios dentro de esta instancia de flujo.
+
+**Argumentos:**
+
+`service`: Nombre del servicio (por ejemplo, "agent", "graph-rag", "triples")
+`request_data`: Carga útil de la solicitud al servicio
+
+**Retorna:** dict: Objeto de respuesta del servicio
+
+**Lanza:**
+
+`ProtocolException`: Si la solicitud falla o la respuesta es inválida
+`ApplicationException`: Si el servicio devuelve un error
+
+### `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)`
+
+Consultar incrustaciones de filas para la búsqueda semántica en datos estructurados.
+
+Realiza una búsqueda semántica sobre las incrustaciones del índice de filas para encontrar filas cuyas
+valores de campo indexados sean más similares al texto de entrada. Permite
+la coincidencia difusa/semántica en datos estructurados.
+
+**Argumentos:**
+
+`text`: Texto de consulta para la búsqueda semántica
+`schema_name`: Nombre del esquema para buscar
+`user`: Identificador de usuario (por defecto: "trustgraph")
+`collection`: Identificador de colección (por defecto: "default")
+`index_name`: Nombre de índice opcional para filtrar la búsqueda a un índice específico
+`limit`: Número máximo de resultados a devolver (por defecto: 10)
+`**kwargs`: Parámetros adicionales específicos del servicio
+
+**Retorna:** dict: Respuesta que contiene coincidencias con index_name, index_value, text y score
+
+**Ejemplo:**
+
+```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)`
+
+Ejecutar una consulta GraphQL en filas almacenadas.
+
+Consulta filas de datos estructurados utilizando la sintaxis GraphQL. Soporta consultas complejas
+con variables y operaciones con nombre.
+
+**Argumentos:**
+
+`query`: Cadena de consulta GraphQL
+`user`: Identificador de usuario
+`collection`: Identificador de la colección que contiene las filas
+`variables`: Variables de consulta GraphQL opcionales
+`operation_name`: Nombre de operación opcional para consultas con múltiples operaciones
+`**kwargs`: Parámetros adicionales específicos del servicio
+
+**Retorna:** dict: Respuesta GraphQL con datos y/o errores
+
+**Ejemplo:**
+
+```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`
+
+Generar finalización de texto (no en tiempo real).
+
+Genera una respuesta de texto a partir de un modelo de lenguaje grande (LLM) dado un mensaje del sistema y un mensaje del usuario.
+Devuelve el texto de la respuesta completo.
+
+Nota: Este método no admite la transmisión. Para la generación de texto en tiempo real,
+utilice AsyncSocketFlowInstance.text_completion() en su lugar.
+
+**Argumentos:**
+
+`system`: Mensaje del sistema que define el comportamiento del LLM.
+`prompt`: Mensaje del usuario o pregunta.
+`**kwargs`: Parámetros adicionales específicos del servicio.
+
+**Devuelve:** str: Respuesta de texto generada completa.
+
+**Ejemplo:**
+
+```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)`
+
+Consultar triples RDF utilizando la coincidencia de patrones.
+
+Busca triples que coincidan con los patrones especificados de sujeto, predicado y/o
+objeto. Los patrones utilizan None como comodín para coincidir con cualquier valor.
+
+**Argumentos:**
+
+`s`: Patrón de sujeto (None para comodín)
+`p`: Patrón de predicado (None para comodín)
+`o`: Patrón de objeto (None para comodín)
+`user`: Identificador de usuario (None para todos los usuarios)
+`collection`: Identificador de colección (None para todas las colecciones)
+`limit`: Número máximo de triples a devolver (por defecto: 100)
+`**kwargs`: Parámetros adicionales específicos del servicio
+
+**Devuelve:** dict: Respuesta que contiene los triples coincidentes
+
+**Ejemplo:**
+
+```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
+```
+
+Cliente WebSocket sincrónico para operaciones de transmisión.
+
+Proporciona una interfaz sincrónica a los servicios TrustGraph basados en WebSocket,
+envolviendo la biblioteca de WebSockets asíncronos con generadores sincrónicos para facilitar su uso.
+Admite respuestas de transmisión de agentes, consultas RAG y finalizaciones de texto.
+
+Nota: Este es un envoltorio sincrónico alrededor de operaciones de WebSocket asíncronas. Para
+un soporte asíncrono real, utilice AsyncSocketClient en su lugar.
+
+### Métodos
+
+### `__init__(self, url: str, timeout: int, token: str | None) -> None`
+
+Inicializa el cliente WebSocket sincrónico.
+
+**Argumentos:**
+
+`url`: URL base para la API de TrustGraph (HTTP/HTTPS se convertirá a WS/WSS)
+`timeout`: Tiempo de espera de WebSocket en segundos
+`token`: Token de portador opcional para la autenticación
+
+### `close(self) -> None`
+
+Cierra las conexiones WebSocket.
+
+Nota: La limpieza se gestiona automáticamente por los administradores de contexto en el código asíncrono.
+
+### `flow(self, flow_id: str) -> 'SocketFlowInstance'`
+
+Obtiene una instancia de flujo para operaciones de transmisión de WebSocket.
+
+**Argumentos:**
+
+`flow_id`: Identificador de flujo
+
+**Devuelve:** SocketFlowInstance: Instancia de flujo con métodos de transmisión
+
+**Ejemplo:**
+
+```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
+```
+
+Instancia de flujo WebSocket sincrónico para operaciones de transmisión.
+
+Proporciona la misma interfaz que FlowInstance de REST, pero con soporte de transmisión basado en WebSocket
+para respuestas en tiempo real. Todos los métodos admiten un parámetro opcional
+`streaming` para habilitar la entrega incremental de resultados.
+
+### Métodos
+
+### `__init__(self, client: trustgraph.api.socket_client.SocketClient, flow_id: str) -> None`
+
+Inicializar instancia de flujo de socket.
+
+**Argumentos:**
+
+`client`: SocketClient padre
+`flow_id`: Identificador de flujo
+
+### `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]`
+
+Ejecutar una operación de agente con soporte de transmisión.
+
+Los agentes pueden realizar razonamientos de varios pasos con el uso de herramientas. Este método siempre
+devuelve fragmentos de transmisión (pensamientos, observaciones, respuestas) incluso cuando
+streaming=False, para mostrar el proceso de razonamiento del agente.
+
+**Argumentos:**
+
+`question`: Pregunta o instrucción del usuario
+`user`: Identificador del usuario
+`state`: Diccionario de estado opcional para conversaciones con estado
+`group`: Identificador de grupo opcional para contextos multiusuario
+`history`: Historial de conversación opcional como lista de diccionarios de mensajes
+`streaming`: Habilitar el modo de transmisión (predeterminado: False)
+`**kwargs`: Parámetros adicionales pasados al servicio del agente
+
+**Devuelve:** Iterator[StreamingChunk]: Flujo de pensamientos, observaciones y respuestas del agente
+
+**Ejemplo:**
+
+```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]`
+
+Ejecutar una operación de agente con soporte de explicabilidad.
+
+Transmite tanto los fragmentos de contenido (AgentThought, AgentObservation, AgentAnswer)
+como los eventos de procedencia (ProvenanceEvent). Los eventos de procedencia contienen URIs
+que se pueden recuperar utilizando ExplainabilityClient para obtener información detallada
+sobre el proceso de razonamiento del agente.
+
+El rastro del agente consiste en:
+Sesión: La pregunta inicial y los metadatos de la sesión.
+Iteraciones: Cada ciclo de pensamiento/acción/observación.
+Conclusión: La respuesta final.
+
+**Argumentos:**
+
+`question`: Pregunta o instrucción del usuario.
+`user`: Identificador del usuario.
+`collection`: Identificador de la colección para el almacenamiento de la procedencia.
+`state`: Diccionario de estado opcional para conversaciones con estado.
+`group`: Identificador de grupo opcional para contextos multiusuario.
+`history`: Historial de conversación opcional como una lista de diccionarios de mensajes.
+`**kwargs`: Parámetros adicionales pasados al servicio del agente.
+`Yields`:
+`Union[StreamingChunk, ProvenanceEvent]`: Fragmentos del agente y eventos de procedencia.
+
+**Ejemplo:**
+
+```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]`
+
+Consultar fragmentos de documentos utilizando similitud semántica.
+
+**Argumentos:**
+
+`text`: Texto de consulta para la búsqueda semántica
+`user`: Identificador de usuario/espacio de claves
+`collection`: Identificador de colección
+`limit`: Número máximo de resultados (por defecto: 10)
+`**kwargs`: Parámetros adicionales pasados al servicio
+
+**Retorna:** dict: Resultados de la consulta con los ID de los fragmentos de los documentos coincidentes
+
+**Ejemplo:**
+
+```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]`
+
+Ejecutar una consulta RAG basada en documentos con transmisión opcional.
+
+Utiliza incrustaciones vectoriales para encontrar fragmentos de documentos relevantes y luego genera
+una respuesta utilizando un LLM. El modo de transmisión entrega resultados de forma incremental.
+
+**Argumentos:**
+
+`query`: Consulta en lenguaje natural
+`user`: Identificador de usuario/espacio de claves
+`collection`: Identificador de colección
+`doc_limit`: Número máximo de fragmentos de documentos a recuperar (predeterminado: 10)
+`streaming`: Habilitar el modo de transmisión (predeterminado: Falso)
+`**kwargs`: Parámetros adicionales pasados al servicio
+
+**Retorna:** Union[str, Iterator[str]]: Respuesta completa o flujo de fragmentos de texto
+
+**Ejemplo:**
+
+```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]`
+
+Ejecutar una consulta RAG basada en documentos con soporte para la explicabilidad.
+
+Transmite tanto los fragmentos de contenido (RAGChunk) como los eventos de procedencia (ProvenanceEvent).
+Los eventos de procedencia contienen URIs que se pueden recuperar utilizando ExplainabilityClient
+para obtener información detallada sobre cómo se generó la respuesta.
+
+El rastro RAG del documento consiste en:
+Pregunta: La consulta del usuario
+Exploración: Fragmentos recuperados de la tienda de documentos (chunk_count)
+Síntesis: La respuesta generada
+
+**Argumentos:**
+
+`query`: Consulta en lenguaje natural
+`user`: Identificador de usuario/espacio de claves
+`collection`: Identificador de colección
+`doc_limit`: Número máximo de fragmentos de documento a recuperar (por defecto: 10)
+`**kwargs`: Parámetros adicionales pasados al servicio
+`Yields`:
+`Union[RAGChunk, ProvenanceEvent]`: Fragmentos de contenido y eventos de procedencia
+
+**Ejemplo:**
+
+```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]`
+
+Generar incrustaciones vectoriales para uno o más textos.
+
+**Argumentos:**
+
+`texts`: Lista de textos de entrada para incrustar.
+`**kwargs`: Parámetros adicionales pasados al servicio.
+
+**Retorna:** dict: Respuesta que contiene vectores (un conjunto por texto de entrada).
+
+**Ejemplo:**
+
+```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]`
+
+Consultar entidades de un grafo de conocimiento utilizando similitud semántica.
+
+**Argumentos:**
+
+`text`: Texto de la consulta para la búsqueda semántica
+`user`: Identificador de usuario/espacio de claves
+`collection`: Identificador de colección
+`limit`: Número máximo de resultados (por defecto: 10)
+`**kwargs`: Parámetros adicionales pasados al servicio
+
+**Retorna:** dict: Resultados de la consulta con entidades similares
+
+**Ejemplo:**
+
+```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]`
+
+Ejecutar una consulta RAG basada en grafos con transmisión opcional.
+
+Utiliza la estructura del grafo de conocimiento para encontrar el contexto relevante y luego genera
+una respuesta utilizando un LLM. El modo de transmisión entrega los resultados de forma incremental.
+
+**Argumentos:**
+
+`query`: Consulta en lenguaje natural
+`user`: Identificador de usuario/espacio de claves
+`collection`: Identificador de colección
+`max_subgraph_size`: Número máximo total de triples en el subgrafo (por defecto: 1000)
+`max_subgraph_count`: Número máximo de subgrafos (por defecto: 5)
+`max_entity_distance`: Profundidad máxima de recorrido (por defecto: 3)
+`streaming`: Habilitar el modo de transmisión (por defecto: False)
+`**kwargs`: Parámetros adicionales pasados al servicio
+
+**Retorna:** Union[str, Iterator[str]]: Respuesta completa o flujo de fragmentos de texto
+
+**Ejemplo:**
+
+```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]`
+
+Ejecutar consulta RAG basada en grafos con soporte de explicabilidad.
+
+Transmite tanto fragmentos de contenido (RAGChunk) como eventos de procedencia (ProvenanceEvent).
+Los eventos de procedencia contienen URIs que se pueden recuperar utilizando ExplainabilityClient
+para obtener información detallada sobre cómo se generó la respuesta.
+
+**Argumentos:**
+
+`query`: Consulta en lenguaje natural
+`user`: Identificador de usuario/espacio de claves
+`collection`: Identificador de colección
+`max_subgraph_size`: Número máximo total de triples en el subgrafo (predeterminado: 1000)
+`max_subgraph_count`: Número máximo de subgrafos (predeterminado: 5)
+`max_entity_distance`: Profundidad máxima de recorrido (predeterminado: 3)
+`**kwargs`: Parámetros adicionales pasados al servicio
+`Yields`:
+`Union[RAGChunk, ProvenanceEvent]`: Fragmentos de contenido y eventos de procedencia
+
+**Ejemplo:**
+
+```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]`
+
+Ejecutar una herramienta de Protocolo de Contexto de Modelo (MCP).
+
+**Argumentos:**
+
+`name`: Nombre/identificador de la herramienta
+`parameters`: Diccionario de parámetros de la herramienta
+`**kwargs`: Parámetros adicionales pasados al servicio
+
+**Retorna:** dict: Resultado de la ejecución de la herramienta
+
+**Ejemplo:**
+
+```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]`
+
+Ejecutar una plantilla de prompt con transmisión opcional.
+
+**Argumentos:**
+
+`id`: Identificador de la plantilla de prompt.
+`variables`: Diccionario de mapeos de nombres de variables a valores.
+`streaming`: Habilitar el modo de transmisión (predeterminado: False).
+`**kwargs`: Parámetros adicionales pasados al servicio.
+
+**Retorna:** Union[str, Iterator[str]]: Respuesta completa o flujo de fragmentos de texto.
+
+**Ejemplo:**
+
+```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]`
+
+Consulta datos de filas utilizando la similitud semántica en campos indexados.
+
+Encuentra filas cuyos valores de campos indexados son semánticamente similares a
+el texto de entrada, utilizando incrustaciones vectoriales. Esto permite la coincidencia difusa/semántica
+en datos estructurados.
+
+**Argumentos:**
+
+`text`: Texto de consulta para la búsqueda semántica
+`schema_name`: Nombre del esquema para buscar
+`user`: Identificador de usuario/espacio de claves (predeterminado: "trustgraph")
+`collection`: Identificador de colección (predeterminado: "default")
+`index_name`: Nombre de índice opcional para filtrar la búsqueda a un índice específico
+`limit`: Número máximo de resultados (predeterminado: 10)
+`**kwargs`: Parámetros adicionales pasados al servicio
+
+**Retorna:** dict: Resultados de la consulta con coincidencias que contienen index_name, index_value, text y score
+
+**Ejemplo:**
+
+```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]`
+
+Ejecutar una consulta GraphQL contra filas estructuradas.
+
+**Argumentos:**
+
+`query`: Cadena de consulta GraphQL
+`user`: Identificador de usuario/espacio de claves
+`collection`: Identificador de colección
+`variables`: Diccionario opcional de variables de consulta
+`operation_name`: Nombre de operación opcional para documentos de múltiples operaciones
+`**kwargs`: Parámetros adicionales pasados al servicio
+
+**Retorna:** dict: Respuesta GraphQL con datos, errores y/o extensiones
+
+**Ejemplo:**
+
+```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]`
+
+Ejecutar la finalización de texto con transmisión opcional.
+
+**Argumentos:**
+
+`system`: Instrucción del sistema que define el comportamiento del asistente.
+`prompt`: Instrucción/pregunta del usuario.
+`streaming`: Habilitar el modo de transmisión (predeterminado: False).
+`**kwargs`: Parámetros adicionales pasados al servicio.
+
+**Retorna:** Union[str, Iterator[str]]: Respuesta completa o flujo de fragmentos de texto.
+
+**Ejemplo:**
+
+```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]]`
+
+Consultar triples del grafo de conocimiento utilizando la coincidencia de patrones.
+
+**Argumentos:**
+
+`s`: Filtro de sujeto - Cadena URI, diccionario de términos o None para comodín.
+`p`: Filtro de predicado - Cadena URI, diccionario de términos o None para comodín.
+`o`: Filtro de objeto - Cadena URI/literal, diccionario de términos o None para comodín.
+`g`: Filtro de grafo con nombre - Cadena URI o None para todos los grafos.
+`user`: Identificador de usuario/espacio de claves (opcional).
+`collection`: Identificador de colección (opcional).
+`limit`: Número máximo de resultados a devolver (por defecto: 100).
+`**kwargs`: Parámetros adicionales pasados al servicio.
+
+**Retorna:** List[Dict]: Lista de triples coincidentes en formato de cable.
+
+**Ejemplo:**
+
+```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]]]`
+
+Consultar triples del grafo de conocimiento con lotes de transmisión.
+
+Produce lotes de triples a medida que llegan, reduciendo el tiempo para obtener el primer resultado
+y la sobrecarga de memoria para conjuntos de resultados grandes.
+
+**Argumentos:**
+
+`s`: Filtro de sujeto - Cadena URI, diccionario de términos o None para comodín
+`p`: Filtro de predicado - Cadena URI, diccionario de términos o None para comodín
+`o`: Filtro de objeto - Cadena URI/literal, diccionario de términos o None para comodín
+`g`: Filtro de grafo con nombre - Cadena URI o None para todos los grafos
+`user`: Identificador de usuario/espacio de claves (opcional)
+`collection`: Identificador de colección (opcional)
+`limit`: Número máximo de resultados a devolver (por defecto: 100)
+`batch_size`: Triples por lote (por defecto: 20)
+`**kwargs`: Parámetros adicionales pasados al servicio
+`Yields`:
+`List[Dict]`: Lotes de triples en formato de cable
+
+**Ejemplo:**
+
+```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
+```
+
+Cliente WebSocket asíncrono
+
+### Métodos
+
+### `__init__(self, url: str, timeout: int, token: str | None)`
+
+Inicializar self. Consulte help(type(self)) para obtener la firma precisa.
+
+### `aclose(self)`
+
+Cerrar conexión WebSocket
+
+### `flow(self, flow_id: str)`
+
+Obtener la instancia de flujo asíncrono para operaciones de WebSocket
+
+
+--
+
+## `AsyncSocketFlowInstance`
+
+```python
+from trustgraph.api import AsyncSocketFlowInstance
+```
+
+Flujo de WebSocket asíncrono.
+
+### Métodos
+
+### `__init__(self, client: trustgraph.api.async_socket_client.AsyncSocketClient, flow_id: str)`
+
+Inicializar self. Consulte help(type(self)) para obtener la firma correcta.
+
+### `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`
+
+Agente con transmisión opcional.
+
+### `document_rag(self, query: str, user: str, collection: str, doc_limit: int = 10, streaming: bool = False, **kwargs)`
+
+Documento RAG con transmisión opcional.
+
+### `embeddings(self, texts: list, **kwargs)`
+
+Generar incrustaciones de texto.
+
+### `graph_embeddings_query(self, text: str, user: str, collection: str, limit: int = 10, **kwargs)`
+
+Consultar incrustaciones de grafos para búsqueda semántica.
+
+### `graph_rag(self, query: str, user: str, collection: str, max_subgraph_size: int = 1000, max_subgraph_count: int = 5, max_entity_distance: int = 3, streaming: bool = False, **kwargs)`
+
+RAG de grafos con transmisión opcional.
+
+### `mcp_tool(self, name: str, parameters: Dict[str, Any], **kwargs)`
+
+Ejecutar herramienta MCP.
+
+### `prompt(self, id: str, variables: Dict[str, str], streaming: bool = False, **kwargs)`
+
+Ejecutar prompt con transmisión opcional.
+
+### `row_embeddings_query(self, text: str, schema_name: str, user: str = 'trustgraph', collection: str = 'default', index_name: str | None = None, limit: int = 10, **kwargs)`
+
+Consultar incrustaciones de filas para búsqueda semántica en datos estructurados.
+
+### `rows_query(self, query: str, user: str, collection: str, variables: Dict | None = None, operation_name: str | None = None, **kwargs)`
+
+Consulta GraphQL contra filas estructuradas.
+
+### `text_completion(self, system: str, prompt: str, streaming: bool = False, **kwargs)`
+
+Completar texto con transmisión opcional.
+
+### `triples_query(self, s=None, p=None, o=None, user=None, collection=None, limit=100, **kwargs)`
+
+Consulta de patrones triples.
+
+
+--
+
+### `build_term(value: Any, term_type: str | None = None, datatype: str | None = None, language: str | None = None) -> Dict[str, Any] | None`
+
+Construir un diccionario de términos en formato de cable a partir de un valor.
+
+Reglas de detección automática (cuando term_type es None):
+ Ya es un diccionario con la clave 't' -> devolver tal cual (ya es un Term)
+ Comienza con http://, https://, urn: -> IRI
+ Está encerrado entre < (por ejemplo, ) -> IRI (se eliminan los corchetes)
+ Cualquier otra cosa -> literal
+
+**Argumentos:**
+
+`value`: El valor del término (cadena, diccionario o None).
+`term_type`: Uno de 'iri', 'literal' o None para la detección automática.
+`datatype`: Tipo de datos para objetos literales (por ejemplo, xsd:integer).
+`language`: Etiqueta de idioma para objetos literales (por ejemplo, en).
+
+**Devuelve:** dict: Diccionario de términos en formato de cable, o None si el valor es None.
+
+
+--
+
+## `BulkClient`
+
+```python
+from trustgraph.api import BulkClient
+```
+
+Cliente para operaciones masivas sincrónicas para la importación/exportación.
+
+Proporciona una transferencia de datos masiva eficiente a través de WebSocket para conjuntos de datos grandes.
+Envuelve las operaciones asíncronas de WebSocket con generadores sincrónicos para facilitar su uso.
+
+Nota: Para un soporte asíncrono real, utilice AsyncBulkClient en su lugar.
+
+### Métodos
+
+### `__init__(self, url: str, timeout: int, token: str | None) -> None`
+
+Inicializa el cliente de operaciones masivas sincrónico.
+
+**Argumentos:**
+
+`url`: URL base para la API de TrustGraph (HTTP/HTTPS se convertirá a WS/WSS)
+`timeout`: Tiempo de espera de WebSocket en segundos
+`token`: Token de portador opcional para la autenticación
+
+### `close(self) -> None`
+
+Cierra las conexiones.
+
+### `export_document_embeddings(self, flow: str, **kwargs: Any) -> Iterator[Dict[str, Any]]`
+
+Exporta masivamente las incrustaciones de documentos desde un flujo.
+
+Descarga de forma eficiente todas las incrustaciones de fragmentos de documentos a través de la transmisión de WebSocket.
+
+**Argumentos:**
+
+`flow`: Identificador del flujo
+`**kwargs`: Parámetros adicionales (reservados para uso futuro)
+
+**Devuelve:** Iterator[Dict[str, Any]]: Flujo de diccionarios de incrustaciones
+
+**Ejemplo:**
+
+```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]]`
+
+Exportación masiva de contextos de entidades desde un flujo.
+
+Descarga de manera eficiente toda la información del contexto de la entidad a través de transmisión WebSocket.
+
+**Argumentos:**
+
+`flow`: Identificador del flujo.
+`**kwargs`: Parámetros adicionales (reservados para uso futuro).
+
+**Retorna:** Iterator[Dict[str, Any]]: Flujo de diccionarios de contexto.
+
+**Ejemplo:**
+
+```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]]`
+
+Exportación masiva de incrustaciones de grafos desde un flujo.
+
+Descarga de manera eficiente todas las incrustaciones de entidades de grafos a través de transmisión WebSocket.
+
+**Argumentos:**
+
+`flow`: Identificador del flujo.
+`**kwargs`: Parámetros adicionales (reservados para uso futuro).
+
+**Retorna:** Iterator[Dict[str, Any]]: Flujo de diccionarios de incrustaciones.
+
+**Ejemplo:**
+
+```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]`
+
+Exportación masiva de triples RDF desde un flujo.
+
+Descarga de manera eficiente todos los triples a través de transmisión WebSocket.
+
+**Argumentos:**
+
+`flow`: Identificador del flujo.
+`**kwargs`: Parámetros adicionales (reservados para uso futuro).
+
+**Retorna:** Iterator[Triple]: Flujo de objetos Triple.
+
+**Ejemplo:**
+
+```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`
+
+Importación masiva de incrustaciones de documentos en un flujo.
+
+Carga de manera eficiente las incrustaciones de fragmentos de documentos a través de transmisión WebSocket
+para su uso en consultas RAG de documentos.
+
+**Argumentos:**
+
+`flow`: Identificador del flujo.
+`embeddings`: Iterador que produce diccionarios de incrustaciones.
+`**kwargs`: Parámetros adicionales (reservados para uso futuro).
+
+**Ejemplo:**
+
+```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`
+
+Importación masiva de contextos de entidades en un flujo.
+
+Carga de manera eficiente la información del contexto de la entidad a través de transmisión WebSocket.
+Los contextos de entidades proporcionan un contexto textual adicional sobre las entidades del gráfico
+para mejorar el rendimiento de RAG.
+
+**Argumentos:**
+
+`flow`: Identificador del flujo.
+`contexts`: Iterador que devuelve diccionarios de contexto.
+`metadata`: Diccionario de metadatos con id, metadatos, usuario, colección.
+`batch_size`: Número de contextos por lote (por defecto 100).
+`**kwargs`: Parámetros adicionales (reservados para uso futuro).
+
+**Ejemplo:**
+
+```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`
+
+Importación masiva de incrustaciones de grafos en un flujo.
+
+Carga de manera eficiente las incrustaciones de entidades de grafos a través de transmisión WebSocket.
+
+**Argumentos:**
+
+`flow`: Identificador del flujo.
+`embeddings`: Iterador que produce diccionarios de incrustaciones.
+`**kwargs`: Parámetros adicionales (reservados para uso futuro).
+
+**Ejemplo:**
+
+```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`
+
+Importación masiva de filas estructuradas en un flujo.
+
+Carga de manera eficiente datos estructurados a través de transmisión WebSocket
+para su uso en consultas GraphQL.
+
+**Argumentos:**
+
+`flow`: Identificador del flujo
+`rows`: Iterador que produce diccionarios de filas
+`**kwargs`: Parámetros adicionales (reservados para uso futuro)
+
+**Ejemplo:**
+
+```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`
+
+Importación masiva de triples RDF en un flujo.
+
+Carga de manera eficiente un gran número de triples a través de transmisión WebSocket.
+
+**Argumentos:**
+
+`flow`: Identificador del flujo.
+`triples`: Iterador que produce objetos Triple.
+`metadata`: Diccionario de metadatos con id, metadatos, usuario, colección.
+`batch_size`: Número de triples por lote (por defecto 100).
+`**kwargs`: Parámetros adicionales (reservados para uso futuro).
+
+**Ejemplo:**
+
+```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
+```
+
+Cliente para operaciones masivas asíncronas.
+
+### Métodos
+
+### `__init__(self, url: str, timeout: int, token: str | None) -> None`
+
+Inicializar self. Consulte help(type(self)) para obtener la firma precisa.
+
+### `aclose(self) -> None`
+
+Cerrar conexiones.
+
+### `export_document_embeddings(self, flow: str, **kwargs: Any) -> AsyncIterator[Dict[str, Any]]`
+
+Exportación masiva de incrustaciones de documentos a través de WebSocket.
+
+### `export_entity_contexts(self, flow: str, **kwargs: Any) -> AsyncIterator[Dict[str, Any]]`
+
+Exportación masiva de contextos de entidades a través de WebSocket.
+
+### `export_graph_embeddings(self, flow: str, **kwargs: Any) -> AsyncIterator[Dict[str, Any]]`
+
+Exportación masiva de incrustaciones de grafos a través de WebSocket.
+
+### `export_triples(self, flow: str, **kwargs: Any) -> AsyncIterator[trustgraph.api.types.Triple]`
+
+Exportación masiva de triples a través de WebSocket.
+
+### `import_document_embeddings(self, flow: str, embeddings: AsyncIterator[Dict[str, Any]], **kwargs: Any) -> None`
+
+Importación masiva de incrustaciones de documentos a través de WebSocket.
+
+### `import_entity_contexts(self, flow: str, contexts: AsyncIterator[Dict[str, Any]], **kwargs: Any) -> None`
+
+Importación masiva de contextos de entidades a través de WebSocket.
+
+### `import_graph_embeddings(self, flow: str, embeddings: AsyncIterator[Dict[str, Any]], **kwargs: Any) -> None`
+
+Importación masiva de incrustaciones de grafos a través de WebSocket.
+
+### `import_rows(self, flow: str, rows: AsyncIterator[Dict[str, Any]], **kwargs: Any) -> None`
+
+Importación masiva de filas a través de WebSocket.
+
+### `import_triples(self, flow: str, triples: AsyncIterator[trustgraph.api.types.Triple], **kwargs: Any) -> None`
+
+Importación masiva de triples a través de WebSocket.
+
+
+--
+
+## `Metrics`
+
+```python
+from trustgraph.api import Metrics
+```
+
+Cliente de métricas sincrónicas
+
+### Métodos
+
+### `__init__(self, url: str, timeout: int, token: str | None) -> None`
+
+Inicializar self. Consulte help(type(self)) para obtener la firma precisa.
+
+### `get(self) -> str`
+
+Obtener métricas de Prometheus como texto
+
+
+--
+
+## `AsyncMetrics`
+
+```python
+from trustgraph.api import AsyncMetrics
+```
+
+Cliente de métricas asíncronas
+
+### Métodos
+
+### `__init__(self, url: str, timeout: int, token: str | None) -> None`
+
+Inicializar self. Consulte help(type(self)) para obtener la firma correcta.
+
+### `aclose(self) -> None`
+
+Cerrar conexiones
+
+### `get(self) -> str`
+
+Obtener métricas de Prometheus como texto
+
+
+--
+
+## `ExplainabilityClient`
+
+```python
+from trustgraph.api import ExplainabilityClient
+```
+
+Cliente para obtener entidades de explicabilidad con manejo de consistencia eventual.
+
+Utiliza la detección de quiescencia: obtener, esperar, obtener de nuevo, comparar.
+Si los resultados son los mismos, los datos son estables.
+
+### Métodos
+
+### `__init__(self, flow_instance, retry_delay: float = 0.2, max_retries: int = 10)`
+
+Inicializar el cliente de explicabilidad.
+
+**Argumentos:**
+
+`flow_instance`: Una instancia de SocketFlowInstance para consultar triples.
+`retry_delay`: Retraso entre reintentos en segundos (por defecto: 0.2).
+`max_retries`: Número máximo de intentos de reintento (por defecto: 10).
+
+### `detect_session_type(self, session_uri: str, graph: str | None = None, user: str | None = None, collection: str | None = None) -> str`
+
+Detectar si una sesión es de tipo GraphRAG o Agent.
+
+**Argumentos:**
+
+`session_uri`: La URI de la sesión/pregunta.
+`graph`: Grafo nombrado.
+`user`: Identificador de usuario/espacio de claves.
+`collection`: Identificador de colección.
+
+**Retorna:** "graphrag" o "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]`
+
+Obtener el rastro completo del Agent a partir de una URI de sesión.
+
+Sigue la cadena de procedencia: Pregunta -> Análisis(es) -> Conclusión.
+
+**Argumentos:**
+
+`session_uri`: La URI de la sesión/pregunta del agente.
+`graph`: Grafo nombrado (por defecto: urn:graph:retrieval).
+`user`: Identificador de usuario/espacio de claves.
+`collection`: Identificador de colección.
+`api`: Instancia de la API de TrustGraph para el acceso al bibliotecario (opcional).
+`max_content`: Longitud máxima del contenido para la conclusión.
+
+**Retorna:** Diccionario con la pregunta, las iteraciones (lista de Análisis) y las entidades de conclusión.
+
+### `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]`
+
+Obtener el rastro completo de DocumentRAG a partir de una URI de pregunta.
+
+Sigue la cadena de procedencia:
+ Pregunta -> Fundamentación -> Exploración -> Síntesis.
+
+**Argumentos:**
+
+`question_uri`: La URI de la entidad de pregunta.
+`graph`: Grafo nombrado (por defecto: urn:graph:retrieval).
+`user`: Identificador de usuario/espacio de claves.
+`collection`: Identificador de colección.
+`api`: Instancia de la API de TrustGraph para el acceso al bibliotecario (opcional).
+`max_content`: Longitud máxima del contenido para la síntesis.
+
+**Retorna:** Diccionario con la pregunta, la fundamentación, la exploración y las entidades de síntesis.
+
+### `fetch_document_content(self, document_uri: str, api: Any, user: str | None = None, max_content: int = 10000) -> str`
+
+Obtener contenido del bibliotecario por URI de documento.
+
+**Argumentos:**
+
+`document_uri`: La URI del documento en el bibliotecario.
+`api`: Instancia de la API de TrustGraph para el acceso al bibliotecario.
+`user`: Identificador de usuario para el bibliotecario.
+`max_content`: Longitud máxima del contenido a retornar.
+
+**Retorna:** El contenido del documento como una cadena.
+
+### `fetch_edge_selection(self, uri: str, graph: str | None = None, user: str | None = None, collection: str | None = None) -> trustgraph.api.explainability.EdgeSelection | None`
+
+Obtener una entidad de selección de borde (utilizada por Focus).
+
+**Argumentos:**
+
+`uri`: La URI de la selección de borde.
+`graph`: Grafo nombrado a consultar.
+`user`: Identificador de usuario/espacio de claves.
+`collection`: Identificador de colección.
+
+**Retorna:** EdgeSelection o None si no se encuentra.
+
+### `fetch_entity(self, uri: str, graph: str | None = None, user: str | None = None, collection: str | None = None) -> trustgraph.api.explainability.ExplainEntity | None`
+
+Obtener una entidad de explicabilidad por URI con manejo de consistencia eventual.
+
+Utiliza la detección de quiescencia:
+1. Obtener triples para el URI
+2. Si no hay resultados, reintentar
+3. Si hay resultados, esperar y obtener de nuevo
+4. Si los resultados son los mismos, los datos son estables: analizar y devolver
+5. Si los resultados son diferentes, los datos aún se están escribiendo: reintentar
+
+**Argumentos:**
+
+`uri`: El URI de la entidad a obtener
+`graph`: Grafo con nombre para consultar (por ejemplo, "urn:graph:retrieval")
+`user`: Identificador de usuario/espacio de claves
+`collection`: Identificador de colección
+
+**Devuelve:** Subclase ExplainEntity o None si no se encuentra
+
+### `fetch_focus_with_edges(self, uri: str, graph: str | None = None, user: str | None = None, collection: str | None = None) -> trustgraph.api.explainability.Focus | None`
+
+Obtener una entidad Focus y todas sus selecciones de aristas.
+
+**Argumentos:**
+
+`uri`: El URI de la entidad Focus
+`graph`: Grafo con nombre para consultar
+`user`: Identificador de usuario/espacio de claves
+`collection`: Identificador de colección
+
+**Devuelve:** Focus con edge_selections pobladas, o 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]`
+
+Obtener el rastro completo de GraphRAG a partir de un URI de pregunta.
+
+Sigue la cadena de procedencia: Pregunta -> Grounding -> Exploración -> Focus -> Síntesis
+
+**Argumentos:**
+
+`question_uri`: El URI de la entidad de pregunta
+`graph`: Grafo (por defecto: urn:graph:retrieval)
+`user`: Identificador de usuario/espacio de claves
+`collection`: Identificador de colección
+`api`: Instancia de la API TrustGraph para el acceso de bibliotecario (opcional)
+`max_content`: Longitud máxima del contenido para la síntesis
+
+**Devuelve:** Diccionario con las entidades de pregunta, grounding, exploración, focus y síntesis
+
+### `list_sessions(self, graph: str | None = None, user: str | None = None, collection: str | None = None, limit: int = 50) -> List[trustgraph.api.explainability.Question]`
+
+Listar todas las sesiones de explicabilidad (preguntas) en una colección.
+
+**Argumentos:**
+
+`graph`: Grafo (por defecto: urn:graph:retrieval)
+`user`: Identificador de usuario/espacio de claves
+`collection`: Identificador de colección
+`limit`: Número máximo de sesiones a devolver
+
+**Devuelve:** Lista de entidades de Pregunta ordenadas por marca de tiempo (más reciente primero)
+
+### `resolve_edge_labels(self, edge: Dict[str, str], user: str | None = None, collection: str | None = None) -> Tuple[str, str, str]`
+
+Resolver las etiquetas para todos los componentes de una tripleta de arista.
+
+**Argumentos:**
+
+`edge`: Diccionario con claves "s", "p" y "o"
+`user`: Identificador de usuario/espacio de claves
+`collection`: Identificador de colección
+
+**Devuelve:** Tupla de (s_label, p_label, o_label)
+
+### `resolve_label(self, uri: str, user: str | None = None, collection: str | None = None) -> str`
+
+Resolver rdfs:label para un URI, con almacenamiento en caché.
+
+**Argumentos:**
+
+`uri`: El URI para obtener la etiqueta
+`user`: Identificador de usuario/espacio de claves
+`collection`: Identificador de colección
+
+**Devuelve:** La etiqueta si se encuentra, de lo contrario, el propio URI
+
+
+--
+
+## `ExplainEntity`
+
+```python
+from trustgraph.api import ExplainEntity
+```
+
+Clase base para entidades de explicabilidad.
+
+**Campos:**
+
+`uri`:
+`entity_type`:
+
+### Métodos
+
+### `__init__(self, uri: str, entity_type: str = '') -> None`
+
+Inicializa self. Consulte help(type(self)) para obtener la firma precisa.
+
+
+--
+
+## `Question`
+
+```python
+from trustgraph.api import Question
+```
+
+Entidad de pregunta: la consulta del usuario que inició la sesión.
+
+**Campos:**
+
+`uri`:
+`entity_type`:
+`query`:
+`timestamp`:
+`question_type`:
+
+### Métodos
+
+### `__init__(self, uri: str, entity_type: str = '', query: str = '', timestamp: str = '', question_type: str = '') -> None`
+
+Inicializar self. Consulte help(type(self)) para obtener la firma precisa.
+
+
+--
+
+## `Exploration`
+
+```python
+from trustgraph.api import Exploration
+```
+
+Entidad de exploración: bordes/fragmentos recuperados del almacén de conocimiento.
+
+**Campos:**
+
+`uri`:
+`entity_type`:
+`edge_count`:
+`chunk_count`:
+`entities`: typing.List[str]
+
+### Métodos
+
+### `__init__(self, uri: str, entity_type: str = '', edge_count: int = 0, chunk_count: int = 0, entities: List[str] = ) -> None`
+
+Inicializa self. Consulte help(type(self)) para obtener la firma precisa.
+
+
+--
+
+## `Focus`
+
+```python
+from trustgraph.api import Focus
+```
+
+Entidad de enfoque: bordes seleccionados con razonamiento LLM (solo GraphRAG).
+
+**Campos:**
+
+`uri`:
+`entity_type`:
+`selected_edge_uris`: typing.List[str]
+`edge_selections`: typing.List[trustgraph.api.explainability.EdgeSelection]
+
+### Métodos
+
+### `__init__(self, uri: str, entity_type: str = '', selected_edge_uris: List[str] = , edge_selections: List[trustgraph.api.explainability.EdgeSelection] = ) -> None`
+
+Inicializa self. Consulta help(type(self)) para obtener la firma precisa.
+
+
+--
+
+## `Synthesis`
+
+```python
+from trustgraph.api import Synthesis
+```
+
+Entidad de síntesis: la respuesta final.
+
+**Campos:**
+
+`uri`:
+`entity_type`:
+`document`:
+
+### Métodos
+
+### `__init__(self, uri: str, entity_type: str = '', document: str = '') -> None`
+
+Inicializa self. Consulta help(type(self)) para obtener la firma precisa.
+
+
+--
+
+## `Analysis`
+
+```python
+from trustgraph.api import Analysis
+```
+
+Entidad de análisis: un ciclo de pensar/actuar/observar (solo para el Agente).
+
+**Campos:**
+
+`uri`:
+`entity_type`:
+`action`:
+`arguments`:
+`thought`:
+`observation`:
+
+### Métodos
+
+### `__init__(self, uri: str, entity_type: str = '', action: str = '', arguments: str = '', thought: str = '', observation: str = '') -> None`
+
+Inicializa self. Consulte help(type(self)) para obtener la firma correcta.
+
+
+--
+
+## `Conclusion`
+
+```python
+from trustgraph.api import Conclusion
+```
+
+Conclusión de la entidad - respuesta final (solo para el agente).
+
+**Campos:**
+
+`uri`:
+`entity_type`:
+`document`:
+
+### Métodos
+
+### `__init__(self, uri: str, entity_type: str = '', document: str = '') -> None`
+
+Inicializa self. Consulta help(type(self)) para obtener la firma precisa.
+
+
+--
+
+## `EdgeSelection`
+
+```python
+from trustgraph.api import EdgeSelection
+```
+
+Un borde seleccionado con razonamiento del paso GraphRAG Focus.
+
+**Campos:**
+
+`uri`:
+`edge`: typing.Dict[str, str] | None
+`reasoning`:
+
+### Métodos
+
+### `__init__(self, uri: str, edge: Dict[str, str] | None = None, reasoning: str = '') -> None`
+
+Inicializa self. Consulta help(type(self)) para obtener la firma precisa.
+
+
+--
+
+### `wire_triples_to_tuples(wire_triples: List[Dict[str, Any]]) -> List[Tuple[str, str, Any]]`
+
+Convierte las triples en formato de cable a tuplas (s, p, o).
+
+
+--
+
+### `extract_term_value(term: Dict[str, Any]) -> Any`
+
+Extrae el valor de un diccionario de términos en formato de cable.
+
+
+--
+
+## `Triple`
+
+```python
+from trustgraph.api import Triple
+```
+
+Triple RDF que representa una declaración de un grafo de conocimiento.
+
+**Campos:**
+
+`s`:
+`p`:
+`o`:
+
+### Métodos
+
+### `__init__(self, s: str, p: str, o: str) -> None`
+
+Inicializa self. Consulte help(type(self)) para obtener la firma precisa.
+
+
+--
+
+## `Uri`
+
+```python
+from trustgraph.api import Uri
+```
+
+str(object='') -> str
+str(bytes_or_buffer[, encoding[, errors]]) -> str
+
+Crea un nuevo objeto de cadena a partir del objeto dado. Si se especifica encoding o
+errors, entonces el objeto debe exponer un búfer de datos
+que se decodificará utilizando la codificación y el controlador de errores especificados.
+De lo contrario, devuelve el resultado de object.__str__() (si está definido)
+o repr(object).
+encoding tiene como valor predeterminado 'utf-8'.
+errors tiene como valor predeterminado 'strict'.
+
+### Métodos
+
+### `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
+
+Crea un nuevo objeto de cadena a partir del objeto dado. Si se especifica encoding o
+errors, entonces el objeto debe exponer un búfer de datos
+que se decodificará utilizando la codificación y el controlador de errores especificados.
+De lo contrario, devuelve el resultado de object.__str__() (si está definido)
+o repr(object).
+encoding tiene como valor predeterminado 'utf-8'.
+errors tiene como valor predeterminado 'strict'.
+
+### Métodos
+
+### `is_literal(self)`
+
+### `is_triple(self)`
+
+### `is_uri(self)`
+
+
+--
+
+## `ConfigKey`
+
+```python
+from trustgraph.api import ConfigKey
+```
+
+Identificador de clave de configuración.
+
+**Campos:**
+
+`type`:
+`key`:
+
+### Métodos
+
+### `__init__(self, type: str, key: str) -> None`
+
+Inicializa self. Consulte help(type(self)) para obtener la firma precisa.
+
+
+--
+
+## `ConfigValue`
+
+```python
+from trustgraph.api import ConfigValue
+```
+
+Par clave-valor de configuración.
+
+**Campos:**
+
+`type`:
+`key`:
+`value`:
+
+### Métodos
+
+### `__init__(self, type: str, key: str, value: str) -> None`
+
+Inicializa self. Consulte help(type(self)) para obtener la firma precisa.
+
+
+--
+
+## `DocumentMetadata`
+
+```python
+from trustgraph.api import DocumentMetadata
+```
+
+Metadatos para un documento en la biblioteca.
+
+**Atributos:**
+
+`parent_id: Parent document ID for child documents (empty for top`: level docs)
+
+**Campos:**
+
+`id`:
+`time`:
+`kind`:
+`title`:
+`comments`:
+`metadata`: typing.List[trustgraph.api.types.Triple]
+`user`:
+`tags`: typing.List[str]
+`parent_id`:
+`document_type`:
+
+### Métodos
+
+### `__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`
+
+Inicializar self. Consulte help(type(self)) para obtener la firma correcta.
+
+
+--
+
+## `ProcessingMetadata`
+
+```python
+from trustgraph.api import ProcessingMetadata
+```
+
+Metadatos para un trabajo de procesamiento de documentos activo.
+
+**Campos:**
+
+`id`:
+`document_id`:
+`time`:
+`flow`:
+`user`:
+`collection`:
+`tags`: typing.List[str]
+
+### Métodos
+
+### `__init__(self, id: str, document_id: str, time: datetime.datetime, flow: str, user: str, collection: str, tags: List[str]) -> None`
+
+Inicializa self. Consulte help(type(self)) para obtener la firma correcta.
+
+
+--
+
+## `CollectionMetadata`
+
+```python
+from trustgraph.api import CollectionMetadata
+```
+
+Metadatos para una colección de datos.
+
+Las colecciones proporcionan un agrupamiento lógico y un aislamiento para documentos y
+datos de grafos de conocimiento.
+
+**Atributos:**
+
+`name: Human`: nombre de colección legible
+
+**Campos:**
+
+`user`:
+`collection`:
+`name`:
+`description`:
+`tags`: typing.List[str]
+
+### Métodos
+
+### `__init__(self, user: str, collection: str, name: str, description: str, tags: List[str]) -> None`
+
+Inicializar self. Consulte help(type(self)) para obtener la firma precisa.
+
+
+--
+
+## `StreamingChunk`
+
+```python
+from trustgraph.api import StreamingChunk
+```
+
+Clase base para fragmentos de respuesta de transmisión.
+
+Se utiliza para operaciones de transmisión basadas en WebSocket, donde las respuestas se entregan
+de forma incremental a medida que se generan.
+
+**Campos:**
+
+`content`:
+`end_of_message`:
+
+### Métodos
+
+### `__init__(self, content: str, end_of_message: bool = False) -> None`
+
+Inicializa self. Consulte help(type(self)) para obtener la firma precisa.
+
+
+--
+
+## `AgentThought`
+
+```python
+from trustgraph.api import AgentThought
+```
+
+Fragmento del razonamiento/proceso de pensamiento del agente.
+
+Representa el razonamiento interno o los pasos de planificación del agente durante la ejecución.
+Estos fragmentos muestran cómo el agente está pensando sobre el problema.
+
+**Campos:**
+
+`content`:
+`end_of_message`:
+`chunk_type`:
+
+### Métodos
+
+### `__init__(self, content: str, end_of_message: bool = False, chunk_type: str = 'thought') -> None`
+
+Inicializa self. Consulte help(type(self)) para obtener la firma precisa.
+
+
+--
+
+## `AgentObservation`
+
+```python
+from trustgraph.api import AgentObservation
+```
+
+Fragmento de observación de la ejecución de la herramienta del agente.
+
+Representa el resultado u observación de la ejecución de una herramienta o acción.
+Estos fragmentos muestran lo que el agente aprendió al usar herramientas.
+
+**Campos:**
+
+`content`:
+`end_of_message`:
+`chunk_type`:
+
+### Métodos
+
+### `__init__(self, content: str, end_of_message: bool = False, chunk_type: str = 'observation') -> None`
+
+Inicializa self. Consulte help(type(self)) para obtener la firma precisa.
+
+
+--
+
+## `AgentAnswer`
+
+```python
+from trustgraph.api import AgentAnswer
+```
+
+Fragmento de la respuesta final del agente.
+
+Representa la respuesta final del agente al usuario después de completar
+su razonamiento y el uso de herramientas.
+
+**Atributos:**
+
+`chunk_type: Always "final`: answer"
+
+**Campos:**
+
+`content`:
+`end_of_message`:
+`chunk_type`:
+`end_of_dialog`:
+
+### Métodos
+
+### `__init__(self, content: str, end_of_message: bool = False, chunk_type: str = 'final-answer', end_of_dialog: bool = False) -> None`
+
+Inicializa self. Consulte help(type(self)) para obtener la firma precisa.
+
+
+--
+
+## `RAGChunk`
+
+```python
+from trustgraph.api import RAGChunk
+```
+
+Fragmento de transmisión RAG (Generación Aumentada por Recuperación).
+
+Utilizado para transmitir respuestas de RAG de grafos, RAG de documentos, finalización de texto,
+y otros servicios generativos.
+
+**Campos:**
+
+`content`:
+`end_of_message`:
+`chunk_type`:
+`end_of_stream`:
+`error`: typing.Dict[str, str] | None
+
+### Métodos
+
+### `__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`
+
+Inicializa self. Consulte help(type(self)) para obtener la firma precisa.
+
+
+--
+
+## `ProvenanceEvent`
+
+```python
+from trustgraph.api import ProvenanceEvent
+```
+
+Evento de procedencia para la explicabilidad.
+
+Emitido durante las consultas de GraphRAG cuando el modo de explicabilidad está habilitado.
+Cada evento representa un nodo de procedencia creado durante el procesamiento de la consulta.
+
+**Campos:**
+
+`explain_id`:
+`explain_graph`:
+`event_type`:
+
+### Métodos
+
+### `__init__(self, explain_id: str, explain_graph: str = '', event_type: str = '') -> None`
+
+Inicializar self. Consulte help(type(self)) para obtener la firma precisa.
+
+
+--
+
+## `ProtocolException`
+
+```python
+from trustgraph.api import ProtocolException
+```
+
+Se genera cuando ocurren errores en el protocolo WebSocket.
+
+
+--
+
+## `TrustGraphException`
+
+```python
+from trustgraph.api import TrustGraphException
+```
+
+Clase base para todos los errores del servicio TrustGraph.
+
+
+--
+
+## `AgentError`
+
+```python
+from trustgraph.api import AgentError
+```
+
+Error en el servicio del agente
+
+
+--
+
+## `ConfigError`
+
+```python
+from trustgraph.api import ConfigError
+```
+
+Error del servicio de configuración
+
+
+--
+
+## `DocumentRagError`
+
+```python
+from trustgraph.api import DocumentRagError
+```
+
+Error de recuperación de documentos RAG.
+
+
+--
+
+## `FlowError`
+
+```python
+from trustgraph.api import FlowError
+```
+
+Error de gestión de flujo
+
+
+--
+
+## `GatewayError`
+
+```python
+from trustgraph.api import GatewayError
+```
+
+Error de la API Gateway
+
+
+--
+
+## `GraphRagError`
+
+```python
+from trustgraph.api import GraphRagError
+```
+
+Error de recuperación de Graph RAG.
+
+
+--
+
+## `LLMError`
+
+```python
+from trustgraph.api import LLMError
+```
+
+Error del servicio de modelo de lenguaje grande.
+
+
+--
+
+## `LoadError`
+
+```python
+from trustgraph.api import LoadError
+```
+
+Error de carga de datos
+
+
+--
+
+## `LookupError`
+
+```python
+from trustgraph.api import LookupError
+```
+
+Error de búsqueda/consulta
+
+
+--
+
+## `NLPQueryError`
+
+```python
+from trustgraph.api import NLPQueryError
+```
+
+Error en el servicio de consulta de procesamiento del lenguaje natural.
+
+
+--
+
+## `RowsQueryError`
+
+```python
+from trustgraph.api import RowsQueryError
+```
+
+Error en el servicio de consulta de filas.
+
+
+--
+
+## `RequestError`
+
+```python
+from trustgraph.api import RequestError
+```
+
+Error en el procesamiento de la solicitud.
+
+
+--
+
+## `StructuredQueryError`
+
+```python
+from trustgraph.api import StructuredQueryError
+```
+
+Error en el servicio de consulta estructurada.
+
+
+--
+
+## `UnexpectedError`
+
+```python
+from trustgraph.api import UnexpectedError
+```
+
+Error inesperado/desconocido
+
+
+--
+
+## `ApplicationException`
+
+```python
+from trustgraph.api import ApplicationException
+```
+
+Clase base para todos los errores del servicio TrustGraph.
+
+
+--
diff --git a/docs/python-api.he.md b/docs/python-api.he.md
new file mode 100644
index 00000000..f309eafe
--- /dev/null
+++ b/docs/python-api.he.md
@@ -0,0 +1,4078 @@
+---
+layout: default
+title: "מדריך הפניות ל-API של TrustGraph בפייתון"
+parent: "Hebrew (Beta)"
+---
+
+# מדריך הפניות ל-API של TrustGraph בפייתון
+
+> **Beta Translation:** This document was translated via Machine Learning and as such may not be 100% accurate. All non-English languages are currently classified as Beta.
+
+## התקנה
+
+```bash
+pip install trustgraph
+```
+
+## התחלה מהירה
+
+כל המחלקות והטיפוסים מיובאים מהחבילה `trustgraph.api`:
+
+```python
+from trustgraph.api import Api, Triple, ConfigKey
+
+# Create API client
+api = Api(url="http://localhost:8088/")
+
+# Get a flow instance
+flow = api.flow().id("default")
+
+# Execute a graph RAG query
+response = flow.graph_rag(
+ query="What are the main topics?",
+ user="trustgraph",
+ collection="default"
+)
+```
+
+## תוכן עניינים
+
+### ליבה
+
+[Api](#api)
+
+### לקוחות זרימה
+
+[Flow](#flow)
+[FlowInstance](#flowinstance)
+[AsyncFlow](#asyncflow)
+[AsyncFlowInstance](#asyncflowinstance)
+
+### לקוחות WebSocket
+
+[SocketClient](#socketclient)
+[SocketFlowInstance](#socketflowinstance)
+[AsyncSocketClient](#asyncsocketclient)
+[AsyncSocketFlowInstance](#asyncsocketflowinstance)
+
+### פעולות מרובות
+
+[BulkClient](#bulkclient)
+[AsyncBulkClient](#asyncbulkclient)
+
+### מדדים
+
+[Metrics](#metrics)
+[AsyncMetrics](#asyncmetrics)
+
+### סוגי נתונים
+
+[Triple](#triple)
+[ConfigKey](#configkey)
+[ConfigValue](#configvalue)
+[DocumentMetadata](#documentmetadata)
+[ProcessingMetadata](#processingmetadata)
+[CollectionMetadata](#collectionmetadata)
+[StreamingChunk](#streamingchunk)
+[AgentThought](#agentthought)
+[AgentObservation](#agentobservation)
+[AgentAnswer](#agentanswer)
+[RAGChunk](#ragchunk)
+
+### חריגות
+
+[ProtocolException](#protocolexception)
+[TrustGraphException](#trustgraphexception)
+[AgentError](#agenterror)
+[ConfigError](#configerror)
+[DocumentRagError](#documentragerror)
+[FlowError](#flowerror)
+[GatewayError](#gatewayerror)
+[GraphRagError](#graphragerror)
+[LLMError](#llmerror)
+[LoadError](#loaderror)
+[LookupError](#lookuperror)
+[NLPQueryError](#nlpqueryerror)
+[RowsQueryError](#rowsqueryerror)
+[RequestError](#requesterror)
+[StructuredQueryError](#structuredqueryerror)
+[UnexpectedError](#unexpectederror)
+[ApplicationException](#applicationexception)
+
+--
+
+## `Api`
+
+```python
+from trustgraph.api import Api
+```
+
+לקוח API הראשי של TrustGraph לפעולות סינכרוניות ואסינכרוניות.
+
+מחלקה זו מספקת גישה לכל שירותי TrustGraph, כולל ניהול זרימות,
+פעולות גרף ידע, עיבוד מסמכים, שאילתות RAG ועוד. היא תומכת
+הן בדפוסי תקשורת מבוססי REST והן בדפוסי תקשורת מבוססי WebSocket.
+
+ניתן להשתמש בלקוח כמנהל הקשר לניקוי אוטומטי של משאבים:
+ ```python
+ with Api(url="http://localhost:8088/") as api:
+ result = api.flow().id("default").graph_rag(query="test")
+ ```
+
+### שיטות
+
+### `__aenter__(self)`
+
+כניסה למנהל הקשר אסינכרוני.
+
+### `__aexit__(self, *args)`
+
+יציאה ממנהל הקשר האסינכרוני וסגירת חיבורים.
+
+### `__enter__(self)`
+
+כניסה למנהל הקשר סינכרוני.
+
+### `__exit__(self, *args)`
+
+יציאה ממנהל הקשר הסינכרוני וסגירת חיבורים.
+
+### `__init__(self, url='http://localhost:8088/', timeout=60, token: str | None = None)`
+
+אתחול לקוח ה-API של TrustGraph.
+
+**ארגומנטים:**
+
+`url`: כתובת הבסיס עבור ה-API של TrustGraph (ברירת מחדל: "http://localhost:8088/"")
+`timeout`: זמן אחזור מקסימלי בשניות (ברירת מחדל: 60)
+`token`: טוקן bearer אופציונלי לאימות
+
+**דוגמה:**
+
+```python
+# Local development
+api = Api()
+
+# Production with authentication
+api = Api(
+ url="https://trustgraph.example.com/",
+ timeout=120,
+ token="your-api-token"
+)
+```
+
+### `aclose(self)`
+
+סגור את כל החיבורים של הלקוח האסינכרוניים.
+
+שיטה זו סוגרת חיבורי WebSocket אסינכרוניים, פעולות סיטונאיות וחיבורי זרימה.
+היא נקראת אוטומטית כאשר יוצאים מתוך מנהל הקשר האסינכרוני.
+
+**דוגמה:**
+
+```python
+api = Api()
+async_socket = api.async_socket()
+# ... use async_socket
+await api.aclose() # Clean up connections
+
+# Or use async context manager (automatic cleanup)
+async with Api() as api:
+ async_socket = api.async_socket()
+ # ... use async_socket
+# Automatically closed
+```
+
+### `async_bulk(self)`
+
+קבל לקוח לפעולות אסינכרוניות מרובות.
+
+מספק פעולות ייבוא/ייצוא מרובות בסגנון async/await באמצעות WebSocket
+לטיפול יעיל בערכות נתונים גדולות.
+
+**מחזיר:** AsyncBulkClient: לקוח לפעולות אסינכרוניות מרובות.
+
+**דוגמה:**
+
+```python
+async_bulk = api.async_bulk()
+
+# Export triples asynchronously
+async for triple in async_bulk.export_triples(flow="default"):
+ print(f"{triple.s} {triple.p} {triple.o}")
+
+# Import with async generator
+async def triple_gen():
+ yield Triple(s="subj", p="pred", o="obj")
+ # ... more triples
+
+await async_bulk.import_triples(
+ flow="default",
+ triples=triple_gen()
+)
+```
+
+### `async_flow(self)`
+
+קבל לקוח זרימה מבוסס REST אסינכרוני.
+
+מספק גישה בסגנון async/await לפעולות זרימה. זה מועדף
+עבור יישומי ומסגרות Python אסינכרוניות (FastAPI, aiohttp, וכו').
+
+**מחזיר:** AsyncFlow: לקוח זרימה אסינכרוני
+
+**דוגמה:**
+
+```python
+async_flow = api.async_flow()
+
+# List flows
+flow_ids = await async_flow.list()
+
+# Execute operations
+instance = async_flow.id("default")
+result = await instance.text_completion(
+ system="You are helpful",
+ prompt="Hello"
+)
+```
+
+### `async_metrics(self)`
+
+קבל לקוח מדדים אסינכרוני.
+
+מספק גישה בסגנון async/await למדדי Prometheus.
+
+**מחזיר:** AsyncMetrics: לקוח מדדים אסינכרוני
+
+**דוגמה:**
+
+```python
+async_metrics = api.async_metrics()
+prometheus_text = await async_metrics.get()
+print(prometheus_text)
+```
+
+### `async_socket(self)`
+
+קבל לקוח WebSocket אסינכרוני לפעולות סטרימינג.
+
+מספק גישה ל-WebSocket בסגנון async/await עם תמיכה בסטרימינג.
+זוהי השיטה המועדפת לסטרימינג אסינכרוני בפייתון.
+
+**מחזיר:** AsyncSocketClient: לקוח WebSocket אסינכרוני.
+
+**דוגמה:**
+
+```python
+async_socket = api.async_socket()
+flow = async_socket.flow("default")
+
+# Stream agent responses
+async for chunk in flow.agent(
+ question="Explain quantum computing",
+ user="trustgraph",
+ streaming=True
+):
+ if hasattr(chunk, 'content'):
+ print(chunk.content, end='', flush=True)
+```
+
+### `bulk(self)`
+
+קבל לקוח לפעולות סינכרוניות מרובות לצורך ייבוא/ייצוא.
+
+פעולות מרובות מאפשרות העברת כמויות גדולות של נתונים בצורה יעילה באמצעות חיבורי WebSocket, כולל משולשות, הטמעות, הקשרים של ישויות ואובייקטים.
+
+**מחזיר:** BulkClient: לקוח לפעולות סינכרוניות מרובות.
+
+**דוגמה:**
+
+
+```python
+bulk = api.bulk()
+
+# Export triples
+for triple in bulk.export_triples(flow="default"):
+ print(f"{triple.s} {triple.p} {triple.o}")
+
+# Import triples
+def triple_generator():
+ yield Triple(s="subj", p="pred", o="obj")
+ # ... more triples
+
+bulk.import_triples(flow="default", triples=triple_generator())
+```
+
+### `close(self)`
+
+סגור את כל החיבורים של הלקוח הסינכרוניים.
+
+שיטה זו סוגרת חיבורי WebSocket וחיבורים לפעולות מרובות.
+היא נקראת באופן אוטומטי כאשר יוצאים מתוך מנהל הקשר.
+
+**דוגמה:**
+
+```python
+api = Api()
+socket = api.socket()
+# ... use socket
+api.close() # Clean up connections
+
+# Or use context manager (automatic cleanup)
+with Api() as api:
+ socket = api.socket()
+ # ... use socket
+# Automatically closed
+```
+
+### `collection(self)`
+
+קבלת לקוח Collection לניהול אוספי נתונים.
+
+אוספים מארגנים מסמכים ונתוני גרף ידע לקבוצות
+לוגיות לצורך בידוד ובקרת גישה.
+
+**מחזיר:** Collection: לקוח לניהול אוספים
+
+**דוגמה:**
+
+```python
+collection = api.collection()
+
+# List collections
+colls = collection.list_collections(user="trustgraph")
+
+# Update collection metadata
+collection.update_collection(
+ user="trustgraph",
+ collection="default",
+ name="Default Collection",
+ description="Main data collection"
+)
+```
+
+### `config(self)`
+
+קבל לקוח Config לניהול הגדרות תצורה.
+
+**מחזיר:** Config: לקוח לניהול תצורה
+
+**דוגמה:**
+
+```python
+config = api.config()
+
+# Get configuration values
+values = config.get([ConfigKey(type="llm", key="model")])
+
+# Set configuration
+config.put([ConfigValue(type="llm", key="model", value="gpt-4")])
+```
+
+### `flow(self)`
+
+קבל לקוח Flow לניהול ולביצוע אינטראקציה עם זרימות.
+
+זרימות הן יחידות הביצוע העיקריות ב-TrustGraph, המספקות גישה ל
+שירותים כמו סוכנים, שאילתות RAG, הטמעות ועיבוד מסמכים.
+
+**מחזיר:** Flow: לקוח לניהול זרימות
+
+**דוגמה:**
+
+```python
+flow_client = api.flow()
+
+# List available blueprints
+blueprints = flow_client.list_blueprints()
+
+# Get a specific flow instance
+flow_instance = flow_client.id("default")
+response = flow_instance.text_completion(
+ system="You are helpful",
+ prompt="Hello"
+)
+```
+
+### `knowledge(self)`
+
+קבל לקוח Knowledge לניהול ליבות גרף ידע.
+
+**מחזיר:** לקוח לניהול גרף ידע: Knowledge
+
+**דוגמה:**
+
+```python
+knowledge = api.knowledge()
+
+# List available KG cores
+cores = knowledge.list_kg_cores(user="trustgraph")
+
+# Load a KG core
+knowledge.load_kg_core(id="core-123", user="trustgraph")
+```
+
+### `library(self)`
+
+קבלת לקוח לספרייה לניהול מסמכים.
+
+הספרייה מספקת אחסון מסמכים, ניהול מטא-דאטה ו
+תיאום זרימת עבודה לעיבוד.
+
+**החזר:** Library: לקוח לניהול ספריית מסמכים
+
+**דוגמה:**
+
+```python
+library = api.library()
+
+# Add a document
+library.add_document(
+ document=b"Document content",
+ id="doc-123",
+ metadata=[],
+ user="trustgraph",
+ title="My Document",
+ comments="Test document"
+)
+
+# List documents
+docs = library.get_documents(user="trustgraph")
+```
+
+### `metrics(self)`
+
+קבל לקוח מדדים סינכרוני למטרות ניטור.
+
+שולף מדדים בפורמט Prometheus מהשירות TrustGraph
+לצורך ניטור וניתוח.
+
+**מחזיר:** מדדים: לקוח מדדים סינכרוני
+
+**דוגמה:**
+
+```python
+metrics = api.metrics()
+prometheus_text = metrics.get()
+print(prometheus_text)
+```
+
+### `request(self, path, request)`
+
+ביצוע בקשת REST ברמה נמוכה.
+
+שיטה זו מיועדת בעיקר לשימוש פנימי, אך ניתן להשתמש בה לגישה ישירה
+ל-API כאשר נדרש.
+
+**ארגומנטים:**
+
+`path`: נתיב נקודת הקצה של ה-API (ביחס לכתובת הבסיס)
+`request`: מטען הבקשה כמילון
+
+**החזרות:** dict: אובייקט תגובה
+
+**מעלה:**
+
+`ProtocolException`: אם מצב התגובה אינו 200 או שהתגובה אינה JSON
+`ApplicationException`: אם התגובה מכילה שגיאה
+
+**דוגמה:**
+
+```python
+response = api.request("flow", {
+ "operation": "list-flows"
+})
+```
+
+### `socket(self)`
+
+קבל לקוח WebSocket סינכרוני לפעולות סטרימינג.
+
+חיבורי WebSocket מספקים תמיכה בסטרימינג לתגובות בזמן אמת
+מסוכנים, שאילתות RAG והשלמות טקסט. שיטה זו מחזירה עטיפה סינכרונית
+סביב פרוטוקול ה-WebSocket.
+
+**מחזיר:** SocketClient: לקוח WebSocket סינכרוני
+
+**דוגמה:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+# Stream agent responses
+for chunk in flow.agent(
+ question="Explain quantum computing",
+ user="trustgraph",
+ streaming=True
+):
+ if hasattr(chunk, 'content'):
+ print(chunk.content, end='', flush=True)
+```
+
+
+--
+
+## `Flow`
+
+```python
+from trustgraph.api import Flow
+```
+
+לקוח לניהול זרימות עבור פעולות על תוכניות זרימה ומצבי זרימה.
+
+מחלקה זו מספקת שיטות לניהול תוכניות זרימה (תבניות) ו-
+מצבי זרימה (זרימות פעילות). תוכניות זרימה מגדירות את המבנה ואת
+הפרמטרים של הזרימות, בעוד שמצבי זרימה מייצגים זרימות פעילות שניתן
+להפעיל שירותים.
+
+### שיטות
+
+### `__init__(self, api)`
+
+אתחול לקוח זרימה.
+
+**ארגומנטים:**
+
+`api`: מופע Api הורה לביצוע בקשות
+
+### `delete_blueprint(self, blueprint_name)`
+
+מחיקת תוכנית זרימה.
+
+**ארגומנטים:**
+
+`blueprint_name`: שם התוכנית למחיקה
+
+**דוגמה:**
+
+```python
+api.flow().delete_blueprint("old-blueprint")
+```
+
+### `get(self, id)`
+
+קבלת ההגדרה של מופע זרימה פעיל.
+
+**ארגומנטים:**
+
+`id`: מזהה מופע זרימה
+
+**החזר:** dict: הגדרת מופע זרימה
+
+**דוגמה:**
+
+```python
+flow_def = api.flow().get("default")
+print(flow_def)
+```
+
+### `get_blueprint(self, blueprint_name)`
+
+קבלת הגדרה של תבנית זרימה לפי שם.
+
+**ארגומנטים:**
+
+`blueprint_name`: שם התבנית שיש לשלוף
+
+**החזר:** dict: הגדרת התבנית כמילון
+
+**דוגמה:**
+
+```python
+blueprint = api.flow().get_blueprint("default")
+print(blueprint) # Blueprint configuration
+```
+
+### `id(self, id='default')`
+
+קבלת מופע FlowInstance לביצוע פעולות על זרימה ספציפית.
+
+**ארגומנטים:**
+
+`id`: מזהה זרימה (ברירת מחדל: "default")
+
+**החזרות:** FlowInstance: מופע זרימה לפעולות שירות
+
+**דוגמה:**
+
+```python
+flow = api.flow().id("my-flow")
+response = flow.text_completion(
+ system="You are helpful",
+ prompt="Hello"
+)
+```
+
+### `list(self)`
+
+רשום את כל מופעי ה-flow הפעילים.
+
+**מחזיר:** list[str]: רשימה של מזהי מופעי flow
+
+**דוגמה:**
+
+```python
+flows = api.flow().list()
+print(flows) # ['default', 'flow-1', 'flow-2', ...]
+```
+
+### `list_blueprints(self)`
+
+רשום את כל תבניות העבודה הזמינות.
+
+**מחזיר:** list[str]: רשימה של שמות תבניות.
+
+**דוגמה:**
+
+```python
+blueprints = api.flow().list_blueprints()
+print(blueprints) # ['default', 'custom-flow', ...]
+```
+
+### `put_blueprint(self, blueprint_name, definition)`
+
+יצירת או עדכון תבנית זרימה.
+
+**ארגומנטים:**
+
+`blueprint_name`: שם עבור התבנית
+`definition`: מילון הגדרת התבנית
+
+**דוגמה:**
+
+```python
+definition = {
+ "services": ["text-completion", "graph-rag"],
+ "parameters": {"model": "gpt-4"}
+}
+api.flow().put_blueprint("my-blueprint", definition)
+```
+
+### `request(self, path=None, request=None)`
+
+ביצוע בקשת API בתחום (flow).
+
+**ארגומנטים:**
+
+`path`: סיומת נתיב אופציונלית עבור נקודות קצה של flow.
+`request`: מילון מטען בקשה.
+
+**מחזיר:** dict: אובייקט תגובה.
+
+**מעלה:**
+
+`RuntimeError`: אם פרמטר הבקשה לא מצוין.
+
+### `start(self, blueprint_name, id, description, parameters=None)`
+
+התחלת מופע flow חדש מתבנית (blueprint).
+
+**ארגומנטים:**
+
+`blueprint_name`: שם התבנית (blueprint) לשימוש.
+`id`: מזהה ייחודי למופע ה-flow.
+`description`: תיאור קריא.
+`parameters`: מילון פרמטרים אופציונלי.
+
+**דוגמה:**
+
+```python
+api.flow().start(
+ blueprint_name="default",
+ id="my-flow",
+ description="My custom flow",
+ parameters={"model": "gpt-4"}
+)
+```
+
+### `stop(self, id)`
+
+עצירת מופע זרימה פעיל.
+
+**ארגומנטים:**
+
+`id`: מזהה של מופע הזרימה שיש לעצור.
+
+**דוגמה:**
+
+```python
+api.flow().stop("my-flow")
+```
+
+
+--
+
+## `FlowInstance`
+
+```python
+from trustgraph.api import FlowInstance
+```
+
+מופע לקוח של Flow לביצוע שירותים ב-flow ספציפי.
+
+מחלקה זו מספקת גישה לכל שירותי TrustGraph, כולל:
+השלמת טקסט והטמעות
+פעולות סוכן עם ניהול מצב
+שאילתות RAG עבור גרפים ומסמכים
+פעולות גרף ידע (טריפלטים, אובייקטים)
+טעינה ועיבוד מסמכים
+המרה משפה טבעית לשאילתת GraphQL
+ניתוח נתונים מובנים וזיהוי סכימה
+ביצוע כלי MCP
+תבניות הנחיה
+
+לשירותים ניגשים באמצעות מופע Flow פעיל, המזוהה באמצעות מזהה.
+
+### שיטות
+
+### `__init__(self, api, id)`
+
+אתחול FlowInstance.
+
+**ארגומנטים:**
+
+`api`: לקוח Flow ראשי
+`id`: מזהה מופע Flow
+
+### `agent(self, question, user='trustgraph', state=None, group=None, history=None)`
+
+ביצוע פעולת סוכן עם יכולות חשיבה ושימוש בכלים.
+
+סוכנים יכולים לבצע חשיבה רב-שלבית, להשתמש בכלים ולשמור על שיחה
+מצב בין אינטראקציות. זו גרסה סינכרונית שאינה זורמת.
+
+**ארגומנטים:**
+
+`question`: שאלה או הוראה של משתמש
+`user`: מזהה משתמש (ברירת מחדל: "trustgraph")
+`state`: מילון מצב אופציונלי לשיחות עם מצב
+`group`: מזהה קבוצה אופציונלי עבור הקשרים מרובי משתמשים
+`history`: היסטוריית שיחה אופציונלית כרשימה של מילוני הודעות
+
+**מחזיר:** str: תשובה סופית של הסוכן
+
+**דוגמה:**
+
+```python
+flow = api.flow().id("default")
+
+# Simple question
+answer = flow.agent(
+ question="What is the capital of France?",
+ user="trustgraph"
+)
+
+# With conversation history
+history = [
+ {"role": "user", "content": "Hello"},
+ {"role": "assistant", "content": "Hi! How can I help?"}
+]
+answer = flow.agent(
+ question="Tell me about Paris",
+ user="trustgraph",
+ history=history
+)
+```
+
+### `detect_type(self, sample)`
+
+זיהוי סוג הנתונים של דוגמת נתונים מובנים.
+
+**ארגומנטים:**
+
+`sample`: דוגמת נתונים לניתוח (תוכן מחרוזת)
+
+**החזרות:** מילון עם detected_type, confidence, ומטא-נתונים אופציונליים
+
+### `diagnose_data(self, sample, schema_name=None, options=None)`
+
+ביצוע אבחון נתונים משולב: זיהוי סוג ויצירת תיאור.
+
+**ארגומנטים:**
+
+`sample`: דוגמת נתונים לניתוח (תוכן מחרוזת)
+`schema_name`: שם סכימה יעד אופציונלי ליצירת תיאור
+`options`: פרמטרים אופציונליים (לדוגמה, מפריד עבור CSV)
+
+**החזרות:** מילון עם detected_type, confidence, descriptor, ומטא-נתונים
+
+### `document_embeddings_query(self, text, user, collection, limit=10)`
+
+שאילתת מקטעי מסמכים באמצעות דמיון סמנטי.
+
+מוצאת מקטעי מסמכים שהתוכן שלהם דומה מבחינה סמנטית לטקסט
+הקלט, תוך שימוש בהטמעות וקטוריות.
+
+**ארגומנטים:**
+
+`text`: טקסט שאילתה לחיפוש סמנטי
+`user`: מזהה משתמש/מרחב מפתחות
+`collection`: מזהה אוסף
+`limit`: מספר מקסימלי של תוצאות (ברירת מחדל: 10)
+
+**החזרות:** מילון: תוצאות שאילתה עם מקטעים המכילים chunk_id וציון
+
+**דוגמה:**
+
+```python
+flow = api.flow().id("default")
+results = flow.document_embeddings_query(
+ text="machine learning algorithms",
+ user="trustgraph",
+ collection="research-papers",
+ limit=5
+)
+# results contains {"chunks": [{"chunk_id": "doc1/p0/c0", "score": 0.95}, ...]}
+```
+
+### `document_rag(self, query, user='trustgraph', collection='default', doc_limit=10)`
+
+הפעל שאילתה של יצירת טקסט מבוססת אחזור מוגבר (RAG) על מסמכים.
+
+RAG מבוסס מסמכים משתמש בהטמעות וקטוריות כדי למצוא מקטעי מסמכים רלוונטיים,
+ולאחר מכן מייצר תגובה באמצעות מודל שפה גדול (LLM) תוך שימוש במקטעים אלה כהקשר.
+
+**ארגומנטים:**
+
+`query`: שאילתה בשפה טבעית
+`user`: מזהה משתמש/מרחב מפתחות (ברירת מחדל: "trustgraph")
+`collection`: מזהה אוסף (ברירת מחדל: "default")
+`doc_limit`: מספר מקסימלי של מקטעי מסמכים שיש לשלוף (ברירת מחדל: 10)
+
+**החזרות:** str: תגובה שנוצרה המשלבת הקשר של מסמכים
+
+**דוגמה:**
+
+```python
+flow = api.flow().id("default")
+response = flow.document_rag(
+ query="Summarize the key findings",
+ user="trustgraph",
+ collection="research-papers",
+ doc_limit=5
+)
+print(response)
+```
+
+### `embeddings(self, texts)`
+
+יצירת הטמעות וקטוריות עבור טקסט אחד או יותר.
+
+ממיר טקסטים לייצוגים וקטוריים צפופים המתאימים לחיפוש סמנטי
+והשוואת דמיון.
+
+**ארגומנטים:**
+
+`texts`: רשימה של טקסטים קלט ליצירת הטמעות
+
+**החזרות:** list[list[list[float]]]: הטמעות וקטוריות, סט אחד לכל טקסט קלט
+
+**דוגמה:**
+
+```python
+flow = api.flow().id("default")
+vectors = flow.embeddings(["quantum computing"])
+print(f"Embedding dimension: {len(vectors[0][0])}")
+```
+
+### `generate_descriptor(self, sample, data_type, schema_name, options=None)`
+
+יצירת תיאור עבור מיפוי נתונים מובנים לתוך סכימה ספציפית.
+
+**ארגומנטים:**
+
+`sample`: דוגמת נתונים לניתוח (תוכן מחרוזת)
+`data_type`: סוג נתונים (csv, json, xml)
+`schema_name`: שם הסכימה המיועדת ליצירת התיאור
+`options`: פרמטרים אופציונליים (לדוגמה, מפריד עבור CSV)
+
+**החזרות:** מילון עם התיאור ומטא-נתונים
+
+### `graph_embeddings_query(self, text, user, collection, limit=10)`
+
+שאילתת ישויות גרף ידע באמצעות דמיון סמנטי.
+
+מציאת ישויות בגרף הידע שעבורן התיאורים שלהן דומים מבחינה סמנטית
+לטקסט הקלט, תוך שימוש בהטמעות וקטוריות.
+
+**ארגומנטים:**
+
+`text`: טקסט שאילתה לחיפוש סמנטי
+`user`: מזהה משתמש/מרחב מפתחות
+`collection`: מזהה אוסף
+`limit`: מספר מקסימלי של תוצאות (ברירת מחדל: 10)
+
+**החזרות:** מילון: תוצאות שאילתה עם ישויות דומות
+
+**דוגמה:**
+
+```python
+flow = api.flow().id("default")
+results = flow.graph_embeddings_query(
+ text="physicist who discovered radioactivity",
+ user="trustgraph",
+ collection="scientists",
+ limit=5
+)
+# results contains {"entities": [{"entity": {...}, "score": 0.95}, ...]}
+```
+
+### `graph_rag(self, query, user='trustgraph', collection='default', entity_limit=50, triple_limit=30, max_subgraph_size=150, max_path_length=2)`
+
+הפעל שאילתה מבוססת גרפים של יצירת טקסט משופרת באמצעות אחזור (RAG).
+
+Graph RAG משתמש במבנה של גרף ידע כדי למצוא הקשר רלוונטי על ידי
+מעבר בין קשרים של ישויות, ולאחר מכן מייצר תגובה באמצעות מודל שפה גדול (LLM).
+
+**ארגומנטים:**
+
+`query`: שאילתה בשפה טבעית
+`user`: מזהה משתמש/מרחב מפתחות (ברירת מחדל: "trustgraph")
+`collection`: מזהה אוסף (ברירת מחדל: "default")
+`entity_limit`: מספר הישויות המקסימלי שיש להחזיר (ברירת מחדל: 50)
+`triple_limit`: מספר הטריפלים המקסימלי לישות (ברירת מחדל: 30)
+`max_subgraph_size`: מספר הטריפלים הכולל המקסימלי בתת-גרף (ברירת מחדל: 150)
+`max_path_length`: עומק מעבר מקסימלי (ברירת מחדל: 2)
+
+**החזרות:** str: תגובה שנוצרה המשלבת הקשר גרפי
+
+**דוגמה:**
+
+```python
+flow = api.flow().id("default")
+response = flow.graph_rag(
+ query="Tell me about Marie Curie's discoveries",
+ user="trustgraph",
+ collection="scientists",
+ entity_limit=20,
+ max_path_length=3
+)
+print(response)
+```
+
+### `load_document(self, document, id=None, metadata=None, user=None, collection=None)`
+
+טען מסמך בינארי לעיבוד.
+
+העלאת מסמך (PDF, DOCX, תמונות וכו') לצורך חילוץ ו
+עיבוד דרך צינור המסמכים של ה-flow.
+
+**ארגומנטים:**
+
+`document`: תוכן המסמך כבייטים
+`id`: מזהה מסמך אופציונלי (נוצר אוטומטית אם לא קיים)
+`metadata`: מטא-דאטה אופציונלי (רשימה של טריפלטים או אובייקט עם שיטת emit)
+`user`: מזהה משתמש/מרחב מפתחות (אופציונלי)
+`collection`: מזהה אוסף (אופציונלי)
+
+**החזרות:** dict: תגובת עיבוד
+
+**מעלה:**
+
+`RuntimeError`: אם סופק מטא-דאטה ללא מזהה
+
+**דוגמה:**
+
+```python
+flow = api.flow().id("default")
+
+# Load a PDF document
+with open("research.pdf", "rb") as f:
+ result = flow.load_document(
+ document=f.read(),
+ id="research-001",
+ user="trustgraph",
+ collection="papers"
+ )
+```
+
+### `load_text(self, text, id=None, metadata=None, charset='utf-8', user=None, collection=None)`
+
+טעינת תוכן טקסטואלי לצורך עיבוד.
+
+העלאת תוכן טקסטואלי לצורך חילוץ ועיבוד דרך צינור הטקסט של ה-flow.
+
+
+**ארגומנטים:**
+
+`text`: תוכן טקסטואלי בפורמט של בתים
+`id`: מזהה מסמך אופציונלי (נוצר אוטומטית אם לא סופק)
+`metadata`: מטא-דאטה אופציונלי (רשימה של טריפלטים או אובייקט עם שיטת emit)
+`charset`: קידוד תווים (ברירת מחדל: "utf-8")
+`user`: מזהה משתמש/מרחב מפתחות (אופציונלי)
+`collection`: מזהה אוסף (אופציונלי)
+
+**החזרות:** dict: תגובת עיבוד
+
+**גורם לשגיאה:**
+
+`RuntimeError`: אם סופק מטא-דאטה ללא מזהה
+
+**דוגמה:**
+
+```python
+flow = api.flow().id("default")
+
+# Load text content
+text_content = b"This is the document content..."
+result = flow.load_text(
+ text=text_content,
+ id="text-001",
+ charset="utf-8",
+ user="trustgraph",
+ collection="documents"
+)
+```
+
+### `mcp_tool(self, name, parameters={})`
+
+הפעלת כלי פרוטוקול הקשר מודל (Model Context Protocol - MCP).
+
+כלי MCP מספקים פונקציונליות ניתנת להרחבה עבור סוכנים ותהליכי עבודה,
+ומאפשרים שילוב עם מערכות ושירותים חיצוניים.
+
+**ארגומנטים:**
+
+`name`: שם/מזהה הכלי
+`parameters`: מילון פרמטרים של הכלי (ברירת מחדל: {})
+
+**החזרות:** str או dict: תוצאת ביצוע הכלי
+
+**מעלה:**
+
+`ProtocolException`: אם פורמט התגובה אינו תקין
+
+**דוגמה:**
+
+```python
+flow = api.flow().id("default")
+
+# Execute a tool
+result = flow.mcp_tool(
+ name="search-web",
+ parameters={"query": "latest AI news", "limit": 5}
+)
+```
+
+### `nlp_query(self, question, max_results=100)`
+
+המרת שאלה בשפה טבעית לשאילתת GraphQL.
+
+**ארגומנטים:**
+
+`question`: שאלה בשפה טבעית
+`max_results`: מספר מקסימלי של תוצאות להחזרה (ברירת מחדל: 100)
+
+**החזרות:** מילון עם graphql_query, variables, detected_schemas, confidence
+
+### `prompt(self, id, variables)`
+
+ביצוע תבנית שאילתה עם החלפת משתנים.
+
+תבניות שאילתה מאפשרות דפוסי שאילתה לשימוש חוזר עם החלפת משתנים דינמית,
+שימושי עבור הנדסת שאילתות עקבית.
+
+**ארגומנטים:**
+
+`id`: מזהה תבנית שאילתה
+`variables`: מילון של התאמות בין שם משתנה לערך
+
+**החזרות:** מחרוזת או מילון: תוצאת שאילתה מעובדת (טקסט או אובייקט מובנה)
+
+**מעלה:**
+
+`ProtocolException`: אם פורמט התגובה אינו תקין
+
+**דוגמה:**
+
+```python
+flow = api.flow().id("default")
+
+# Text template
+result = flow.prompt(
+ id="summarize-template",
+ variables={"topic": "quantum computing", "length": "brief"}
+)
+
+# Structured template
+result = flow.prompt(
+ id="extract-entities",
+ variables={"text": "Marie Curie won Nobel Prizes"}
+)
+```
+
+### `request(self, path, request)`
+
+הגשת בקשה לשירות במקרה זה.
+
+**ארגומנטים:**
+
+`path`: נתיב השירות (לדוגמה, "service/text-completion")
+`request`: מילון מטען הבקשה
+
+**החזר:** dict: תגובת השירות
+
+### `row_embeddings_query(self, text, schema_name, user='trustgraph', collection='default', index_name=None, limit=10)`
+
+שאילתת נתוני שורה באמצעות דמיון סמנטי בשדות ממופים.
+
+מוצאת שורות שבהן ערכי השדות הממופים דומים מבחינה סמנטית לטקסט
+הקלט, תוך שימוש בהטמעות וקטוריות. זה מאפשר התאמה מעורפלת/סמנטית
+בנתונים מובנים.
+
+**ארגומנטים:**
+
+`text`: טקסט שאילתה לחיפוש סמנטי
+`schema_name`: שם הסכימה לחיפוש בתוכה
+`user`: מזהה משתמש/אזור מפתחות (ברירת מחדל: "trustgraph")
+`collection`: מזהה אוסף (ברירת מחדל: "default")
+`index_name`: שם אינדקס אופציונלי לסינון החיפוש לאינדקס ספציפי
+`limit`: מספר מקסימלי של תוצאות (ברירת מחדל: 10)
+
+**החזר:** dict: תוצאות שאילתה עם התאמות המכילות index_name, index_value, text ו-score
+
+**דוגמה:**
+
+```python
+flow = api.flow().id("default")
+
+# Search for customers by name similarity
+results = flow.row_embeddings_query(
+ text="John Smith",
+ schema_name="customers",
+ user="trustgraph",
+ collection="sales",
+ limit=5
+)
+
+# Filter to specific index
+results = flow.row_embeddings_query(
+ text="machine learning engineer",
+ schema_name="employees",
+ index_name="job_title",
+ limit=10
+)
+```
+
+### `rows_query(self, query, user='trustgraph', collection='default', variables=None, operation_name=None)`
+
+הפעל שאילתת GraphQL על שורות מובנות בגרף הידע.
+
+שאילתות נתונים מובנים באמצעות תחביר GraphQL, המאפשר שאילתות מורכבות
+עם סינון, אגרגציה וניווט ביחסים.
+
+**ארגומנטים:**
+
+`query`: מחרוזת שאילתת GraphQL
+`user`: מזהה משתמש/מרחב (ברירת מחדל: "trustgraph")
+`collection`: מזהה אוסף (ברירת מחדל: "default")
+`variables`: מילון אופציונלי של משתני שאילתה
+`operation_name`: שם פעולה אופציונלי עבור מסמכים מרובי פעולות
+
+**החזרות:** dict: תגובת GraphQL עם השדות 'data', 'errors' ו/או 'extensions'
+
+**מעלה:**
+
+`ProtocolException`: אם מתרחשת שגיאה ברמת המערכת
+
+**דוגמה:**
+
+```python
+flow = api.flow().id("default")
+
+# Simple query
+query = '''
+{
+ scientists(limit: 10) {
+ name
+ field
+ discoveries
+ }
+}
+'''
+result = flow.rows_query(
+ query=query,
+ user="trustgraph",
+ collection="scientists"
+)
+
+# Query with variables
+query = '''
+query GetScientist($name: String!) {
+ scientists(name: $name) {
+ name
+ nobelPrizes
+ }
+}
+'''
+result = flow.rows_query(
+ query=query,
+ variables={"name": "Marie Curie"}
+)
+```
+
+### `schema_selection(self, sample, options=None)`
+
+בחירת סכימות מתאימות עבור מדגם נתונים באמצעות ניתוח שאילתות.
+
+**ארגומנטים:**
+
+`sample`: מדגם נתונים לניתוח (תוכן מחרוזת)
+`options`: פרמטרים אופציונליים
+
+**החזרות:** מילון עם מערך schema_matches ומטא-נתונים
+
+### `structured_query(self, question, user='trustgraph', collection='default')`
+
+ביצוע שאילתה בשפה טבעית על נתונים מובנים.
+משלב המרת שאילתות NLP וביצוע GraphQL.
+
+**ארגומנטים:**
+
+`question`: שאילתה בשפה טבעית
+`user`: מזהה מרחב מפתחות Cassandra (ברירת מחדל: "trustgraph")
+`collection`: מזהה אוסף נתונים (ברירת מחדל: "default")
+
+**החזרות:** מילון עם נתונים ושגיאות אופציונליות
+
+### `text_completion(self, system, prompt)`
+
+ביצוע השלמת טקסט באמצעות מודל LLM של ה-flow.
+
+**ארגומנטים:**
+
+`system`: הנחיה מערכתית המגדירה את התנהגות העוזר
+`prompt`: הנחיה/שאלה של משתמש
+
+**החזרות:** מחרוזת: טקסט תגובה שנוצר
+
+**דוגמה:**
+
+```python
+flow = api.flow().id("default")
+response = flow.text_completion(
+ system="You are a helpful assistant",
+ prompt="What is quantum computing?"
+)
+print(response)
+```
+
+### `triples_query(self, s=None, p=None, o=None, user=None, collection=None, limit=10000)`
+
+שאילת משולשים בגרף ידע באמצעות התאמת תבניות.
+
+מחפש משולשים RDF התואמים לתבניות נתונות של נושא, נשוא ואובייקט.
+פרמטרים לא מוגדרים פועלים כתווים מתחלפים.
+
+**ארגומנטים:**
+
+`s`: מזהה URI של נושא (אופציונלי, השתמש ב-None עבור תו מתחלף)
+`p`: מזהה URI של נשוא (אופציונלי, השתמש ב-None עבור תו מתחלף)
+`o`: מזהה URI של אובייקט או ליטרל (אופציונלי, השתמש ב-None עבור תו מתחלף)
+`user`: מזהה משתמש/מרחב מפתחות (אופציונלי)
+`collection`: מזהה אוסף (אופציונלי)
+`limit`: מספר תוצאות מקסימלי להחזרה (ברירת מחדל: 10000)
+
+**מחזיר:** list[Triple]: רשימה של אובייקטי Triple התואמים
+
+**מעלה:**
+
+`RuntimeError`: אם s או p אינם Uri, או o אינם Uri/Literal
+
+**דוגמה:**
+
+```python
+from trustgraph.knowledge import Uri, Literal
+
+flow = api.flow().id("default")
+
+# Find all triples about a specific subject
+triples = flow.triples_query(
+ s=Uri("http://example.org/person/marie-curie"),
+ user="trustgraph",
+ collection="scientists"
+)
+
+# Find all instances of a specific relationship
+triples = flow.triples_query(
+ p=Uri("http://example.org/ontology/discovered"),
+ limit=100
+)
+```
+
+
+--
+
+## `AsyncFlow`
+
+```python
+from trustgraph.api import AsyncFlow
+```
+
+לקוח לניהול זרימות אסינכרוניות באמצעות ממשק REST API.
+
+מספק פעולות ניהול זרימות מבוססות async/await, כולל הצגת רשימה,
+התחלה, עצירה וניהול הגדרות של סוגי זרימות. כמו כן, מספק
+גישה לשירותים הקשורים לזרימה, כגון סוכנים, RAG ושאילתות, באמצעות נקודות קצה (endpoints) של REST שאינן מבוססות סטרימינג.
+
+
+הערה: לתמיכה בסטרימינג, השתמשו ב-AsyncSocketClient.
+
+### שיטות
+
+### `__init__(self, url: str, timeout: int, token: str | None) -> None`
+
+אתחול לקוח זרימות אסינכרוני.
+
+**ארגומנטים:**
+
+`url`: כתובת URL בסיסית עבור ממשק ה-API של TrustGraph
+`timeout`: זמן אחזור (timeout) לבקשות בשניות
+`token`: טוקן bearer אופציונלי לאימות
+
+### `aclose(self) -> None`
+
+סגירת הלקוח האסינכרוני ושחרור משאבים.
+
+הערה: ניקוי (cleanup) מטופל באופן אוטומטי על ידי מנהלי הקשר (context managers) של aiohttp.
+שיטה זו מסופקת לשמירה על עקביות עם לקוחות אסינכרוניים אחרים.
+
+### `delete_class(self, class_name: str)`
+
+מחיקת הגדרת סוג זרימה.
+
+מסירה תבנית (blueprint) של סוג זרימה מהמערכת. אינה משפיעה על
+מופעי זרימה פעילים.
+
+**ארגומנטים:**
+
+`class_name`: שם סוג הזרימה למחיקה
+
+**דוגמה:**
+
+```python
+async_flow = await api.async_flow()
+
+# Delete a flow class
+await async_flow.delete_class("old-flow-class")
+```
+
+### `get(self, id: str) -> Dict[str, Any]`
+
+קבלת הגדרת זרימה.
+
+מאחזר את תצורת הזרימה המלאה, כולל שם המחלקה שלה,
+התיאור שלה והפרמטרים שלה.
+
+**ארגומנטים:**
+
+`id`: מזהה זרימה
+
+**החזרות:** dict: אובייקט הגדרת זרימה
+
+**דוגמה:**
+
+```python
+async_flow = await api.async_flow()
+
+# Get flow definition
+flow_def = await async_flow.get("default")
+print(f"Flow class: {flow_def.get('class-name')}")
+print(f"Description: {flow_def.get('description')}")
+```
+
+### `get_class(self, class_name: str) -> Dict[str, Any]`
+
+קבלת הגדרת מחלקת זרימה.
+
+מאחזר את הגדרת התוכנית עבור מחלקת זרימה, כולל
+הסכימה שלה והקישורים לשירותים.
+
+**ארגומנטים:**
+
+`class_name`: שם מחלקת הזרימה
+
+**החזרות:** dict: אובייקט הגדרת מחלקת זרימה
+
+**דוגמה:**
+
+```python
+async_flow = await api.async_flow()
+
+# Get flow class definition
+class_def = await async_flow.get_class("default")
+print(f"Services: {class_def.get('services')}")
+```
+
+### `id(self, flow_id: str)`
+
+קבלת מופע לקוח של זרימה אסינכרונית.
+
+מחזיר לקוח לצורך אינטראקציה עם השירותים של זרימה ספציפית (סוכן, RAG, שאילתות, הטמעות, וכו').
+
+
+**ארגומנטים:**
+
+`flow_id`: מזהה זרימה
+
+**מחזיר:** AsyncFlowInstance: לקוח לפעולות ספציפיות לזרימה
+
+**דוגמה:**
+
+```python
+async_flow = await api.async_flow()
+
+# Get flow instance
+flow = async_flow.id("default")
+
+# Use flow services
+result = await flow.graph_rag(
+ query="What is TrustGraph?",
+ user="trustgraph",
+ collection="default"
+)
+```
+
+### `list(self) -> List[str]`
+
+רשום את כל מזהי הזרימות.
+
+שולף את ה-IDs של כל הזרימות הפרוסות כרגע במערכת.
+
+**מחזיר:** list[str]: רשימה של מזהי זרימות
+
+**דוגמה:**
+
+```python
+async_flow = await api.async_flow()
+
+# List all flows
+flows = await async_flow.list()
+print(f"Available flows: {flows}")
+```
+
+### `list_classes(self) -> List[str]`
+
+רשום את כל שמות מחלקות הזרימה.
+
+שולף את שמות כל מחלקות הזרימה (תבניות) הזמינות במערכת.
+
+**מחזיר:** list[str]: רשימה של שמות מחלקות זרימה.
+
+**דוגמה:**
+
+```python
+async_flow = await api.async_flow()
+
+# List available flow classes
+classes = await async_flow.list_classes()
+print(f"Available flow classes: {classes}")
+```
+
+### `put_class(self, class_name: str, definition: Dict[str, Any])`
+
+יצירה או עדכון של הגדרה של מחלקת זרימה.
+
+מאחסן תוכנית אב למחלקת זרימה שניתן להשתמש בה כדי ליצור מופעים של זרימות.
+
+**ארגומנטים:**
+
+`class_name`: שם מחלקת הזרימה
+`definition`: אובייקט הגדרת מחלקת הזרימה
+
+**דוגמה:**
+
+```python
+async_flow = await api.async_flow()
+
+# Create a custom flow class
+class_def = {
+ "services": {
+ "agent": {"module": "agent", "config": {...}},
+ "graph-rag": {"module": "graph-rag", "config": {...}}
+ }
+}
+await async_flow.put_class("custom-flow", class_def)
+```
+
+### `request(self, path: str, request_data: Dict[str, Any]) -> Dict[str, Any]`
+
+ביצוע בקשת HTTP POST אסינכרונית ל-API של ה-Gateway.
+
+שיטה פנימית לביצוע בקשות מאומתות ל-API של TrustGraph.
+
+**ארגומנטים:**
+
+`path`: נתיב נקודת הקצה של ה-API (ביחס לכתובת הבסיס)
+`request_data`: מילון מטען הבקשה
+
+**מחזיר:** dict: אובייקט תגובה מה-API
+
+**מעלה:**
+
+`ProtocolException`: אם קוד ה-HTTP אינו 200 או שהתגובה אינה JSON חוקי.
+`ApplicationException`: אם ה-API מחזיר תגובת שגיאה.
+
+### `start(self, class_name: str, id: str, description: str, parameters: Dict | None = None)`
+
+התחל מופע זרימה חדש.
+
+יוצר ומפעיל זרימה מתוך הגדרת מחלקת זרימה עם הפרמטרים שצוינו.
+
+
+**ארגומנטים:**
+
+`class_name`: שם המחלקה של הזרימה שצריך ליצור מופע עבורה.
+`id`: מזהה עבור מופע הזרימה החדש.
+`description`: תיאור קריא של הזרימה.
+`parameters`: פרמטרי תצורה אופציונליים עבור הזרימה.
+
+**דוגמה:**
+
+```python
+async_flow = await api.async_flow()
+
+# Start a flow from a class
+await async_flow.start(
+ class_name="default",
+ id="my-flow",
+ description="Custom flow instance",
+ parameters={"model": "claude-3-opus"}
+)
+```
+
+### `stop(self, id: str)`
+
+עצירת תהליך פעיל.
+
+עוצרת ומסירה מופע של תהליך, תוך שחרור המשאבים שלו.
+
+**ארגומנטים:**
+
+`id`: מזהה של התהליך שיש לעצור
+
+**דוגמה:**
+
+```python
+async_flow = await api.async_flow()
+
+# Stop a flow
+await async_flow.stop("my-flow")
+```
+
+
+--
+
+## `AsyncFlowInstance`
+
+```python
+from trustgraph.api import AsyncFlowInstance
+```
+
+לקוח מופע זרימה אסינכרוני.
+
+מספק גישה ל-async/await לשירותים המוגדרים בזרימה, כולל סוכנים,
+שאילתות RAG, הטמעות ושאילתות גרף. כל הפעולות מחזירות
+תגובות מלאות (לא בסטרימינג).
+
+הערה: לצורך תמיכה בסטרימינג, השתמשו ב-AsyncSocketFlowInstance.
+
+### שיטות
+
+### `__init__(self, flow: trustgraph.api.async_flow.AsyncFlow, flow_id: str)`
+
+אתחול מופע זרימה אסינכרוני.
+
+**ארגומנטים:**
+
+`flow`: לקוח AsyncFlow הראשי
+`flow_id`: מזהה הזרימה
+
+### `agent(self, question: str, user: str, state: Dict | None = None, group: str | None = None, history: List | None = None, **kwargs: Any) -> Dict[str, Any]`
+
+ביצוע פעולה של סוכן (לא בסטרימינג).
+
+מפעיל סוכן כדי לענות על שאלה, עם מצב שיחה ואפשרויות
+היסטוריה. מחזיר את התגובה המלאה לאחר שהסוכן סיים
+לעבד.
+
+הערה: שיטה זו אינה תומכת בסטרימינג. לצורך מחשבות ותצפיות של הסוכן בזמן אמת,
+השתמשו ב-AsyncSocketFlowInstance.agent() במקום.
+
+**ארגומנטים:**
+
+`question`: שאלה או הוראה של המשתמש
+`user`: מזהה המשתמש
+`state`: מילון מצב אופציונלי עבור הקשר שיחה
+`group`: מזהה קבוצה אופציונלי לניהול סשנים
+`history`: רשימת היסטוריית שיחה אופציונלית
+`**kwargs`: פרמטרים נוספים ספציפיים לשירות
+
+**מחזיר:** dict: תגובת סוכן מלאה הכוללת תשובה ומטא-נתונים
+
+**דוגמה:**
+
+```python
+async_flow = await api.async_flow()
+flow = async_flow.id("default")
+
+# Execute agent
+result = await flow.agent(
+ question="What is the capital of France?",
+ user="trustgraph"
+)
+print(f"Answer: {result.get('response')}")
+```
+
+### `document_rag(self, query: str, user: str, collection: str, doc_limit: int = 10, **kwargs: Any) -> str`
+
+ביצוע שאילתת RAG מבוססת מסמכים (לא סטרימינג).
+
+מבצע יצירת טקסט מועשרת באמצעות הטמעות מסמכים.
+שולף קטעי מסמכים רלוונטיים באמצעות חיפוש סמנטי, ולאחר מכן מייצר
+תשובה המבוססת על המסמכים שנשלפו. מחזיר תשובה מלאה.
+
+הערה: שיטה זו אינה תומכת בסטרימינג. עבור תגובות RAG בסטרימינג,
+השתמשו ב-AsyncSocketFlowInstance.document_rag() במקום זאת.
+
+**ארגומנטים:**
+
+`query`: טקסט השאילתה של המשתמש
+`user`: מזהה המשתמש
+`collection`: מזהה האוסף המכיל מסמכים
+`doc_limit`: מספר מרבי של קטעי מסמכים לשליפה (ברירת מחדל: 10)
+`**kwargs`: פרמטרים נוספים ספציפיים לשירות
+
+**החזרות:** str: תשובה מלאה שנוצרה המבוססת על נתוני המסמכים
+
+**דוגמה:**
+
+```python
+async_flow = await api.async_flow()
+flow = async_flow.id("default")
+
+# Query documents
+response = await flow.document_rag(
+ query="What does the documentation say about authentication?",
+ user="trustgraph",
+ collection="docs",
+ doc_limit=5
+)
+print(response)
+```
+
+### `embeddings(self, texts: list, **kwargs: Any)`
+
+יצירת הטמעות עבור טקסטים קלט.
+
+ממיר טקסטים לייצוגים וקטוריים מספריים באמצעות מודל ההטמעה המוגדר של ה-flow.
+שימושי לחיפוש סמנטי והשוואות דמיון.
+
+
+**ארגומנטים:**
+
+`texts`: רשימה של טקסטים קלט ליצירת הטמעה
+`**kwargs`: פרמטרים נוספים ספציפיים לשירות
+
+**החזרות:** dict: תגובה המכילה וקטורי הטמעה
+
+**דוגמה:**
+
+```python
+async_flow = await api.async_flow()
+flow = async_flow.id("default")
+
+# Generate embeddings
+result = await flow.embeddings(texts=["Sample text to embed"])
+vectors = result.get("vectors")
+print(f"Embedding dimension: {len(vectors[0][0])}")
+```
+
+### `graph_embeddings_query(self, text: str, user: str, collection: str, limit: int = 10, **kwargs: Any)`
+
+שאילתת הטמעות גרף לחיפוש ישויות סמנטי.
+
+מבצעת חיפוש סמנטי על הטמעות ישויות גרף כדי למצוא ישויות
+הרלוונטיות ביותר לטקסט הקלט. מחזירה ישויות מדורגות לפי מידת הדמיון.
+
+**ארגומנטים:**
+
+`text`: טקסט שאילתה לחיפוש סמנטי
+`user`: מזהה משתמש
+`collection`: מזהה אוסף המכיל הטמעות גרף
+`limit`: מספר מקסימלי של תוצאות להחזרה (ברירת מחדל: 10)
+`**kwargs`: פרמטרים נוספים ספציפיים לשירות
+
+**החזרות:** dict: תגובה המכילה התאמות ישויות מדורגות עם ציוני דמיון
+
+**דוגמה:**
+
+```python
+async_flow = await api.async_flow()
+flow = async_flow.id("default")
+
+# Find related entities
+results = await flow.graph_embeddings_query(
+ text="machine learning algorithms",
+ user="trustgraph",
+ collection="tech-kb",
+ limit=5
+)
+
+for entity in results.get("entities", []):
+ print(f"{entity['name']}: {entity['score']}")
+```
+
+### `graph_rag(self, query: str, user: str, collection: str, max_subgraph_size: int = 1000, max_subgraph_count: int = 5, max_entity_distance: int = 3, **kwargs: Any) -> str`
+
+ביצוע שאילתת RAG מבוססת גרפים (לא בסטרימינג).
+
+מבצע יצירת טקסט מועשרת באמצעות נתוני גרף ידע.
+מזהה ישויות רלוונטיות ויחסים ביניהן, ולאחר מכן מייצר
+תשובה המבוססת על מבנה הגרף. מחזיר תשובה מלאה.
+
+הערה: שיטה זו אינה תומכת בסטרימינג. עבור תשובות RAG בסטרימינג,
+השתמשו ב-AsyncSocketFlowInstance.graph_rag() במקום זאת.
+
+**ארגומנטים:**
+
+`query`: טקסט השאילתה של המשתמש
+`user`: מזהה המשתמש
+`collection`: מזהה אוסף המכיל את גרף הידע
+`max_subgraph_size`: מספר מקסימלי של משולשים לכל תת-גרף (ברירת מחדל: 1000)
+`max_subgraph_count`: מספר מקסימלי של תת-גרפים לשליפה (ברירת מחדל: 5)
+`max_entity_distance`: מרחק גרף מקסימלי עבור הרחבת ישויות (ברירת מחדל: 3)
+`**kwargs`: פרמטרים נוספים ספציפיים לשירות
+
+**החזרות:** str: תשובה מלאה שנוצרה המבוססת על נתוני גרף
+
+**דוגמה:**
+
+```python
+async_flow = await api.async_flow()
+flow = async_flow.id("default")
+
+# Query knowledge graph
+response = await flow.graph_rag(
+ query="What are the relationships between these entities?",
+ user="trustgraph",
+ collection="medical-kb",
+ max_subgraph_count=3
+)
+print(response)
+```
+
+### `request(self, service: str, request_data: Dict[str, Any]) -> Dict[str, Any]`
+
+בקשת שימוש בשירות המוגדר בתוך ה-flow.
+
+שיטה פנימית לביצוע קריאות לשירותים בתוך מופע ה-flow הנוכחי.
+
+**ארגומנטים:**
+
+`service`: שם השירות (לדוגמה, "agent", "graph-rag", "triples")
+`request_data`: עומס (payload) של הבקשה לשירות
+
+**החזר:** dict: אובייקט תגובה מהשירות
+
+**יוצא מכלל אפשרות (Raises):**
+
+`ProtocolException`: אם הבקשה נכשלת או שהתגובה אינה תקינה
+`ApplicationException`: אם השירות מחזיר שגיאה
+
+### `row_embeddings_query(self, text: str, schema_name: str, user: str = 'trustgraph', collection: str = 'default', index_name: str | None = None, limit: int = 10, **kwargs: Any)`
+
+שאילתת הטמעות שורות לחיפוש סמנטי בנתונים מובנים.
+
+מבצעת חיפוש סמנטי על הטמעות אינדקס השורות כדי למצוא שורות שעבורן
+ערכי השדות המאונדקסים דומים ביותר לטקסט הקלט. מאפשרת
+התאמה מעורפלת/סמנטית על נתונים מובנים.
+
+**ארגומנטים:**
+
+`text`: טקסט השאילתה לחיפוש סמנטי
+`schema_name`: שם הסכימה לחיפוש בתוכה
+`user`: מזהה משתמש (ברירת מחדל: "trustgraph")
+`collection`: מזהה אוסף (ברירת מחדל: "default")
+`index_name`: שם אינדקס אופציונלי לסינון החיפוש לאינדקס ספציפי
+`limit`: מספר מקסימלי של תוצאות להחזרה (ברירת מחדל: 10)
+`**kwargs`: פרמטרים נוספים ספציפיים לשירות
+
+**החזר:** dict: תגובה המכילה התאמות עם index_name, index_value, text ו-score
+
+**דוגמה:**
+
+```python
+async_flow = await api.async_flow()
+flow = async_flow.id("default")
+
+# Search for customers by name similarity
+results = await flow.row_embeddings_query(
+ text="John Smith",
+ schema_name="customers",
+ user="trustgraph",
+ collection="sales",
+ limit=5
+)
+
+for match in results.get("matches", []):
+ print(f"{match['index_name']}: {match['index_value']} (score: {match['score']})")
+```
+
+### `rows_query(self, query: str, user: str, collection: str, variables: Dict | None = None, operation_name: str | None = None, **kwargs: Any)`
+
+הפעלת שאילתת GraphQL על שורות שמורות.
+
+שאילתות שורות נתונים מובנים באמצעות תחביר GraphQL. תומך בשאילתות מורכבות
+עם משתנים ופעולות בעלות שם.
+
+**ארגומנטים:**
+
+`query`: מחרוזת שאילתת GraphQL
+`user`: מזהה משתמש
+`collection`: מזהה אוסף המכיל שורות
+`variables`: משתנים אופציונליים לשאילתת GraphQL
+`operation_name`: שם פעולה אופציונלי עבור שאילתות מרובות פעולות
+`**kwargs`: פרמטרים נוספים ספציפיים לשירות
+
+**החזרות:** dict: תגובת GraphQL עם נתונים ושגיאות
+
+**דוגמה:**
+
+```python
+async_flow = await api.async_flow()
+flow = async_flow.id("default")
+
+# Execute GraphQL query
+query = '''
+ query GetUsers($status: String!) {
+ users(status: $status) {
+ id
+ name
+ email
+ }
+ }
+'''
+
+result = await flow.rows_query(
+ query=query,
+ user="trustgraph",
+ collection="users",
+ variables={"status": "active"}
+)
+
+for user in result.get("data", {}).get("users", []):
+ print(f"{user['name']}: {user['email']}")
+```
+
+### `text_completion(self, system: str, prompt: str, **kwargs: Any) -> str`
+
+יצירת השלמת טקסט (לא בזמן אמת).
+
+מייצרת תגובת טקסט ממודל שפה גדול (LLM) בהתבסס על הנחיה מערכתית והנחיה ממשתמש.
+מחזירה את טקסט התגובה השלם.
+
+הערה: שיטה זו אינה תומכת בסטרימינג. לטקסט שנוצר בזמן אמת,
+השתמשו ב-AsyncSocketFlowInstance.text_completion() במקום זאת.
+
+**ארגומנטים:**
+
+`system`: הנחיה מערכתית המגדירה את התנהגות ה-LLM.
+`prompt`: הנחיה ממשתמש או שאלה.
+`**kwargs`: פרמטרים נוספים ספציפיים לשירות.
+
+**מחזיר:** str: תגובת טקסט שנוצרת בשלמותה.
+
+**דוגמה:**
+
+```python
+async_flow = await api.async_flow()
+flow = async_flow.id("default")
+
+# Generate text
+response = await flow.text_completion(
+ system="You are a helpful assistant.",
+ prompt="Explain quantum computing in simple terms."
+)
+print(response)
+```
+
+### `triples_query(self, s=None, p=None, o=None, user=None, collection=None, limit=100, **kwargs: Any)`
+
+שאילת משולשות RDF באמצעות התאמת תבניות.
+
+מחפשת משולשות התואמות לתבניות הנקובות עבור הנושא, הנשוא ו/או
+האובייקט. תבניות משתמשות ב-None כתווית מתקן כדי להתאים לכל ערך.
+
+**ארגומנטים:**
+
+`s`: תבנית נושא (None עבור תווית מתקן)
+`p`: תבנית נשוא (None עבור תווית מתקן)
+`o`: תבנית אובייקט (None עבור תווית מתקן)
+`user`: מזהה משתמש (None עבור כל המשתמשים)
+`collection`: מזהה אוסף (None עבור כל האוספים)
+`limit`: מספר מקסימלי של משולשות להחזרה (ברירת מחדל: 100)
+`**kwargs`: פרמטרים נוספים ספציפיים לשירות
+
+**החזרות:** dict: תגובה המכילה משולשות תואמות
+
+**דוגמה:**
+
+```python
+async_flow = await api.async_flow()
+flow = async_flow.id("default")
+
+# Find all triples with a specific predicate
+results = await flow.triples_query(
+ p="knows",
+ user="trustgraph",
+ collection="social",
+ limit=50
+)
+
+for triple in results.get("triples", []):
+ print(f"{triple['s']} knows {triple['o']}")
+```
+
+
+--
+
+## `SocketClient`
+
+```python
+from trustgraph.api import SocketClient
+```
+
+לקוח WebSocket סינכרוני לפעולות סטרימינג.
+
+מספק ממשק סינכרוני לשירותי TrustGraph המבוססים על WebSocket,
+תוך שימוש בספריית websockets אסינכרונית עם גנרטורים סינכרוניים לנוחות השימוש.
+תומך בתגובות סטרימינג מסוכנים, שאילתות RAG והשלמות טקסט.
+
+הערה: זהו עטיפה סינכרונית סביב פעולות WebSocket אסינכרוניות. לצורך
+תמיכה אסינכרונית אמיתית, השתמש ב-AsyncSocketClient.
+
+### שיטות
+
+### `__init__(self, url: str, timeout: int, token: str | None) -> None`
+
+אתחול לקוח WebSocket סינכרוני.
+
+**ארגומנטים:**
+
+`url`: כתובת URL בסיסית עבור ממשק ה-API של TrustGraph (HTTP/HTTPS יומרו ל-WS/WSS)
+`timeout`: זמן קצוב של WebSocket בשניות
+`token`: טוקן bearer אופציונלי לאימות
+
+### `close(self) -> None`
+
+סגירת חיבורי WebSocket.
+
+הערה: ניקוי מתבצע באופן אוטומטי על ידי מנהלי הקשר באסינכרוני.
+
+### `flow(self, flow_id: str) -> 'SocketFlowInstance'`
+
+קבלת מופע זרימה לפעולות סטרימינג של WebSocket.
+
+**ארגומנטים:**
+
+`flow_id`: מזהה זרימה
+
+**מחזיר:** SocketFlowInstance: מופע זרימה עם שיטות סטרימינג
+
+**דוגמה:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+# Stream agent responses
+for chunk in flow.agent(question="Hello", user="trustgraph", streaming=True):
+ print(chunk.content, end='', flush=True)
+```
+
+
+--
+
+## `SocketFlowInstance`
+
+```python
+from trustgraph.api import SocketFlowInstance
+```
+
+מופע של זרימת WebSocket סינכרונית עבור פעולות סטרימינג.
+
+מספק את אותו ממשק כמו FlowInstance של REST, אך עם תמיכה בסטרימינג מבוסס WebSocket
+עבור תגובות בזמן אמת. כל השיטות תומכות בפרמטר אופציונלי
+`streaming` כדי לאפשר שליחת תוצאות מצטברות.
+
+### שיטות
+
+### `__init__(self, client: trustgraph.api.socket_client.SocketClient, flow_id: str) -> None`
+
+אתחול מופע זרימת שקע.
+
+**ארגומנטים:**
+
+`client`: שרת שקעים הורה (Parent SocketClient)
+`flow_id`: מזהה זרימה
+
+### `agent(self, question: str, user: str, state: Dict[str, Any] | None = None, group: str | None = None, history: List[Dict[str, Any]] | None = None, streaming: bool = False, **kwargs: Any) -> Dict[str, Any] | Iterator[trustgraph.api.types.StreamingChunk]`
+
+ביצוע פעולת סוכן עם תמיכה בסטרימינג.
+
+סוכנים יכולים לבצע ניתוח רב-שלבי עם שימוש בכלים. שיטה זו תמיד
+מחזירה מקטעי סטרימינג (מחשבות, תצפיות, תשובות), גם כאשר
+streaming=False, כדי להציג את תהליך החשיבה של הסוכן.
+
+**ארגומנטים:**
+
+`question`: שאלה או הוראה מהמשתמש
+`user`: מזהה משתמש
+`state`: מילון מצב אופציונלי לשיחות עם מצב (stateful)
+`group`: מזהה קבוצה אופציונלי עבור הקשרים מרובי משתמשים
+`history`: היסטוריית שיחה אופציונלית כרשימה של מילוני הודעות
+`streaming`: הפעלת מצב סטרימינג (ברירת מחדל: False)
+`**kwargs`: פרמטרים נוספים המועברים לשירות הסוכן
+
+**מחזיר:** Iterator[StreamingChunk]: זרם של מחשבות, תצפיות ותשובות של הסוכן
+
+**דוגמה:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+# Stream agent reasoning
+for chunk in flow.agent(
+ question="What is quantum computing?",
+ user="trustgraph",
+ streaming=True
+):
+ if isinstance(chunk, AgentThought):
+ print(f"[Thinking] {chunk.content}")
+ elif isinstance(chunk, AgentObservation):
+ print(f"[Observation] {chunk.content}")
+ elif isinstance(chunk, AgentAnswer):
+ print(f"[Answer] {chunk.content}")
+```
+
+### `agent_explain(self, question: str, user: str, collection: str, state: Dict[str, Any] | None = None, group: str | None = None, history: List[Dict[str, Any]] | None = None, **kwargs: Any) -> Iterator[trustgraph.api.types.StreamingChunk | trustgraph.api.types.ProvenanceEvent]`
+
+הפעל פעולה של סוכן עם תמיכה בהסבר.
+
+מעביר גם חלקי תוכן (AgentThought, AgentObservation, AgentAnswer)
+וגם אירועי מקור (ProvenanceEvent). אירועי מקור מכילים URI שניתן לשלוף
+באמצעות ExplainabilityClient כדי לקבל מידע מפורט על תהליך החשיבה של הסוכן.
+
+
+מעקב אחר הסוכן מורכב מ:
+Session: השאלה הראשונית ומטא-נתונים של הסשן
+Iterations: כל מחזור מחשבה/פעולה/תצפית
+Conclusion: התשובה הסופית
+
+**ארגומנטים:**
+
+`question`: שאלה או הוראה של המשתמש
+`user`: מזהה משתמש
+`collection`: מזהה אוסף לאחסון מקור
+`state`: מילון מצב אופציונלי לשיחות עם מצב
+`group`: מזהה קבוצה אופציונלי עבור הקשרים מרובי משתמשים
+`history`: היסטוריית שיחה אופציונלית כרשימה של מילוני הודעות
+`**kwargs`: פרמטרים נוספים המועברים לשירות הסוכן
+`Yields`:
+`Union[StreamingChunk, ProvenanceEvent]`: חלקי סוכן ואירועי מקור
+
+**דוגמה:**
+
+```python
+from trustgraph.api import Api, ExplainabilityClient, ProvenanceEvent
+from trustgraph.api import AgentThought, AgentObservation, AgentAnswer
+
+socket = api.socket()
+flow = socket.flow("default")
+explain_client = ExplainabilityClient(flow)
+
+provenance_ids = []
+for item in flow.agent_explain(
+ question="What is the capital of France?",
+ user="trustgraph",
+ collection="default"
+):
+ if isinstance(item, AgentThought):
+ print(f"[Thought] {item.content}")
+ elif isinstance(item, AgentObservation):
+ print(f"[Observation] {item.content}")
+ elif isinstance(item, AgentAnswer):
+ print(f"[Answer] {item.content}")
+ elif isinstance(item, ProvenanceEvent):
+ provenance_ids.append(item.explain_id)
+
+# Fetch session trace after completion
+if provenance_ids:
+ trace = explain_client.fetch_agent_trace(
+ provenance_ids[0], # Session URI is first
+ graph="urn:graph:retrieval",
+ user="trustgraph",
+ collection="default"
+ )
+```
+
+### `document_embeddings_query(self, text: str, user: str, collection: str, limit: int = 10, **kwargs: Any) -> Dict[str, Any]`
+
+שאילתת מקטעי מסמכים באמצעות דמיון סמנטי.
+
+**ארגומנטים:**
+
+`text`: טקסט שאילתה לחיפוש סמנטי
+`user`: מזהה משתמש/מרחב מפתחות
+`collection`: מזהה אוסף
+`limit`: מספר מקסימלי של תוצאות (ברירת מחדל: 10)
+`**kwargs`: פרמטרים נוספים המועברים לשירות
+
+**החזרות:** dict: תוצאות שאילתה עם מזהי מקטעים של מקטעי מסמכים תואמים
+
+**דוגמה:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+results = flow.document_embeddings_query(
+ text="machine learning algorithms",
+ user="trustgraph",
+ collection="research-papers",
+ limit=5
+)
+# results contains {"chunks": [{"chunk_id": "...", "score": 0.95}, ...]}
+```
+
+### `document_rag(self, query: str, user: str, collection: str, doc_limit: int = 10, streaming: bool = False, **kwargs: Any) -> str | Iterator[str]`
+
+הפעל שאילתת RAG מבוססת מסמכים עם אפשרות של סטרימינג.
+
+משתמש בהטמעות וקטוריות כדי למצוא מקטעי מסמכים רלוונטיים, ולאחר מכן מייצר
+תגובה באמצעות מודל שפה גדול (LLM). מצב הסטרימינג מספק תוצאות באופן מצטבר.
+
+**ארגומנטים:**
+
+`query`: שאילתה בשפה טבעית
+`user`: מזהה משתמש/מרחב
+`collection`: מזהה אוסף
+`doc_limit`: מספר מקסימלי של מקטעי מסמכים לשליפה (ברירת מחדל: 10)
+`streaming`: הפעל מצב סטרימינג (ברירת מחדל: False)
+`**kwargs`: פרמטרים נוספים המועברים לשירות
+
+**החזרות:** Union[str, Iterator[str]]: תגובה מלאה או זרם של מקטעי טקסט
+
+**דוגמה:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+# Streaming document RAG
+for chunk in flow.document_rag(
+ query="Summarize the key findings",
+ user="trustgraph",
+ collection="research-papers",
+ doc_limit=5,
+ streaming=True
+):
+ print(chunk, end='', flush=True)
+```
+
+### `document_rag_explain(self, query: str, user: str, collection: str, doc_limit: int = 10, **kwargs: Any) -> Iterator[trustgraph.api.types.RAGChunk | trustgraph.api.types.ProvenanceEvent]`
+
+הפעל שאילתת RAG מבוססת מסמכים עם תמיכה בהסבר.
+
+מעביר גם מקטעי תוכן (RAGChunk) וגם אירועי מקור (ProvenanceEvent).
+אירועי מקור מכילים URI שניתן לשלוף באמצעות ExplainabilityClient
+כדי לקבל מידע מפורט על האופן שבו התגובה נוצרה.
+
+מעקב RAG של מסמך מורכב מ:
+שאלה: השאילתה של המשתמש
+חיפוש: מקטעים שנשלפו ממאגר המסמכים (chunk_count)
+סינתזה: התשובה שנוצרה
+
+**ארגומנטים:**
+
+`query`: שאילתה בשפה טבעית
+`user`: מזהה משתמש/מרחב מפתחות
+`collection`: מזהה אוסף
+`doc_limit`: מספר מקסימלי של מקטעי מסמכים לשליפה (ברירת מחדל: 10)
+`**kwargs`: פרמטרים נוספים המועברים לשירות
+`Yields`:
+`Union[RAGChunk, ProvenanceEvent]`: מקטעי תוכן ואירועי מקור
+
+**דוגמה:**
+
+```python
+from trustgraph.api import Api, ExplainabilityClient, RAGChunk, ProvenanceEvent
+
+socket = api.socket()
+flow = socket.flow("default")
+explain_client = ExplainabilityClient(flow)
+
+for item in flow.document_rag_explain(
+ query="Summarize the key findings",
+ user="trustgraph",
+ collection="research-papers",
+ doc_limit=5
+):
+ if isinstance(item, RAGChunk):
+ print(item.content, end='', flush=True)
+ elif isinstance(item, ProvenanceEvent):
+ # Fetch entity details
+ entity = explain_client.fetch_entity(
+ item.explain_id,
+ graph=item.explain_graph,
+ user="trustgraph",
+ collection="research-papers"
+ )
+ print(f"Event: {entity}", file=sys.stderr)
+```
+
+### `embeddings(self, texts: list, **kwargs: Any) -> Dict[str, Any]`
+
+יצירת הטמעות וקטוריות עבור טקסט אחד או יותר.
+
+**ארגומנטים:**
+
+`texts`: רשימה של טקסטים קלט ליצירת הטמעות
+`**kwargs`: פרמטרים נוספים המועברים לשירות
+
+**החזרות:** dict: תגובה המכילה וקטורים (סט אחד לכל טקסט קלט)
+
+**דוגמה:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+result = flow.embeddings(["quantum computing"])
+vectors = result.get("vectors", [])
+```
+
+### `graph_embeddings_query(self, text: str, user: str, collection: str, limit: int = 10, **kwargs: Any) -> Dict[str, Any]`
+
+שאילת שאילתות לישות גרף ידע באמצעות דמיון סמנטי.
+
+**ארגומנטים:**
+
+`text`: טקסט שאילתה לחיפוש סמנטי
+`user`: מזהה משתמש/מרחב מפתחות
+`collection`: מזהה אוסף
+`limit`: מספר מקסימלי של תוצאות (ברירת מחדל: 10)
+`**kwargs`: פרמטרים נוספים המועברים לשירות
+
+**החזרות:** dict: תוצאות שאילתה עם ישויות דומות
+
+**דוגמה:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+results = flow.graph_embeddings_query(
+ text="physicist who discovered radioactivity",
+ user="trustgraph",
+ collection="scientists",
+ limit=5
+)
+```
+
+### `graph_rag(self, query: str, user: str, collection: str, max_subgraph_size: int = 1000, max_subgraph_count: int = 5, max_entity_distance: int = 3, streaming: bool = False, **kwargs: Any) -> str | Iterator[str]`
+
+הפעל שאילתת RAG מבוססת גרפים עם סטרימינג אופציונלי.
+
+משתמש במבנה גרף ידע כדי למצוא הקשר רלוונטי, ולאחר מכן מייצר
+תגובה באמצעות מודל שפה גדול (LLM). מצב הסטרימינג מספק תוצאות באופן מצטבר.
+
+**ארגומנטים:**
+
+`query`: שאילתה בשפה טבעית
+`user`: מזהה משתמש/מרחב
+`collection`: מזהה אוסף
+`max_subgraph_size`: מספר מקסימלי של משולשים בסך הכל בגרף המשנה (ברירת מחדל: 1000)
+`max_subgraph_count`: מספר מקסימלי של גרפים משניים (ברירת מחדל: 5)
+`max_entity_distance`: עומק מעבר מקסימלי (ברירת מחדל: 3)
+`streaming`: הפעל מצב סטרימינג (ברירת מחדל: False)
+`**kwargs`: פרמטרים נוספים המועברים לשירות
+
+**מחזיר:** Union[str, Iterator[str]]: תגובה מלאה או זרם של פיסות טקסט
+
+**דוגמה:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+# Streaming graph RAG
+for chunk in flow.graph_rag(
+ query="Tell me about Marie Curie",
+ user="trustgraph",
+ collection="scientists",
+ streaming=True
+):
+ print(chunk, end='', flush=True)
+```
+
+### `graph_rag_explain(self, query: str, user: str, collection: str, max_subgraph_size: int = 1000, max_subgraph_count: int = 5, max_entity_distance: int = 3, **kwargs: Any) -> Iterator[trustgraph.api.types.RAGChunk | trustgraph.api.types.ProvenanceEvent]`
+
+הפעל שאילתת RAG מבוססת גרפים עם תמיכה בהסבר.
+
+מעביר גם מקטעי תוכן (RAGChunk) וגם אירועי מקור (ProvenanceEvent).
+אירועי מקור מכילים URI שניתן לשלוף באמצעות ExplainabilityClient
+כדי לקבל מידע מפורט על האופן שבו התגובה נוצרה.
+
+**ארגומנטים:**
+
+`query`: שאילתה בשפה טבעית
+`user`: מזהה משתמש/מרחב
+`collection`: מזהה אוסף
+`max_subgraph_size`: מספר מקסימלי של משולשים בסך הכל בגרף המשנה (ברירת מחדל: 1000)
+`max_subgraph_count`: מספר מקסימלי של גרפי משנה (ברירת מחדל: 5)
+`max_entity_distance`: עומק מעבר מקסימלי (ברירת מחדל: 3)
+`**kwargs`: פרמטרים נוספים המועברים לשירות
+`Yields`:
+`Union[RAGChunk, ProvenanceEvent]`: מקטעי תוכן ואירועי מקור
+
+**דוגמה:**
+
+```python
+from trustgraph.api import Api, ExplainabilityClient, RAGChunk, ProvenanceEvent
+
+socket = api.socket()
+flow = socket.flow("default")
+explain_client = ExplainabilityClient(flow)
+
+provenance_ids = []
+response_text = ""
+
+for item in flow.graph_rag_explain(
+ query="Tell me about Marie Curie",
+ user="trustgraph",
+ collection="scientists"
+):
+ if isinstance(item, RAGChunk):
+ response_text += item.content
+ print(item.content, end='', flush=True)
+ elif isinstance(item, ProvenanceEvent):
+ provenance_ids.append(item.provenance_id)
+
+# Fetch explainability details
+for prov_id in provenance_ids:
+ entity = explain_client.fetch_entity(
+ prov_id,
+ graph="urn:graph:retrieval",
+ user="trustgraph",
+ collection="scientists"
+ )
+ print(f"Entity: {entity}")
+```
+
+### `mcp_tool(self, name: str, parameters: Dict[str, Any], **kwargs: Any) -> Dict[str, Any]`
+
+הפעלת כלי פרוטוקול הקשר מודל (MCP).
+
+**ארגומנטים:**
+
+`name`: שם/מזהה הכלי
+`parameters`: מילון פרמטרים של הכלי
+`**kwargs`: פרמטרים נוספים המועברים לשירות
+
+**החזר:** dict: תוצאת ביצוע הכלי
+
+**דוגמה:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+result = flow.mcp_tool(
+ name="search-web",
+ parameters={"query": "latest AI news", "limit": 5}
+)
+```
+
+### `prompt(self, id: str, variables: Dict[str, str], streaming: bool = False, **kwargs: Any) -> str | Iterator[str]`
+
+הפעל תבנית פקודה עם אפשרות של סטרימינג.
+
+**ארגומנטים:**
+
+`id`: מזהה של תבנית הפקודה
+`variables`: מילון של התאמות בין שם משתנה לערך
+`streaming`: הפעל מצב סטרימינג (ברירת מחדל: False)
+`**kwargs`: פרמטרים נוספים המועברים לשירות
+
+**החזר:** Union[str, Iterator[str]]: תגובה מלאה או סטרימינג של פיסות טקסט
+
+**דוגמה:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+# Streaming prompt execution
+for chunk in flow.prompt(
+ id="summarize-template",
+ variables={"topic": "quantum computing", "length": "brief"},
+ streaming=True
+):
+ print(chunk, end='', flush=True)
+```
+
+### `row_embeddings_query(self, text: str, schema_name: str, user: str = 'trustgraph', collection: str = 'default', index_name: str | None = None, limit: int = 10, **kwargs: Any) -> Dict[str, Any]`
+
+שליפת נתוני שורה באמצעות דמיון סמנטי בשדות ממופים.
+
+מאתר שורות שבהן ערכי השדות הממופים דומים מבחינה סמנטית ל-
+הטקסט הקלט, תוך שימוש בהטמעות וקטוריות. זה מאפשר התאמה מעורפלת/סמנטית
+לנתונים מובנים.
+
+**ארגומנטים:**
+
+`text`: טקסט שאילתה לחיפוש סמנטי
+`schema_name`: שם הסכימה לחיפוש בתוכה
+`user`: מזהה משתמש/אזור מפתחות (ברירת מחדל: "trustgraph")
+`collection`: מזהה אוסף (ברירת מחדל: "default")
+`index_name`: שם אינדקס אופציונלי לסינון החיפוש לאינדקס ספציפי
+`limit`: מספר מקסימלי של תוצאות (ברירת מחדל: 10)
+`**kwargs`: פרמטרים נוספים המועברים לשירות
+
+**החזרות:** dict: תוצאות שאילתה עם התאמות המכילות index_name, index_value, text ו-score
+
+**דוגמה:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+# Search for customers by name similarity
+results = flow.row_embeddings_query(
+ text="John Smith",
+ schema_name="customers",
+ user="trustgraph",
+ collection="sales",
+ limit=5
+)
+
+# Filter to specific index
+results = flow.row_embeddings_query(
+ text="machine learning engineer",
+ schema_name="employees",
+ index_name="job_title",
+ limit=10
+)
+```
+
+### `rows_query(self, query: str, user: str, collection: str, variables: Dict[str, Any] | None = None, operation_name: str | None = None, **kwargs: Any) -> Dict[str, Any]`
+
+הפעלת שאילתת GraphQL על שורות מובנות.
+
+**ארגומנטים:**
+
+`query`: מחרוזת שאילתת GraphQL
+`user`: מזהה משתמש/מרחב מפתחות
+`collection`: מזהה אוסף
+`variables`: מילון אופציונלי של משתני שאילתה
+`operation_name`: שם פעולה אופציונלי עבור מסמכים מרובי פעולות
+`**kwargs`: פרמטרים נוספים המועברים לשירות
+
+**החזרות:** dict: תגובת GraphQL עם נתונים, שגיאות ו/או הרחבות
+
+**דוגמה:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+query = '''
+{
+ scientists(limit: 10) {
+ name
+ field
+ discoveries
+ }
+}
+'''
+result = flow.rows_query(
+ query=query,
+ user="trustgraph",
+ collection="scientists"
+)
+```
+
+### `text_completion(self, system: str, prompt: str, streaming: bool = False, **kwargs) -> str | Iterator[str]`
+
+הפעלת השלמת טקסט עם אפשרות של סטרימינג.
+
+**ארגומנטים:**
+
+`system`: הנחיה למערכת המגדירה את התנהגות העוזר.
+`prompt`: הנחיה/שאלה מהמשתמש.
+`streaming`: הפעל מצב סטרימינג (ברירת מחדל: False).
+`**kwargs`: פרמטרים נוספים המועברים לשירות.
+
+**החזר:** Union[str, Iterator[str]]: תשובה מלאה או סטרימינג של פיסות טקסט.
+
+**דוגמה:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+# Non-streaming
+response = flow.text_completion(
+ system="You are helpful",
+ prompt="Explain quantum computing",
+ streaming=False
+)
+print(response)
+
+# Streaming
+for chunk in flow.text_completion(
+ system="You are helpful",
+ prompt="Explain quantum computing",
+ streaming=True
+):
+ print(chunk, end='', flush=True)
+```
+
+### `triples_query(self, s: str | Dict[str, Any] | None = None, p: str | Dict[str, Any] | None = None, o: str | Dict[str, Any] | None = None, g: str | None = None, user: str | None = None, collection: str | None = None, limit: int = 100, **kwargs: Any) -> List[Dict[str, Any]]`
+
+שאילתת משולשים בגרף ידע באמצעות התאמת תבניות.
+
+**ארגומנטים:**
+
+`s`: מסנן נושא - מחרוזת URI, מילון מונחים, או None עבור wildcard
+`p`: מסנן נשוא - מחרוזת URI, מילון מונחים, או None עבור wildcard
+`o`: מסנן אובייקט - מחרוזת URI/literal, מילון מונחים, או None עבור wildcard
+`g`: מסנן גרף מוגדר - מחרוזת URI או None עבור כל הגרפים
+`user`: מזהה משתמש/מרחב מפתחות (אופציונלי)
+`collection`: מזהה אוסף (אופציונלי)
+`limit`: מספר תוצאות מקסימלי להחזרה (ברירת מחדל: 100)
+`**kwargs`: פרמטרים נוספים המועברים לשירות
+
+**החזרות:** List[Dict]: רשימה של משולשים תואמים בפורמט פנימי
+
+**דוגמה:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+# Find all triples about a specific subject
+triples = flow.triples_query(
+ s="http://example.org/person/marie-curie",
+ user="trustgraph",
+ collection="scientists"
+)
+
+# Query with named graph filter
+triples = flow.triples_query(
+ s="urn:trustgraph:session:abc123",
+ g="urn:graph:retrieval",
+ user="trustgraph",
+ collection="default"
+)
+```
+
+### `triples_query_stream(self, s: str | Dict[str, Any] | None = None, p: str | Dict[str, Any] | None = None, o: str | Dict[str, Any] | None = None, g: str | None = None, user: str | None = None, collection: str | None = None, limit: int = 100, batch_size: int = 20, **kwargs: Any) -> Iterator[List[Dict[str, Any]]]`
+
+שאילת משולשים בגרף ידע באמצעות אצוות סטרימינג.
+
+מחזירה אצוות של משולשים כשהם מגיעים, מה שמקטין את הזמן לקבלת התוצאה הראשונה
+ואת צריכת הזיכרון עבור קבוצות תוצאות גדולות.
+
+**ארגומנטים:**
+
+`s`: מסנן נושא - מחרוזת URI, מילון מונחים, או None עבור wildcard
+`p`: מסנן נשוא - מחרוזת URI, מילון מונחים, או None עבור wildcard
+`o`: מסנן אובייקט - מחרוזת URI/ליטרל, מילון מונחים, או None עבור wildcard
+`g`: מסנן גרף מוגדר - מחרוזת URI או None עבור כל הגרפים
+`user`: מזהה משתמש/מרחב מפתחות (אופציונלי)
+`collection`: מזהה אוסף (אופציונלי)
+`limit`: מספר תוצאות מקסימלי להחזרה (ברירת מחדל: 100)
+`batch_size`: משולשים לאצווה (ברירת מחדל: 20)
+`**kwargs`: פרמטרים נוספים המועברים לשירות
+`Yields`:
+`List[Dict]`: אצוות של משולשים בפורמט wire
+
+**דוגמה:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+for batch in flow.triples_query_stream(
+ user="trustgraph",
+ collection="default"
+):
+ for triple in batch:
+ print(triple["s"], triple["p"], triple["o"])
+```
+
+
+--
+
+## `AsyncSocketClient`
+
+```python
+from trustgraph.api import AsyncSocketClient
+```
+
+לקוח WebSocket אסינכרוני
+
+### שיטות
+
+### `__init__(self, url: str, timeout: int, token: str | None)`
+
+אתחול עצמי. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
+
+### `aclose(self)`
+
+סגירת חיבור WebSocket
+
+### `flow(self, flow_id: str)`
+
+קבלת מופע זרימה אסינכרוני עבור פעולות WebSocket
+
+
+--
+
+## `AsyncSocketFlowInstance`
+
+```python
+from trustgraph.api import AsyncSocketFlowInstance
+```
+
+מופע של זרימת WebSocket אסינכרונית
+
+### שיטות
+
+### `__init__(self, client: trustgraph.api.async_socket_client.AsyncSocketClient, flow_id: str)`
+
+אתחול של self. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
+
+### `agent(self, question: str, user: str, state: Dict[str, Any] | None = None, group: str | None = None, history: list | None = None, streaming: bool = False, **kwargs) -> Dict[str, Any] | AsyncIterator`
+
+סוכן עם סטרימינג אופציונלי
+
+### `document_rag(self, query: str, user: str, collection: str, doc_limit: int = 10, streaming: bool = False, **kwargs)`
+
+תיעוד RAG עם סטרימינג אופציונלי
+
+### `embeddings(self, texts: list, **kwargs)`
+
+יצירת הטמעות טקסט
+
+### `graph_embeddings_query(self, text: str, user: str, collection: str, limit: int = 10, **kwargs)`
+
+שאילתא של הטמעות גרף לחיפוש סמנטי
+
+### `graph_rag(self, query: str, user: str, collection: str, max_subgraph_size: int = 1000, max_subgraph_count: int = 5, max_entity_distance: int = 3, streaming: bool = False, **kwargs)`
+
+RAG גרפי עם סטרימינג אופציונלי
+
+### `mcp_tool(self, name: str, parameters: Dict[str, Any], **kwargs)`
+
+הרצת כלי MCP
+
+### `prompt(self, id: str, variables: Dict[str, str], streaming: bool = False, **kwargs)`
+
+הרצת שאילתא עם סטרימינג אופציונלי
+
+### `row_embeddings_query(self, text: str, schema_name: str, user: str = 'trustgraph', collection: str = 'default', index_name: str | None = None, limit: int = 10, **kwargs)`
+
+שאילתא של הטמעות שורות לחיפוש סמנטי על נתונים מובנים
+
+### `rows_query(self, query: str, user: str, collection: str, variables: Dict | None = None, operation_name: str | None = None, **kwargs)`
+
+שאילתא GraphQL על שורות מובנות
+
+### `text_completion(self, system: str, prompt: str, streaming: bool = False, **kwargs)`
+
+השלמת טקסט עם סטרימינג אופציונלי
+
+### `triples_query(self, s=None, p=None, o=None, user=None, collection=None, limit=100, **kwargs)`
+
+שאילתא של תבנית משולשת
+
+
+--
+
+### `build_term(value: Any, term_type: str | None = None, datatype: str | None = None, language: str | None = None) -> Dict[str, Any] | None`
+
+בניית מילון Term בפורמט wire מתוך ערך.
+
+כללי זיהוי אוטומטיים (כאשר term_type הוא None):
+ כבר מילון עם מפתח 't' -> החזר כפי שהוא (כבר Term)
+ מתחיל עם http://, https://, urn: -> IRI
+ עטוף בסוגריים זוויתיים (לדוגמה, ) -> IRI (סוגריים זוויתיים מוסרים)
+ כל דבר אחר -> מילולי
+
+**ארגומנטים:**
+
+`value`: ערך ה-term (מחרוזת, מילון או None)
+`term_type`: אחד מ-'iri', 'literal' או None לזיהוי אוטומטי
+`datatype`: סוג נתונים עבור אובייקטים מילוליים (לדוגמה, xsd:integer)
+`language`: תג שפה עבור אובייקטים מילוליים (לדוגמה, en)
+
+**החזרות:** dict: מילון Term בפורמט wire, או None אם הערך הוא None
+
+
+--
+
+## `BulkClient`
+
+```python
+from trustgraph.api import BulkClient
+```
+
+לקוח לפעולות מרובות סינכרוניות לייבוא/ייצוא.
+
+מספק העברת נתונים מרובה יעילה באמצעות WebSocket עבור מערכי נתונים גדולים.
+עוטף פעולות WebSocket אסינכרוניות עם גנרטורים סינכרוניים לנוחות השימוש.
+
+הערה: לתמיכה אסינכרונית אמיתית, השתמש ב-AsyncBulkClient במקום.
+
+### שיטות
+
+### `__init__(self, url: str, timeout: int, token: str | None) -> None`
+
+אתחול לקוח מרובה סינכרוני.
+
+**ארגומנטים:**
+
+`url`: כתובת URL בסיסית עבור ממשק ה-API של TrustGraph (HTTP/HTTPS יומרו ל-WS/WSS)
+`timeout`: זמן קצוב של WebSocket בשניות
+`token`: טוקן bearer אופציונלי לאימות
+
+### `close(self) -> None`
+
+סגירת חיבורים
+
+### `export_document_embeddings(self, flow: str, **kwargs: Any) -> Iterator[Dict[str, Any]]`
+
+ייצוא מרובה של הטמעות מסמכים מתוך זרימה.
+
+מוריד ביעילות את כל הטמעות חלקי המסמכים באמצעות סטרימינג של WebSocket.
+
+**ארגומנטים:**
+
+`flow`: מזהה זרימה
+`**kwargs`: פרמטרים נוספים (שמורים לשימוש עתידי)
+
+**מחזיר:** Iterator[Dict[str, Any]]: זרם של מילוני הטמעה
+
+**דוגמה:**
+
+```python
+bulk = api.bulk()
+
+# Export and process document embeddings
+for embedding in bulk.export_document_embeddings(flow="default"):
+ chunk_id = embedding.get("chunk_id")
+ vector = embedding.get("embedding")
+ print(f"{chunk_id}: {len(vector)} dimensions")
+```
+
+### `export_entity_contexts(self, flow: str, **kwargs: Any) -> Iterator[Dict[str, Any]]`
+
+ייצוא בכמות גדולה של הקשרים של ישויות מתוך זרימה.
+
+מוריד ביעילות את כל מידע ההקשר של הישויות באמצעות סטרימינג WebSocket.
+
+**ארגומנטים:**
+
+`flow`: מזהה זרימה
+`**kwargs`: פרמטרים נוספים (שמורים לשימוש עתידי)
+
+**מחזיר:** Iterator[Dict[str, Any]]: זרם של מילוני הקשר
+
+**דוגמה:**
+
+```python
+bulk = api.bulk()
+
+# Export and process entity contexts
+for context in bulk.export_entity_contexts(flow="default"):
+ entity = context.get("entity")
+ text = context.get("context")
+ print(f"{entity}: {text[:100]}...")
+```
+
+### `export_graph_embeddings(self, flow: str, **kwargs: Any) -> Iterator[Dict[str, Any]]`
+
+ייצוא המוני של הטמעות גרפים מתוך זרימה.
+
+מוריד ביעילות את כל הטמעות ישויות הגרף באמצעות סטרימינג WebSocket.
+
+**ארגומנטים:**
+
+`flow`: מזהה זרימה
+`**kwargs`: פרמטרים נוספים (שמורים לשימוש עתידי)
+
+**מחזיר:** Iterator[Dict[str, Any]]: זרם של מילוני הטמעות
+
+**דוגמה:**
+
+```python
+bulk = api.bulk()
+
+# Export and process embeddings
+for embedding in bulk.export_graph_embeddings(flow="default"):
+ entity = embedding.get("entity")
+ vector = embedding.get("embedding")
+ print(f"{entity}: {len(vector)} dimensions")
+```
+
+### `export_triples(self, flow: str, **kwargs: Any) -> Iterator[trustgraph.api.types.Triple]`
+
+ייצוא בכמות גדולה של משולשים RDF מתוך זרימה.
+
+מוריד ביעילות את כל המשולשים באמצעות סטרימינג WebSocket.
+
+**ארגומנטים:**
+
+`flow`: מזהה זרימה
+`**kwargs`: פרמטרים נוספים (שמורים לשימוש עתידי)
+
+**מחזיר:** Iterator[Triple]: זרם של אובייקטי Triple
+
+**דוגמה:**
+
+```python
+bulk = api.bulk()
+
+# Export and process triples
+for triple in bulk.export_triples(flow="default"):
+ print(f"{triple.s} -> {triple.p} -> {triple.o}")
+```
+
+### `import_document_embeddings(self, flow: str, embeddings: Iterator[Dict[str, Any]], **kwargs: Any) -> None`
+
+ייבוא המוני של הטמעות מסמכים לתוך זרימה.
+
+העלאה יעילה של הטמעות מקטעי מסמכים באמצעות סטרימינג WebSocket
+לשימוש בשאילתות RAG של מסמכים.
+
+**ארגומנטים:**
+
+`flow`: מזהה זרימה
+`embeddings`: איטרטור המפיק מילוני הטמעות
+`**kwargs`: פרמטרים נוספים (שמורים לשימוש עתידי)
+
+**דוגמה:**
+
+```python
+bulk = api.bulk()
+
+# Generate document embeddings to import
+def doc_embedding_generator():
+ yield {"chunk_id": "doc1/p0/c0", "embedding": [0.1, 0.2, ...]}
+ yield {"chunk_id": "doc1/p0/c1", "embedding": [0.3, 0.4, ...]}
+ # ... more embeddings
+
+bulk.import_document_embeddings(
+ flow="default",
+ embeddings=doc_embedding_generator()
+)
+```
+
+### `import_entity_contexts(self, flow: str, contexts: Iterator[Dict[str, Any]], metadata: Dict[str, Any] | None = None, batch_size: int = 100, **kwargs: Any) -> None`
+
+ייבוא בכמות גדולה של הקשרים של ישויות לתוך זרימה.
+
+מעלה ביעילות מידע על הקשר של ישויות באמצעות סטרימינג WebSocket.
+הקשרים של ישויות מספקים הקשר טקסטואלי נוסף לגבי ישויות גרף
+לשיפור ביצועי RAG.
+
+**ארגומנטים:**
+
+`flow`: מזהה של זרימה
+`contexts`: איטרטור המפיק מילוני הקשר
+`metadata`: מילון מטא-נתונים עם id, מטא-נתונים, משתמש, אוסף
+`batch_size`: מספר הקשרים בכל אצווה (ברירת מחדל 100)
+`**kwargs`: פרמטרים נוספים (שמורים לשימוש עתידי)
+
+**דוגמה:**
+
+```python
+bulk = api.bulk()
+
+# Generate entity contexts to import
+def context_generator():
+ yield {"entity": {"v": "entity1", "e": True}, "context": "Description..."}
+ yield {"entity": {"v": "entity2", "e": True}, "context": "Description..."}
+ # ... more contexts
+
+bulk.import_entity_contexts(
+ flow="default",
+ contexts=context_generator(),
+ metadata={"id": "doc1", "metadata": [], "user": "user1", "collection": "default"}
+)
+```
+
+### `import_graph_embeddings(self, flow: str, embeddings: Iterator[Dict[str, Any]], **kwargs: Any) -> None`
+
+ייבוא המוני של הטמעות גרפים לתוך זרימה.
+
+העלאה יעילה של הטמעות ישויות גרפים באמצעות סטרימינג WebSocket.
+
+**ארגומנטים:**
+
+`flow`: מזהה זרימה
+`embeddings`: איטרטור המפיק מילוני הטמעות
+`**kwargs`: פרמטרים נוספים (שמורים לשימוש עתידי)
+
+**דוגמה:**
+
+```python
+bulk = api.bulk()
+
+# Generate embeddings to import
+def embedding_generator():
+ yield {"entity": "entity1", "embedding": [0.1, 0.2, ...]}
+ yield {"entity": "entity2", "embedding": [0.3, 0.4, ...]}
+ # ... more embeddings
+
+bulk.import_graph_embeddings(
+ flow="default",
+ embeddings=embedding_generator()
+)
+```
+
+### `import_rows(self, flow: str, rows: Iterator[Dict[str, Any]], **kwargs: Any) -> None`
+
+ייבוא בכמות גדולה של שורות מובנות לתוך זרימה.
+
+העלאה יעילה של שורות נתונים מובנים באמצעות סטרימינג WebSocket
+לשימוש בשאילתות GraphQL.
+
+**ארגומנטים:**
+
+`flow`: מזהה זרימה
+`rows`: איטרטור המפיק מילוני שורות
+`**kwargs`: פרמטרים נוספים (שמורים לשימוש עתידי)
+
+**דוגמה:**
+
+```python
+bulk = api.bulk()
+
+# Generate rows to import
+def row_generator():
+ yield {"id": "row1", "name": "Row 1", "value": 100}
+ yield {"id": "row2", "name": "Row 2", "value": 200}
+ # ... more rows
+
+bulk.import_rows(
+ flow="default",
+ rows=row_generator()
+)
+```
+
+### `import_triples(self, flow: str, triples: Iterator[trustgraph.api.types.Triple], metadata: Dict[str, Any] | None = None, batch_size: int = 100, **kwargs: Any) -> None`
+
+ייבוא בכמות גדולה של משולשים RDF לתוך זרימה.
+
+מעלה ביעילות מספר גדול של משולשים באמצעות סטרימינג WebSocket.
+
+**ארגומנטים:**
+
+`flow`: מזהה של הזרימה
+`triples`: איטרטור המפיק אובייקטי Triple
+`metadata`: מילון מטא-דאטה עם מזהה, מטא-דאטה, משתמש, אוסף
+`batch_size`: מספר המשולשים בכל אצווה (ברירת מחדל 100)
+`**kwargs`: פרמטרים נוספים (שמורים לשימוש עתידי)
+
+**דוגמה:**
+
+```python
+from trustgraph.api import Triple
+
+bulk = api.bulk()
+
+# Generate triples to import
+def triple_generator():
+ yield Triple(s="subj1", p="pred", o="obj1")
+ yield Triple(s="subj2", p="pred", o="obj2")
+ # ... more triples
+
+# Import triples
+bulk.import_triples(
+ flow="default",
+ triples=triple_generator(),
+ metadata={"id": "doc1", "metadata": [], "user": "user1", "collection": "default"}
+)
+```
+
+
+--
+
+## `AsyncBulkClient`
+
+```python
+from trustgraph.api import AsyncBulkClient
+```
+
+לקוח לפעולות אסינכרוניות בכמות גדולה
+
+### שיטות
+
+### `__init__(self, url: str, timeout: int, token: str | None) -> None`
+
+אתחול של self. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
+
+### `aclose(self) -> None`
+
+סגירת חיבורים
+
+### `export_document_embeddings(self, flow: str, **kwargs: Any) -> AsyncIterator[Dict[str, Any]]`
+
+ייצוא בכמות גדולה של הטמעות מסמכים באמצעות WebSocket
+
+### `export_entity_contexts(self, flow: str, **kwargs: Any) -> AsyncIterator[Dict[str, Any]]`
+
+ייצוא בכמות גדולה של הקשרים של ישויות באמצעות WebSocket
+
+### `export_graph_embeddings(self, flow: str, **kwargs: Any) -> AsyncIterator[Dict[str, Any]]`
+
+ייצוא בכמות גדולה של הטמעות גרפים באמצעות WebSocket
+
+### `export_triples(self, flow: str, **kwargs: Any) -> AsyncIterator[trustgraph.api.types.Triple]`
+
+ייצוא בכמות גדולה של משולשות באמצעות WebSocket
+
+### `import_document_embeddings(self, flow: str, embeddings: AsyncIterator[Dict[str, Any]], **kwargs: Any) -> None`
+
+ייבוא בכמות גדולה של הטמעות מסמכים באמצעות WebSocket
+
+### `import_entity_contexts(self, flow: str, contexts: AsyncIterator[Dict[str, Any]], **kwargs: Any) -> None`
+
+ייבוא בכמות גדולה של הקשרים של ישויות באמצעות WebSocket
+
+### `import_graph_embeddings(self, flow: str, embeddings: AsyncIterator[Dict[str, Any]], **kwargs: Any) -> None`
+
+ייבוא בכמות גדולה של הטמעות גרפים באמצעות WebSocket
+
+### `import_rows(self, flow: str, rows: AsyncIterator[Dict[str, Any]], **kwargs: Any) -> None`
+
+ייבוא בכמות גדולה של שורות באמצעות WebSocket
+
+### `import_triples(self, flow: str, triples: AsyncIterator[trustgraph.api.types.Triple], **kwargs: Any) -> None`
+
+ייבוא בכמות גדולה של משולשות באמצעות WebSocket
+
+
+--
+
+## `Metrics`
+
+```python
+from trustgraph.api import Metrics
+```
+
+לקוח למדדי סינכרוניים
+
+### שיטות
+
+### `__init__(self, url: str, timeout: int, token: str | None) -> None`
+
+אתחול של self. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
+
+### `get(self) -> str`
+
+קבלת מדדי Prometheus כטקסט
+
+
+--
+
+## `AsyncMetrics`
+
+```python
+from trustgraph.api import AsyncMetrics
+```
+
+לקוח מדדים אסינכרוני
+
+### שיטות
+
+### `__init__(self, url: str, timeout: int, token: str | None) -> None`
+
+אתחול self. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
+
+### `aclose(self) -> None`
+
+סגירת חיבורים
+
+### `get(self) -> str`
+
+קבלת מדדי Prometheus כטקסט
+
+
+--
+
+## `ExplainabilityClient`
+
+```python
+from trustgraph.api import ExplainabilityClient
+```
+
+לקוח לשליפת ישויות הסברתיות עם טיפול בעקביות סופית.
+
+משתמש בגילוי שקט: שליפה, המתנה, שליפה חוזרת, השוואה.
+אם התוצאות זהות, הנתונים יציבים.
+
+### שיטות
+
+### `__init__(self, flow_instance, retry_delay: float = 0.2, max_retries: int = 10)`
+
+אתחול לקוח הסברתי.
+
+**ארגומנטים:**
+
+`flow_instance`: מופע SocketFlowInstance לשליפת משולשות
+`retry_delay`: השהייה בין ניסיונות חוזרים בשניות (ברירת מחדל: 0.2)
+`max_retries`: מספר מקסימלי של ניסיונות חוזרים (ברירת מחדל: 10)
+
+### `detect_session_type(self, session_uri: str, graph: str | None = None, user: str | None = None, collection: str | None = None) -> str`
+
+זיהוי האם סשן הוא מסוג GraphRAG או Agent.
+
+**ארגומנטים:**
+
+`session_uri`: ה-URI של הסשן/שאלה
+`graph`: גרף מוגדר
+`user`: מזהה משתמש/מרחב מפתחות
+`collection`: מזהה אוסף
+
+**מחזיר:** "graphrag" או "agent"
+
+### `fetch_agent_trace(self, session_uri: str, graph: str | None = None, user: str | None = None, collection: str | None = None, api: Any = None, max_content: int = 10000) -> Dict[str, Any]`
+
+שליפת רצף ה-Agent השלם החל מ-URI של סשן.
+
+עוקב אחר שרשרת המוצא: שאלה -> ניתוח (ים) -> מסקנה
+
+**ארגומנטים:**
+
+`session_uri`: ה-URI של סשן/שאלה של ה-agent
+`graph`: גרף מוגדר (ברירת מחדל: urn:graph:retrieval)
+`user`: מזהה משתמש/מרחב מפתחות
+`collection`: מזהה אוסף
+`api`: מופע TrustGraph Api לגישה לספרן (אופציונלי)
+`max_content`: אורך תוכן מקסימלי למסקנה
+
+**מחזיר:** מילון עם שאלה, איטרציות (רשימת ניתוחים), ישויות מסקנה
+
+### `fetch_docrag_trace(self, question_uri: str, graph: str | None = None, user: str | None = None, collection: str | None = None, api: Any = None, max_content: int = 10000) -> Dict[str, Any]`
+
+שליפת רצף ה-DocumentRAG השלם החל מ-URI של שאלה.
+
+עוקב אחר שרשרת המוצא:
+ שאלה -> עיגון -> חקירה -> סינתזה
+
+**ארגומנטים:**
+
+`question_uri`: ה-URI של ישות השאלה
+`graph`: גרף מוגדר (ברירת מחדל: urn:graph:retrieval)
+`user`: מזהה משתמש/מרחב מפתחות
+`collection`: מזהה אוסף
+`api`: מופע TrustGraph Api לגישה לספרן (אופציונלי)
+`max_content`: אורך תוכן מקסימלי לסינתזה
+
+**מחזיר:** מילון עם שאלה, עיגון, חקירה, ישויות סינתזה
+
+### `fetch_document_content(self, document_uri: str, api: Any, user: str | None = None, max_content: int = 10000) -> str`
+
+שליפת תוכן מהספרן לפי URI של מסמך.
+
+**ארגומנטים:**
+
+`document_uri`: ה-URI של המסמך בספרן
+`api`: מופע TrustGraph Api לגישה לספרן
+`user`: מזהה משתמש עבור הספרן
+`max_content`: אורך תוכן מקסימלי להחזרה
+
+**מחזיר:** התוכן של המסמך כרצף
+
+### `fetch_edge_selection(self, uri: str, graph: str | None = None, user: str | None = None, collection: str | None = None) -> trustgraph.api.explainability.EdgeSelection | None`
+
+שליפת ישות בחירת קצה (משמשת על ידי Focus).
+
+**ארגומנטים:**
+
+`uri`: ה-URI של בחירת הקצה
+`graph`: גרף מוגדר לשליפה
+`user`: מזהה משתמש/מרחב מפתחות
+`collection`: מזהה אוסף
+
+**מחזיר:** EdgeSelection או None אם לא נמצא
+
+### `fetch_entity(self, uri: str, graph: str | None = None, user: str | None = None, collection: str | None = None) -> trustgraph.api.explainability.ExplainEntity | None`
+
+שליפת ישות הסברות באמצעות URI עם טיפול בעקביות סופית.
+
+משתמש בגילוי שקטות:
+1. שליפת משולשים עבור URI
+2. אם אין תוצאות, לנסות שוב
+3. אם יש תוצאות, לחכות ולשלוף שוב
+4. אם התוצאות זהות, הנתונים יציבים - לנתח ולהחזיר
+5. אם התוצאות שונות, הנתונים עדיין נכתבים - לנסות שוב
+
+**ארגומנטים:**
+
+`uri`: ה-URI של הישות שיש לשלוף
+`graph`: גרף בעל שם לשאילתה (לדוגמה, "urn:graph:retrieval")
+`user`: מזהה משתמש/מרחב מפתחות
+`collection`: מזהה אוסף
+
+**החזרות:** תת-מחלקה של ExplainEntity או None אם לא נמצא
+
+### `fetch_focus_with_edges(self, uri: str, graph: str | None = None, user: str | None = None, collection: str | None = None) -> trustgraph.api.explainability.Focus | None`
+
+שליפת ישות Focus וכל בחירות הקצוות שלה.
+
+**ארגומנטים:**
+
+`uri`: ה-URI של ישות ה-Focus
+`graph`: גרף בעל שם לשאילתה
+`user`: מזהה משתמש/מרחב מפתחות
+`collection`: מזהה אוסף
+
+**החזרות:** Focus עם edge_selections מאוכלס, או None
+
+### `fetch_graphrag_trace(self, question_uri: str, graph: str | None = None, user: str | None = None, collection: str | None = None, api: Any = None, max_content: int = 10000) -> Dict[str, Any]`
+
+שליפת עקבות GraphRAG מלאים החל מ-URI של שאלה.
+
+עוקבים אחר שרשרת המוצא: שאלה -> עיגון -> חקירה -> Focus -> סינתזה
+
+**ארגומנטים:**
+
+`question_uri`: ה-URI של ישות השאלה
+`graph`: גרף (ברירת מחדל: urn:graph:retrieval)
+`user`: מזהה משתמש/מרחב מפתחות
+`collection`: מזהה אוסף
+`api`: מופע של TrustGraph Api לגישה לספרן (אופציונלי)
+`max_content`: אורך תוכן מקסימלי לסינתזה
+
+**החזרות:** מילון עם ישויות שאלה, עיגון, חקירה, focus, סינתזה
+
+### `list_sessions(self, graph: str | None = None, user: str | None = None, collection: str | None = None, limit: int = 50) -> List[trustgraph.api.explainability.Question]`
+
+רשימת כל סשנים של הסברות (שאלות) באוסף.
+
+**ארגומנטים:**
+
+`graph`: גרף (ברירת מחדל: urn:graph:retrieval)
+`user`: מזהה משתמש/מרחב מפתחות
+`collection`: מזהה אוסף
+`limit`: מספר הסשנים המקסימלי להחזרה
+
+**החזרות:** רשימה של ישויות שאלה ממוינות לפי חותם זמן (חדש ביותר קודם)
+
+### `resolve_edge_labels(self, edge: Dict[str, str], user: str | None = None, collection: str | None = None) -> Tuple[str, str, str]`
+
+פתרון תוויות עבור כל רכיבים של משולש קצה.
+
+**ארגומנטים:**
+
+`edge`: מילון עם מפתחות "s", "p", "o"
+`user`: מזהה משתמש/מרחב מפתחות
+`collection`: מזהה אוסף
+
+**החזרות:** טאפל של (s_label, p_label, o_label)
+
+### `resolve_label(self, uri: str, user: str | None = None, collection: str | None = None) -> str`
+
+פתרון rdfs:label עבור URI, עם שמירה במטמון.
+
+**ארגומנטים:**
+
+`uri`: ה-URI לקבלת התווית
+`user`: מזהה משתמש/מרחב מפתחות
+`collection`: מזהה אוסף
+
+**החזרות:** התווית אם נמצאה, אחרת ה-URI עצמו
+
+
+--
+
+## `ExplainEntity`
+
+```python
+from trustgraph.api import ExplainEntity
+```
+
+מחלקה בסיסית עבור ישויות הסברתיות.
+
+**שדות:**
+
+`uri`:
+`entity_type`:
+
+### שיטות
+
+### `__init__(self, uri: str, entity_type: str = '') -> None`
+
+אתחול עצמי. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
+
+
+--
+
+## `Question`
+
+```python
+from trustgraph.api import Question
+```
+
+שאילתת משתמש - השאלה שהתחילה את הסשן.
+
+**שדות:**
+
+`uri`:
+`entity_type`:
+`query`:
+`timestamp`:
+`question_type`:
+
+### שיטות
+
+### `__init__(self, uri: str, entity_type: str = '', query: str = '', timestamp: str = '', question_type: str = '') -> None`
+
+אתחול עצמי. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
+
+
+--
+
+## `Exploration`
+
+```python
+from trustgraph.api import Exploration
+```
+
+ישות חקירה - קצוות/חלקים שאוחזרו ממאגר הידע.
+
+**שדות:**
+
+`uri`:
+`entity_type`:
+`edge_count`:
+`chunk_count`:
+`entities`: typing.List[str]
+
+### שיטות
+
+### `__init__(self, uri: str, entity_type: str = '', edge_count: int = 0, chunk_count: int = 0, entities: List[str] = ) -> None`
+
+אתחול עצמי. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
+
+
+--
+
+## `Focus`
+
+```python
+from trustgraph.api import Focus
+```
+
+ישות ממוקדת - קצוות נבחרים עם ניתוח באמצעות מודל שפה גדול (GraphRAG בלבד).
+
+**שדות:**
+
+`uri`:
+`entity_type`:
+`selected_edge_uris`: typing.List[str]
+`edge_selections`: typing.List[trustgraph.api.explainability.EdgeSelection]
+
+### שיטות
+
+### `__init__(self, uri: str, entity_type: str = '', selected_edge_uris: List[str] = , edge_selections: List[trustgraph.api.explainability.EdgeSelection] = ) -> None`
+
+אתחול עצמי. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
+
+
+--
+
+## `Synthesis`
+
+```python
+from trustgraph.api import Synthesis
+```
+
+ישות סינתטית - התשובה הסופית.
+
+**שדות:**
+
+`uri`:
+`entity_type`:
+`document`:
+
+### שיטות
+
+### `__init__(self, uri: str, entity_type: str = '', document: str = '') -> None`
+
+אתחול self. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
+
+
+--
+
+## `Analysis`
+
+```python
+from trustgraph.api import Analysis
+```
+
+ישות ניתוח - מחזור מחשבה/פעולה/תצפית (לסוכן בלבד).
+
+**שדות:**
+
+`uri`:
+`entity_type`:
+`action`:
+`arguments`:
+`thought`:
+`observation`:
+
+### שיטות
+
+### `__init__(self, uri: str, entity_type: str = '', action: str = '', arguments: str = '', thought: str = '', observation: str = '') -> None`
+
+אתחול עצמי. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
+
+
+--
+
+## `Conclusion`
+
+```python
+from trustgraph.api import Conclusion
+```
+
+סיכום - תשובה סופית (לסוכן בלבד).
+
+**שדות:**
+
+`uri`:
+`entity_type`:
+`document`:
+
+### שיטות
+
+### `__init__(self, uri: str, entity_type: str = '', document: str = '') -> None`
+
+אתחול self. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
+
+
+--
+
+## `EdgeSelection`
+
+```python
+from trustgraph.api import EdgeSelection
+```
+
+צומת שנבחר עם הסבר משלב GraphRAG Focus.
+
+**שדות:**
+
+`uri`:
+`edge`: typing.Dict[str, str] | None
+`reasoning`:
+
+### שיטות
+
+### `__init__(self, uri: str, edge: Dict[str, str] | None = None, reasoning: str = '') -> None`
+
+אתחול self. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
+
+
+--
+
+### `wire_triples_to_tuples(wire_triples: List[Dict[str, Any]]) -> List[Tuple[str, str, Any]]`
+
+המרת משולשות בפורמט wire לטופלים (s, p, o).
+
+
+--
+
+### `extract_term_value(term: Dict[str, Any]) -> Any`
+
+חילוץ ערך ממילון Term בפורמט wire.
+
+
+--
+
+## `Triple`
+
+```python
+from trustgraph.api import Triple
+```
+
+משפט גרף ידע המיוצג על ידי טריפל RDF.
+
+**שדות:**
+
+`s`:
+`p`:
+`o`:
+
+### שיטות
+
+### `__init__(self, s: str, p: str, o: str) -> None`
+
+אתחול self. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
+
+
+--
+
+## `Uri`
+
+```python
+from trustgraph.api import Uri
+```
+
+str(object='') -> str
+str(bytes_or_buffer[, encoding[, errors]]) -> str
+
+יצירת אובייקט מחרוזת חדש מהאובייקט הנתון. אם צוינו קידוד (encoding) או
+טיפול בשגיאות (errors), אז האובייקט חייב לחשוף מאגר נתונים
+שייקוד באמצעות הקידוד ומטפל השגיאות שצוינו.
+אחרת, מוחזר התוצאה של object.__str__() (אם מוגדר)
+או repr(object).
+ברירת המחדל של הקידוד היא 'utf-8'.
+ברירת המחדל של טיפול בשגיאות היא 'strict'.
+
+### שיטות
+
+### `is_literal(self)`
+
+### `is_triple(self)`
+
+### `is_uri(self)`
+
+
+--
+
+## `Literal`
+
+```python
+from trustgraph.api import Literal
+```
+
+str(object='') -> str
+str(bytes_or_buffer[, encoding[, errors]]) -> str
+
+יצירת אובייקט מחרוזת חדש מהאובייקט הנתון. אם צוינו קידוד (encoding) או
+טיפול בשגיאות (errors), אז האובייקט חייב לחשוף מאגר נתונים
+שייקוד באמצעות הקידוד ומטפל השגיאות שצוינו.
+אחרת, מוחזר התוצאה של object.__str__() (אם מוגדר)
+או repr(object).
+ברירת המחדל של קידוד היא 'utf-8'.
+ברירת המחדל של טיפול בשגיאות היא 'strict'.
+
+### שיטות
+
+### `is_literal(self)`
+
+### `is_triple(self)`
+
+### `is_uri(self)`
+
+
+--
+
+## `ConfigKey`
+
+```python
+from trustgraph.api import ConfigKey
+```
+
+מזהה מפתח תצורה.
+
+**שדות:**
+
+`type`:
+`key`:
+
+### שיטות
+
+### `__init__(self, type: str, key: str) -> None`
+
+אתחול self. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
+
+
+--
+
+## `ConfigValue`
+
+```python
+from trustgraph.api import ConfigValue
+```
+
+זוג מפתח-ערך של תצורה.
+
+**שדות:**
+
+`type`:
+`key`:
+`value`:
+
+### שיטות
+
+### `__init__(self, type: str, key: str, value: str) -> None`
+
+אתחול self. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
+
+
+--
+
+## `DocumentMetadata`
+
+```python
+from trustgraph.api import DocumentMetadata
+```
+
+מטא-נתונים עבור מסמך בספרייה.
+
+**תכונות:**
+
+`parent_id: Parent document ID for child documents (empty for top`: level docs)
+
+**שדות:**
+
+`id`:
+`time`:
+`kind`:
+`title`:
+`comments`:
+`metadata`: typing.List[trustgraph.api.types.Triple]
+`user`:
+`tags`: typing.List[str]
+`parent_id`:
+`document_type`:
+
+### שיטות
+
+### `__init__(self, id: str, time: datetime.datetime, kind: str, title: str, comments: str, metadata: List[trustgraph.api.types.Triple], user: str, tags: List[str], parent_id: str = '', document_type: str = 'source') -> None`
+
+אתחול self. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
+
+
+--
+
+## `ProcessingMetadata`
+
+```python
+from trustgraph.api import ProcessingMetadata
+```
+
+מטא-נתונים עבור משימת עיבוד מסמכים פעילה.
+
+**שדות:**
+
+`id`:
+`document_id`:
+`time`:
+`flow`:
+`user`:
+`collection`:
+`tags`: typing.List[str]
+
+### שיטות
+
+### `__init__(self, id: str, document_id: str, time: datetime.datetime, flow: str, user: str, collection: str, tags: List[str]) -> None`
+
+אתחול self. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
+
+
+--
+
+## `CollectionMetadata`
+
+```python
+from trustgraph.api import CollectionMetadata
+```
+
+מטא-נתונים עבור אוסף נתונים.
+
+אוספים מספקים קיבוץ והפרדה לוגיים עבור מסמכים ונתוני גרף ידע.
+
+
+**תכונות:**
+
+`name: Human`: שם אוסף הניתן לקריאה
+
+**שדות:**
+
+`user`:
+`collection`:
+`name`:
+`description`:
+`tags`: typing.List[str]
+
+### שיטות
+
+### `__init__(self, user: str, collection: str, name: str, description: str, tags: List[str]) -> None`
+
+אתחול self. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
+
+
+--
+
+## `StreamingChunk`
+
+```python
+from trustgraph.api import StreamingChunk
+```
+
+מחלקה בסיסית עבור חלקי תגובה בסטרימינג.
+
+משמשת לפעולות סטרימינג מבוססות WebSocket שבהן התגובות מועברות
+בהדרגה כשהן נוצרות.
+
+**שדות:**
+
+`content`:
+`end_of_message`:
+
+### שיטות
+
+### `__init__(self, content: str, end_of_message: bool = False) -> None`
+
+אתחול עצמי. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
+
+
+--
+
+## `AgentThought`
+
+```python
+from trustgraph.api import AgentThought
+```
+
+קטע של נימוקים/תהליך חשיבה של הסוכן.
+
+מייצג את תהליך החשיבה או שלבי התכנון הפנימיים של הסוכן במהלך הביצוע.
+קטעים אלה מראים כיצד הסוכן חושב על הבעיה.
+
+**שדות:**
+
+`content`:
+`end_of_message`:
+`chunk_type`:
+
+### שיטות
+
+### `__init__(self, content: str, end_of_message: bool = False, chunk_type: str = 'thought') -> None`
+
+אתחול עצמי. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
+
+
+--
+
+## `AgentObservation`
+
+```python
+from trustgraph.api import AgentObservation
+```
+
+קטע תצפית על ביצוע כלי.
+
+מייצג את התוצאה או התצפית מהפעלת כלי או פעולה.
+קטעים אלה מציגים מה שהסוכן למד משימוש בכלים.
+
+**שדות:**
+
+`content`:
+`end_of_message`:
+`chunk_type`:
+
+### שיטות
+
+### `__init__(self, content: str, end_of_message: bool = False, chunk_type: str = 'observation') -> None`
+
+אתחול self. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
+
+
+--
+
+## `AgentAnswer`
+
+```python
+from trustgraph.api import AgentAnswer
+```
+
+חלק תשובה סופי של הסוכן.
+
+מייצג את התגובה הסופית של הסוכן למשאלה של המשתמש לאחר השלמת
+הניתוח והשימוש בכלי.
+
+**מאפיינים:**
+
+`chunk_type: Always "final`: answer"
+
+**שדות:**
+
+`content`:
+`end_of_message`:
+`chunk_type`:
+`end_of_dialog`:
+
+### שיטות
+
+### `__init__(self, content: str, end_of_message: bool = False, chunk_type: str = 'final-answer', end_of_dialog: bool = False) -> None`
+
+אתחול self. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
+
+
+--
+
+## `RAGChunk`
+
+```python
+from trustgraph.api import RAGChunk
+```
+
+מקטע סטרימינג של RAG (יצירת טקסט מועשרת בשליפה).
+
+משמש למענה סטרימינג מ-RAG גרפי, RAG של מסמכים, השלמת טקסט,
+ושירותי יצירה אחרים.
+
+**שדות:**
+
+`content`:
+`end_of_message`:
+`chunk_type`:
+`end_of_stream`:
+`error`: typing.Dict[str, str] | None
+
+### שיטות
+
+### `__init__(self, content: str, end_of_message: bool = False, chunk_type: str = 'rag', end_of_stream: bool = False, error: Dict[str, str] | None = None) -> None`
+
+אתחול עצמי. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
+
+
+--
+
+## `ProvenanceEvent`
+
+```python
+from trustgraph.api import ProvenanceEvent
+```
+
+אירוע מקור עבור הסברתיות.
+
+נשלח במהלך שאילתות GraphRAG כאשר מצב ההסבר מופעל.
+כל אירוע מייצג צומת מקור שנוצר במהלך עיבוד השאילתה.
+
+**שדות:**
+
+`explain_id`:
+`explain_graph`:
+`event_type`:
+
+### שיטות
+
+### `__init__(self, explain_id: str, explain_graph: str = '', event_type: str = '') -> None`
+
+אתחול self. עיין ב-help(type(self)) לקבלת חתימה מדויקת.
+
+
+--
+
+## `ProtocolException`
+
+```python
+from trustgraph.api import ProtocolException
+```
+
+מופעל כאשר מתרחשות שגיאות בפרוטוקול WebSocket.
+
+
+--
+
+## `TrustGraphException`
+
+```python
+from trustgraph.api import TrustGraphException
+```
+
+מחלקה בסיסית עבור כל שגיאות השירות של TrustGraph.
+
+
+--
+
+## `AgentError`
+
+```python
+from trustgraph.api import AgentError
+```
+
+שגיאת שירות סוכן
+
+
+--
+
+## `ConfigError`
+
+```python
+from trustgraph.api import ConfigError
+```
+
+שגיאת שירות תצורה
+
+
+--
+
+## `DocumentRagError`
+
+```python
+from trustgraph.api import DocumentRagError
+```
+
+שגיאת שליפה של מסמכים.
+
+
+--
+
+## `FlowError`
+
+```python
+from trustgraph.api import FlowError
+```
+
+שגיאת ניהול זרימה
+
+
+--
+
+## `GatewayError`
+
+```python
+from trustgraph.api import GatewayError
+```
+
+שגיאת שער API
+
+
+--
+
+## `GraphRagError`
+
+```python
+from trustgraph.api import GraphRagError
+```
+
+שגיאת שליפה של גרף RAG
+
+
+--
+
+## `LLMError`
+
+```python
+from trustgraph.api import LLMError
+```
+
+שגיאת שירות מודל שפה גדול (LLM).
+
+
+--
+
+## `LoadError`
+
+```python
+from trustgraph.api import LoadError
+```
+
+שגיאת טעינת נתונים
+
+
+--
+
+## `LookupError`
+
+```python
+from trustgraph.api import LookupError
+```
+
+שגיאת חיפוש/איתור
+
+
+--
+
+## `NLPQueryError`
+
+```python
+from trustgraph.api import NLPQueryError
+```
+
+שגיאת שירות שאילתות NLP.
+
+
+--
+
+## `RowsQueryError`
+
+```python
+from trustgraph.api import RowsQueryError
+```
+
+שגיאת שירות שאילתות שורות
+
+
+--
+
+## `RequestError`
+
+```python
+from trustgraph.api import RequestError
+```
+
+שגיאת עיבוד בקשה
+
+
+--
+
+## `StructuredQueryError`
+
+```python
+from trustgraph.api import StructuredQueryError
+```
+
+שגיאת שירות שאילתות מובנה.
+
+
+--
+
+## `UnexpectedError`
+
+```python
+from trustgraph.api import UnexpectedError
+```
+
+שגיאה בלתי צפויה/לא ידועה
+
+
+--
+
+## `ApplicationException`
+
+```python
+from trustgraph.api import ApplicationException
+```
+
+מחלקה בסיסית עבור כל שגיאות השירות של TrustGraph.
+
+
+--
diff --git a/docs/python-api.hi.md b/docs/python-api.hi.md
new file mode 100644
index 00000000..78873cb6
--- /dev/null
+++ b/docs/python-api.hi.md
@@ -0,0 +1,4078 @@
+---
+layout: default
+title: "ट्रस्टग्राफ पायथन एपीआई संदर्भ"
+parent: "Hindi (Beta)"
+---
+
+# ट्रस्टग्राफ पायथन एपीआई संदर्भ
+
+> **Beta Translation:** This document was translated via Machine Learning and as such may not be 100% accurate. All non-English languages are currently classified as Beta.
+
+## स्थापना
+
+```bash
+pip install trustgraph
+```
+
+## त्वरित शुरुआत
+
+सभी कक्षाएं और प्रकार `trustgraph.api` पैकेज से आयात किए गए हैं:
+
+```python
+from trustgraph.api import Api, Triple, ConfigKey
+
+# Create API client
+api = Api(url="http://localhost:8088/")
+
+# Get a flow instance
+flow = api.flow().id("default")
+
+# Execute a graph RAG query
+response = flow.graph_rag(
+ query="What are the main topics?",
+ user="trustgraph",
+ collection="default"
+)
+```
+
+## सामग्री तालिका
+
+### मुख्य भाग
+
+[Api](#api)
+
+### फ्लो क्लाइंट
+
+[Flow](#flow)
+[FlowInstance](#flowinstance)
+[AsyncFlow](#asyncflow)
+[AsyncFlowInstance](#asyncflowinstance)
+
+### वेबसॉकेट क्लाइंट
+
+[SocketClient](#socketclient)
+[SocketFlowInstance](#socketflowinstance)
+[AsyncSocketClient](#asyncsocketclient)
+[AsyncSocketFlowInstance](#asyncsocketflowinstance)
+
+### बल्क ऑपरेशन
+
+[BulkClient](#bulkclient)
+[AsyncBulkClient](#asyncbulkclient)
+
+### मेट्रिक्स
+
+[Metrics](#metrics)
+[AsyncMetrics](#asyncmetrics)
+
+### डेटा प्रकार
+
+[Triple](#triple)
+[ConfigKey](#configkey)
+[ConfigValue](#configvalue)
+[DocumentMetadata](#documentmetadata)
+[ProcessingMetadata](#processingmetadata)
+[CollectionMetadata](#collectionmetadata)
+[StreamingChunk](#streamingchunk)
+[AgentThought](#agentthought)
+[AgentObservation](#agentobservation)
+[AgentAnswer](#agentanswer)
+[RAGChunk](#ragchunk)
+
+### अपवाद
+
+[ProtocolException](#protocolexception)
+[TrustGraphException](#trustgraphexception)
+[AgentError](#agenterror)
+[ConfigError](#configerror)
+[DocumentRagError](#documentragerror)
+[FlowError](#flowerror)
+[GatewayError](#gatewayerror)
+[GraphRagError](#graphragerror)
+[LLMError](#llmerror)
+[LoadError](#loaderror)
+[LookupError](#lookuperror)
+[NLPQueryError](#nlpqueryerror)
+[RowsQueryError](#rowsqueryerror)
+[RequestError](#requesterror)
+[StructuredQueryError](#structuredqueryerror)
+[UnexpectedError](#unexpectederror)
+[ApplicationException](#applicationexception)
+
+--
+
+## `Api`
+
+```python
+from trustgraph.api import Api
+```
+
+सिंक्रोनस और एसिंक्रोनस कार्यों के लिए मुख्य ट्रस्टग्राफ एपीआई क्लाइंट।
+
+यह क्लास सभी ट्रस्टग्राफ सेवाओं तक पहुंच प्रदान करती है, जिसमें फ्लो प्रबंधन,
+नॉलेज ग्राफ ऑपरेशन, दस्तावेज़ प्रसंस्करण, आरएजी क्वेरी और बहुत कुछ शामिल हैं। यह
+रेस्ट-आधारित और वेबसॉकेट-आधारित दोनों संचार पैटर्न का समर्थन करता है।
+
+क्लाइंट का उपयोग स्वचालित संसाधन सफाई के लिए एक संदर्भ प्रबंधक के रूप में किया जा सकता है:
+ ```python
+ with Api(url="http://localhost:8088/") as api:
+ result = api.flow().id("default").graph_rag(query="test")
+ ```
+
+### विधियाँ
+
+### `__aenter__(self)`
+
+एसिंक्रोनस संदर्भ प्रबंधक में प्रवेश करें।
+
+### `__aexit__(self, *args)`
+
+एसिंक्रोनस संदर्भ प्रबंधक से बाहर निकलें और कनेक्शन बंद करें।
+
+### `__enter__(self)`
+
+सिंक्रोनस संदर्भ प्रबंधक में प्रवेश करें।
+
+### `__exit__(self, *args)`
+
+सिंक्रोनस संदर्भ प्रबंधक से बाहर निकलें और कनेक्शन बंद करें।
+
+### `__init__(self, url='http://localhost:8088/', timeout=60, token: str | None = None)`
+
+ट्रस्टग्राफ एपीआई क्लाइंट को आरंभ करें।
+
+**तर्क:**
+
+`url`: ट्रस्टग्राफ एपीआई के लिए आधार यूआरएल (डिफ़ॉल्ट: "http://localhost:8088/"")
+`timeout`: सेकंड में अनुरोध समय-सीमा (डिफ़ॉल्ट: 60)
+`token`: प्रमाणीकरण के लिए वैकल्पिक बेयरर टोकन
+
+**उदाहरण:**
+
+```python
+# Local development
+api = Api()
+
+# Production with authentication
+api = Api(
+ url="https://trustgraph.example.com/",
+ timeout=120,
+ token="your-api-token"
+)
+```
+
+### `aclose(self)`
+
+सभी एसिंक्रोनस क्लाइंट कनेक्शन बंद करें।
+
+यह विधि एसिंक्रोनस वेबसॉकेट, बल्क ऑपरेशन और फ्लो कनेक्शन को बंद करती है।
+यह स्वचालित रूप से तब कॉल किया जाता है जब किसी एसिंक्रोनस कॉन्टेक्स्ट मैनेजर से बाहर निकलते हैं।
+
+**उदाहरण:**
+
+```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)`
+
+एसिंक्रोनस बल्क ऑपरेशंस क्लाइंट प्राप्त करें।
+
+वेबसॉकेट के माध्यम से एसिंक्रोनस/अवेइट शैली के बल्क इम्पोर्ट/एक्सपोर्ट ऑपरेशंस प्रदान करता है
+बड़े डेटासेट के कुशल प्रबंधन के लिए।
+
+**रिटर्न:** AsyncBulkClient: एसिंक्रोनस बल्क ऑपरेशंस क्लाइंट
+
+**उदाहरण:**
+
+```python
+async_bulk = api.async_bulk()
+
+# Export triples asynchronously
+async for triple in async_bulk.export_triples(flow="default"):
+ print(f"{triple.s} {triple.p} {triple.o}")
+
+# Import with async generator
+async def triple_gen():
+ yield Triple(s="subj", p="pred", o="obj")
+ # ... more triples
+
+await async_bulk.import_triples(
+ flow="default",
+ triples=triple_gen()
+)
+```
+
+### `async_flow(self)`
+
+एक एसिंक्रोनस, REST-आधारित फ्लो क्लाइंट प्राप्त करें।
+
+यह फ्लो ऑपरेशन्स तक एसिंक्रोनस/अवेइट शैली में एक्सेस प्रदान करता है। यह एसिंक्रोनस पायथन एप्लिकेशन और फ्रेमवर्क (फास्टएपीआई, एआईओएचटीटीपी, आदि) के लिए पसंदीदा है।
+
+
+**रिटर्न:** AsyncFlow: एसिंक्रोनस फ्लो क्लाइंट
+
+**उदाहरण:**
+
+```python
+async_flow = api.async_flow()
+
+# List flows
+flow_ids = await async_flow.list()
+
+# Execute operations
+instance = async_flow.id("default")
+result = await instance.text_completion(
+ system="You are helpful",
+ prompt="Hello"
+)
+```
+
+### `async_metrics(self)`
+
+एक एसिंक्रोनस मेट्रिक्स क्लाइंट प्राप्त करें।
+
+प्रोमेथियस मेट्रिक्स तक एसिंक्रोनस/अवेइट शैली में पहुँच प्रदान करता है।
+
+**वापसी:** AsyncMetrics: एसिंक्रोनस मेट्रिक्स क्लाइंट
+
+**उदाहरण:**
+
+```python
+async_metrics = api.async_metrics()
+prometheus_text = await async_metrics.get()
+print(prometheus_text)
+```
+
+### `async_socket(self)`
+
+स्ट्रीमिंग कार्यों के लिए एक एसिंक्रोनस वेबसॉकेट क्लाइंट प्राप्त करें।
+
+यह स्ट्रीमिंग समर्थन के साथ एसिंक/अवेट शैली वेबसॉकेट एक्सेस प्रदान करता है।
+यह पायथन में एसिंक स्ट्रीमिंग के लिए पसंदीदा तरीका है।
+
+**रिटर्न:** AsyncSocketClient: एसिंक्रोनस वेबसॉकेट क्लाइंट
+
+**उदाहरण:**
+
+```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)`
+
+आयात/निर्यात के लिए एक सिंक्रोनस बल्क ऑपरेशंस क्लाइंट प्राप्त करें।
+
+बल्क ऑपरेशंस, वेबसॉकेट कनेक्शन के माध्यम से बड़े डेटासेट के कुशल हस्तांतरण की अनुमति देते हैं, जिसमें ट्रिपल, एम्बेडिंग, एंटिटी कॉन्टेक्स्ट और ऑब्जेक्ट शामिल हैं।
+
+**रिटर्न:** BulkClient: सिंक्रोनस बल्क ऑपरेशंस क्लाइंट
+
+**उदाहरण:**
+
+
+```python
+bulk = api.bulk()
+
+# Export triples
+for triple in bulk.export_triples(flow="default"):
+ print(f"{triple.s} {triple.p} {triple.o}")
+
+# Import triples
+def triple_generator():
+ yield Triple(s="subj", p="pred", o="obj")
+ # ... more triples
+
+bulk.import_triples(flow="default", triples=triple_generator())
+```
+
+### `close(self)`
+
+सभी सिंक्रोनस क्लाइंट कनेक्शन बंद करें।
+
+यह विधि WebSocket और बल्क ऑपरेशन कनेक्शन बंद करती है।
+यह स्वचालित रूप से तब कॉल किया जाता है जब किसी कॉन्टेक्स्ट मैनेजर से बाहर निकलते हैं।
+
+**उदाहरण:**
+
+```python
+api = Api()
+socket = api.socket()
+# ... use socket
+api.close() # Clean up connections
+
+# Or use context manager (automatic cleanup)
+with Api() as api:
+ socket = api.socket()
+ # ... use socket
+# Automatically closed
+```
+
+### `collection(self)`
+
+डेटा संग्रहों को प्रबंधित करने के लिए एक कलेक्शन क्लाइंट प्राप्त करें।
+
+कलेक्शन दस्तावेजों और नॉलेज ग्राफ डेटा को व्यवस्थित करते हैं
+तार्किक समूहों में, अलगाव और एक्सेस नियंत्रण के लिए।
+
+**रिटर्न:** कलेक्शन: कलेक्शन प्रबंधन क्लाइंट
+
+**उदाहरण:**
+
+```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)`
+
+कॉन्फ़िगरेशन सेटिंग्स को प्रबंधित करने के लिए एक कॉन्फ़िग क्लाइंट प्राप्त करें।
+
+**रिटर्न:** कॉन्फ़िग: कॉन्फ़िगरेशन प्रबंधन क्लाइंट
+
+**उदाहरण:**
+
+```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)`
+
+फ्लो को प्रबंधित करने और उसके साथ इंटरैक्ट करने के लिए एक फ्लो क्लाइंट प्राप्त करें।
+
+फ्लो, ट्रस्टग्राफ में प्राथमिक निष्पादन इकाइयाँ हैं, जो एजेंट, आरएजी क्वेरी, एम्बेडिंग और दस्तावेज़ प्रसंस्करण जैसी सेवाओं तक पहुंच प्रदान करती हैं।
+
+**रिटर्न:** फ्लो: फ्लो प्रबंधन क्लाइंट
+
+**उदाहरण:**
+
+
+```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)`
+
+ज्ञान ग्राफ कोर को प्रबंधित करने के लिए एक नॉलेज क्लाइंट प्राप्त करें।
+
+**रिटर्न:** नॉलेज: ज्ञान ग्राफ प्रबंधन क्लाइंट
+
+**उदाहरण:**
+
+```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)`
+
+दस्तावेज़ प्रबंधन के लिए एक लाइब्रेरी क्लाइंट प्राप्त करें।
+
+यह लाइब्रेरी दस्तावेज़ भंडारण, मेटाडेटा प्रबंधन और
+प्रसंस्करण कार्यप्रवाह समन्वय प्रदान करती है।
+
+**रिटर्न:** लाइब्रेरी: दस्तावेज़ लाइब्रेरी प्रबंधन क्लाइंट
+
+**उदाहरण:**
+
+```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)`
+
+निगरानी के लिए एक सिंक्रोनस मेट्रिक्स क्लाइंट प्राप्त करें।
+
+यह ट्रस्टग्राफ सेवा से प्रोमेथियस-स्वरूपित मेट्रिक्स प्राप्त करता है
+निगरानी और अवलोकन के लिए।
+
+**रिटर्न:** मेट्रिक्स: सिंक्रोनस मेट्रिक्स क्लाइंट
+
+**उदाहरण:**
+
+```python
+metrics = api.metrics()
+prometheus_text = metrics.get()
+print(prometheus_text)
+```
+
+### `request(self, path, request)`
+
+एक निम्न-स्तरीय REST API अनुरोध करें।
+
+यह विधि मुख्य रूप से आंतरिक उपयोग के लिए है, लेकिन जब आवश्यक हो तो इसका उपयोग सीधे
+API एक्सेस के लिए किया जा सकता है।
+
+**तर्क:**
+
+`path`: API एंडपॉइंट पथ (बेस URL के सापेक्ष)
+`request`: अनुरोध पेलोड एक डिक्शनरी के रूप में
+
+**रिटर्न:** dict: प्रतिक्रिया ऑब्जेक्ट
+
+**अपवाद:**
+
+`ProtocolException`: यदि प्रतिक्रिया स्थिति 200 नहीं है या प्रतिक्रिया JSON नहीं है
+`ApplicationException`: यदि प्रतिक्रिया में कोई त्रुटि है
+
+**उदाहरण:**
+
+```python
+response = api.request("flow", {
+ "operation": "list-flows"
+})
+```
+
+### `socket(self)`
+
+स्ट्रीमिंग कार्यों के लिए एक सिंक्रोनस वेबसॉकेट क्लाइंट प्राप्त करें।
+
+वेबसॉकेट कनेक्शन वास्तविक समय प्रतिक्रियाओं के लिए स्ट्रीमिंग समर्थन प्रदान करते हैं
+एजेंटों, आरएजी प्रश्नों और टेक्स्ट पूर्णता से। यह विधि वेबसॉकेट प्रोटोकॉल के चारों ओर एक सिंक्रोनस रैपर लौटाती है।
+
+
+**रिटर्न:** SocketClient: सिंक्रोनस वेबसॉकेट क्लाइंट
+
+**उदाहरण:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+# Stream agent responses
+for chunk in flow.agent(
+ question="Explain quantum computing",
+ user="trustgraph",
+ streaming=True
+):
+ if hasattr(chunk, 'content'):
+ print(chunk.content, end='', flush=True)
+```
+
+
+--
+
+## `Flow`
+
+```python
+from trustgraph.api import Flow
+```
+
+ब्लूप्रिंट और फ्लो इंस्टेंस ऑपरेशन्स के लिए फ्लो मैनेजमेंट क्लाइंट।
+
+यह क्लास फ्लो ब्लूप्रिंट (टेम्प्लेट) और
+फ्लो इंस्टेंस (चल रहे फ्लो) को प्रबंधित करने के लिए विधियाँ प्रदान करती है। ब्लूप्रिंट फ्लो की संरचना और
+पैरामीटर को परिभाषित करते हैं, जबकि इंस्टेंस सक्रिय फ्लो का प्रतिनिधित्व करते हैं जो
+सेवाओं को निष्पादित कर सकते हैं।
+
+### विधियाँ
+
+### `__init__(self, api)`
+
+फ्लो क्लाइंट को इनिशियलाइज़ करें।
+
+**तर्क:**
+
+`api`: अनुरोध करने के लिए पैरेंट एपीआई इंस्टेंस।
+
+### `delete_blueprint(self, blueprint_name)`
+
+एक फ्लो ब्लूप्रिंट को हटाएं।
+
+**तर्क:**
+
+`blueprint_name`: हटाने के लिए ब्लूप्रिंट का नाम।
+
+**उदाहरण:**
+
+```python
+api.flow().delete_blueprint("old-blueprint")
+```
+
+### `get(self, id)`
+
+एक चल रहे फ्लो इंस्टेंस की परिभाषा प्राप्त करें।
+
+**तर्क:**
+
+`id`: फ्लो इंस्टेंस आईडी
+
+**वापसी:** डिक्ट: फ्लो इंस्टेंस परिभाषा
+
+**उदाहरण:**
+
+```python
+flow_def = api.flow().get("default")
+print(flow_def)
+```
+
+### `get_blueprint(self, blueprint_name)`
+
+नाम से एक फ्लो ब्लूप्रिंट परिभाषा प्राप्त करें।
+
+**तर्क:**
+
+`blueprint_name`: प्राप्त करने के लिए ब्लूप्रिंट का नाम
+
+**वापसी:** dict: ब्लूप्रिंट परिभाषा एक शब्दकोश के रूप में
+
+**उदाहरण:**
+
+```python
+blueprint = api.flow().get_blueprint("default")
+print(blueprint) # Blueprint configuration
+```
+
+### `id(self, id='default')`
+
+किसी विशिष्ट प्रवाह पर संचालन निष्पादित करने के लिए एक फ्लोइंस्टेंस प्राप्त करें।
+
+**तर्क:**
+
+`id`: प्रवाह पहचानकर्ता (डिफ़ॉल्ट: "default")
+
+**वापसी:** फ्लोइंस्टेंस: सेवा संचालन के लिए फ्लो इंस्टेंस
+
+**उदाहरण:**
+
+```python
+flow = api.flow().id("my-flow")
+response = flow.text_completion(
+ system="You are helpful",
+ prompt="Hello"
+)
+```
+
+### `list(self)`
+
+सभी सक्रिय फ्लो इंस्टेंस की सूची बनाएं।
+
+**रिटर्न:** list[str]: फ्लो इंस्टेंस आईडी की सूची
+
+**उदाहरण:**
+
+```python
+flows = api.flow().list()
+print(flows) # ['default', 'flow-1', 'flow-2', ...]
+```
+
+### `list_blueprints(self)`
+
+उपलब्ध सभी फ्लो ब्लूप्रिंट की सूची बनाएं।
+
+**रिटर्न:** list[str]: ब्लूप्रिंट नामों की सूची
+
+**उदाहरण:**
+
+```python
+blueprints = api.flow().list_blueprints()
+print(blueprints) # ['default', 'custom-flow', ...]
+```
+
+### `put_blueprint(self, blueprint_name, definition)`
+
+एक फ्लो ब्लूप्रिंट बनाएं या अपडेट करें।
+
+**तर्क:**
+
+`blueprint_name`: ब्लूप्रिंट के लिए नाम
+`definition`: ब्लूप्रिंट परिभाषा डिक्शनरी
+
+**उदाहरण:**
+
+```python
+definition = {
+ "services": ["text-completion", "graph-rag"],
+ "parameters": {"model": "gpt-4"}
+}
+api.flow().put_blueprint("my-blueprint", definition)
+```
+
+### `request(self, path=None, request=None)`
+
+एक फ्लो-स्कोपेड एपीआई अनुरोध करें।
+
+**तर्क:**
+
+`path`: फ्लो एंडपॉइंट्स के लिए वैकल्पिक पथ प्रत्यय
+`request`: अनुरोध पेलोड डिक्शनरी
+
+**रिटर्न:** डिक्ट: प्रतिक्रिया ऑब्जेक्ट
+
+**अपवाद:**
+
+`RuntimeError`: यदि अनुरोध पैरामीटर निर्दिष्ट नहीं है
+
+### `start(self, blueprint_name, id, description, parameters=None)`
+
+एक ब्लूप्रिंट से एक नया फ्लो इंस्टेंस शुरू करें।
+
+**तर्क:**
+
+`blueprint_name`: इंस्टेंट करने के लिए ब्लूप्रिंट का नाम
+`id`: फ्लो इंस्टेंस के लिए अद्वितीय पहचानकर्ता
+`description`: मानव-पठनीय विवरण
+`parameters`: वैकल्पिक पैरामीटर डिक्शनरी
+
+**उदाहरण:**
+
+```python
+api.flow().start(
+ blueprint_name="default",
+ id="my-flow",
+ description="My custom flow",
+ parameters={"model": "gpt-4"}
+)
+```
+
+### `stop(self, id)`
+
+एक चल रहे फ्लो इंस्टेंस को रोकें।
+
+**तर्क:**
+
+`id`: रोकने के लिए फ्लो इंस्टेंस आईडी
+
+**उदाहरण:**
+
+```python
+api.flow().stop("my-flow")
+```
+
+
+--
+
+## `FlowInstance`
+
+```python
+from trustgraph.api import FlowInstance
+```
+
+किसी विशिष्ट प्रवाह पर सेवाओं को निष्पादित करने के लिए फ्लो इंस्टेंस क्लाइंट।
+
+यह क्लास सभी ट्रस्टग्राफ सेवाओं तक पहुंच प्रदान करता है, जिनमें शामिल हैं:
+टेक्स्ट पूर्णता और एम्बेडिंग
+राज्य प्रबंधन के साथ एजेंट ऑपरेशन
+ग्राफ और दस्तावेज़ RAG क्वेरी
+नॉलेज ग्राफ ऑपरेशन (ट्रिपल्स, ऑब्जेक्ट)
+दस्तावेज़ लोडिंग और प्रोसेसिंग
+प्राकृतिक भाषा से GraphQL क्वेरी रूपांतरण
+संरचित डेटा विश्लेषण और स्कीमा डिटेक्शन
+MCP टूल निष्पादन
+प्रॉम्प्ट टेम्पलेटिंग
+
+सेवाओं को एक चल रहे फ्लो इंस्टेंस के माध्यम से एक्सेस किया जाता है जिसकी पहचान ID से होती है।
+
+### विधियाँ
+
+### `__init__(self, api, id)`
+
+फ्लोइंस्टेंस को इनिशियलाइज़ करें।
+
+**तर्क:**
+
+`api`: पैरेंट फ्लो क्लाइंट
+`id`: फ्लो इंस्टेंस पहचानकर्ता
+
+### `agent(self, question, user='trustgraph', state=None, group=None, history=None)`
+
+तर्क और टूल उपयोग क्षमताओं के साथ एक एजेंट ऑपरेशन निष्पादित करें।
+
+एजेंट बहु-चरणीय तर्क कर सकते हैं, टूल का उपयोग कर सकते हैं और बातचीत में संवादी
+स्थिति को बनाए रख सकते हैं। यह एक सिंक्रोनस, नॉन-स्ट्रीमिंग संस्करण है।
+
+**तर्क:**
+
+`question`: उपयोगकर्ता का प्रश्न या निर्देश
+`user`: उपयोगकर्ता पहचानकर्ता (डिफ़ॉल्ट: "trustgraph")
+`state`: राज्यपूर्ण वार्तालापों के लिए वैकल्पिक राज्य शब्दकोश
+`group`: बहु-उपयोगकर्ता संदर्भों के लिए वैकल्पिक समूह पहचानकर्ता
+`history`: संदेशों की सूची के रूप में वैकल्पिक वार्तालाप इतिहास
+
+**रिटर्न:** str: एजेंट का अंतिम उत्तर
+
+**उदाहरण:**
+
+```python
+flow = api.flow().id("default")
+
+# Simple question
+answer = flow.agent(
+ question="What is the capital of France?",
+ user="trustgraph"
+)
+
+# With conversation history
+history = [
+ {"role": "user", "content": "Hello"},
+ {"role": "assistant", "content": "Hi! How can I help?"}
+]
+answer = flow.agent(
+ question="Tell me about Paris",
+ user="trustgraph",
+ history=history
+)
+```
+
+### `detect_type(self, sample)`
+
+संरचित डेटा नमूने के डेटा प्रकार का पता लगाएं।
+
+**तर्क:**
+
+`sample`: विश्लेषण करने के लिए डेटा नमूना (स्ट्रिंग सामग्री)
+
+**रिटर्न:** detected_type, confidence और वैकल्पिक मेटाडेटा के साथ एक डिक्शनरी।
+
+### `diagnose_data(self, sample, schema_name=None, options=None)`
+
+संयुक्त डेटा निदान करें: प्रकार का पता लगाएं और विवरणिका उत्पन्न करें।
+
+**तर्क:**
+
+`sample`: विश्लेषण करने के लिए डेटा नमूना (स्ट्रिंग सामग्री)
+`schema_name`: विवरणिका पीढ़ी के लिए वैकल्पिक लक्ष्य स्कीमा नाम।
+`options`: वैकल्पिक पैरामीटर (जैसे, CSV के लिए विभाजक)।
+
+**वापसी:** `detected_type`, `confidence`, `descriptor` और `metadata` के साथ एक डिक्शनरी।
+
+### `document_embeddings_query(self, text, user, collection, limit=10)`
+
+सिमेंटिक समानता का उपयोग करके दस्तावेज़ के टुकड़ों को क्वेरी करें।
+
+वे दस्तावेज़ के टुकड़े खोजें जिनके सामग्री वेक्टर एम्बेडिंग का उपयोग करके इनपुट टेक्स्ट के सिमेंटिक रूप से समान हैं।
+
+
+**तर्क:**
+
+`text`: सिमेंटिक खोज के लिए क्वेरी टेक्स्ट।
+`user`: उपयोगकर्ता/कीस्पेस पहचानकर्ता।
+`collection`: संग्रह पहचानकर्ता।
+`limit`: अधिकतम परिणामों की संख्या (डिफ़ॉल्ट: 10)।
+
+**वापसी:** `dict`: क्वेरी परिणाम जिनमें `chunk_id` और `score` वाले टुकड़े शामिल हैं।
+
+**उदाहरण:**
+
+```python
+flow = api.flow().id("default")
+results = flow.document_embeddings_query(
+ text="machine learning algorithms",
+ user="trustgraph",
+ collection="research-papers",
+ limit=5
+)
+# results contains {"chunks": [{"chunk_id": "doc1/p0/c0", "score": 0.95}, ...]}
+```
+
+### `document_rag(self, query, user='trustgraph', collection='default', doc_limit=10)`
+
+दस्तावेज़-आधारित पुनर्प्राप्ति-संवर्धित पीढ़ी (RAG) क्वेरी निष्पादित करें।
+
+दस्तावेज़ RAG प्रासंगिक दस्तावेज़ अंशों को खोजने के लिए वेक्टर एम्बेडिंग का उपयोग करता है,
+फिर उन अंशों को संदर्भ के रूप में उपयोग करके एक LLM के साथ एक प्रतिक्रिया उत्पन्न करता है।
+
+**तर्क:**
+
+`query`: प्राकृतिक भाषा क्वेरी
+`user`: उपयोगकर्ता/कीस्पेस पहचानकर्ता (डिफ़ॉल्ट: "ट्रस्टग्राफ")
+`collection`: संग्रह पहचानकर्ता (डिफ़ॉल्ट: "डिफ़ॉल्ट")
+`doc_limit`: पुनर्प्राप्त किए जाने वाले अधिकतम दस्तावेज़ अंश (डिफ़ॉल्ट: 10)
+
+**रिटर्न:** स्ट्रिंग: दस्तावेज़ संदर्भ को शामिल करने वाली उत्पन्न प्रतिक्रिया
+
+**उदाहरण:**
+
+```python
+flow = api.flow().id("default")
+response = flow.document_rag(
+ query="Summarize the key findings",
+ user="trustgraph",
+ collection="research-papers",
+ doc_limit=5
+)
+print(response)
+```
+
+### `embeddings(self, texts)`
+
+एक या अधिक ग्रंथों के लिए वेक्टर एम्बेडिंग उत्पन्न करें।
+
+ग्रंथों को घने वेक्टर निरूपण में परिवर्तित करता है जो सिमेंटिक
+खोज और समानता तुलना के लिए उपयुक्त है।
+
+**तर्क:**
+
+`texts`: एम्बेड करने के लिए इनपुट ग्रंथों की सूची
+
+**रिटर्न:** list[list[list[float]]]: वेक्टर एम्बेडिंग, प्रत्येक इनपुट टेक्स्ट के लिए एक सेट
+
+**उदाहरण:**
+
+```python
+flow = api.flow().id("default")
+vectors = flow.embeddings(["quantum computing"])
+print(f"Embedding dimension: {len(vectors[0][0])}")
+```
+
+### `generate_descriptor(self, sample, data_type, schema_name, options=None)`
+
+संरचित डेटा के लिए एक विवरण उत्पन्न करें जो एक विशिष्ट स्कीमा से मेल खाता हो।
+
+**तर्क:**
+
+`sample`: विश्लेषण करने के लिए डेटा नमूना (स्ट्रिंग सामग्री)
+`data_type`: डेटा प्रकार (csv, json, xml)
+`schema_name`: विवरण पीढ़ी के लिए लक्षित स्कीमा नाम
+`options`: वैकल्पिक पैरामीटर (जैसे, CSV के लिए विभाजक)
+
+**रिटर्न:** विवरण और मेटाडेटा के साथ डिक्ट
+
+### `graph_embeddings_query(self, text, user, collection, limit=10)`
+
+सिमेंटिक समानता का उपयोग करके नॉलेज ग्राफ एंटिटीज को क्वेरी करें।
+
+नॉलेज ग्राफ में उन एंटिटीज को खोजें जिनके विवरण इनपुट टेक्स्ट के समान अर्थ वाले हों,
+वेक्टर एम्बेडिंग का उपयोग करके।
+
+**तर्क:**
+
+`text`: सिमेंटिक खोज के लिए क्वेरी टेक्स्ट
+`user`: उपयोगकर्ता/कीस्पेस पहचानकर्ता
+`collection`: संग्रह पहचानकर्ता
+`limit`: अधिकतम परिणामों की संख्या (डिफ़ॉल्ट: 10)
+
+**रिटर्न:** डिक्ट: समान एंटिटीज के साथ क्वेरी परिणाम
+
+**उदाहरण:**
+
+```python
+flow = api.flow().id("default")
+results = flow.graph_embeddings_query(
+ text="physicist who discovered radioactivity",
+ user="trustgraph",
+ collection="scientists",
+ limit=5
+)
+# results contains {"entities": [{"entity": {...}, "score": 0.95}, ...]}
+```
+
+### `graph_rag(self, query, user='trustgraph', collection='default', entity_limit=50, triple_limit=30, max_subgraph_size=150, max_path_length=2)`
+
+ग्राफ-आधारित रिट्रीवल-ऑगमेंटेड जनरेशन (RAG) क्वेरी निष्पादित करें।
+
+ग्राफ RAG प्रासंगिक संदर्भ खोजने के लिए नॉलेज ग्राफ संरचना का उपयोग करता है,
+एंटिटी संबंधों को पार करके, और फिर एक एलएलएम का उपयोग करके एक प्रतिक्रिया उत्पन्न करता है।
+
+**तर्क:**
+
+`query`: प्राकृतिक भाषा क्वेरी
+`user`: उपयोगकर्ता/कीस्पेस पहचानकर्ता (डिफ़ॉल्ट: "ट्रस्टग्राफ")
+`collection`: संग्रह पहचानकर्ता (डिफ़ॉल्ट: "डिफ़ॉल्ट")
+`entity_limit`: पुनः प्राप्त करने के लिए अधिकतम एंटिटीज (डिफ़ॉल्ट: 50)
+`triple_limit`: प्रति एंटिटी अधिकतम ट्रिपल (डिफ़ॉल्ट: 30)
+`max_subgraph_size`: सबग्राफ में अधिकतम कुल ट्रिपल (डिफ़ॉल्ट: 150)
+`max_path_length`: अधिकतम ट्रैवर्सल गहराई (डिफ़ॉल्ट: 2)
+
+**रिटर्न:** स्ट्र: ग्राफ संदर्भ को शामिल करने वाली उत्पन्न प्रतिक्रिया
+
+**उदाहरण:**
+
+```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)`
+
+प्रसंस्करण के लिए एक बाइनरी दस्तावेज़ लोड करें।
+
+एक दस्तावेज़ (पीडीएफ, डॉक्स, चित्र, आदि) को निष्कर्षण और
+प्रसंस्करण के लिए अपलोड करें, जो प्रवाह के दस्तावेज़ पाइपलाइन के माध्यम से होता है।
+
+**तर्क:**
+
+`document`: बाइट्स के रूप में दस्तावेज़ सामग्री
+`id`: वैकल्पिक दस्तावेज़ पहचानकर्ता (यदि None है तो स्वचालित रूप से उत्पन्न)
+`metadata`: वैकल्पिक मेटाडेटा (ट्रिपल्स की सूची या emit विधि वाला ऑब्जेक्ट)
+`user`: उपयोगकर्ता/कीस्पेस पहचानकर्ता (वैकल्पिक)
+`collection`: संग्रह पहचानकर्ता (वैकल्पिक)
+
+**रिटर्न:** dict: प्रसंस्करण प्रतिक्रिया
+
+**अपवाद:**
+
+`RuntimeError`: यदि आईडी के बिना मेटाडेटा प्रदान किया गया है
+
+**उदाहरण:**
+
+```python
+flow = api.flow().id("default")
+
+# Load a PDF document
+with open("research.pdf", "rb") as f:
+ result = flow.load_document(
+ document=f.read(),
+ id="research-001",
+ user="trustgraph",
+ collection="papers"
+ )
+```
+
+### `load_text(self, text, id=None, metadata=None, charset='utf-8', user=None, collection=None)`
+
+प्रसंस्करण के लिए पाठ सामग्री लोड करें।
+
+प्रवाह के पाठ पाइपलाइन के माध्यम से निष्कर्षण और प्रसंस्करण के लिए पाठ सामग्री अपलोड करें।
+पाठ पाइपलाइन।
+
+**तर्क:**
+
+`text`: बाइट्स के रूप में पाठ सामग्री
+`id`: वैकल्पिक दस्तावेज़ पहचानकर्ता (यदि None है तो स्वचालित रूप से उत्पन्न)
+`metadata`: वैकल्पिक मेटाडेटा (ट्रिपल की सूची या emit विधि वाला ऑब्जेक्ट)
+`charset`: वर्ण एन्कोडिंग (डिफ़ॉल्ट: "utf-8")
+`user`: उपयोगकर्ता/कीस्पेस पहचानकर्ता (वैकल्पिक)
+`collection`: संग्रह पहचानकर्ता (वैकल्पिक)
+
+**रिटर्न:** dict: प्रसंस्करण प्रतिक्रिया
+
+**अपवाद:**
+
+`RuntimeError`: यदि आईडी के बिना मेटाडेटा प्रदान किया गया है
+
+**उदाहरण:**
+
+```python
+flow = api.flow().id("default")
+
+# Load text content
+text_content = b"This is the document content..."
+result = flow.load_text(
+ text=text_content,
+ id="text-001",
+ charset="utf-8",
+ user="trustgraph",
+ collection="documents"
+)
+```
+
+### `mcp_tool(self, name, parameters={})`
+
+एक मॉडल कॉन्टेक्स्ट प्रोटोकॉल (MCP) टूल को निष्पादित करें।
+
+MCP टूल एजेंटों और वर्कफ़्लो के लिए विस्तारित कार्यक्षमता प्रदान करते हैं,
+जो बाहरी प्रणालियों और सेवाओं के साथ एकीकरण की अनुमति देते हैं।
+
+**तर्क:**
+
+`name`: टूल का नाम/पहचानकर्ता
+`parameters`: टूल पैरामीटर डिक्शनरी (डिफ़ॉल्ट: {})
+
+**रिटर्न:** स्ट्र या डिक्ट: टूल निष्पादन परिणाम
+
+**अपवाद:**
+
+`ProtocolException`: यदि प्रतिक्रिया प्रारूप अमान्य है
+
+**उदाहरण:**
+
+```python
+flow = api.flow().id("default")
+
+# Execute a tool
+result = flow.mcp_tool(
+ name="search-web",
+ parameters={"query": "latest AI news", "limit": 5}
+)
+```
+
+### `nlp_query(self, question, max_results=100)`
+
+एक प्राकृतिक भाषा प्रश्न को GraphQL क्वेरी में बदलें।
+
+**तर्क:**
+
+`question`: प्राकृतिक भाषा प्रश्न
+`max_results`: वापस करने के लिए अधिकतम परिणामों की संख्या (डिफ़ॉल्ट: 100)
+
+**वापसी:** graphql_query, variables, detected_schemas, confidence के साथ एक शब्दकोश।
+
+### `prompt(self, id, variables)`
+
+चर प्रतिस्थापन के साथ एक प्रॉम्प्ट टेम्पलेट निष्पादित करें।
+
+प्रॉम्प्ट टेम्प्लेट, गतिशील चर के साथ पुन: प्रयोज्य प्रॉम्प्ट पैटर्न की अनुमति देते हैं, जो सुसंगत प्रॉम्प्ट इंजीनियरिंग के लिए उपयोगी है।
+चर प्रतिस्थापन, सुसंगत प्रॉम्प्ट इंजीनियरिंग के लिए उपयोगी।
+
+**तर्क:**
+
+`id`: प्रॉम्प्ट टेम्प्लेट पहचानकर्ता
+`variables`: चर नाम से मान मैपिंग का शब्दकोश
+
+**रिटर्न:** स्ट्र या डिक्ट: प्रस्तुत प्रॉम्प्ट परिणाम (टेक्स्ट या संरचित ऑब्जेक्ट)
+
+**अपवाद:**
+
+`ProtocolException`: यदि प्रतिक्रिया प्रारूप अमान्य है
+
+**उदाहरण:**
+
+```python
+flow = api.flow().id("default")
+
+# Text template
+result = flow.prompt(
+ id="summarize-template",
+ variables={"topic": "quantum computing", "length": "brief"}
+)
+
+# Structured template
+result = flow.prompt(
+ id="extract-entities",
+ variables={"text": "Marie Curie won Nobel Prizes"}
+)
+```
+
+### `request(self, path, request)`
+
+इस फ्लो इंस्टेंस पर एक सेवा अनुरोध करें।
+
+**तर्क:**
+
+`path`: सेवा पथ (उदाहरण के लिए, "service/text-completion")
+`request`: अनुरोध पेलोड डिक्शनरी
+
+**रिटर्न:** डिक्ट: सेवा प्रतिक्रिया
+
+### `row_embeddings_query(self, text, schema_name, user='trustgraph', collection='default', index_name=None, limit=10)`
+
+अनुक्रमित फ़ील्ड पर सिमेंटिक समानता का उपयोग करके पंक्ति डेटा क्वेरी करें।
+
+उन पंक्तियों को खोजता है जिनके अनुक्रमित फ़ील्ड मान इनपुट टेक्स्ट के अर्थ के समान हों, वेक्टर एम्बेडिंग का उपयोग करके। यह संरचित डेटा पर अस्पष्ट/अर्थ संबंधी मिलान को सक्षम बनाता है।
+
+**तर्क:**
+
+
+
+`text`: सिमेंटिक खोज के लिए क्वेरी टेक्स्ट।
+`schema_name`: खोज करने के लिए स्कीमा का नाम।
+`user`: उपयोगकर्ता/कीस्पेस पहचानकर्ता (डिफ़ॉल्ट: "trustgraph")।
+`collection`: संग्रह पहचानकर्ता (डिफ़ॉल्ट: "default")।
+`index_name`: वैकल्पिक इंडेक्स नाम, जिससे खोज को विशिष्ट इंडेक्स तक सीमित किया जा सके।
+`limit`: अधिकतम परिणामों की संख्या (डिफ़ॉल्ट: 10)।
+
+**रिटर्न:** डिक्ट: क्वेरी परिणाम जिनमें index_name, index_value, text और score शामिल हैं।
+
+**उदाहरण:**
+
+```python
+flow = api.flow().id("default")
+
+# Search for customers by name similarity
+results = flow.row_embeddings_query(
+ text="John Smith",
+ schema_name="customers",
+ user="trustgraph",
+ collection="sales",
+ limit=5
+)
+
+# Filter to specific index
+results = flow.row_embeddings_query(
+ text="machine learning engineer",
+ schema_name="employees",
+ index_name="job_title",
+ limit=10
+)
+```
+
+### `rows_query(self, query, user='trustgraph', collection='default', variables=None, operation_name=None)`
+
+ज्ञान ग्राफ में संरचित पंक्तियों के विरुद्ध एक GraphQL क्वेरी निष्पादित करें।
+
+यह GraphQL सिंटैक्स का उपयोग करके संरचित डेटा पर क्वेरी करता है, जो जटिल क्वेरी की अनुमति देता है
+फ़िल्टरिंग, एग्रीगेशन और संबंध ट्रैवर्सल के साथ।
+
+**तर्क:**
+
+`query`: GraphQL क्वेरी स्ट्रिंग
+`user`: उपयोगकर्ता/कीस्पेस पहचानकर्ता (डिफ़ॉल्ट: "trustgraph")
+`collection`: संग्रह पहचानकर्ता (डिफ़ॉल्ट: "default")
+`variables`: वैकल्पिक क्वेरी चर शब्दकोश
+`operation_name`: मल्टी-ऑपरेशन दस्तावेज़ों के लिए वैकल्पिक ऑपरेशन नाम
+
+**रिटर्न:** dict: 'data', 'errors' और/या 'extensions' फ़ील्ड के साथ GraphQL प्रतिक्रिया
+
+**अपवाद:**
+
+`ProtocolException`: यदि सिस्टम-स्तरीय त्रुटि होती है
+
+**उदाहरण:**
+
+```python
+flow = api.flow().id("default")
+
+# Simple query
+query = '''
+{
+ scientists(limit: 10) {
+ name
+ field
+ discoveries
+ }
+}
+'''
+result = flow.rows_query(
+ query=query,
+ user="trustgraph",
+ collection="scientists"
+)
+
+# Query with variables
+query = '''
+query GetScientist($name: String!) {
+ scientists(name: $name) {
+ name
+ nobelPrizes
+ }
+}
+'''
+result = flow.rows_query(
+ query=query,
+ variables={"name": "Marie Curie"}
+)
+```
+
+### `schema_selection(self, sample, options=None)`
+
+प्रॉम्प्ट विश्लेषण का उपयोग करके डेटा नमूने के लिए मिलान करने वाले स्कीमा का चयन करें।
+
+**तर्क:**
+
+`sample`: विश्लेषण करने के लिए डेटा नमूना (स्ट्रिंग सामग्री)
+`options`: वैकल्पिक पैरामीटर
+
+**रिटर्न:** schema_matches सरणी और मेटाडेटा के साथ डिक्ट
+
+### `structured_query(self, question, user='trustgraph', collection='default')`
+
+संरचित डेटा के खिलाफ एक प्राकृतिक भाषा प्रश्न निष्पादित करें।
+एनएलपी क्वेरी रूपांतरण और GraphQL निष्पादन को जोड़ता है।
+
+**तर्क:**
+
+`question`: प्राकृतिक भाषा प्रश्न
+`user`: कैसेंड्रा कीस्पेस पहचानकर्ता (डिफ़ॉल्ट: "trustgraph")
+`collection`: डेटा संग्रह पहचानकर्ता (डिफ़ॉल्ट: "default")
+
+**रिटर्न:** डेटा और वैकल्पिक त्रुटियों के साथ डिक्ट
+
+### `text_completion(self, system, prompt)`
+
+फ़्लो के एलएलएम का उपयोग करके टेक्स्ट कंप्लीशन निष्पादित करें।
+
+**तर्क:**
+
+`system`: सिस्टम प्रॉम्प्ट जो सहायक के व्यवहार को परिभाषित करता है
+`prompt`: उपयोगकर्ता प्रॉम्प्ट/प्रश्न
+
+**रिटर्न:** स्ट्र: उत्पन्न प्रतिक्रिया पाठ
+
+**उदाहरण:**
+
+```python
+flow = api.flow().id("default")
+response = flow.text_completion(
+ system="You are a helpful assistant",
+ prompt="What is quantum computing?"
+)
+print(response)
+```
+
+### `triples_query(self, s=None, p=None, o=None, user=None, collection=None, limit=10000)`
+
+पैटर्न मिलान का उपयोग करके ज्ञान ग्राफ त्रिकों को क्वेरी करें।
+
+यह आरडीएफ त्रिकों की खोज करता है जो दिए गए विषय, विधेय और/या
+ऑब्जेक्ट पैटर्न से मेल खाते हैं। अनिश्चित पैरामीटर वाइल्डकार्ड के रूप में कार्य करते हैं।
+
+**तर्क:**
+
+`s`: विषय यूआरआई (वैकल्पिक, वाइल्डकार्ड के लिए None का उपयोग करें)
+`p`: विधेय यूआरआई (वैकल्पिक, वाइल्डकार्ड के लिए None का उपयोग करें)
+`o`: ऑब्जेक्ट यूआरआई या लिटरल (वैकल्पिक, वाइल्डकार्ड के लिए None का उपयोग करें)
+`user`: उपयोगकर्ता/कीस्पेस पहचानकर्ता (वैकल्पिक)
+`collection`: संग्रह पहचानकर्ता (वैकल्पिक)
+`limit`: वापस करने के लिए अधिकतम परिणाम (डिफ़ॉल्ट: 10000)
+
+**रिटर्न:** list[Triple]: मिलान करने वाले ट्रिपल ऑब्जेक्ट की सूची
+
+**उठाता है:**
+
+`RuntimeError`: यदि s या p यूआरआई नहीं है, या o यूआरआई/लिटरल नहीं है
+
+**उदाहरण:**
+
+```python
+from trustgraph.knowledge import Uri, Literal
+
+flow = api.flow().id("default")
+
+# Find all triples about a specific subject
+triples = flow.triples_query(
+ s=Uri("http://example.org/person/marie-curie"),
+ user="trustgraph",
+ collection="scientists"
+)
+
+# Find all instances of a specific relationship
+triples = flow.triples_query(
+ p=Uri("http://example.org/ontology/discovered"),
+ limit=100
+)
+```
+
+
+--
+
+## `AsyncFlow`
+
+```python
+from trustgraph.api import AsyncFlow
+```
+
+REST API का उपयोग करके एसिंक्रोनस फ्लो प्रबंधन क्लाइंट।
+
+यह एसिंक/अवेट पर आधारित फ्लो प्रबंधन संचालन प्रदान करता है, जिसमें लिस्टिंग,
+फ्लो शुरू करना, बंद करना और फ्लो क्लास परिभाषाओं का प्रबंधन शामिल है। यह एजेंटों, RAG और प्रश्नों जैसी फ्लो-स्कोप सेवाओं तक गैर-स्ट्रीमिंग
+REST एंडपॉइंट के माध्यम से पहुंच भी प्रदान करता है।
+
+
+ध्यान दें: स्ट्रीमिंग समर्थन के लिए, AsyncSocketClient का उपयोग करें।
+
+### विधियाँ
+
+### `__init__(self, url: str, timeout: int, token: str | None) -> None`
+
+एसिंक्रोनस फ्लो क्लाइंट को इनिशियलाइज़ करें।
+
+**तर्क:**
+
+`url`: ट्रस्टग्राफ API के लिए बेस URL
+`timeout`: सेकंड में अनुरोध टाइमआउट
+`token`: प्रमाणीकरण के लिए वैकल्पिक बेयरर टोकन
+
+### `aclose(self) -> None`
+
+एसिंक्रोनस क्लाइंट को बंद करें और संसाधनों को साफ़ करें।
+
+ध्यान दें: सफाई aiohttp सत्र संदर्भ प्रबंधकों द्वारा स्वचालित रूप से संभाली जाती है।
+यह विधि अन्य एसिंक्रोनस क्लाइंट के साथ स्थिरता के लिए प्रदान की गई है।
+
+### `delete_class(self, class_name: str)`
+
+एक फ्लो क्लास परिभाषा को हटाएं।
+
+यह सिस्टम से एक फ्लो क्लास ब्लूप्रिंट को हटा देता है। यह चल रहे फ्लो उदाहरणों को प्रभावित नहीं करता है।
+
+
+**तर्क:**
+
+`class_name`: हटाने के लिए फ्लो क्लास का नाम
+
+**उदाहरण:**
+
+```python
+async_flow = await api.async_flow()
+
+# Delete a flow class
+await async_flow.delete_class("old-flow-class")
+```
+
+### `get(self, id: str) -> Dict[str, Any]`
+
+प्रवाह परिभाषा प्राप्त करें।
+
+यह पूर्ण प्रवाह कॉन्फ़िगरेशन प्राप्त करता है, जिसमें इसका क्लास नाम,
+विवरण और पैरामीटर शामिल हैं।
+
+**तर्क:**
+
+`id`: प्रवाह पहचानकर्ता
+
+**वापसी:** dict: प्रवाह परिभाषा ऑब्जेक्ट
+
+**उदाहरण:**
+
+```python
+async_flow = await api.async_flow()
+
+# Get flow definition
+flow_def = await async_flow.get("default")
+print(f"Flow class: {flow_def.get('class-name')}")
+print(f"Description: {flow_def.get('description')}")
+```
+
+### `get_class(self, class_name: str) -> Dict[str, Any]`
+
+प्रवाह वर्ग परिभाषा प्राप्त करें।
+
+यह एक प्रवाह वर्ग के लिए ब्लूप्रिंट परिभाषा प्राप्त करता है, जिसमें इसका
+कॉन्फ़िगरेशन स्कीमा और सेवा बाइंडिंग शामिल हैं।
+
+**तर्क:**
+
+`class_name`: प्रवाह वर्ग का नाम
+
+**वापसी:** dict: प्रवाह वर्ग परिभाषा ऑब्जेक्ट
+
+**उदाहरण:**
+
+```python
+async_flow = await api.async_flow()
+
+# Get flow class definition
+class_def = await async_flow.get_class("default")
+print(f"Services: {class_def.get('services')}")
+```
+
+### `id(self, flow_id: str)`
+
+एक एसिंक्रोनस फ्लो इंस्टेंस क्लाइंट प्राप्त करें।
+
+यह एक विशिष्ट फ्लो की सेवाओं के साथ इंटरैक्ट करने के लिए एक क्लाइंट लौटाता है
+(एजेंट, आरएजी, प्रश्न, एम्बेडिंग, आदि)।
+
+**तर्क:**
+
+`flow_id`: प्रवाह पहचानकर्ता
+
+**वापसी:** AsyncFlowInstance: प्रवाह-विशिष्ट कार्यों के लिए क्लाइंट
+
+**उदाहरण:**
+
+```python
+async_flow = await api.async_flow()
+
+# Get flow instance
+flow = async_flow.id("default")
+
+# Use flow services
+result = await flow.graph_rag(
+ query="What is TrustGraph?",
+ user="trustgraph",
+ collection="default"
+)
+```
+
+### `list(self) -> List[str]`
+
+सभी फ्लो पहचानकर्ताओं की सूची बनाएं।
+
+सिस्टम में वर्तमान में तैनात सभी फ्लो के आईडी प्राप्त करता है।
+
+**रिटर्न:** list[str]: फ्लो पहचानकर्ताओं की सूची
+
+**उदाहरण:**
+
+```python
+async_flow = await api.async_flow()
+
+# List all flows
+flows = await async_flow.list()
+print(f"Available flows: {flows}")
+```
+
+### `list_classes(self) -> List[str]`
+
+सभी फ्लो क्लास नामों की सूची बनाएं।
+
+सिस्टम में उपलब्ध सभी फ्लो क्लास (ब्लूप्रिंट) के नामों को प्राप्त करता है।
+
+**रिटर्न:** list[str]: फ्लो क्लास नामों की सूची
+
+**उदाहरण:**
+
+```python
+async_flow = await api.async_flow()
+
+# List available flow classes
+classes = await async_flow.list_classes()
+print(f"Available flow classes: {classes}")
+```
+
+### `put_class(self, class_name: str, definition: Dict[str, Any])`
+
+एक फ्लो क्लास परिभाषा बनाएं या अपडेट करें।
+
+यह एक फ्लो क्लास ब्लूप्रिंट संग्रहीत करता है जिसका उपयोग फ्लो को इंस्टेंटिएट करने के लिए किया जा सकता है।
+
+**तर्क:**
+
+`class_name`: फ्लो क्लास का नाम
+`definition`: फ्लो क्लास परिभाषा ऑब्जेक्ट
+
+**उदाहरण:**
+
+```python
+async_flow = await api.async_flow()
+
+# Create a custom flow class
+class_def = {
+ "services": {
+ "agent": {"module": "agent", "config": {...}},
+ "graph-rag": {"module": "graph-rag", "config": {...}}
+ }
+}
+await async_flow.put_class("custom-flow", class_def)
+```
+
+### `request(self, path: str, request_data: Dict[str, Any]) -> Dict[str, Any]`
+
+गेटवे एपीआई को एसिंक्रोनस एचटीटीपी पोस्ट अनुरोध भेजें।
+
+ट्रस्टग्राफ एपीआई को प्रमाणित अनुरोध भेजने के लिए आंतरिक विधि।
+
+**तर्क:**
+
+`path`: एपीआई एंडपॉइंट पथ (बेस यूआरएल के सापेक्ष)
+`request_data`: अनुरोध पेलोड डिक्शनरी
+
+**रिटर्न:** डिक्ट: एपीआई से प्रतिक्रिया ऑब्जेक्ट
+
+**अपवाद:**
+
+`ProtocolException`: यदि HTTP स्थिति 200 नहीं है या प्रतिक्रिया मान्य JSON नहीं है
+`ApplicationException`: यदि API एक त्रुटि प्रतिक्रिया देता है
+
+### `start(self, class_name: str, id: str, description: str, parameters: Dict | None = None)`
+
+एक नया फ्लो इंस्टेंस शुरू करें।
+
+निर्दिष्ट मापदंडों के साथ एक फ्लो क्लास परिभाषा से एक फ्लो बनाता है और शुरू करता है।
+
+
+**तर्क:**
+
+`class_name`: फ्लो क्लास का नाम जिसे इंस्टेंट किया जाना है
+`id`: नए फ्लो इंस्टेंस के लिए पहचानकर्ता
+`description`: फ्लो का मानव-पठनीय विवरण
+`parameters`: फ्लो के लिए वैकल्पिक कॉन्फ़िगरेशन पैरामीटर
+
+**उदाहरण:**
+
+```python
+async_flow = await api.async_flow()
+
+# Start a flow from a class
+await async_flow.start(
+ class_name="default",
+ id="my-flow",
+ description="Custom flow instance",
+ parameters={"model": "claude-3-opus"}
+)
+```
+
+### `stop(self, id: str)`
+
+किसी चल रही प्रक्रिया को रोकें।
+
+यह एक प्रक्रिया के उदाहरण को रोकता है और उसे हटा देता है, जिससे उसके संसाधनों को मुक्त किया जा सकता है।
+
+**तर्क:**
+
+`id`: रोकने के लिए प्रक्रिया की पहचानकर्ता।
+
+**उदाहरण:**
+
+```python
+async_flow = await api.async_flow()
+
+# Stop a flow
+await async_flow.stop("my-flow")
+```
+
+
+--
+
+## `AsyncFlowInstance`
+
+```python
+from trustgraph.api import AsyncFlowInstance
+```
+
+एसिंक्रोनस फ्लो इंस्टेंस क्लाइंट।
+
+यह एजेंटों,
+आरएजी प्रश्नों, एम्बेडिंग और ग्राफ प्रश्नों सहित फ्लो-स्कोप सेवाओं तक एसिंक्रोनस/अवेट एक्सेस प्रदान करता है। सभी ऑपरेशन पूर्ण
+प्रतिक्रियाएं (गैर-स्ट्रीमिंग) लौटाते हैं।
+
+ध्यान दें: स्ट्रीमिंग समर्थन के लिए, AsyncSocketFlowInstance का उपयोग करें।
+
+### विधियाँ
+
+### `__init__(self, flow: trustgraph.api.async_flow.AsyncFlow, flow_id: str)`
+
+एसिंक्रोनस फ्लो इंस्टेंस को इनिशियलाइज़ करें।
+
+**तर्क:**
+
+`flow`: पैरेंट AsyncFlow क्लाइंट
+`flow_id`: फ्लो पहचानकर्ता
+
+### `agent(self, question: str, user: str, state: Dict | None = None, group: str | None = None, history: List | None = None, **kwargs: Any) -> Dict[str, Any]`
+
+एक एजेंट ऑपरेशन निष्पादित करें (गैर-स्ट्रीमिंग)।
+
+यह एक प्रश्न का उत्तर देने के लिए एक एजेंट चलाता है, जिसमें वैकल्पिक वार्तालाप स्थिति और
+इतिहास शामिल है। यह एजेंट द्वारा प्रसंस्करण पूरा करने के बाद पूरी प्रतिक्रिया लौटाता है।
+
+
+ध्यान दें: यह विधि स्ट्रीमिंग का समर्थन नहीं करती है। वास्तविक समय में एजेंट के विचारों और
+टिप्पणियों के लिए, AsyncSocketFlowInstance.agent() का उपयोग करें।
+
+**तर्क:**
+
+`question`: उपयोगकर्ता का प्रश्न या निर्देश
+`user`: उपयोगकर्ता पहचानकर्ता
+`state`: वार्तालाप संदर्भ के लिए वैकल्पिक स्थिति शब्दकोश
+`group`: सत्र प्रबंधन के लिए वैकल्पिक समूह पहचानकर्ता
+`history`: वैकल्पिक वार्तालाप इतिहास सूची
+`**kwargs`: अतिरिक्त सेवा-विशिष्ट पैरामीटर
+
+**रिटर्न:** dict: उत्तर और मेटाडेटा सहित एजेंट की पूरी प्रतिक्रिया
+
+**उदाहरण:**
+
+```python
+async_flow = await api.async_flow()
+flow = async_flow.id("default")
+
+# Execute agent
+result = await flow.agent(
+ question="What is the capital of France?",
+ user="trustgraph"
+)
+print(f"Answer: {result.get('response')}")
+```
+
+### `document_rag(self, query: str, user: str, collection: str, doc_limit: int = 10, **kwargs: Any) -> str`
+
+दस्तावेज़-आधारित आरएजी क्वेरी (गैर-स्ट्रीमिंग) निष्पादित करें।
+
+दस्तावेज़ एम्बेडिंग का उपयोग करके पुनर्प्राप्ति-संवर्धित पीढ़ी करता है।
+प्रासंगिक दस्तावेज़ अंशों को सिमेंटिक खोज के माध्यम से पुनर्प्राप्त करता है, फिर पुनर्प्राप्त दस्तावेज़ों के आधार पर
+एक प्रतिक्रिया उत्पन्न करता है। पूर्ण प्रतिक्रिया लौटाता है।
+
+ध्यान दें: यह विधि स्ट्रीमिंग का समर्थन नहीं करती है। स्ट्रीमिंग आरएजी प्रतिक्रियाओं के लिए,
+AsyncSocketFlowInstance.document_rag() का उपयोग करें।
+
+**तर्क:**
+
+`query`: उपयोगकर्ता क्वेरी टेक्स्ट
+`user`: उपयोगकर्ता पहचानकर्ता
+`collection`: दस्तावेज़ युक्त संग्रह पहचानकर्ता
+`doc_limit`: पुनर्प्राप्त किए जाने वाले दस्तावेज़ अंशों की अधिकतम संख्या (डिफ़ॉल्ट: 10)
+`**kwargs`: अतिरिक्त सेवा-विशिष्ट पैरामीटर
+
+**रिटर्न:** str: दस्तावेज़ डेटा के आधार पर उत्पन्न पूर्ण प्रतिक्रिया
+
+**उदाहरण:**
+
+```python
+async_flow = await api.async_flow()
+flow = async_flow.id("default")
+
+# Query documents
+response = await flow.document_rag(
+ query="What does the documentation say about authentication?",
+ user="trustgraph",
+ collection="docs",
+ doc_limit=5
+)
+print(response)
+```
+
+### `embeddings(self, texts: list, **kwargs: Any)`
+
+इनपुट टेक्स्ट के लिए एम्बेडिंग उत्पन्न करें।
+
+टेक्स्ट को संख्यात्मक वेक्टर प्रतिनिधित्व में परिवर्तित करता है, जो कि फ्लो के
+कॉन्फ़िगर किए गए एम्बेडिंग मॉडल का उपयोग करके किया जाता है। सिमेंटिक खोज और समानता
+तुलना के लिए उपयोगी।
+
+**तर्क:**
+
+`texts`: एम्बेड करने के लिए इनपुट टेक्स्ट की सूची।
+`**kwargs`: अतिरिक्त सेवा-विशिष्ट पैरामीटर।
+
+**रिटर्न:** dict: एम्बेडिंग वेक्टर युक्त प्रतिक्रिया।
+
+**उदाहरण:**
+
+```python
+async_flow = await api.async_flow()
+flow = async_flow.id("default")
+
+# Generate embeddings
+result = await flow.embeddings(texts=["Sample text to embed"])
+vectors = result.get("vectors")
+print(f"Embedding dimension: {len(vectors[0][0])}")
+```
+
+### `graph_embeddings_query(self, text: str, user: str, collection: str, limit: int = 10, **kwargs: Any)`
+
+सिमेंटिक इकाई खोज के लिए क्वेरी ग्राफ एम्बेडिंग।
+
+यह इनपुट टेक्स्ट के लिए सबसे प्रासंगिक इकाइयों को खोजने के लिए ग्राफ इकाई एम्बेडिंग पर सिमेंटिक खोज करता है। समानता के आधार पर रैंक की गई इकाइयों को लौटाता है।
+
+
+**तर्क:**
+
+`text`: सिमेंटिक खोज के लिए क्वेरी टेक्स्ट।
+`user`: उपयोगकर्ता पहचानकर्ता।
+`collection`: ग्राफ एम्बेडिंग युक्त संग्रह पहचानकर्ता।
+`limit`: लौटाने के लिए अधिकतम परिणामों की संख्या (डिफ़ॉल्ट: 10)।
+`**kwargs`: अतिरिक्त सेवा-विशिष्ट पैरामीटर।
+
+**रिटर्न:** dict: रैंक किए गए इकाई मिलानों के साथ प्रतिक्रिया, जिसमें समानता स्कोर शामिल हैं।
+
+**उदाहरण:**
+
+```python
+async_flow = await api.async_flow()
+flow = async_flow.id("default")
+
+# Find related entities
+results = await flow.graph_embeddings_query(
+ text="machine learning algorithms",
+ user="trustgraph",
+ collection="tech-kb",
+ limit=5
+)
+
+for entity in results.get("entities", []):
+ print(f"{entity['name']}: {entity['score']}")
+```
+
+### `graph_rag(self, query: str, user: str, collection: str, max_subgraph_size: int = 1000, max_subgraph_count: int = 5, max_entity_distance: int = 3, **kwargs: Any) -> str`
+
+ग्राफ-आधारित आरएजी क्वेरी (गैर-स्ट्रीमिंग) निष्पादित करें।
+
+यह ज्ञान ग्राफ डेटा का उपयोग करके पुनर्प्राप्ति-संवर्धित पीढ़ी करता है।
+यह प्रासंगिक संस्थाओं और उनके संबंधों की पहचान करता है, और फिर ग्राफ संरचना पर आधारित एक
+प्रतिक्रिया उत्पन्न करता है। यह पूर्ण प्रतिक्रिया लौटाता है।
+
+ध्यान दें: यह विधि स्ट्रीमिंग का समर्थन नहीं करती है। स्ट्रीमिंग आरएजी प्रतिक्रियाओं के लिए,
+AsyncSocketFlowInstance.graph_rag() का उपयोग करें।
+
+**तर्क:**
+
+`query`: उपयोगकर्ता क्वेरी टेक्स्ट
+`user`: उपयोगकर्ता पहचानकर्ता
+`collection`: ज्ञान ग्राफ युक्त संग्रह पहचानकर्ता
+`max_subgraph_size`: प्रति सबग्राफ अधिकतम त्रिकों की संख्या (डिफ़ॉल्ट: 1000)
+`max_subgraph_count`: पुनर्प्राप्त किए जाने वाले अधिकतम सबग्राफ की संख्या (डिफ़ॉल्ट: 5)
+`max_entity_distance`: इकाई विस्तार के लिए अधिकतम ग्राफ दूरी (डिफ़ॉल्ट: 3)
+`**kwargs`: अतिरिक्त सेवा-विशिष्ट पैरामीटर
+
+**रिटर्न:** स्ट्रिंग: ग्राफ डेटा पर आधारित पूर्ण उत्पन्न प्रतिक्रिया
+
+**उदाहरण:**
+
+```python
+async_flow = await api.async_flow()
+flow = async_flow.id("default")
+
+# Query knowledge graph
+response = await flow.graph_rag(
+ query="What are the relationships between these entities?",
+ user="trustgraph",
+ collection="medical-kb",
+ max_subgraph_count=3
+)
+print(response)
+```
+
+### `request(self, service: str, request_data: Dict[str, Any]) -> Dict[str, Any]`
+
+किसी फ्लो-स्कोप सेवा को अनुरोध भेजें।
+
+इस फ्लो इंस्टेंस के भीतर सेवाओं को कॉल करने के लिए आंतरिक विधि।
+
+**तर्क:**
+
+`service`: सेवा का नाम (उदाहरण के लिए, "एजेंट", "ग्राफ-आरएजी", "ट्रिपल्स")
+`request_data`: सेवा अनुरोध पेलोड
+
+**रिटर्न:** डिक्ट: सेवा प्रतिक्रिया ऑब्जेक्ट
+
+**अपवाद:**
+
+`ProtocolException`: यदि अनुरोध विफल हो जाता है या प्रतिक्रिया अमान्य है
+`ApplicationException`: यदि सेवा कोई त्रुटि लौटाती है
+
+### `row_embeddings_query(self, text: str, schema_name: str, user: str = 'trustgraph', collection: str = 'default', index_name: str | None = None, limit: int = 10, **kwargs: Any)`
+
+संरचित डेटा पर सिमेंटिक खोज के लिए क्वेरी रो एम्बेडिंग।
+
+पंक्तियों के रो इंडेक्स एम्बेडिंग पर सिमेंटिक खोज करता है ताकि उन पंक्तियों को खोजा जा सके जिनके
+अनुक्रमित फ़ील्ड मान इनपुट टेक्स्ट के सबसे समान हैं। संरचित डेटा पर अस्पष्ट/सिमेंटिक मिलान को सक्षम करता है।
+
+**तर्क:**
+
+
+`text`: सिमेंटिक खोज के लिए क्वेरी टेक्स्ट।
+`schema_name`: खोज के लिए स्कीमा नाम।
+`user`: उपयोगकर्ता पहचानकर्ता (डिफ़ॉल्ट: "trustgraph")।
+`collection`: संग्रह पहचानकर्ता (डिफ़ॉल्ट: "default")।
+`index_name`: वैकल्पिक इंडेक्स नाम जिसका उपयोग खोज को विशिष्ट इंडेक्स तक सीमित करने के लिए किया जा सकता है।
+`limit`: वापस करने के लिए अधिकतम परिणामों की संख्या (डिफ़ॉल्ट: 10)।
+`**kwargs`: अतिरिक्त सेवा-विशिष्ट पैरामीटर।
+
+**रिटर्न:** dict: मिलान वाले उत्तर जिसमें index_name, index_value, text और score शामिल हैं।
+
+**उदाहरण:**
+
+```python
+async_flow = await api.async_flow()
+flow = async_flow.id("default")
+
+# Search for customers by name similarity
+results = await flow.row_embeddings_query(
+ text="John Smith",
+ schema_name="customers",
+ user="trustgraph",
+ collection="sales",
+ limit=5
+)
+
+for match in results.get("matches", []):
+ print(f"{match['index_name']}: {match['index_value']} (score: {match['score']})")
+```
+
+### `rows_query(self, query: str, user: str, collection: str, variables: Dict | None = None, operation_name: str | None = None, **kwargs: Any)`
+
+संग्रहीत पंक्तियों पर एक GraphQL क्वेरी निष्पादित करें।
+
+यह संरचित डेटा पंक्तियों को GraphQL सिंटैक्स का उपयोग करके क्वेरी करता है। यह चर और नामित ऑपरेशनों के साथ जटिल
+क्वेरी का समर्थन करता है।
+
+**तर्क:**
+
+`query`: GraphQL क्वेरी स्ट्रिंग
+`user`: उपयोगकर्ता पहचानकर्ता
+`collection`: पंक्तियों वाले संग्रह पहचानकर्ता
+`variables`: वैकल्पिक GraphQL क्वेरी चर
+`operation_name`: मल्टी-ऑपरेशन क्वेरी के लिए वैकल्पिक ऑपरेशन नाम
+`**kwargs`: अतिरिक्त सेवा-विशिष्ट पैरामीटर
+
+**रिटर्न:** dict: डेटा और/या त्रुटियों के साथ GraphQL प्रतिक्रिया
+
+**उदाहरण:**
+
+```python
+async_flow = await api.async_flow()
+flow = async_flow.id("default")
+
+# Execute GraphQL query
+query = '''
+ query GetUsers($status: String!) {
+ users(status: $status) {
+ id
+ name
+ email
+ }
+ }
+'''
+
+result = await flow.rows_query(
+ query=query,
+ user="trustgraph",
+ collection="users",
+ variables={"status": "active"}
+)
+
+for user in result.get("data", {}).get("users", []):
+ print(f"{user['name']}: {user['email']}")
+```
+
+### `text_completion(self, system: str, prompt: str, **kwargs: Any) -> str`
+
+पाठ पूर्णता उत्पन्न करें (गैर-स्ट्रीमिंग)।
+
+यह विधि, एक सिस्टम प्रॉम्प्ट और उपयोगकर्ता प्रॉम्प्ट के आधार पर, एक एलएलएम से पाठ प्रतिक्रिया उत्पन्न करती है।
+यह पूर्ण प्रतिक्रिया पाठ लौटाता है।
+
+ध्यान दें: यह विधि स्ट्रीमिंग का समर्थन नहीं करती है। स्ट्रीमिंग पाठ पीढ़ी के लिए,
+AsyncSocketFlowInstance.text_completion() का उपयोग करें।
+
+**तर्क:**
+
+`system`: सिस्टम प्रॉम्प्ट जो एलएलएम के व्यवहार को परिभाषित करता है।
+`prompt`: उपयोगकर्ता प्रॉम्प्ट या प्रश्न।
+`**kwargs`: अतिरिक्त, सेवा-विशिष्ट पैरामीटर।
+
+**रिटर्न:** str: पूर्ण उत्पन्न पाठ प्रतिक्रिया।
+
+**उदाहरण:**
+
+```python
+async_flow = await api.async_flow()
+flow = async_flow.id("default")
+
+# Generate text
+response = await flow.text_completion(
+ system="You are a helpful assistant.",
+ prompt="Explain quantum computing in simple terms."
+)
+print(response)
+```
+
+### `triples_query(self, s=None, p=None, o=None, user=None, collection=None, limit=100, **kwargs: Any)`
+
+पैटर्न मिलान का उपयोग करके RDF त्रिगुणों की खोज करें।
+
+यह निर्दिष्ट विषय, विधेय और/या
+ऑब्जेक्ट पैटर्न से मेल खाने वाले त्रिगुणों की खोज करता है। पैटर्न किसी भी मान से मेल खाने के लिए 'None' का उपयोग करते हैं।
+
+**तर्क:**
+
+`s`: विषय पैटर्न (किसी भी मान से मेल खाने के लिए 'None')
+`p`: विधेय पैटर्न (किसी भी मान से मेल खाने के लिए 'None')
+`o`: ऑब्जेक्ट पैटर्न (किसी भी मान से मेल खाने के लिए 'None')
+`user`: उपयोगकर्ता पहचानकर्ता (सभी उपयोगकर्ताओं के लिए 'None')
+`collection`: संग्रह पहचानकर्ता (सभी संग्रहों के लिए 'None')
+`limit`: लौटाने के लिए त्रिगुणों की अधिकतम संख्या (डिफ़ॉल्ट: 100)
+`**kwargs`: अतिरिक्त सेवा-विशिष्ट पैरामीटर
+
+**वापसी:** dict: मिलान करने वाले त्रिगुणों वाली प्रतिक्रिया
+
+**उदाहरण:**
+
+```python
+async_flow = await api.async_flow()
+flow = async_flow.id("default")
+
+# Find all triples with a specific predicate
+results = await flow.triples_query(
+ p="knows",
+ user="trustgraph",
+ collection="social",
+ limit=50
+)
+
+for triple in results.get("triples", []):
+ print(f"{triple['s']} knows {triple['o']}")
+```
+
+
+--
+
+## `SocketClient`
+
+```python
+from trustgraph.api import SocketClient
+```
+
+स्ट्रीमिंग कार्यों के लिए सिंक्रोनस वेबसॉकेट क्लाइंट।
+
+यह वेबसॉकेट-आधारित ट्रस्टग्राफ सेवाओं के लिए एक सिंक्रोनस इंटरफ़ेस प्रदान करता है,
+जो उपयोग में आसानी के लिए सिंक्रोनस जनरेटर के साथ एसिंक्रोनस वेबसॉकेट लाइब्रेरी को रैप करता है।
+यह एजेंटों, आरएजी प्रश्नों और टेक्स्ट पूर्णता से स्ट्रीमिंग प्रतिक्रियाओं का समर्थन करता है।
+
+ध्यान दें: यह एसिंक्रोनस वेबसॉकेट ऑपरेशनों के चारों ओर एक सिंक्रोनस रैपर है।
+वास्तविक एसिंक्रोनस समर्थन के लिए, AsyncSocketClient का उपयोग करें।
+
+### विधियाँ
+
+### `__init__(self, url: str, timeout: int, token: str | None) -> None`
+
+सिंक्रोनस वेबसॉकेट क्लाइंट को इनिशियलाइज़ करें।
+
+**तर्क:**
+
+`url`: ट्रस्टग्राफ एपीआई के लिए बेस यूआरएल (HTTP/HTTPS को WS/WSS में परिवर्तित किया जाएगा)
+`timeout`: सेकंड में वेबसॉकेट टाइमआउट
+`token`: प्रमाणीकरण के लिए वैकल्पिक बेयरर टोकन
+
+### `close(self) -> None`
+
+वेबसॉकेट कनेक्शन बंद करें।
+
+ध्यान दें: एसिंक्रोनस कोड में संदर्भ प्रबंधकों द्वारा सफाई स्वचालित रूप से संभाली जाती है।
+
+### `flow(self, flow_id: str) -> 'SocketFlowInstance'`
+
+वेबसॉकेट स्ट्रीमिंग ऑपरेशनों के लिए एक फ्लो इंस्टेंस प्राप्त करें।
+
+**तर्क:**
+
+`flow_id`: फ्लो पहचानकर्ता
+
+**रिटर्न:** SocketFlowInstance: स्ट्रीमिंग विधियों वाला फ्लो इंस्टेंस
+
+**उदाहरण:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+# Stream agent responses
+for chunk in flow.agent(question="Hello", user="trustgraph", streaming=True):
+ print(chunk.content, end='', flush=True)
+```
+
+
+--
+
+## `SocketFlowInstance`
+
+```python
+from trustgraph.api import SocketFlowInstance
+```
+
+सिंक्रोनस वेबसॉकेट फ्लो इंस्टेंस, स्ट्रीमिंग कार्यों के लिए।
+
+यह REST फ्लोइंस्टेंस के समान इंटरफ़ेस प्रदान करता है, लेकिन वास्तविक समय प्रतिक्रियाओं के लिए वेबसॉकेट-आधारित
+स्ट्रीमिंग समर्थन के साथ। सभी विधियाँ एक वैकल्पिक
+`streaming` पैरामीटर का समर्थन करती हैं, जो वृद्धिशील परिणाम वितरण को सक्षम करता है।
+
+### विधियाँ
+
+### `__init__(self, client: trustgraph.api.socket_client.SocketClient, flow_id: str) -> None`
+
+सॉकेट फ्लो इंस्टेंस को आरंभ करें।
+
+**तर्क:**
+
+`client`: पैरेंट सॉकेटक्लाइंट
+`flow_id`: फ्लो पहचानकर्ता
+
+### `agent(self, question: str, user: str, state: Dict[str, Any] | None = None, group: str | None = None, history: List[Dict[str, Any]] | None = None, streaming: bool = False, **kwargs: Any) -> Dict[str, Any] | Iterator[trustgraph.api.types.StreamingChunk]`
+
+एक एजेंट ऑपरेशन को स्ट्रीमिंग समर्थन के साथ निष्पादित करें।
+
+एजेंट टूल का उपयोग करके बहु-चरणीय तर्क कर सकते हैं। यह विधि हमेशा
+स्ट्रीमिंग चंक्स (विचार, अवलोकन, उत्तर) लौटाती है, भले ही
+streaming=False हो, ताकि एजेंट की तर्क प्रक्रिया दिखाई जा सके।
+
+**तर्क:**
+
+`question`: उपयोगकर्ता का प्रश्न या निर्देश
+`user`: उपयोगकर्ता पहचानकर्ता
+`state`: स्टेटफुल वार्तालापों के लिए वैकल्पिक स्टेट डिक्शनरी
+`group`: मल्टी-यूजर संदर्भों के लिए वैकल्पिक समूह पहचानकर्ता
+`history`: वैकल्पिक रूप से संदेशों की सूची के रूप में वार्तालाप इतिहास
+`streaming`: स्ट्रीमिंग मोड सक्षम करें (डिफ़ॉल्ट: False)
+`**kwargs`: एजेंट सेवा को पास किए गए अतिरिक्त पैरामीटर
+
+**रिटर्न:** Iterator[StreamingChunk]: एजेंट के विचारों, अवलोकनों और उत्तरों का स्ट्रीम
+
+**उदाहरण:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+# Stream agent reasoning
+for chunk in flow.agent(
+ question="What is quantum computing?",
+ user="trustgraph",
+ streaming=True
+):
+ if isinstance(chunk, AgentThought):
+ print(f"[Thinking] {chunk.content}")
+ elif isinstance(chunk, AgentObservation):
+ print(f"[Observation] {chunk.content}")
+ elif isinstance(chunk, AgentAnswer):
+ print(f"[Answer] {chunk.content}")
+```
+
+### `agent_explain(self, question: str, user: str, collection: str, state: Dict[str, Any] | None = None, group: str | None = None, history: List[Dict[str, Any]] | None = None, **kwargs: Any) -> Iterator[trustgraph.api.types.StreamingChunk | trustgraph.api.types.ProvenanceEvent]`
+
+स्पष्टीकरण समर्थन के साथ एक एजेंट ऑपरेशन निष्पादित करें।
+
+यह सामग्री खंडों (AgentThought, AgentObservation, AgentAnswer)
+और प्रामाणिकता घटनाओं (ProvenanceEvent) दोनों को स्ट्रीम करता है। प्रामाणिकता घटनाओं में URI होते हैं
+जिन्हें विस्तृत जानकारी प्राप्त करने के लिए ExplainabilityClient का उपयोग करके प्राप्त किया जा सकता है
+एजेंट के तर्क प्रक्रिया के बारे में।
+
+एजेंट ट्रेस में शामिल हैं:
+सत्र: प्रारंभिक प्रश्न और सत्र मेटाडेटा
+पुनरावृत्तियाँ: प्रत्येक विचार/क्रिया/अवलोकन चक्र
+निष्कर्ष: अंतिम उत्तर
+
+**तर्क:**
+
+`question`: उपयोगकर्ता का प्रश्न या निर्देश
+`user`: उपयोगकर्ता पहचानकर्ता
+`collection`: प्रामाणिकता भंडारण के लिए संग्रह पहचानकर्ता
+`state`: राज्यपूर्ण वार्ता के लिए वैकल्पिक राज्य शब्दकोश
+`group`: बहु-उपयोगकर्ता संदर्भों के लिए वैकल्पिक समूह पहचानकर्ता
+`history`: संदेशों की सूची के रूप में वैकल्पिक वार्ता इतिहास
+`**kwargs`: एजेंट सेवा को अतिरिक्त पैरामीटर
+`Yields`:
+`Union[StreamingChunk, ProvenanceEvent]`: एजेंट खंड और प्रामाणिकता घटनाएँ
+
+**उदाहरण:**
+
+```python
+from trustgraph.api import Api, ExplainabilityClient, ProvenanceEvent
+from trustgraph.api import AgentThought, AgentObservation, AgentAnswer
+
+socket = api.socket()
+flow = socket.flow("default")
+explain_client = ExplainabilityClient(flow)
+
+provenance_ids = []
+for item in flow.agent_explain(
+ question="What is the capital of France?",
+ user="trustgraph",
+ collection="default"
+):
+ if isinstance(item, AgentThought):
+ print(f"[Thought] {item.content}")
+ elif isinstance(item, AgentObservation):
+ print(f"[Observation] {item.content}")
+ elif isinstance(item, AgentAnswer):
+ print(f"[Answer] {item.content}")
+ elif isinstance(item, ProvenanceEvent):
+ provenance_ids.append(item.explain_id)
+
+# Fetch session trace after completion
+if provenance_ids:
+ trace = explain_client.fetch_agent_trace(
+ provenance_ids[0], # Session URI is first
+ graph="urn:graph:retrieval",
+ user="trustgraph",
+ collection="default"
+ )
+```
+
+### `document_embeddings_query(self, text: str, user: str, collection: str, limit: int = 10, **kwargs: Any) -> Dict[str, Any]`
+
+सिमेंटिक समानता का उपयोग करके दस्तावेज़ के टुकड़ों को क्वेरी करें।
+
+**तर्क:**
+
+`text`: सिमेंटिक खोज के लिए क्वेरी टेक्स्ट
+`user`: उपयोगकर्ता/कीस्पेस पहचानकर्ता
+`collection`: संग्रह पहचानकर्ता
+`limit`: अधिकतम परिणामों की संख्या (डिफ़ॉल्ट: 10)
+`**kwargs`: सेवा को अतिरिक्त पैरामीटर
+
+**रिटर्न:** डिक्ट: मिलान करने वाले दस्तावेज़ टुकड़ों के chunk_ids के साथ क्वेरी परिणाम
+
+**उदाहरण:**
+
+```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]`
+
+दस्तावेज़-आधारित आरएजी क्वेरी को वैकल्पिक स्ट्रीमिंग के साथ निष्पादित करें।
+
+यह प्रासंगिक दस्तावेज़ टुकड़ों को खोजने के लिए वेक्टर एम्बेडिंग का उपयोग करता है, फिर एक एलएलएम का उपयोग करके
+प्रतिक्रिया उत्पन्न करता है। स्ट्रीमिंग मोड क्रमिक रूप से परिणाम प्रदान करता है।
+
+**तर्क:**
+
+`query`: प्राकृतिक भाषा क्वेरी
+`user`: उपयोगकर्ता/कीस्पेस पहचानकर्ता
+`collection`: संग्रह पहचानकर्ता
+`doc_limit`: पुनर्प्राप्त किए जाने वाले अधिकतम दस्तावेज़ टुकड़ों की संख्या (डिफ़ॉल्ट: 10)
+`streaming`: स्ट्रीमिंग मोड सक्षम करें (डिफ़ॉल्ट: False)
+`**kwargs`: सेवा को पारित अतिरिक्त पैरामीटर
+
+**रिटर्न:** Union[str, Iterator[str]]: पूर्ण प्रतिक्रिया या पाठ टुकड़ों की धारा
+
+**उदाहरण:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+# Streaming document RAG
+for chunk in flow.document_rag(
+ query="Summarize the key findings",
+ user="trustgraph",
+ collection="research-papers",
+ doc_limit=5,
+ streaming=True
+):
+ print(chunk, end='', flush=True)
+```
+
+### `document_rag_explain(self, query: str, user: str, collection: str, doc_limit: int = 10, **kwargs: Any) -> Iterator[trustgraph.api.types.RAGChunk | trustgraph.api.types.ProvenanceEvent]`
+
+दस्तावेज़-आधारित आरएजी क्वेरी को व्याख्यात्मकता समर्थन के साथ निष्पादित करें।
+
+यह सामग्री के टुकड़ों (RAGChunk) और उत्पत्ति घटनाओं (ProvenanceEvent) दोनों को स्ट्रीम करता है।
+उत्पत्ति घटनाओं में यूआरआई होते हैं जिन्हें ExplainabilityClient का उपयोग करके प्राप्त किया जा सकता है
+ताकि प्रतिक्रिया कैसे उत्पन्न हुई, इसके बारे में विस्तृत जानकारी प्राप्त की जा सके।
+
+दस्तावेज़ आरएजी ट्रेस में निम्नलिखित शामिल हैं:
+प्रश्न: उपयोगकर्ता की क्वेरी
+अन्वेषण: दस्तावेज़ भंडार से प्राप्त किए गए टुकड़े (chunk_count)
+संश्लेषण: उत्पन्न उत्तर
+
+**तर्क:**
+
+`query`: प्राकृतिक भाषा क्वेरी
+`user`: उपयोगकर्ता/कीस्पेस पहचानकर्ता
+`collection`: संग्रह पहचानकर्ता
+`doc_limit`: पुनर्प्राप्त करने के लिए अधिकतम दस्तावेज़ टुकड़े (डिफ़ॉल्ट: 10)
+`**kwargs`: सेवा को पारित अतिरिक्त पैरामीटर
+`Yields`:
+`Union[RAGChunk, ProvenanceEvent]`: सामग्री के टुकड़े और उत्पत्ति घटनाएं
+
+**उदाहरण:**
+
+```python
+from trustgraph.api import Api, ExplainabilityClient, RAGChunk, ProvenanceEvent
+
+socket = api.socket()
+flow = socket.flow("default")
+explain_client = ExplainabilityClient(flow)
+
+for item in flow.document_rag_explain(
+ query="Summarize the key findings",
+ user="trustgraph",
+ collection="research-papers",
+ doc_limit=5
+):
+ if isinstance(item, RAGChunk):
+ print(item.content, end='', flush=True)
+ elif isinstance(item, ProvenanceEvent):
+ # Fetch entity details
+ entity = explain_client.fetch_entity(
+ item.explain_id,
+ graph=item.explain_graph,
+ user="trustgraph",
+ collection="research-papers"
+ )
+ print(f"Event: {entity}", file=sys.stderr)
+```
+
+### `embeddings(self, texts: list, **kwargs: Any) -> Dict[str, Any]`
+
+एक या अधिक ग्रंथों के लिए वेक्टर एम्बेडिंग उत्पन्न करें।
+
+**तर्क:**
+
+`texts`: एम्बेड करने के लिए इनपुट ग्रंथों की सूची
+`**kwargs`: सेवा को पास किए गए अतिरिक्त पैरामीटर
+
+**रिटर्न:** dict: वैक्टर युक्त प्रतिक्रिया (प्रत्येक इनपुट टेक्स्ट के लिए एक सेट)
+
+**उदाहरण:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+result = flow.embeddings(["quantum computing"])
+vectors = result.get("vectors", [])
+```
+
+### `graph_embeddings_query(self, text: str, user: str, collection: str, limit: int = 10, **kwargs: Any) -> Dict[str, Any]`
+
+सिमेंटिक समानता का उपयोग करके ज्ञान ग्राफ संस्थाओं को क्वेरी करें।
+
+**तर्क:**
+
+`text`: सिमेंटिक खोज के लिए क्वेरी टेक्स्ट
+`user`: उपयोगकर्ता/कीस्पेस पहचानकर्ता
+`collection`: संग्रह पहचानकर्ता
+`limit`: अधिकतम परिणामों की संख्या (डिफ़ॉल्ट: 10)
+`**kwargs`: सेवा को अतिरिक्त पैरामीटर
+
+**रिटर्न:** dict: समान संस्थाओं के साथ क्वेरी परिणाम
+
+**उदाहरण:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+results = flow.graph_embeddings_query(
+ text="physicist who discovered radioactivity",
+ user="trustgraph",
+ collection="scientists",
+ limit=5
+)
+```
+
+### `graph_rag(self, query: str, user: str, collection: str, max_subgraph_size: int = 1000, max_subgraph_count: int = 5, max_entity_distance: int = 3, streaming: bool = False, **kwargs: Any) -> str | Iterator[str]`
+
+ग्राफ-आधारित आरएजी क्वेरी को वैकल्पिक स्ट्रीमिंग के साथ निष्पादित करें।
+
+यह प्रासंगिक संदर्भ खोजने के लिए ज्ञान ग्राफ संरचना का उपयोग करता है, और फिर
+एक एलएलएम का उपयोग करके प्रतिक्रिया उत्पन्न करता है। स्ट्रीमिंग मोड क्रमिक रूप से परिणाम प्रदान करता है।
+
+**तर्क:**
+
+`query`: प्राकृतिक भाषा क्वेरी
+`user`: उपयोगकर्ता/कीस्पेस पहचानकर्ता
+`collection`: संग्रह पहचानकर्ता
+`max_subgraph_size`: सबग्राफ में अधिकतम कुल त्रिगुण (डिफ़ॉल्ट: 1000)
+`max_subgraph_count`: उपग्राफ की अधिकतम संख्या (डिफ़ॉल्ट: 5)
+`max_entity_distance`: अधिकतम ट्रैवर्सल गहराई (डिफ़ॉल्ट: 3)
+`streaming`: स्ट्रीमिंग मोड सक्षम करें (डिफ़ॉल्ट: False)
+`**kwargs`: सेवा को अतिरिक्त पैरामीटर जो भेजे जाते हैं
+
+**रिटर्न:** यूनियन[स्ट्रिंग, इटरेटर[स्ट्रिंग]]: पूर्ण प्रतिक्रिया या टेक्स्ट चंक्स की स्ट्रीम
+
+**उदाहरण:**
+
+```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]`
+
+स्पष्टीकरण समर्थन के साथ ग्राफ-आधारित आरएजी क्वेरी निष्पादित करें।
+
+यह सामग्री खंडों (RAGChunk) और उत्पत्ति घटनाओं (ProvenanceEvent) दोनों को स्ट्रीम करता है।
+उत्पत्ति घटनाओं में यूआरआई होते हैं जिन्हें ExplainabilityClient का उपयोग करके प्राप्त किया जा सकता है
+ताकि प्रतिक्रिया कैसे उत्पन्न हुई, इसके बारे में विस्तृत जानकारी प्राप्त की जा सके।
+
+**तर्क:**
+
+`query`: प्राकृतिक भाषा क्वेरी
+`user`: उपयोगकर्ता/कीस्पेस पहचानकर्ता
+`collection`: संग्रह पहचानकर्ता
+`max_subgraph_size`: सबग्राफ में अधिकतम कुल त्रिगुण (डिफ़ॉल्ट: 1000)
+`max_subgraph_count`: उपग्राफों की अधिकतम संख्या (डिफ़ॉल्ट: 5)
+`max_entity_distance`: अधिकतम ट्रैवर्सल गहराई (डिफ़ॉल्ट: 3)
+`**kwargs`: सेवा को अतिरिक्त पैरामीटर
+`Yields`:
+`Union[RAGChunk, ProvenanceEvent]`: सामग्री खंड और उत्पत्ति घटनाएं
+
+**उदाहरण:**
+
+```python
+from trustgraph.api import Api, ExplainabilityClient, RAGChunk, ProvenanceEvent
+
+socket = api.socket()
+flow = socket.flow("default")
+explain_client = ExplainabilityClient(flow)
+
+provenance_ids = []
+response_text = ""
+
+for item in flow.graph_rag_explain(
+ query="Tell me about Marie Curie",
+ user="trustgraph",
+ collection="scientists"
+):
+ if isinstance(item, RAGChunk):
+ response_text += item.content
+ print(item.content, end='', flush=True)
+ elif isinstance(item, ProvenanceEvent):
+ provenance_ids.append(item.provenance_id)
+
+# Fetch explainability details
+for prov_id in provenance_ids:
+ entity = explain_client.fetch_entity(
+ prov_id,
+ graph="urn:graph:retrieval",
+ user="trustgraph",
+ collection="scientists"
+ )
+ print(f"Entity: {entity}")
+```
+
+### `mcp_tool(self, name: str, parameters: Dict[str, Any], **kwargs: Any) -> Dict[str, Any]`
+
+मॉडल कॉन्टेक्स्ट प्रोटोकॉल (MCP) टूल को निष्पादित करें।
+
+**तर्क:**
+
+`name`: टूल का नाम/पहचानकर्ता
+`parameters`: टूल पैरामीटर डिक्शनरी
+`**kwargs`: सेवा को पास किए गए अतिरिक्त पैरामीटर
+
+**रिटर्न:** डिक्ट: टूल निष्पादन परिणाम
+
+**उदाहरण:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+result = flow.mcp_tool(
+ name="search-web",
+ parameters={"query": "latest AI news", "limit": 5}
+)
+```
+
+### `prompt(self, id: str, variables: Dict[str, str], streaming: bool = False, **kwargs: Any) -> str | Iterator[str]`
+
+एक वैकल्पिक स्ट्रीमिंग विकल्प के साथ एक प्रॉम्प्ट टेम्पलेट निष्पादित करें।
+
+**तर्क:**
+
+`id`: प्रॉम्प्ट टेम्पलेट पहचानकर्ता
+`variables`: चर नाम से मान मैपिंग का शब्दकोश
+`streaming`: स्ट्रीमिंग मोड सक्षम करें (डिफ़ॉल्ट: False)
+`**kwargs`: सेवा को अतिरिक्त पैरामीटर
+
+**रिटर्न:** Union[str, Iterator[str]]: पूर्ण प्रतिक्रिया या टेक्स्ट चंक्स की धारा
+
+**उदाहरण:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+# Streaming prompt execution
+for chunk in flow.prompt(
+ id="summarize-template",
+ variables={"topic": "quantum computing", "length": "brief"},
+ streaming=True
+):
+ print(chunk, end='', flush=True)
+```
+
+### `row_embeddings_query(self, text: str, schema_name: str, user: str = 'trustgraph', collection: str = 'default', index_name: str | None = None, limit: int = 10, **kwargs: Any) -> Dict[str, Any]`
+
+अनुक्रमित फ़ील्ड पर सिमेंटिक समानता का उपयोग करके पंक्ति डेटा क्वेरी करें।
+
+उन पंक्तियों को खोजें जिनके अनुक्रमित फ़ील्ड मान इनपुट टेक्स्ट के सिमेंटिक रूप से समान हैं,
+वेक्टर एम्बेडिंग का उपयोग करके। यह संरचित डेटा पर अस्पष्ट/सिमेंटिक मिलान को सक्षम बनाता है।
+
+
+**तर्क:**
+
+`text`: सिमेंटिक खोज के लिए क्वेरी टेक्स्ट
+`schema_name`: खोज के लिए स्कीमा का नाम
+`user`: उपयोगकर्ता/कीस्पेस पहचानकर्ता (डिफ़ॉल्ट: "trustgraph")
+`collection`: संग्रह पहचानकर्ता (डिफ़ॉल्ट: "default")
+`index_name`: वैकल्पिक इंडेक्स नाम जिससे खोज को विशिष्ट इंडेक्स तक सीमित किया जा सके
+`limit`: अधिकतम परिणामों की संख्या (डिफ़ॉल्ट: 10)
+`**kwargs`: सेवा को अतिरिक्त पैरामीटर जो पास किए जाते हैं
+
+**रिटर्न:** dict: मिलान वाले क्वेरी परिणाम जिनमें index_name, index_value, text और score शामिल हैं
+
+**उदाहरण:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+# Search for customers by name similarity
+results = flow.row_embeddings_query(
+ text="John Smith",
+ schema_name="customers",
+ user="trustgraph",
+ collection="sales",
+ limit=5
+)
+
+# Filter to specific index
+results = flow.row_embeddings_query(
+ text="machine learning engineer",
+ schema_name="employees",
+ index_name="job_title",
+ limit=10
+)
+```
+
+### `rows_query(self, query: str, user: str, collection: str, variables: Dict[str, Any] | None = None, operation_name: str | None = None, **kwargs: Any) -> Dict[str, Any]`
+
+संरचित पंक्तियों के विरुद्ध एक GraphQL क्वेरी निष्पादित करें।
+
+**तर्क:**
+
+`query`: GraphQL क्वेरी स्ट्रिंग
+`user`: उपयोगकर्ता/कीस्पेस पहचानकर्ता
+`collection`: संग्रह पहचानकर्ता
+`variables`: वैकल्पिक क्वेरी चर शब्दकोश
+`operation_name`: मल्टी-ऑपरेशन दस्तावेज़ों के लिए वैकल्पिक ऑपरेशन नाम
+`**kwargs`: सेवा को पारित अतिरिक्त पैरामीटर
+
+**रिटर्न:** dict: डेटा, त्रुटियों और/या एक्सटेंशन के साथ GraphQL प्रतिक्रिया
+
+**उदाहरण:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+query = '''
+{
+ scientists(limit: 10) {
+ name
+ field
+ discoveries
+ }
+}
+'''
+result = flow.rows_query(
+ query=query,
+ user="trustgraph",
+ collection="scientists"
+)
+```
+
+### `text_completion(self, system: str, prompt: str, streaming: bool = False, **kwargs) -> str | Iterator[str]`
+
+वैकल्पिक स्ट्रीमिंग के साथ टेक्स्ट पूर्णता निष्पादित करें।
+
+**तर्क:**
+
+`system`: सिस्टम प्रॉम्प्ट जो सहायक के व्यवहार को परिभाषित करता है।
+`prompt`: उपयोगकर्ता प्रॉम्प्ट/प्रश्न।
+`streaming`: स्ट्रीमिंग मोड सक्षम करें (डिफ़ॉल्ट: False)।
+`**kwargs`: सेवा को पारित अतिरिक्त पैरामीटर।
+
+**रिटर्न:** Union[str, Iterator[str]]: पूर्ण प्रतिक्रिया या टेक्स्ट टुकड़ों की धारा।
+
+**उदाहरण:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+# Non-streaming
+response = flow.text_completion(
+ system="You are helpful",
+ prompt="Explain quantum computing",
+ streaming=False
+)
+print(response)
+
+# Streaming
+for chunk in flow.text_completion(
+ system="You are helpful",
+ prompt="Explain quantum computing",
+ streaming=True
+):
+ print(chunk, end='', flush=True)
+```
+
+### `triples_query(self, s: str | Dict[str, Any] | None = None, p: str | Dict[str, Any] | None = None, o: str | Dict[str, Any] | None = None, g: str | None = None, user: str | None = None, collection: str | None = None, limit: int = 100, **kwargs: Any) -> List[Dict[str, Any]]`
+
+पैटर्न मिलान का उपयोग करके ज्ञान ग्राफ त्रिकों को क्वेरी करें।
+
+**तर्क:**
+
+`s`: विषय फ़िल्टर - URI स्ट्रिंग, टर्म डिक्शनरी, या वाइल्डकार्ड के लिए None
+`p`: विधेय फ़िल्टर - URI स्ट्रिंग, टर्म डिक्शनरी, या वाइल्डकार्ड के लिए None
+`o`: वस्तु फ़िल्टर - URI/लिटरल स्ट्रिंग, टर्म डिक्शनरी, या वाइल्डकार्ड के लिए None
+`g`: नामित ग्राफ फ़िल्टर - URI स्ट्रिंग या सभी ग्राफों के लिए None
+`user`: उपयोगकर्ता/कीस्पेस पहचानकर्ता (वैकल्पिक)
+`collection`: संग्रह पहचानकर्ता (वैकल्पिक)
+`limit`: वापस करने के लिए अधिकतम परिणाम (डिफ़ॉल्ट: 100)
+`**kwargs`: सेवा को अतिरिक्त पैरामीटर
+
+**वापसी:** List[Dict]: वायर प्रारूप में मिलान किए गए त्रिकों की सूची
+
+**उदाहरण:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+# Find all triples about a specific subject
+triples = flow.triples_query(
+ s="http://example.org/person/marie-curie",
+ user="trustgraph",
+ collection="scientists"
+)
+
+# Query with named graph filter
+triples = flow.triples_query(
+ s="urn:trustgraph:session:abc123",
+ g="urn:graph:retrieval",
+ user="trustgraph",
+ collection="default"
+)
+```
+
+### `triples_query_stream(self, s: str | Dict[str, Any] | None = None, p: str | Dict[str, Any] | None = None, o: str | Dict[str, Any] | None = None, g: str | None = None, user: str | None = None, collection: str | None = None, limit: int = 100, batch_size: int = 20, **kwargs: Any) -> Iterator[List[Dict[str, Any]]]`
+
+स्ट्रीमिंग बैचों के साथ नॉलेज ग्राफ ट्रिपल क्वेरी करें।
+
+जैसे ही ट्रिपल आते हैं, वे बैचों में उपलब्ध होते हैं, जिससे पहले परिणाम प्राप्त करने का समय कम होता है
+और बड़े परिणाम सेट के लिए मेमोरी ओवरहेड कम होता है।
+
+**तर्क:**
+
+`s`: विषय फ़िल्टर - URI स्ट्रिंग, टर्म डिक्ट, या वाइल्डकार्ड के लिए None
+`p`: विधेय फ़िल्टर - URI स्ट्रिंग, टर्म डिक्ट, या वाइल्डकार्ड के लिए None
+`o`: वस्तु फ़िल्टर - URI/लिटरल स्ट्रिंग, टर्म डिक्ट, या वाइल्डकार्ड के लिए None
+`g`: नामित ग्राफ फ़िल्टर - URI स्ट्रिंग या सभी ग्राफ के लिए None
+`user`: उपयोगकर्ता/कीस्पेस पहचानकर्ता (वैकल्पिक)
+`collection`: संग्रह पहचानकर्ता (वैकल्पिक)
+`limit`: वापस करने के लिए अधिकतम परिणाम (डिफ़ॉल्ट: 100)
+`batch_size`: प्रति बैच ट्रिपल (डिफ़ॉल्ट: 20)
+`**kwargs`: सेवा को पास किए गए अतिरिक्त पैरामीटर
+`Yields`:
+`List[Dict]`: वायर प्रारूप में ट्रिपल के बैच
+
+**उदाहरण:**
+
+```python
+socket = api.socket()
+flow = socket.flow("default")
+
+for batch in flow.triples_query_stream(
+ user="trustgraph",
+ collection="default"
+):
+ for triple in batch:
+ print(triple["s"], triple["p"], triple["o"])
+```
+
+
+--
+
+## `AsyncSocketClient`
+
+```python
+from trustgraph.api import AsyncSocketClient
+```
+
+एसिंक्रोनस वेबसॉकेट क्लाइंट
+
+### विधियाँ
+
+### `__init__(self, url: str, timeout: int, token: str | None)`
+
+स्वयं को आरंभ करें। सटीक हस्ताक्षर के लिए help(type(self)) देखें।
+
+### `aclose(self)`
+
+वेबसॉकेट कनेक्शन बंद करें
+
+### `flow(self, flow_id: str)`
+
+वेबसॉकेट संचालन के लिए एसिंक्रोनस फ्लो इंस्टेंस प्राप्त करें
+
+
+--
+
+## `AsyncSocketFlowInstance`
+
+```python
+from trustgraph.api import AsyncSocketFlowInstance
+```
+
+एसिंक्रोनस वेबसॉकेट फ्लो इंस्टेंस
+
+### विधियाँ
+
+### `__init__(self, client: trustgraph.api.async_socket_client.AsyncSocketClient, flow_id: str)`
+
+स्वयं को आरंभ करें। सटीक हस्ताक्षर के लिए help(type(self)) देखें।
+
+### `agent(self, question: str, user: str, state: Dict[str, Any] | None = None, group: str | None = None, history: list | None = None, streaming: bool = False, **kwargs) -> Dict[str, Any] | AsyncIterator`
+
+वैकल्पिक स्ट्रीमिंग के साथ एजेंट
+
+### `document_rag(self, query: str, user: str, collection: str, doc_limit: int = 10, streaming: bool = False, **kwargs)`
+
+वैकल्पिक स्ट्रीमिंग के साथ RAG दस्तावेज़
+
+### `embeddings(self, texts: list, **kwargs)`
+
+टेक्स्ट एम्बेडिंग उत्पन्न करें
+
+### `graph_embeddings_query(self, text: str, user: str, collection: str, limit: int = 10, **kwargs)`
+
+सिमेंटिक खोज के लिए ग्राफ एम्बेडिंग क्वेरी करें
+
+### `graph_rag(self, query: str, user: str, collection: str, max_subgraph_size: int = 1000, max_subgraph_count: int = 5, max_entity_distance: int = 3, streaming: bool = False, **kwargs)`
+
+वैकल्पिक स्ट्रीमिंग के साथ ग्राफ RAG
+
+### `mcp_tool(self, name: str, parameters: Dict[str, Any], **kwargs)`
+
+MCP टूल निष्पादित करें
+
+### `prompt(self, id: str, variables: Dict[str, str], streaming: bool = False, **kwargs)`
+
+वैकल्पिक स्ट्रीमिंग के साथ प्रॉम्प्ट निष्पादित करें
+
+### `row_embeddings_query(self, text: str, schema_name: str, user: str = 'trustgraph', collection: str = 'default', index_name: str | None = None, limit: int = 10, **kwargs)`
+
+संरचित डेटा पर सिमेंटिक खोज के लिए पंक्ति एम्बेडिंग क्वेरी करें
+
+### `rows_query(self, query: str, user: str, collection: str, variables: Dict | None = None, operation_name: str | None = None, **kwargs)`
+
+संरचित पंक्तियों के खिलाफ GraphQL क्वेरी
+
+### `text_completion(self, system: str, prompt: str, streaming: bool = False, **kwargs)`
+
+वैकल्पिक स्ट्रीमिंग के साथ टेक्स्ट पूर्णता
+
+### `triples_query(self, s=None, p=None, o=None, user=None, collection=None, limit=100, **kwargs)`
+
+ट्रिपल पैटर्न क्वेरी
+
+
+--
+
+### `build_term(value: Any, term_type: str | None = None, datatype: str | None = None, language: str | None = None) -> Dict[str, Any] | None`
+
+एक मान से वायर-फॉर्मेट टर्म डिक्ट बनाएं।
+
+ऑटो-डिटेक्शन नियम (जब term_type None है):
+ पहले से ही 't' कुंजी वाला डिक्ट -> यथावत लौटाएं (पहले से ही एक टर्म)
+ http://, https://, urn: से शुरू होता है -> IRI
+ <> (जैसे, ) में संलग्न -> IRI (कोण कोष्ठक हटा दिए गए)
+ कुछ भी और -> शाब्दिक
+
+**तर्क:**
+
+`value`: टर्म मान (स्ट्रिंग, डिक्ट या None)
+`term_type`: 'iri', 'literal' या ऑटो-डिटेक्शन के लिए None में से एक
+`datatype`: शाब्दिक ऑब्जेक्ट के लिए डेटाटाइप (जैसे, xsd:integer)
+`language`: शाब्दिक ऑब्जेक्ट के लिए भाषा टैग (जैसे, en)
+
+**रिटर्न:** डिक्ट: वायर-फॉर्मेट टर्म डिक्ट, या यदि मान None है तो None
+
+
+--
+
+## `BulkClient`
+
+```python
+from trustgraph.api import BulkClient
+```
+
+आयात/निर्यात के लिए सिंक्रोनस बल्क ऑपरेशंस क्लाइंट।
+
+बड़े डेटासेट के लिए कुशल बल्क डेटा ट्रांसफर वेबसॉकेट के माध्यम से प्रदान करता है।
+उपयोग में आसानी के लिए सिंक्रोनस जनरेटर के साथ एसिंक्रोनस वेबसॉकेट ऑपरेशंस को रैप करता है।
+
+ध्यान दें: वास्तविक एसिंक्रोनस समर्थन के लिए, AsyncBulkClient का उपयोग करें।
+
+### विधियाँ
+
+### `__init__(self, url: str, timeout: int, token: str | None) -> None`
+
+सिंक्रोनस बल्क क्लाइंट को इनिशियलाइज़ करें।
+
+**तर्क:**
+
+`url`: ट्रस्टग्राफ एपीआई के लिए बेस यूआरएल (HTTP/HTTPS को WS/WSS में परिवर्तित किया जाएगा)
+`timeout`: सेकंड में वेबसॉकेट टाइमआउट
+`token`: प्रमाणीकरण के लिए वैकल्पिक बेयरर टोकन
+
+### `close(self) -> None`
+
+कनेक्शन बंद करें
+
+### `export_document_embeddings(self, flow: str, **kwargs: Any) -> Iterator[Dict[str, Any]]`
+
+एक फ्लो से बल्क एक्सपोर्ट डॉक्यूमेंट एम्बेडिंग।
+
+वेबसॉकेट स्ट्रीमिंग के माध्यम से सभी डॉक्यूमेंट चंक एम्बेडिंग को कुशलतापूर्वक डाउनलोड करता है।
+
+**तर्क:**
+
+`flow`: फ्लो आइडेंटिफायर
+`**kwargs`: अतिरिक्त पैरामीटर (भविष्य के उपयोग के लिए आरक्षित)
+
+**रिटर्न:** Iterator[Dict[str, Any]]: एम्बेडिंग डिक्शनरी का स्ट्रीम
+
+**उदाहरण:**
+
+```python
+bulk = api.bulk()
+
+# Export and process document embeddings
+for embedding in bulk.export_document_embeddings(flow="default"):
+ chunk_id = embedding.get("chunk_id")
+ vector = embedding.get("embedding")
+ print(f"{chunk_id}: {len(vector)} dimensions")
+```
+
+### `export_entity_contexts(self, flow: str, **kwargs: Any) -> Iterator[Dict[str, Any]]`
+
+किसी फ्लो से बल्क एक्सपोर्ट एंटिटी कॉन्टेक्स्ट।
+
+वेबसॉकेट स्ट्रीमिंग के माध्यम से सभी एंटिटी कॉन्टेक्स्ट जानकारी को कुशलतापूर्वक डाउनलोड करता है।
+
+**तर्क:**
+
+`flow`: फ्लो आइडेंटिफायर
+`**kwargs`: अतिरिक्त पैरामीटर (भविष्य के उपयोग के लिए आरक्षित)
+
+**रिटर्न:** Iterator[Dict[str, Any]]: कॉन्टेक्स्ट डिक्शनरी का स्ट्रीम
+
+**उदाहरण:**
+
+```python
+bulk = api.bulk()
+
+# Export and process entity contexts
+for context in bulk.export_entity_contexts(flow="default"):
+ entity = context.get("entity")
+ text = context.get("context")
+ print(f"{entity}: {text[:100]}...")
+```
+
+### `export_graph_embeddings(self, flow: str, **kwargs: Any) -> Iterator[Dict[str, Any]]`
+
+एक फ्लो से ग्राफ एम्बेडिंग का बल्क एक्सपोर्ट।
+
+वेबसॉकेट स्ट्रीमिंग के माध्यम से सभी ग्राफ एंटिटी एम्बेडिंग को कुशलतापूर्वक डाउनलोड करता है।
+
+**तर्क:**
+
+`flow`: फ्लो आइडेंटिफायर
+`**kwargs`: अतिरिक्त पैरामीटर (भविष्य के उपयोग के लिए आरक्षित)
+
+**रिटर्न:** Iterator[Dict[str, Any]]: एम्बेडिंग डिक्शनरी का स्ट्रीम
+
+**उदाहरण:**
+
+```python
+bulk = api.bulk()
+
+# Export and process embeddings
+for embedding in bulk.export_graph_embeddings(flow="default"):
+ entity = embedding.get("entity")
+ vector = embedding.get("embedding")
+ print(f"{entity}: {len(vector)} dimensions")
+```
+
+### `export_triples(self, flow: str, **kwargs: Any) -> Iterator[trustgraph.api.types.Triple]`
+
+एक प्रवाह से RDF त्रिगुणों का बल्क निर्यात करें।
+
+सभी त्रिगुणों को कुशलतापूर्वक WebSocket स्ट्रीमिंग के माध्यम से डाउनलोड करता है।
+
+**तर्क:**
+
+`flow`: प्रवाह पहचानकर्ता
+`**kwargs`: अतिरिक्त पैरामीटर (भविष्य के उपयोग के लिए आरक्षित)
+
+**रिटर्न:** Iterator[Triple]: ट्रिपल ऑब्जेक्ट्स की स्ट्रीम
+
+**उदाहरण:**
+
+```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`
+
+एक फ्लो में दस्तावेज़ एम्बेडिंग को बल्क में इम्पोर्ट करें।
+
+दस्तावेज़ RAG प्रश्नों में उपयोग के लिए, वेबसॉकेट स्ट्रीमिंग के माध्यम से कुशलतापूर्वक दस्तावेज़ चंक एम्बेडिंग अपलोड करता है।
+
+
+**तर्क:**
+
+`flow`: फ्लो पहचानकर्ता
+`embeddings`: एम्बेडिंग डिक्शनरी उत्पन्न करने वाला इटरेटर
+`**kwargs`: अतिरिक्त पैरामीटर (भविष्य के उपयोग के लिए आरक्षित)
+
+**उदाहरण:**
+
+```python
+bulk = api.bulk()
+
+# Generate document embeddings to import
+def doc_embedding_generator():
+ yield {"chunk_id": "doc1/p0/c0", "embedding": [0.1, 0.2, ...]}
+ yield {"chunk_id": "doc1/p0/c1", "embedding": [0.3, 0.4, ...]}
+ # ... more embeddings
+
+bulk.import_document_embeddings(
+ flow="default",
+ embeddings=doc_embedding_generator()
+)
+```
+
+### `import_entity_contexts(self, flow: str, contexts: Iterator[Dict[str, Any]], metadata: Dict[str, Any] | None = None, batch_size: int = 100, **kwargs: Any) -> None`
+
+एक फ्लो में एंटिटी कॉन्टेक्स्ट को बल्क में इम्पोर्ट करें।
+
+वेबसॉकेट स्ट्रीमिंग के माध्यम से एंटिटी कॉन्टेक्स्ट जानकारी को कुशलतापूर्वक अपलोड करता है।
+एंटिटी कॉन्टेक्स्ट, ग्राफ एंटिटीज के बारे में अतिरिक्त पाठ्य संदर्भ प्रदान करते हैं
+बेहतर RAG प्रदर्शन के लिए।
+
+**तर्क:**
+
+`flow`: फ्लो आइडेंटिफायर
+`contexts`: कॉन्टेक्स्ट डिक्शनरी उत्पन्न करने वाला इटरेटर
+`metadata`: आईडी, मेटाडेटा, उपयोगकर्ता, संग्रह के साथ मेटाडेटा डिक्ट
+`batch_size`: बैच प्रति कॉन्टेक्स्ट की संख्या (डिफ़ॉल्ट 100)
+`**kwargs`: अतिरिक्त पैरामीटर (भविष्य के उपयोग के लिए आरक्षित)
+
+**उदाहरण:**
+
+```python
+bulk = api.bulk()
+
+# Generate entity contexts to import
+def context_generator():
+ yield {"entity": {"v": "entity1", "e": True}, "context": "Description..."}
+ yield {"entity": {"v": "entity2", "e": True}, "context": "Description..."}
+ # ... more contexts
+
+bulk.import_entity_contexts(
+ flow="default",
+ contexts=context_generator(),
+ metadata={"id": "doc1", "metadata": [], "user": "user1", "collection": "default"}
+)
+```
+
+### `import_graph_embeddings(self, flow: str, embeddings: Iterator[Dict[str, Any]], **kwargs: Any) -> None`
+
+एक फ्लो में ग्राफ एम्बेडिंग को बल्क में इम्पोर्ट करें।
+
+वेबसॉकेट स्ट्रीमिंग के माध्यम से ग्राफ एंटिटी एम्बेडिंग को कुशलतापूर्वक अपलोड करता है।
+
+**तर्क:**
+
+`flow`: फ्लो पहचानकर्ता
+`embeddings`: एम्बेडिंग डिक्शनरी उत्पन्न करने वाला इटरेटर
+`**kwargs`: अतिरिक्त पैरामीटर (भविष्य के उपयोग के लिए आरक्षित)
+
+**उदाहरण:**
+
+```python
+bulk = api.bulk()
+
+# Generate embeddings to import
+def embedding_generator():
+ yield {"entity": "entity1", "embedding": [0.1, 0.2, ...]}
+ yield {"entity": "entity2", "embedding": [0.3, 0.4, ...]}
+ # ... more embeddings
+
+bulk.import_graph_embeddings(
+ flow="default",
+ embeddings=embedding_generator()
+)
+```
+
+### `import_rows(self, flow: str, rows: Iterator[Dict[str, Any]], **kwargs: Any) -> None`
+
+एक फ्लो में संरचित पंक्तियों को बल्क में आयात करें।
+
+कुशलतापूर्वक संरचित डेटा पंक्तियों को WebSocket स्ट्रीमिंग के माध्यम से अपलोड करता है
+जिसका उपयोग GraphQL प्रश्नों में किया जाता है।
+
+**तर्क:**
+
+`flow`: फ्लो पहचानकर्ता
+`rows`: पंक्ति शब्दकोशों को उत्पन्न करने वाला इटरेटर
+`**kwargs`: अतिरिक्त पैरामीटर (भविष्य के उपयोग के लिए आरक्षित)
+
+**उदाहरण:**
+
+```python
+bulk = api.bulk()
+
+# Generate rows to import
+def row_generator():
+ yield {"id": "row1", "name": "Row 1", "value": 100}
+ yield {"id": "row2", "name": "Row 2", "value": 200}
+ # ... more rows
+
+bulk.import_rows(
+ flow="default",
+ rows=row_generator()
+)
+```
+
+### `import_triples(self, flow: str, triples: Iterator[trustgraph.api.types.Triple], metadata: Dict[str, Any] | None = None, batch_size: int = 100, **kwargs: Any) -> None`
+
+एक फ्लो में RDF ट्रिपल का बल्क इम्पोर्ट करें।
+
+वेबसॉकेट स्ट्रीमिंग के माध्यम से बड़ी संख्या में ट्रिपल को कुशलतापूर्वक अपलोड करता है।
+
+**तर्क:**
+
+`flow`: फ्लो आइडेंटिफायर
+`triples`: ट्रिपल ऑब्जेक्ट्स उत्पन्न करने वाला इटरेटर
+`metadata`: आईडी, मेटाडेटा, यूजर, कलेक्शन के साथ मेटाडेटा डिक्ट
+`batch_size`: प्रति बैच ट्रिपल की संख्या (डिफ़ॉल्ट 100)
+`**kwargs`: अतिरिक्त पैरामीटर (भविष्य के उपयोग के लिए आरक्षित)
+
+**उदाहरण:**
+
+```python
+from trustgraph.api import Triple
+
+bulk = api.bulk()
+
+# Generate triples to import
+def triple_generator():
+ yield Triple(s="subj1", p="pred", o="obj1")
+ yield Triple(s="subj2", p="pred", o="obj2")
+ # ... more triples
+
+# Import triples
+bulk.import_triples(
+ flow="default",
+ triples=triple_generator(),
+ metadata={"id": "doc1", "metadata": [], "user": "user1", "collection": "default"}
+)
+```
+
+
+--
+
+## `AsyncBulkClient`
+
+```python
+from trustgraph.api import AsyncBulkClient
+```
+
+एसिंक्रोनस बल्क ऑपरेशंस क्लाइंट
+
+### विधियाँ
+
+### `__init__(self, url: str, timeout: int, token: str | None) -> None`
+
+स्वयं को इनिशियलाइज़ करें। सटीक हस्ताक्षर के लिए help(type(self)) देखें।
+
+### `aclose(self) -> None`
+
+कनेक्शन बंद करें
+
+### `export_document_embeddings(self, flow: str, **kwargs: Any) -> AsyncIterator[Dict[str, Any]]`
+
+वेबसॉकेट के माध्यम से दस्तावेज़ एम्बेडिंग का बल्क एक्सपोर्ट
+
+### `export_entity_contexts(self, flow: str, **kwargs: Any) -> AsyncIterator[Dict[str, Any]]`
+
+वेबसॉकेट के माध्यम से एंटिटी कॉन्टेक्स्ट का बल्क एक्सपोर्ट
+
+### `export_graph_embeddings(self, flow: str, **kwargs: Any) -> AsyncIterator[Dict[str, Any]]`
+
+वेबसॉकेट के माध्यम से ग्राफ एम्बेडिंग का बल्क एक्सपोर्ट
+
+### `export_triples(self, flow: str, **kwargs: Any) -> AsyncIterator[trustgraph.api.types.Triple]`
+
+वेबसॉकेट के माध्यम से ट्रिपल्स का बल्क एक्सपोर्ट
+
+### `import_document_embeddings(self, flow: str, embeddings: AsyncIterator[Dict[str, Any]], **kwargs: Any) -> None`
+
+वेबसॉकेट के माध्यम से दस्तावेज़ एम्बेडिंग का बल्क इम्पोर्ट
+
+### `import_entity_contexts(self, flow: str, contexts: AsyncIterator[Dict[str, Any]], **kwargs: Any) -> None`
+
+वेबसॉकेट के माध्यम से एंटिटी कॉन्टेक्स्ट का बल्क इम्पोर्ट
+
+### `import_graph_embeddings(self, flow: str, embeddings: AsyncIterator[Dict[str, Any]], **kwargs: Any) -> None`
+
+वेबसॉकेट के माध्यम से ग्राफ एम्बेडिंग का बल्क इम्पोर्ट
+
+### `import_rows(self, flow: str, rows: AsyncIterator[Dict[str, Any]], **kwargs: Any) -> None`
+
+वेबसॉकेट के माध्यम से पंक्तियों का बल्क इम्पोर्ट
+
+### `import_triples(self, flow: str, triples: AsyncIterator[trustgraph.api.types.Triple], **kwargs: Any) -> None`
+
+वेबसॉकेट के माध्यम से ट्रिपल्स का बल्क इम्पोर्ट
+
+
+--
+
+## `Metrics`
+
+```python
+from trustgraph.api import Metrics
+```
+
+सिंक्रोनस मेट्रिक्स क्लाइंट
+
+### विधियाँ
+
+### `__init__(self, url: str, timeout: int, token: str | None) -> None`
+
+स्वयं को आरंभ करें। सटीक हस्ताक्षर के लिए help(type(self)) देखें।
+
+### `get(self) -> str`
+
+प्रोमेथियस मेट्रिक्स को टेक्स्ट के रूप में प्राप्त करें
+
+
+--
+
+## `AsyncMetrics`
+
+```python
+from trustgraph.api import AsyncMetrics
+```
+
+एसिंक्रोनस मेट्रिक्स क्लाइंट
+
+### विधियाँ
+
+### `__init__(self, url: str, timeout: int, token: str | None) -> None`
+
+स्वयं को आरंभ करें। सटीक हस्ताक्षर के लिए help(type(self)) देखें।
+
+### `aclose(self) -> None`
+
+कनेक्शन बंद करें
+
+### `get(self) -> str`
+
+प्रोमेथियस मेट्रिक्स को टेक्स्ट के रूप में प्राप्त करें
+
+
+--
+
+## `ExplainabilityClient`
+
+```python
+from trustgraph.api import ExplainabilityClient
+```
+
+स्पष्टीकरण संस्थाओं को लाने के लिए क्लाइंट, जिसमें अंततः स्थिरता प्रबंधन शामिल है।
+
+यह शांत अवस्था का पता लगाने का उपयोग करता है: प्राप्त करें, प्रतीक्षा करें, फिर से प्राप्त करें, तुलना करें।
+यदि परिणाम समान हैं, तो डेटा स्थिर है।
+
+### विधियाँ
+
+### `__init__(self, flow_instance, retry_delay: float = 0.2, max_retries: int = 10)`
+
+स्पष्टीकरण क्लाइंट को आरंभ करें।
+
+**तर्क:**
+
+`flow_instance`: त्रिकों को क्वेरी करने के लिए एक SocketFlowInstance
+`retry_delay`: पुन: प्रयास के बीच का विलंब (डिफ़ॉल्ट: 0.2)
+`max_retries`: अधिकतम पुन: प्रयास (डिफ़ॉल्ट: 10)
+
+### `detect_session_type(self, session_uri: str, graph: str | None = None, user: str | None = None, collection: str | None = None) -> str`
+
+पता करें कि क्या सत्र GraphRAG या Agent प्रकार का है।
+
+**तर्क:**
+
+`session_uri`: सत्र/प्रश्न URI
+`graph`: नामित ग्राफ
+`user`: उपयोगकर्ता/keyspace पहचानकर्ता
+`collection`: संग्रह पहचानकर्ता
+
+**रिटर्न:** "graphrag" या "agent"
+
+### `fetch_agent_trace(self, session_uri: str, graph: str | None = None, user: str | None = None, collection: str | None = None, api: Any = None, max_content: int = 10000) -> Dict[str, Any]`
+
+एक सत्र URI से शुरू होने वाला संपूर्ण Agent ट्रेस प्राप्त करें।
+
+यह उत्पत्ति श्रृंखला का अनुसरण करता है: प्रश्न -> विश्लेषण (s) -> निष्कर्ष
+
+**तर्क:**
+
+`session_uri`: एजेंट सत्र/प्रश्न URI
+`graph`: नामित ग्राफ (डिफ़ॉल्ट: urn:graph:retrieval)
+`user`: उपयोगकर्ता/keyspace पहचानकर्ता
+`collection`: संग्रह पहचानकर्ता
+`api`: लाइब्रेरियन एक्सेस के लिए TrustGraph Api उदाहरण (वैकल्पिक)
+`max_content`: निष्कर्ष के लिए अधिकतम सामग्री लंबाई
+
+**रिटर्न:** प्रश्न, पुनरावृत्तियों (विश्लेषण सूची), निष्कर्ष संस्थाओं के साथ डिक्ट
+
+### `fetch_docrag_trace(self, question_uri: str, graph: str | None = None, user: str | None = None, collection: str | None = None, api: Any = None, max_content: int = 10000) -> Dict[str, Any]`
+
+एक प्रश्न URI से शुरू होने वाला संपूर्ण DocumentRAG ट्रेस प्राप्त करें।
+
+यह उत्पत्ति श्रृंखला का अनुसरण करता है:
+ प्रश्न -> ग्राउंडिंग -> अन्वेषण -> संश्लेषण
+
+**तर्क:**
+
+`question_uri`: प्रश्न इकाई URI
+`graph`: नामित ग्राफ (डिफ़ॉल्ट: urn:graph:retrieval)
+`user`: उपयोगकर्ता/keyspace पहचानकर्ता
+`collection`: संग्रह पहचानकर्ता
+`api`: लाइब्रेरियन एक्सेस के लिए TrustGraph Api उदाहरण (वैकल्पिक)
+`max_content`: संश्लेषण के लिए अधिकतम सामग्री लंबाई
+
+**रिटर्न:** प्रश्न, ग्राउंडिंग, अन्वेषण, संश्लेषण संस्थाओं के साथ डिक्ट
+
+### `fetch_document_content(self, document_uri: str, api: Any, user: str | None = None, max_content: int = 10000) -> str`
+
+दस्तावेज़ URI द्वारा लाइब्रेरियन से सामग्री प्राप्त करें।
+
+**तर्क:**
+
+`document_uri`: लाइब्रेरियन में दस्तावेज़ URI
+`api`: लाइब्रेरियन एक्सेस के लिए TrustGraph Api उदाहरण
+`user`: लाइब्रेरियन के लिए उपयोगकर्ता पहचानकर्ता
+`max_content`: वापस करने के लिए अधिकतम सामग्री लंबाई
+
+**रिटर्न:** स्ट्रिंग के रूप में दस्तावेज़ सामग्री
+
+### `fetch_edge_selection(self, uri: str, graph: str | None = None, user: str | None = None, collection: str | None = None) -> trustgraph.api.explainability.EdgeSelection | None`
+
+एक एज सिलेक्शन एंटिटी प्राप्त करें (जो फोकस द्वारा उपयोग किया जाता है)।
+
+**तर्क:**
+
+`uri`: एज सिलेक्शन URI
+`graph`: क्वेरी करने के लिए नामित ग्राफ
+`user`: उपयोगकर्ता/keyspace पहचानकर्ता
+`collection`: संग्रह पहचानकर्ता
+
+**रिटर्न:** एज सिलेक्शन या यदि नहीं मिला तो None
+
+### `fetch_entity(self, uri: str, graph: str | None = None, user: str | None = None, collection: str | None = None) -> trustgraph.api.explainability.ExplainEntity | None`
+
+URI के माध्यम से एक व्याख्यात्मकता इकाई प्राप्त करें और संभावित स्थिरता प्रबंधन के साथ।
+
+शांत अवस्था का पता लगाने का उपयोग करता है:
+1. URI के लिए ट्रिपल प्राप्त करें
+2. यदि शून्य परिणाम हैं, तो पुनः प्रयास करें
+3. यदि गैर-शून्य परिणाम हैं, तो प्रतीक्षा करें और फिर से प्राप्त करें
+4. यदि समान परिणाम हैं, तो डेटा स्थिर है - पार्स करें और वापस करें
+5. यदि अलग-अलग परिणाम हैं, तो डेटा अभी भी लिखा जा रहा है - पुनः प्रयास करें
+
+**तर्क:**
+
+`uri`: प्राप्त करने के लिए इकाई URI
+`graph`: क्वेरी करने के लिए नामित ग्राफ (जैसे, "urn:graph:retrieval")
+`user`: उपयोगकर्ता/कीस्पेस पहचानकर्ता
+`collection`: संग्रह पहचानकर्ता
+
+**वापसी:** ExplainEntity उपवर्ग या यदि नहीं मिला तो None
+
+### `fetch_focus_with_edges(self, uri: str, graph: str | None = None, user: str | None = None, collection: str | None = None) -> trustgraph.api.explainability.Focus | None`
+
+एक फोकस इकाई और उसके सभी किनारे चयन प्राप्त करें।
+
+**तर्क:**
+
+`uri`: फोकस इकाई URI
+`graph`: क्वेरी करने के लिए नामित ग्राफ
+`user`: उपयोगकर्ता/कीस्पेस पहचानकर्ता
+`collection`: संग्रह पहचानकर्ता
+
+**वापसी:** भरे हुए edge_selections के साथ Focus, या None
+
+### `fetch_graphrag_trace(self, question_uri: str, graph: str | None = None, user: str | None = None, collection: str | None = None, api: Any = None, max_content: int = 10000) -> Dict[str, Any]`
+
+एक प्रश्न URI से शुरू होकर संपूर्ण GraphRAG ट्रेस प्राप्त करें।
+
+उत्पत्ति श्रृंखला का पालन करें: प्रश्न -> ग्राउंडिंग -> अन्वेषण -> फोकस -> संश्लेषण
+
+**तर्क:**
+
+`question_uri`: प्रश्न इकाई URI
+`graph`: नामित ग्राफ (डिफ़ॉल्ट: urn:graph:retrieval)
+`user`: उपयोगकर्ता/कीस्पेस पहचानकर्ता
+`collection`: संग्रह पहचानकर्ता
+`api`: लाइब्रेरियन एक्सेस के लिए ट्रस्टग्राफ एपीआई उदाहरण (वैकल्पिक)
+`max_content`: संश्लेषण के लिए अधिकतम सामग्री लंबाई
+
+**वापसी:** प्रश्न, ग्राउंडिंग, अन्वेषण, फोकस, संश्लेषण संस्थाओं के साथ डिक्ट
+
+### `list_sessions(self, graph: str | None = None, user: str | None = None, collection: str | None = None, limit: int = 50) -> List[trustgraph.api.explainability.Question]`
+
+एक संग्रह में सभी व्याख्यात्मकता सत्र (प्रश्न) सूचीबद्ध करें।
+
+**तर्क:**
+
+`graph`: नामित ग्राफ (डिफ़ॉल्ट: urn:graph:retrieval)
+`user`: उपयोगकर्ता/कीस्पेस पहचानकर्ता
+`collection`: संग्रह पहचानकर्ता
+`limit`: वापस करने के लिए सत्रों की अधिकतम संख्या
+
+**वापसी:** टाइमस्टैम्प द्वारा क्रमबद्ध प्रश्न संस्थाओं की सूची (नवीनतम पहले)
+
+### `resolve_edge_labels(self, edge: Dict[str, str], user: str | None = None, collection: str | None = None) -> Tuple[str, str, str]`
+
+एक किनारे ट्रिपल के सभी घटकों के लिए लेबल हल करें।
+
+**तर्क:**
+
+`edge`: "s", "p", "o" कुंजियों वाला डिक्ट
+`user`: उपयोगकर्ता/कीस्पेस पहचानकर्ता
+`collection`: संग्रह पहचानकर्ता
+
+**वापसी:** (s_label, p_label, o_label) का टपल
+
+### `resolve_label(self, uri: str, user: str | None = None, collection: str | None = None) -> str`
+
+कैशिंग के साथ एक URI के लिए rdfs:label हल करें।
+
+**तर्क:**
+
+`uri`: URI जिसके लिए लेबल प्राप्त करना है
+`user`: उपयोगकर्ता/कीस्पेस पहचानकर्ता
+`collection`: संग्रह पहचानकर्ता
+
+**वापसी:** यदि पाया जाता है तो लेबल, अन्यथा URI स्वयं
+
+
+--
+
+## `ExplainEntity`
+
+```python
+from trustgraph.api import ExplainEntity
+```
+
+व्याख्यात्मक संस्थाओं के लिए आधार वर्ग।
+
+**फ़ील्ड:**
+
+`uri`:
+`entity_type`:
+
+### विधियाँ
+
+### `__init__(self, uri: str, entity_type: str = '') -> None`
+
+स्वयं को आरंभ करें। सटीक हस्ताक्षर के लिए help(type(self)) देखें।
+
+
+--
+
+## `Question`
+
+```python
+from trustgraph.api import Question
+```
+
+प्रश्न इकाई - उपयोगकर्ता का वह प्रश्न जिसने सत्र शुरू किया।
+
+**फ़ील्ड:**
+
+`uri`:
+`entity_type`:
+`query`:
+`timestamp`:
+`question_type`:
+
+### विधियाँ
+
+### `__init__(self, uri: str, entity_type: str = '', query: str = '', timestamp: str = '', question_type: str = '') -> None`
+
+स्वयं को आरंभ करें। सटीक हस्ताक्षर के लिए help(type(self)) देखें।
+
+
+--
+
+## `Exploration`
+
+```python
+from trustgraph.api import Exploration
+```
+
+अन्वेषण इकाई - ज्ञान भंडार से प्राप्त किनारे/खंड।
+
+**फ़ील्ड:**
+
+`uri`:
+`entity_type`:
+`edge_count`:
+`chunk_count`:
+`entities`: typing.List[str]
+
+### विधियाँ
+
+### `__init__(self, uri: str, entity_type: str = '', edge_count: int = 0, chunk_count: int = 0, entities: List[str] = ) -> None`
+
+स्वयं को आरंभ करें। सटीक हस्ताक्षर के लिए help(type(self)) देखें।
+
+
+--
+
+## `Focus`
+
+```python
+from trustgraph.api import Focus
+```
+
+मुख्य इकाई - एलएलएम तर्क के साथ चयनित किनारे (केवल GraphRAG)।
+
+**फ़ील्ड:**
+
+`uri`:
+`entity_type`:
+`selected_edge_uris`: typing.List[str]
+`edge_selections`: typing.List[trustgraph.api.explainability.EdgeSelection]
+
+### विधियाँ
+
+### `__init__(self, uri: str, entity_type: str = '', selected_edge_uris: List[str] = , edge_selections: List[trustgraph.api.explainability.EdgeSelection] = ) -> None`
+
+स्वयं को आरंभ करें। सटीक हस्ताक्षर के लिए help(type(self)) देखें।
+
+
+--
+
+## `Synthesis`
+
+```python
+from trustgraph.api import Synthesis
+```
+
+संश्लेषण इकाई - अंतिम उत्तर।
+
+**फ़ील्ड:**
+
+`uri`:
+`entity_type`: