Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 15 additions & 15 deletions docs/ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ To enhance LLM responses, LCore leverages **RAG (Retrieval-Augmented Generation)
```
┌─────────────────────────────────────────────────────────┐
│ Client Applications │
│ (Web UI, CLI, VS Code Extension, Mobile Apps, etc.) │
│ (Web UI, CLI, VS Code Extension, Mobile Apps, etc.)
└────────────────────┬────────────────────────────────────┘
│ REST/A2A/JSON-RPC
Expand Down Expand Up @@ -150,14 +150,14 @@ LCore requires two main configuration files:

**Authentication Providers:**

| Provider | Use Case | Token Handling |
|----------|----------|----------------|
| **No Auth** | Development, testing | No token (empty string) |
| **No Auth + Token** | Testing with token passthrough | Bearer token passed through |
| **Kubernetes** | K8s service accounts | K8s service account token validated and forwarded |
| **Red Hat SSO** | Red Hat environments | X-RH-Identity header (no separate token) |
| **API Key** | API key authentication | API key from Authorization header |
| **JWK/JWT** | JWT tokens | JWT validated and forwarded |
| Provider | Use Case | Token Handling |
|---------------------|--------------------------------|---------------------------------------------------|
| **No Auth** | Development, testing | No token (empty string) |
| **No Auth + Token** | Testing with token passthrough | Bearer token passed through |
| **Kubernetes** | K8s service accounts | K8s service account token validated and forwarded |
| **Red Hat SSO** | Red Hat environments | X-RH-Identity header (no separate token) |
| **API Key** | API key authentication | API key from Authorization header |
| **JWK/JWT** | JWT tokens | JWT validated and forwarded |

**Authentication Result (AuthTuple):**

Expand Down Expand Up @@ -427,12 +427,12 @@ LCore uses a multi-database strategy to optimize for different data access patte

The system uses **4 separate databases** for different purposes:

| Database | Purpose | Technology | Size |
|----------|---------|------------|------|
| **User DB** | Conversation metadata | SQLAlchemy ORM | Small |
| **Cache DB** | Full conversation transcripts | psycopg2/sqlite3 | Large |
| **Quota DB** | Token usage and limits | psycopg2/sqlite3 | Medium |
| **A2A DB** | Agent-to-agent protocol state | SQLAlchemy async | Small |
| Database | Purpose | Technology | Size |
|--------------|-------------------------------|------------------|--------|
| **User DB** | Conversation metadata | SQLAlchemy ORM | Small |
| **Cache DB** | Full conversation transcripts | psycopg2/sqlite3 | Large |
| **Quota DB** | Token usage and limits | psycopg2/sqlite3 | Medium |
| **A2A DB** | Agent-to-agent protocol state | SQLAlchemy async | Small |

### 4.2 Why Separate Databases?

Expand Down
22 changes: 11 additions & 11 deletions docs/a2a_protocol.md
Original file line number Diff line number Diff line change
Expand Up @@ -354,14 +354,14 @@ A2A Request

### Task States

| State | Description |
|-------|-------------|
| `submitted` | Task has been received and queued |
| `working` | Task is being processed |
| `completed` | Task finished successfully |
| `failed` | Task failed with an error |
| State | Description |
|------------------|--------------------------------------------|
| `submitted` | Task has been received and queued |
| `working` | Task is being processed |
| `completed` | Task finished successfully |
| `failed` | Task failed with an error |
| `input_required` | Agent needs additional input from the user |
| `auth_required` | Authentication is required to continue |
| `auth_required` | Authentication is required to continue |

### Multi-Turn Conversations

Expand Down Expand Up @@ -527,10 +527,10 @@ curl -X POST http://localhost:8090/a2a \

A2A messages support an optional `metadata` field that can be used to pass additional parameters to control request routing and behavior. The following metadata fields are supported:

| Field | Type | Description |
|-------|------|-------------|
| `model` | `string` | Specify the LLM model to use for this request (e.g., `"gpt-4"`, `"llama3.1"`) |
| `provider` | `string` | Specify the LLM provider to use (e.g., `"openai"`, `"watsonx"`) |
| Field | Type | Description |
|--------------------|----------------|--------------------------------------------------------------------------------------------------------|
| `model` | `string` | Specify the LLM model to use for this request (e.g., `"gpt-4"`, `"llama3.1"`) |
| `provider` | `string` | Specify the LLM provider to use (e.g., `"openai"`, `"watsonx"`) |
| `vector_store_ids` | `list[string]` | Specify which vector stores to query for RAG. If not provided, all available vector stores are queried |

#### Example: Using Metadata
Expand Down
26 changes: 13 additions & 13 deletions docs/byok_guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -191,15 +191,15 @@ byok_rag:

**`byok_rag` field reference:**

| Field | Required | Default | Description |
|-------|----------|---------|-------------|
| `rag_id` | Yes | — | Unique identifier for the knowledge source |
| `rag_type` | No | `inline::faiss` | Vector store provider type |
| `embedding_model` | No | `sentence-transformers/all-mpnet-base-v2` | Embedding model identifier or path |
| `embedding_dimension` | No | `768` | Embedding vector dimensionality |
| `vector_db_id` | Yes | — | Vector store ID generated by rag-content (e.g. `vs_8c94967b-81cc-4028-a294-9cfac6fd9ae2`) |
| `db_path` | Yes | — | Path to the vector database file |
| `score_multiplier` | No | `1.0` | Weight for Inline RAG ranking (values > 1.0 boost; < 1.0 reduce) |
| Field | Required | Default | Description |
|-----------------------|----------|-------------------------------------------|-------------------------------------------------------------------------------------------|
| `rag_id` | Yes | — | Unique identifier for the knowledge source |
| `rag_type` | No | `inline::faiss` | Vector store provider type |
| `embedding_model` | No | `sentence-transformers/all-mpnet-base-v2` | Embedding model identifier or path |
| `embedding_dimension` | No | `768` | Embedding vector dimensionality |
| `vector_db_id` | Yes | — | Vector store ID generated by rag-content (e.g. `vs_8c94967b-81cc-4028-a294-9cfac6fd9ae2`) |
| `db_path` | Yes | — | Path to the vector database file |
| `score_multiplier` | No | `1.0` | Weight for Inline RAG ranking (values > 1.0 boost; < 1.0 reduce) |

**Multiple knowledge sources:**

Expand Down Expand Up @@ -251,10 +251,10 @@ okp:

Both modes can be enabled simultaneously. Choose based on your latency and control preferences:

| Mode | When context is fetched | Tool call needed | score_multiplier |
|------|------------------------|------------------|-----------------|
| Inline RAG | With every query | No | Yes (BYOK only) |
| Tool RAG | On LLM demand | Yes | No |
| Mode | When context is fetched | Tool call needed | score_multiplier |
|------------|-------------------------|------------------|------------------|
| Inline RAG | With every query | No | Yes (BYOK only) |
| Tool RAG | On LLM demand | Yes | No |

> [!TIP]
> A ready-to-use example combining BYOK and OKP is available at
Expand Down
Loading
Loading