mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-12-04 10:10:36 +00:00
Merge remote-tracking branch 'upstream/main' into strip-telem
This commit is contained in:
commit
53da6bf3d8
168 changed files with 549 additions and 14861 deletions
|
|
@ -5,7 +5,7 @@ omit =
|
||||||
*/llama_stack/templates/*
|
*/llama_stack/templates/*
|
||||||
.venv/*
|
.venv/*
|
||||||
*/llama_stack/cli/scripts/*
|
*/llama_stack/cli/scripts/*
|
||||||
*/llama_stack/ui/*
|
*/llama_stack_ui/*
|
||||||
*/llama_stack/distribution/ui/*
|
*/llama_stack/distribution/ui/*
|
||||||
*/llama_stack/strong_typing/*
|
*/llama_stack/strong_typing/*
|
||||||
*/llama_stack/env.py
|
*/llama_stack/env.py
|
||||||
|
|
|
||||||
2
.github/dependabot.yml
vendored
2
.github/dependabot.yml
vendored
|
|
@ -22,7 +22,7 @@ updates:
|
||||||
prefix: chore(python-deps)
|
prefix: chore(python-deps)
|
||||||
|
|
||||||
- package-ecosystem: npm
|
- package-ecosystem: npm
|
||||||
directory: "/llama_stack/ui"
|
directory: "/llama_stack_ui"
|
||||||
schedule:
|
schedule:
|
||||||
interval: "weekly"
|
interval: "weekly"
|
||||||
day: "saturday"
|
day: "saturday"
|
||||||
|
|
|
||||||
2
.github/workflows/integration-auth-tests.yml
vendored
2
.github/workflows/integration-auth-tests.yml
vendored
|
|
@ -14,7 +14,7 @@ on:
|
||||||
paths:
|
paths:
|
||||||
- 'distributions/**'
|
- 'distributions/**'
|
||||||
- 'src/llama_stack/**'
|
- 'src/llama_stack/**'
|
||||||
- '!src/llama_stack/ui/**'
|
- '!src/llama_stack_ui/**'
|
||||||
- 'tests/integration/**'
|
- 'tests/integration/**'
|
||||||
- 'uv.lock'
|
- 'uv.lock'
|
||||||
- 'pyproject.toml'
|
- 'pyproject.toml'
|
||||||
|
|
|
||||||
2
.github/workflows/integration-tests.yml
vendored
2
.github/workflows/integration-tests.yml
vendored
|
|
@ -14,7 +14,7 @@ on:
|
||||||
types: [opened, synchronize, reopened]
|
types: [opened, synchronize, reopened]
|
||||||
paths:
|
paths:
|
||||||
- 'src/llama_stack/**'
|
- 'src/llama_stack/**'
|
||||||
- '!src/llama_stack/ui/**'
|
- '!src/llama_stack_ui/**'
|
||||||
- 'tests/**'
|
- 'tests/**'
|
||||||
- 'uv.lock'
|
- 'uv.lock'
|
||||||
- 'pyproject.toml'
|
- 'pyproject.toml'
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ on:
|
||||||
- 'release-[0-9]+.[0-9]+.x'
|
- 'release-[0-9]+.[0-9]+.x'
|
||||||
paths:
|
paths:
|
||||||
- 'src/llama_stack/**'
|
- 'src/llama_stack/**'
|
||||||
- '!src/llama_stack/ui/**'
|
- '!src/llama_stack_ui/**'
|
||||||
- 'tests/integration/vector_io/**'
|
- 'tests/integration/vector_io/**'
|
||||||
- 'uv.lock'
|
- 'uv.lock'
|
||||||
- 'pyproject.toml'
|
- 'pyproject.toml'
|
||||||
|
|
|
||||||
4
.github/workflows/pre-commit.yml
vendored
4
.github/workflows/pre-commit.yml
vendored
|
|
@ -43,14 +43,14 @@ jobs:
|
||||||
with:
|
with:
|
||||||
node-version: '20'
|
node-version: '20'
|
||||||
cache: 'npm'
|
cache: 'npm'
|
||||||
cache-dependency-path: 'src/llama_stack/ui/'
|
cache-dependency-path: 'src/llama_stack_ui/'
|
||||||
|
|
||||||
- name: Set up uv
|
- name: Set up uv
|
||||||
uses: astral-sh/setup-uv@85856786d1ce8acfbcc2f13a5f3fbd6b938f9f41 # v7.1.2
|
uses: astral-sh/setup-uv@85856786d1ce8acfbcc2f13a5f3fbd6b938f9f41 # v7.1.2
|
||||||
|
|
||||||
- name: Install npm dependencies
|
- name: Install npm dependencies
|
||||||
run: npm ci
|
run: npm ci
|
||||||
working-directory: src/llama_stack/ui
|
working-directory: src/llama_stack_ui
|
||||||
|
|
||||||
- name: Install pre-commit
|
- name: Install pre-commit
|
||||||
run: python -m pip install pre-commit
|
run: python -m pip install pre-commit
|
||||||
|
|
|
||||||
2
.github/workflows/python-build-test.yml
vendored
2
.github/workflows/python-build-test.yml
vendored
|
|
@ -10,7 +10,7 @@ on:
|
||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
paths-ignore:
|
paths-ignore:
|
||||||
- 'src/llama_stack/ui/**'
|
- 'src/llama_stack_ui/**'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
|
|
||||||
2
.github/workflows/test-external.yml
vendored
2
.github/workflows/test-external.yml
vendored
|
|
@ -9,7 +9,7 @@ on:
|
||||||
branches: [ main ]
|
branches: [ main ]
|
||||||
paths:
|
paths:
|
||||||
- 'src/llama_stack/**'
|
- 'src/llama_stack/**'
|
||||||
- '!src/llama_stack/ui/**'
|
- '!src/llama_stack_ui/**'
|
||||||
- 'tests/integration/**'
|
- 'tests/integration/**'
|
||||||
- 'uv.lock'
|
- 'uv.lock'
|
||||||
- 'pyproject.toml'
|
- 'pyproject.toml'
|
||||||
|
|
|
||||||
12
.github/workflows/ui-unit-tests.yml
vendored
12
.github/workflows/ui-unit-tests.yml
vendored
|
|
@ -8,7 +8,7 @@ on:
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: [ main ]
|
branches: [ main ]
|
||||||
paths:
|
paths:
|
||||||
- 'src/llama_stack/ui/**'
|
- 'src/llama_stack_ui/**'
|
||||||
- '.github/workflows/ui-unit-tests.yml' # This workflow
|
- '.github/workflows/ui-unit-tests.yml' # This workflow
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
|
|
@ -33,22 +33,22 @@ jobs:
|
||||||
with:
|
with:
|
||||||
node-version: ${{ matrix.node-version }}
|
node-version: ${{ matrix.node-version }}
|
||||||
cache: 'npm'
|
cache: 'npm'
|
||||||
cache-dependency-path: 'src/llama_stack/ui/package-lock.json'
|
cache-dependency-path: 'src/llama_stack_ui/package-lock.json'
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
working-directory: src/llama_stack/ui
|
working-directory: src/llama_stack_ui
|
||||||
run: npm ci
|
run: npm ci
|
||||||
|
|
||||||
- name: Run linting
|
- name: Run linting
|
||||||
working-directory: src/llama_stack/ui
|
working-directory: src/llama_stack_ui
|
||||||
run: npm run lint
|
run: npm run lint
|
||||||
|
|
||||||
- name: Run format check
|
- name: Run format check
|
||||||
working-directory: src/llama_stack/ui
|
working-directory: src/llama_stack_ui
|
||||||
run: npm run format:check
|
run: npm run format:check
|
||||||
|
|
||||||
- name: Run unit tests
|
- name: Run unit tests
|
||||||
working-directory: src/llama_stack/ui
|
working-directory: src/llama_stack_ui
|
||||||
env:
|
env:
|
||||||
CI: true
|
CI: true
|
||||||
|
|
||||||
|
|
|
||||||
2
.github/workflows/unit-tests.yml
vendored
2
.github/workflows/unit-tests.yml
vendored
|
|
@ -13,7 +13,7 @@ on:
|
||||||
- 'release-[0-9]+.[0-9]+.x'
|
- 'release-[0-9]+.[0-9]+.x'
|
||||||
paths:
|
paths:
|
||||||
- 'src/llama_stack/**'
|
- 'src/llama_stack/**'
|
||||||
- '!src/llama_stack/ui/**'
|
- '!src/llama_stack_ui/**'
|
||||||
- 'tests/unit/**'
|
- 'tests/unit/**'
|
||||||
- 'uv.lock'
|
- 'uv.lock'
|
||||||
- 'pyproject.toml'
|
- 'pyproject.toml'
|
||||||
|
|
|
||||||
|
|
@ -161,7 +161,7 @@ repos:
|
||||||
name: Format & Lint UI
|
name: Format & Lint UI
|
||||||
entry: bash ./scripts/run-ui-linter.sh
|
entry: bash ./scripts/run-ui-linter.sh
|
||||||
language: system
|
language: system
|
||||||
files: ^src/llama_stack/ui/.*\.(ts|tsx)$
|
files: ^src/llama_stack_ui/.*\.(ts|tsx)$
|
||||||
pass_filenames: false
|
pass_filenames: false
|
||||||
require_serial: true
|
require_serial: true
|
||||||
|
|
||||||
|
|
|
||||||
525
client-sdks/stainless/config-not-source-of-truth-yet.yml
Normal file
525
client-sdks/stainless/config-not-source-of-truth-yet.yml
Normal file
|
|
@ -0,0 +1,525 @@
|
||||||
|
# yaml-language-server: $schema=https://app.stainlessapi.com/config-internal.schema.json
|
||||||
|
|
||||||
|
organization:
|
||||||
|
# Name of your organization or company, used to determine the name of the client
|
||||||
|
# and headings.
|
||||||
|
name: llama-stack-client
|
||||||
|
docs: https://llama-stack.readthedocs.io/en/latest/
|
||||||
|
contact: llamastack@meta.com
|
||||||
|
security:
|
||||||
|
- {}
|
||||||
|
- BearerAuth: []
|
||||||
|
security_schemes:
|
||||||
|
BearerAuth:
|
||||||
|
type: http
|
||||||
|
scheme: bearer
|
||||||
|
# `targets` define the output targets and their customization options, such as
|
||||||
|
# whether to emit the Node SDK and what it's package name should be.
|
||||||
|
targets:
|
||||||
|
node:
|
||||||
|
package_name: llama-stack-client
|
||||||
|
production_repo: llamastack/llama-stack-client-typescript
|
||||||
|
publish:
|
||||||
|
npm: false
|
||||||
|
python:
|
||||||
|
package_name: llama_stack_client
|
||||||
|
production_repo: llamastack/llama-stack-client-python
|
||||||
|
options:
|
||||||
|
use_uv: true
|
||||||
|
publish:
|
||||||
|
pypi: true
|
||||||
|
project_name: llama_stack_client
|
||||||
|
kotlin:
|
||||||
|
reverse_domain: com.llama_stack_client.api
|
||||||
|
production_repo: null
|
||||||
|
publish:
|
||||||
|
maven: false
|
||||||
|
go:
|
||||||
|
package_name: llama-stack-client
|
||||||
|
production_repo: llamastack/llama-stack-client-go
|
||||||
|
options:
|
||||||
|
enable_v2: true
|
||||||
|
back_compat_use_shared_package: false
|
||||||
|
|
||||||
|
# `client_settings` define settings for the API client, such as extra constructor
|
||||||
|
# arguments (used for authentication), retry behavior, idempotency, etc.
|
||||||
|
client_settings:
|
||||||
|
default_env_prefix: LLAMA_STACK_CLIENT
|
||||||
|
opts:
|
||||||
|
api_key:
|
||||||
|
type: string
|
||||||
|
read_env: LLAMA_STACK_CLIENT_API_KEY
|
||||||
|
auth: { security_scheme: BearerAuth }
|
||||||
|
nullable: true
|
||||||
|
|
||||||
|
# `environments` are a map of the name of the environment (e.g. "sandbox",
|
||||||
|
# "production") to the corresponding url to use.
|
||||||
|
environments:
|
||||||
|
production: http://any-hosted-llama-stack.com
|
||||||
|
|
||||||
|
# `pagination` defines [pagination schemes] which provides a template to match
|
||||||
|
# endpoints and generate next-page and auto-pagination helpers in the SDKs.
|
||||||
|
pagination:
|
||||||
|
- name: datasets_iterrows
|
||||||
|
type: offset
|
||||||
|
request:
|
||||||
|
dataset_id:
|
||||||
|
type: string
|
||||||
|
start_index:
|
||||||
|
type: integer
|
||||||
|
x-stainless-pagination-property:
|
||||||
|
purpose: offset_count_param
|
||||||
|
limit:
|
||||||
|
type: integer
|
||||||
|
response:
|
||||||
|
data:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
next_index:
|
||||||
|
type: integer
|
||||||
|
x-stainless-pagination-property:
|
||||||
|
purpose: offset_count_start_field
|
||||||
|
- name: openai_cursor_page
|
||||||
|
type: cursor
|
||||||
|
request:
|
||||||
|
limit:
|
||||||
|
type: integer
|
||||||
|
after:
|
||||||
|
type: string
|
||||||
|
x-stainless-pagination-property:
|
||||||
|
purpose: next_cursor_param
|
||||||
|
response:
|
||||||
|
data:
|
||||||
|
type: array
|
||||||
|
items: {}
|
||||||
|
has_more:
|
||||||
|
type: boolean
|
||||||
|
last_id:
|
||||||
|
type: string
|
||||||
|
x-stainless-pagination-property:
|
||||||
|
purpose: next_cursor_field
|
||||||
|
# `resources` define the structure and organziation for your API, such as how
|
||||||
|
# methods and models are grouped together and accessed. See the [configuration
|
||||||
|
# guide] for more information.
|
||||||
|
#
|
||||||
|
# [configuration guide]:
|
||||||
|
# https://app.stainlessapi.com/docs/guides/configure#resources
|
||||||
|
resources:
|
||||||
|
$shared:
|
||||||
|
models:
|
||||||
|
interleaved_content_item: InterleavedContentItem
|
||||||
|
interleaved_content: InterleavedContent
|
||||||
|
param_type: ParamType
|
||||||
|
safety_violation: SafetyViolation
|
||||||
|
sampling_params: SamplingParams
|
||||||
|
scoring_result: ScoringResult
|
||||||
|
system_message: SystemMessage
|
||||||
|
query_result: RAGQueryResult
|
||||||
|
document: RAGDocument
|
||||||
|
query_config: RAGQueryConfig
|
||||||
|
toolgroups:
|
||||||
|
models:
|
||||||
|
tool_group: ToolGroup
|
||||||
|
list_tool_groups_response: ListToolGroupsResponse
|
||||||
|
methods:
|
||||||
|
register: post /v1/toolgroups
|
||||||
|
get: get /v1/toolgroups/{toolgroup_id}
|
||||||
|
list: get /v1/toolgroups
|
||||||
|
unregister: delete /v1/toolgroups/{toolgroup_id}
|
||||||
|
tools:
|
||||||
|
methods:
|
||||||
|
get: get /v1/tools/{tool_name}
|
||||||
|
list:
|
||||||
|
endpoint: get /v1/tools
|
||||||
|
paginated: false
|
||||||
|
|
||||||
|
tool_runtime:
|
||||||
|
models:
|
||||||
|
tool_def: ToolDef
|
||||||
|
tool_invocation_result: ToolInvocationResult
|
||||||
|
methods:
|
||||||
|
list_tools:
|
||||||
|
endpoint: get /v1/tool-runtime/list-tools
|
||||||
|
paginated: false
|
||||||
|
invoke_tool: post /v1/tool-runtime/invoke
|
||||||
|
subresources:
|
||||||
|
rag_tool:
|
||||||
|
methods:
|
||||||
|
insert: post /v1/tool-runtime/rag-tool/insert
|
||||||
|
query: post /v1/tool-runtime/rag-tool/query
|
||||||
|
|
||||||
|
responses:
|
||||||
|
models:
|
||||||
|
response_object_stream: OpenAIResponseObjectStream
|
||||||
|
response_object: OpenAIResponseObject
|
||||||
|
methods:
|
||||||
|
create:
|
||||||
|
type: http
|
||||||
|
endpoint: post /v1/responses
|
||||||
|
streaming:
|
||||||
|
stream_event_model: responses.response_object_stream
|
||||||
|
param_discriminator: stream
|
||||||
|
retrieve: get /v1/responses/{response_id}
|
||||||
|
list:
|
||||||
|
type: http
|
||||||
|
endpoint: get /v1/responses
|
||||||
|
delete:
|
||||||
|
type: http
|
||||||
|
endpoint: delete /v1/responses/{response_id}
|
||||||
|
subresources:
|
||||||
|
input_items:
|
||||||
|
methods:
|
||||||
|
list:
|
||||||
|
type: http
|
||||||
|
endpoint: get /v1/responses/{response_id}/input_items
|
||||||
|
|
||||||
|
prompts:
|
||||||
|
models:
|
||||||
|
prompt: Prompt
|
||||||
|
list_prompts_response: ListPromptsResponse
|
||||||
|
methods:
|
||||||
|
create: post /v1/prompts
|
||||||
|
list:
|
||||||
|
endpoint: get /v1/prompts
|
||||||
|
paginated: false
|
||||||
|
retrieve: get /v1/prompts/{prompt_id}
|
||||||
|
update: post /v1/prompts/{prompt_id}
|
||||||
|
delete: delete /v1/prompts/{prompt_id}
|
||||||
|
set_default_version: post /v1/prompts/{prompt_id}/set-default-version
|
||||||
|
subresources:
|
||||||
|
versions:
|
||||||
|
methods:
|
||||||
|
list:
|
||||||
|
endpoint: get /v1/prompts/{prompt_id}/versions
|
||||||
|
paginated: false
|
||||||
|
|
||||||
|
conversations:
|
||||||
|
models:
|
||||||
|
conversation_object: Conversation
|
||||||
|
methods:
|
||||||
|
create:
|
||||||
|
type: http
|
||||||
|
endpoint: post /v1/conversations
|
||||||
|
retrieve: get /v1/conversations/{conversation_id}
|
||||||
|
update:
|
||||||
|
type: http
|
||||||
|
endpoint: post /v1/conversations/{conversation_id}
|
||||||
|
delete:
|
||||||
|
type: http
|
||||||
|
endpoint: delete /v1/conversations/{conversation_id}
|
||||||
|
subresources:
|
||||||
|
items:
|
||||||
|
methods:
|
||||||
|
get:
|
||||||
|
type: http
|
||||||
|
endpoint: get /v1/conversations/{conversation_id}/items/{item_id}
|
||||||
|
list:
|
||||||
|
type: http
|
||||||
|
endpoint: get /v1/conversations/{conversation_id}/items
|
||||||
|
create:
|
||||||
|
type: http
|
||||||
|
endpoint: post /v1/conversations/{conversation_id}/items
|
||||||
|
|
||||||
|
inspect:
|
||||||
|
models:
|
||||||
|
healthInfo: HealthInfo
|
||||||
|
providerInfo: ProviderInfo
|
||||||
|
routeInfo: RouteInfo
|
||||||
|
versionInfo: VersionInfo
|
||||||
|
methods:
|
||||||
|
health: get /v1/health
|
||||||
|
version: get /v1/version
|
||||||
|
|
||||||
|
embeddings:
|
||||||
|
models:
|
||||||
|
create_embeddings_response: OpenAIEmbeddingsResponse
|
||||||
|
methods:
|
||||||
|
create: post /v1/embeddings
|
||||||
|
|
||||||
|
chat:
|
||||||
|
models:
|
||||||
|
chat_completion_chunk: OpenAIChatCompletionChunk
|
||||||
|
subresources:
|
||||||
|
completions:
|
||||||
|
methods:
|
||||||
|
create:
|
||||||
|
type: http
|
||||||
|
endpoint: post /v1/chat/completions
|
||||||
|
streaming:
|
||||||
|
stream_event_model: chat.chat_completion_chunk
|
||||||
|
param_discriminator: stream
|
||||||
|
list:
|
||||||
|
type: http
|
||||||
|
endpoint: get /v1/chat/completions
|
||||||
|
retrieve:
|
||||||
|
type: http
|
||||||
|
endpoint: get /v1/chat/completions/{completion_id}
|
||||||
|
completions:
|
||||||
|
methods:
|
||||||
|
create:
|
||||||
|
type: http
|
||||||
|
endpoint: post /v1/completions
|
||||||
|
streaming:
|
||||||
|
param_discriminator: stream
|
||||||
|
|
||||||
|
vector_io:
|
||||||
|
models:
|
||||||
|
queryChunksResponse: QueryChunksResponse
|
||||||
|
methods:
|
||||||
|
insert: post /v1/vector-io/insert
|
||||||
|
query: post /v1/vector-io/query
|
||||||
|
|
||||||
|
vector_stores:
|
||||||
|
models:
|
||||||
|
vector_store: VectorStoreObject
|
||||||
|
list_vector_stores_response: VectorStoreListResponse
|
||||||
|
vector_store_delete_response: VectorStoreDeleteResponse
|
||||||
|
vector_store_search_response: VectorStoreSearchResponsePage
|
||||||
|
methods:
|
||||||
|
create: post /v1/vector_stores
|
||||||
|
list:
|
||||||
|
endpoint: get /v1/vector_stores
|
||||||
|
retrieve: get /v1/vector_stores/{vector_store_id}
|
||||||
|
update: post /v1/vector_stores/{vector_store_id}
|
||||||
|
delete: delete /v1/vector_stores/{vector_store_id}
|
||||||
|
search: post /v1/vector_stores/{vector_store_id}/search
|
||||||
|
subresources:
|
||||||
|
files:
|
||||||
|
models:
|
||||||
|
vector_store_file: VectorStoreFileObject
|
||||||
|
methods:
|
||||||
|
list: get /v1/vector_stores/{vector_store_id}/files
|
||||||
|
retrieve: get /v1/vector_stores/{vector_store_id}/files/{file_id}
|
||||||
|
update: post /v1/vector_stores/{vector_store_id}/files/{file_id}
|
||||||
|
delete: delete /v1/vector_stores/{vector_store_id}/files/{file_id}
|
||||||
|
create: post /v1/vector_stores/{vector_store_id}/files
|
||||||
|
content: get /v1/vector_stores/{vector_store_id}/files/{file_id}/content
|
||||||
|
file_batches:
|
||||||
|
models:
|
||||||
|
vector_store_file_batches: VectorStoreFileBatchObject
|
||||||
|
list_vector_store_files_in_batch_response: VectorStoreFilesListInBatchResponse
|
||||||
|
methods:
|
||||||
|
create: post /v1/vector_stores/{vector_store_id}/file_batches
|
||||||
|
retrieve: get /v1/vector_stores/{vector_store_id}/file_batches/{batch_id}
|
||||||
|
list_files: get /v1/vector_stores/{vector_store_id}/file_batches/{batch_id}/files
|
||||||
|
cancel: post /v1/vector_stores/{vector_store_id}/file_batches/{batch_id}/cancel
|
||||||
|
|
||||||
|
models:
|
||||||
|
models:
|
||||||
|
model: OpenAIModel
|
||||||
|
list_models_response: OpenAIListModelsResponse
|
||||||
|
methods:
|
||||||
|
list:
|
||||||
|
endpoint: get /v1/models
|
||||||
|
paginated: false
|
||||||
|
retrieve: get /v1/models/{model_id}
|
||||||
|
register: post /v1/models
|
||||||
|
unregister: delete /v1/models/{model_id}
|
||||||
|
subresources:
|
||||||
|
openai:
|
||||||
|
methods:
|
||||||
|
list:
|
||||||
|
endpoint: get /v1/models
|
||||||
|
paginated: false
|
||||||
|
|
||||||
|
providers:
|
||||||
|
models:
|
||||||
|
list_providers_response: ListProvidersResponse
|
||||||
|
methods:
|
||||||
|
list:
|
||||||
|
endpoint: get /v1/providers
|
||||||
|
paginated: false
|
||||||
|
retrieve: get /v1/providers/{provider_id}
|
||||||
|
|
||||||
|
routes:
|
||||||
|
models:
|
||||||
|
list_routes_response: ListRoutesResponse
|
||||||
|
methods:
|
||||||
|
list:
|
||||||
|
endpoint: get /v1/inspect/routes
|
||||||
|
paginated: false
|
||||||
|
|
||||||
|
|
||||||
|
moderations:
|
||||||
|
models:
|
||||||
|
create_response: ModerationObject
|
||||||
|
methods:
|
||||||
|
create: post /v1/moderations
|
||||||
|
|
||||||
|
|
||||||
|
safety:
|
||||||
|
models:
|
||||||
|
run_shield_response: RunShieldResponse
|
||||||
|
methods:
|
||||||
|
run_shield: post /v1/safety/run-shield
|
||||||
|
|
||||||
|
|
||||||
|
shields:
|
||||||
|
models:
|
||||||
|
shield: Shield
|
||||||
|
list_shields_response: ListShieldsResponse
|
||||||
|
methods:
|
||||||
|
retrieve: get /v1/shields/{identifier}
|
||||||
|
list:
|
||||||
|
endpoint: get /v1/shields
|
||||||
|
paginated: false
|
||||||
|
register: post /v1/shields
|
||||||
|
delete: delete /v1/shields/{identifier}
|
||||||
|
|
||||||
|
scoring:
|
||||||
|
methods:
|
||||||
|
score: post /v1/scoring/score
|
||||||
|
score_batch: post /v1/scoring/score-batch
|
||||||
|
scoring_functions:
|
||||||
|
methods:
|
||||||
|
retrieve: get /v1/scoring-functions/{scoring_fn_id}
|
||||||
|
list:
|
||||||
|
endpoint: get /v1/scoring-functions
|
||||||
|
paginated: false
|
||||||
|
register: post /v1/scoring-functions
|
||||||
|
models:
|
||||||
|
scoring_fn: ScoringFn
|
||||||
|
scoring_fn_params: ScoringFnParams
|
||||||
|
list_scoring_functions_response: ListScoringFunctionsResponse
|
||||||
|
|
||||||
|
files:
|
||||||
|
methods:
|
||||||
|
create: post /v1/files
|
||||||
|
list: get /v1/files
|
||||||
|
retrieve: get /v1/files/{file_id}
|
||||||
|
delete: delete /v1/files/{file_id}
|
||||||
|
content: get /v1/files/{file_id}/content
|
||||||
|
models:
|
||||||
|
file: OpenAIFileObject
|
||||||
|
list_files_response: ListOpenAIFileResponse
|
||||||
|
delete_file_response: OpenAIFileDeleteResponse
|
||||||
|
|
||||||
|
alpha:
|
||||||
|
subresources:
|
||||||
|
inference:
|
||||||
|
methods:
|
||||||
|
rerank: post /v1alpha/inference/rerank
|
||||||
|
|
||||||
|
post_training:
|
||||||
|
models:
|
||||||
|
algorithm_config: AlgorithmConfig
|
||||||
|
post_training_job: PostTrainingJob
|
||||||
|
list_post_training_jobs_response: ListPostTrainingJobsResponse
|
||||||
|
methods:
|
||||||
|
preference_optimize: post /v1alpha/post-training/preference-optimize
|
||||||
|
supervised_fine_tune: post /v1alpha/post-training/supervised-fine-tune
|
||||||
|
subresources:
|
||||||
|
job:
|
||||||
|
methods:
|
||||||
|
artifacts: get /v1alpha/post-training/job/artifacts
|
||||||
|
cancel: post /v1alpha/post-training/job/cancel
|
||||||
|
status: get /v1alpha/post-training/job/status
|
||||||
|
list:
|
||||||
|
endpoint: get /v1alpha/post-training/jobs
|
||||||
|
paginated: false
|
||||||
|
|
||||||
|
benchmarks:
|
||||||
|
methods:
|
||||||
|
retrieve: get /v1alpha/eval/benchmarks/{benchmark_id}
|
||||||
|
list:
|
||||||
|
endpoint: get /v1alpha/eval/benchmarks
|
||||||
|
paginated: false
|
||||||
|
register: post /v1alpha/eval/benchmarks
|
||||||
|
models:
|
||||||
|
benchmark: Benchmark
|
||||||
|
list_benchmarks_response: ListBenchmarksResponse
|
||||||
|
|
||||||
|
eval:
|
||||||
|
methods:
|
||||||
|
evaluate_rows: post /v1alpha/eval/benchmarks/{benchmark_id}/evaluations
|
||||||
|
run_eval: post /v1alpha/eval/benchmarks/{benchmark_id}/jobs
|
||||||
|
evaluate_rows_alpha: post /v1alpha/eval/benchmarks/{benchmark_id}/evaluations
|
||||||
|
run_eval_alpha: post /v1alpha/eval/benchmarks/{benchmark_id}/jobs
|
||||||
|
|
||||||
|
subresources:
|
||||||
|
jobs:
|
||||||
|
methods:
|
||||||
|
cancel: delete /v1alpha/eval/benchmarks/{benchmark_id}/jobs/{job_id}
|
||||||
|
status: get /v1alpha/eval/benchmarks/{benchmark_id}/jobs/{job_id}
|
||||||
|
retrieve: get /v1alpha/eval/benchmarks/{benchmark_id}/jobs/{job_id}/result
|
||||||
|
models:
|
||||||
|
evaluate_response: EvaluateResponse
|
||||||
|
benchmark_config: BenchmarkConfig
|
||||||
|
job: Job
|
||||||
|
|
||||||
|
beta:
|
||||||
|
subresources:
|
||||||
|
datasets:
|
||||||
|
models:
|
||||||
|
list_datasets_response: ListDatasetsResponse
|
||||||
|
methods:
|
||||||
|
register: post /v1beta/datasets
|
||||||
|
retrieve: get /v1beta/datasets/{dataset_id}
|
||||||
|
list:
|
||||||
|
endpoint: get /v1beta/datasets
|
||||||
|
paginated: false
|
||||||
|
unregister: delete /v1beta/datasets/{dataset_id}
|
||||||
|
iterrows: get /v1beta/datasetio/iterrows/{dataset_id}
|
||||||
|
appendrows: post /v1beta/datasetio/append-rows/{dataset_id}
|
||||||
|
|
||||||
|
|
||||||
|
settings:
|
||||||
|
license: MIT
|
||||||
|
unwrap_response_fields: [ data ]
|
||||||
|
|
||||||
|
openapi:
|
||||||
|
transformations:
|
||||||
|
- command: mergeObject
|
||||||
|
reason: Better return_type using enum
|
||||||
|
args:
|
||||||
|
target:
|
||||||
|
- '$.components.schemas'
|
||||||
|
object:
|
||||||
|
ReturnType:
|
||||||
|
additionalProperties: false
|
||||||
|
properties:
|
||||||
|
type:
|
||||||
|
enum:
|
||||||
|
- string
|
||||||
|
- number
|
||||||
|
- boolean
|
||||||
|
- array
|
||||||
|
- object
|
||||||
|
- json
|
||||||
|
- union
|
||||||
|
- chat_completion_input
|
||||||
|
- completion_input
|
||||||
|
- agent_turn_input
|
||||||
|
required:
|
||||||
|
- type
|
||||||
|
type: object
|
||||||
|
- command: replaceProperties
|
||||||
|
reason: Replace return type properties with better model (see above)
|
||||||
|
args:
|
||||||
|
filter:
|
||||||
|
only:
|
||||||
|
- '$.components.schemas.ScoringFn.properties.return_type'
|
||||||
|
- '$.components.schemas.RegisterScoringFunctionRequest.properties.return_type'
|
||||||
|
value:
|
||||||
|
$ref: '#/components/schemas/ReturnType'
|
||||||
|
- command: oneOfToAnyOf
|
||||||
|
reason: Prism (mock server) doesn't like one of our requests as it technically matches multiple variants
|
||||||
|
|
||||||
|
# `readme` is used to configure the code snippets that will be rendered in the
|
||||||
|
# README.md of various SDKs. In particular, you can change the `headline`
|
||||||
|
# snippet's endpoint and the arguments to call it with.
|
||||||
|
readme:
|
||||||
|
example_requests:
|
||||||
|
default:
|
||||||
|
type: request
|
||||||
|
endpoint: post /v1/chat/completions
|
||||||
|
params: &ref_0 {}
|
||||||
|
headline:
|
||||||
|
type: request
|
||||||
|
endpoint: post /v1/models
|
||||||
|
params: *ref_0
|
||||||
|
pagination:
|
||||||
|
type: request
|
||||||
|
endpoint: post /v1/chat/completions
|
||||||
|
params: {}
|
||||||
|
|
@ -2055,69 +2055,6 @@ paths:
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/URL'
|
$ref: '#/components/schemas/URL'
|
||||||
deprecated: false
|
deprecated: false
|
||||||
/v1/tool-runtime/rag-tool/insert:
|
|
||||||
post:
|
|
||||||
responses:
|
|
||||||
'200':
|
|
||||||
description: OK
|
|
||||||
'400':
|
|
||||||
$ref: '#/components/responses/BadRequest400'
|
|
||||||
'429':
|
|
||||||
$ref: >-
|
|
||||||
#/components/responses/TooManyRequests429
|
|
||||||
'500':
|
|
||||||
$ref: >-
|
|
||||||
#/components/responses/InternalServerError500
|
|
||||||
default:
|
|
||||||
$ref: '#/components/responses/DefaultError'
|
|
||||||
tags:
|
|
||||||
- ToolRuntime
|
|
||||||
summary: >-
|
|
||||||
Index documents so they can be used by the RAG system.
|
|
||||||
description: >-
|
|
||||||
Index documents so they can be used by the RAG system.
|
|
||||||
parameters: []
|
|
||||||
requestBody:
|
|
||||||
content:
|
|
||||||
application/json:
|
|
||||||
schema:
|
|
||||||
$ref: '#/components/schemas/InsertRequest'
|
|
||||||
required: true
|
|
||||||
deprecated: false
|
|
||||||
/v1/tool-runtime/rag-tool/query:
|
|
||||||
post:
|
|
||||||
responses:
|
|
||||||
'200':
|
|
||||||
description: >-
|
|
||||||
RAGQueryResult containing the retrieved content and metadata
|
|
||||||
content:
|
|
||||||
application/json:
|
|
||||||
schema:
|
|
||||||
$ref: '#/components/schemas/RAGQueryResult'
|
|
||||||
'400':
|
|
||||||
$ref: '#/components/responses/BadRequest400'
|
|
||||||
'429':
|
|
||||||
$ref: >-
|
|
||||||
#/components/responses/TooManyRequests429
|
|
||||||
'500':
|
|
||||||
$ref: >-
|
|
||||||
#/components/responses/InternalServerError500
|
|
||||||
default:
|
|
||||||
$ref: '#/components/responses/DefaultError'
|
|
||||||
tags:
|
|
||||||
- ToolRuntime
|
|
||||||
summary: >-
|
|
||||||
Query the RAG system for context; typically invoked by the agent.
|
|
||||||
description: >-
|
|
||||||
Query the RAG system for context; typically invoked by the agent.
|
|
||||||
parameters: []
|
|
||||||
requestBody:
|
|
||||||
content:
|
|
||||||
application/json:
|
|
||||||
schema:
|
|
||||||
$ref: '#/components/schemas/QueryRequest'
|
|
||||||
required: true
|
|
||||||
deprecated: false
|
|
||||||
/v1/toolgroups:
|
/v1/toolgroups:
|
||||||
get:
|
get:
|
||||||
responses:
|
responses:
|
||||||
|
|
@ -9633,274 +9570,6 @@ components:
|
||||||
title: ListToolDefsResponse
|
title: ListToolDefsResponse
|
||||||
description: >-
|
description: >-
|
||||||
Response containing a list of tool definitions.
|
Response containing a list of tool definitions.
|
||||||
RAGDocument:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
document_id:
|
|
||||||
type: string
|
|
||||||
description: The unique identifier for the document.
|
|
||||||
content:
|
|
||||||
oneOf:
|
|
||||||
- type: string
|
|
||||||
- $ref: '#/components/schemas/InterleavedContentItem'
|
|
||||||
- type: array
|
|
||||||
items:
|
|
||||||
$ref: '#/components/schemas/InterleavedContentItem'
|
|
||||||
- $ref: '#/components/schemas/URL'
|
|
||||||
description: The content of the document.
|
|
||||||
mime_type:
|
|
||||||
type: string
|
|
||||||
description: The MIME type of the document.
|
|
||||||
metadata:
|
|
||||||
type: object
|
|
||||||
additionalProperties:
|
|
||||||
oneOf:
|
|
||||||
- type: 'null'
|
|
||||||
- type: boolean
|
|
||||||
- type: number
|
|
||||||
- type: string
|
|
||||||
- type: array
|
|
||||||
- type: object
|
|
||||||
description: Additional metadata for the document.
|
|
||||||
additionalProperties: false
|
|
||||||
required:
|
|
||||||
- document_id
|
|
||||||
- content
|
|
||||||
- metadata
|
|
||||||
title: RAGDocument
|
|
||||||
description: >-
|
|
||||||
A document to be used for document ingestion in the RAG Tool.
|
|
||||||
InsertRequest:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
documents:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
$ref: '#/components/schemas/RAGDocument'
|
|
||||||
description: >-
|
|
||||||
List of documents to index in the RAG system
|
|
||||||
vector_store_id:
|
|
||||||
type: string
|
|
||||||
description: >-
|
|
||||||
ID of the vector database to store the document embeddings
|
|
||||||
chunk_size_in_tokens:
|
|
||||||
type: integer
|
|
||||||
description: >-
|
|
||||||
(Optional) Size in tokens for document chunking during indexing
|
|
||||||
additionalProperties: false
|
|
||||||
required:
|
|
||||||
- documents
|
|
||||||
- vector_store_id
|
|
||||||
- chunk_size_in_tokens
|
|
||||||
title: InsertRequest
|
|
||||||
DefaultRAGQueryGeneratorConfig:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
type:
|
|
||||||
type: string
|
|
||||||
const: default
|
|
||||||
default: default
|
|
||||||
description: >-
|
|
||||||
Type of query generator, always 'default'
|
|
||||||
separator:
|
|
||||||
type: string
|
|
||||||
default: ' '
|
|
||||||
description: >-
|
|
||||||
String separator used to join query terms
|
|
||||||
additionalProperties: false
|
|
||||||
required:
|
|
||||||
- type
|
|
||||||
- separator
|
|
||||||
title: DefaultRAGQueryGeneratorConfig
|
|
||||||
description: >-
|
|
||||||
Configuration for the default RAG query generator.
|
|
||||||
LLMRAGQueryGeneratorConfig:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
type:
|
|
||||||
type: string
|
|
||||||
const: llm
|
|
||||||
default: llm
|
|
||||||
description: Type of query generator, always 'llm'
|
|
||||||
model:
|
|
||||||
type: string
|
|
||||||
description: >-
|
|
||||||
Name of the language model to use for query generation
|
|
||||||
template:
|
|
||||||
type: string
|
|
||||||
description: >-
|
|
||||||
Template string for formatting the query generation prompt
|
|
||||||
additionalProperties: false
|
|
||||||
required:
|
|
||||||
- type
|
|
||||||
- model
|
|
||||||
- template
|
|
||||||
title: LLMRAGQueryGeneratorConfig
|
|
||||||
description: >-
|
|
||||||
Configuration for the LLM-based RAG query generator.
|
|
||||||
RAGQueryConfig:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
query_generator_config:
|
|
||||||
oneOf:
|
|
||||||
- $ref: '#/components/schemas/DefaultRAGQueryGeneratorConfig'
|
|
||||||
- $ref: '#/components/schemas/LLMRAGQueryGeneratorConfig'
|
|
||||||
discriminator:
|
|
||||||
propertyName: type
|
|
||||||
mapping:
|
|
||||||
default: '#/components/schemas/DefaultRAGQueryGeneratorConfig'
|
|
||||||
llm: '#/components/schemas/LLMRAGQueryGeneratorConfig'
|
|
||||||
description: Configuration for the query generator.
|
|
||||||
max_tokens_in_context:
|
|
||||||
type: integer
|
|
||||||
default: 4096
|
|
||||||
description: Maximum number of tokens in the context.
|
|
||||||
max_chunks:
|
|
||||||
type: integer
|
|
||||||
default: 5
|
|
||||||
description: Maximum number of chunks to retrieve.
|
|
||||||
chunk_template:
|
|
||||||
type: string
|
|
||||||
default: >
|
|
||||||
Result {index}
|
|
||||||
|
|
||||||
Content: {chunk.content}
|
|
||||||
|
|
||||||
Metadata: {metadata}
|
|
||||||
description: >-
|
|
||||||
Template for formatting each retrieved chunk in the context. Available
|
|
||||||
placeholders: {index} (1-based chunk ordinal), {chunk.content} (chunk
|
|
||||||
content string), {metadata} (chunk metadata dict). Default: "Result {index}\nContent:
|
|
||||||
{chunk.content}\nMetadata: {metadata}\n"
|
|
||||||
mode:
|
|
||||||
$ref: '#/components/schemas/RAGSearchMode'
|
|
||||||
default: vector
|
|
||||||
description: >-
|
|
||||||
Search mode for retrieval—either "vector", "keyword", or "hybrid". Default
|
|
||||||
"vector".
|
|
||||||
ranker:
|
|
||||||
$ref: '#/components/schemas/Ranker'
|
|
||||||
description: >-
|
|
||||||
Configuration for the ranker to use in hybrid search. Defaults to RRF
|
|
||||||
ranker.
|
|
||||||
additionalProperties: false
|
|
||||||
required:
|
|
||||||
- query_generator_config
|
|
||||||
- max_tokens_in_context
|
|
||||||
- max_chunks
|
|
||||||
- chunk_template
|
|
||||||
title: RAGQueryConfig
|
|
||||||
description: >-
|
|
||||||
Configuration for the RAG query generation.
|
|
||||||
RAGSearchMode:
|
|
||||||
type: string
|
|
||||||
enum:
|
|
||||||
- vector
|
|
||||||
- keyword
|
|
||||||
- hybrid
|
|
||||||
title: RAGSearchMode
|
|
||||||
description: >-
|
|
||||||
Search modes for RAG query retrieval: - VECTOR: Uses vector similarity search
|
|
||||||
for semantic matching - KEYWORD: Uses keyword-based search for exact matching
|
|
||||||
- HYBRID: Combines both vector and keyword search for better results
|
|
||||||
RRFRanker:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
type:
|
|
||||||
type: string
|
|
||||||
const: rrf
|
|
||||||
default: rrf
|
|
||||||
description: The type of ranker, always "rrf"
|
|
||||||
impact_factor:
|
|
||||||
type: number
|
|
||||||
default: 60.0
|
|
||||||
description: >-
|
|
||||||
The impact factor for RRF scoring. Higher values give more weight to higher-ranked
|
|
||||||
results. Must be greater than 0
|
|
||||||
additionalProperties: false
|
|
||||||
required:
|
|
||||||
- type
|
|
||||||
- impact_factor
|
|
||||||
title: RRFRanker
|
|
||||||
description: >-
|
|
||||||
Reciprocal Rank Fusion (RRF) ranker configuration.
|
|
||||||
Ranker:
|
|
||||||
oneOf:
|
|
||||||
- $ref: '#/components/schemas/RRFRanker'
|
|
||||||
- $ref: '#/components/schemas/WeightedRanker'
|
|
||||||
discriminator:
|
|
||||||
propertyName: type
|
|
||||||
mapping:
|
|
||||||
rrf: '#/components/schemas/RRFRanker'
|
|
||||||
weighted: '#/components/schemas/WeightedRanker'
|
|
||||||
WeightedRanker:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
type:
|
|
||||||
type: string
|
|
||||||
const: weighted
|
|
||||||
default: weighted
|
|
||||||
description: The type of ranker, always "weighted"
|
|
||||||
alpha:
|
|
||||||
type: number
|
|
||||||
default: 0.5
|
|
||||||
description: >-
|
|
||||||
Weight factor between 0 and 1. 0 means only use keyword scores, 1 means
|
|
||||||
only use vector scores, values in between blend both scores.
|
|
||||||
additionalProperties: false
|
|
||||||
required:
|
|
||||||
- type
|
|
||||||
- alpha
|
|
||||||
title: WeightedRanker
|
|
||||||
description: >-
|
|
||||||
Weighted ranker configuration that combines vector and keyword scores.
|
|
||||||
QueryRequest:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
content:
|
|
||||||
$ref: '#/components/schemas/InterleavedContent'
|
|
||||||
description: >-
|
|
||||||
The query content to search for in the indexed documents
|
|
||||||
vector_store_ids:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
description: >-
|
|
||||||
List of vector database IDs to search within
|
|
||||||
query_config:
|
|
||||||
$ref: '#/components/schemas/RAGQueryConfig'
|
|
||||||
description: >-
|
|
||||||
(Optional) Configuration parameters for the query operation
|
|
||||||
additionalProperties: false
|
|
||||||
required:
|
|
||||||
- content
|
|
||||||
- vector_store_ids
|
|
||||||
title: QueryRequest
|
|
||||||
RAGQueryResult:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
content:
|
|
||||||
$ref: '#/components/schemas/InterleavedContent'
|
|
||||||
description: >-
|
|
||||||
(Optional) The retrieved content from the query
|
|
||||||
metadata:
|
|
||||||
type: object
|
|
||||||
additionalProperties:
|
|
||||||
oneOf:
|
|
||||||
- type: 'null'
|
|
||||||
- type: boolean
|
|
||||||
- type: number
|
|
||||||
- type: string
|
|
||||||
- type: array
|
|
||||||
- type: object
|
|
||||||
description: >-
|
|
||||||
Additional metadata about the query result
|
|
||||||
additionalProperties: false
|
|
||||||
required:
|
|
||||||
- metadata
|
|
||||||
title: RAGQueryResult
|
|
||||||
description: >-
|
|
||||||
Result of a RAG query containing retrieved content and metadata.
|
|
||||||
ToolGroup:
|
ToolGroup:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@ spec:
|
||||||
|
|
||||||
# Navigate to the UI directory
|
# Navigate to the UI directory
|
||||||
echo "Navigating to UI directory..."
|
echo "Navigating to UI directory..."
|
||||||
cd /app/llama_stack/ui
|
cd /app/llama_stack_ui
|
||||||
|
|
||||||
# Check if package.json exists
|
# Check if package.json exists
|
||||||
if [ ! -f "package.json" ]; then
|
if [ ! -f "package.json" ]; then
|
||||||
|
|
|
||||||
|
|
@ -196,16 +196,10 @@ def _get_endpoint_functions(
|
||||||
def _get_defining_class(member_fn: str, derived_cls: type) -> type:
|
def _get_defining_class(member_fn: str, derived_cls: type) -> type:
|
||||||
"Find the class in which a member function is first defined in a class inheritance hierarchy."
|
"Find the class in which a member function is first defined in a class inheritance hierarchy."
|
||||||
|
|
||||||
# This import must be dynamic here
|
|
||||||
from llama_stack.apis.tools import RAGToolRuntime, ToolRuntime
|
|
||||||
|
|
||||||
# iterate in reverse member resolution order to find most specific class first
|
# iterate in reverse member resolution order to find most specific class first
|
||||||
for cls in reversed(inspect.getmro(derived_cls)):
|
for cls in reversed(inspect.getmro(derived_cls)):
|
||||||
for name, _ in inspect.getmembers(cls, inspect.isfunction):
|
for name, _ in inspect.getmembers(cls, inspect.isfunction):
|
||||||
if name == member_fn:
|
if name == member_fn:
|
||||||
# HACK ALERT
|
|
||||||
if cls == RAGToolRuntime:
|
|
||||||
return ToolRuntime
|
|
||||||
return cls
|
return cls
|
||||||
|
|
||||||
raise ValidationError(
|
raise ValidationError(
|
||||||
|
|
|
||||||
13724
docs/static/llama-stack-spec.html
vendored
13724
docs/static/llama-stack-spec.html
vendored
File diff suppressed because it is too large
Load diff
331
docs/static/llama-stack-spec.yaml
vendored
331
docs/static/llama-stack-spec.yaml
vendored
|
|
@ -2052,69 +2052,6 @@ paths:
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/URL'
|
$ref: '#/components/schemas/URL'
|
||||||
deprecated: false
|
deprecated: false
|
||||||
/v1/tool-runtime/rag-tool/insert:
|
|
||||||
post:
|
|
||||||
responses:
|
|
||||||
'200':
|
|
||||||
description: OK
|
|
||||||
'400':
|
|
||||||
$ref: '#/components/responses/BadRequest400'
|
|
||||||
'429':
|
|
||||||
$ref: >-
|
|
||||||
#/components/responses/TooManyRequests429
|
|
||||||
'500':
|
|
||||||
$ref: >-
|
|
||||||
#/components/responses/InternalServerError500
|
|
||||||
default:
|
|
||||||
$ref: '#/components/responses/DefaultError'
|
|
||||||
tags:
|
|
||||||
- ToolRuntime
|
|
||||||
summary: >-
|
|
||||||
Index documents so they can be used by the RAG system.
|
|
||||||
description: >-
|
|
||||||
Index documents so they can be used by the RAG system.
|
|
||||||
parameters: []
|
|
||||||
requestBody:
|
|
||||||
content:
|
|
||||||
application/json:
|
|
||||||
schema:
|
|
||||||
$ref: '#/components/schemas/InsertRequest'
|
|
||||||
required: true
|
|
||||||
deprecated: false
|
|
||||||
/v1/tool-runtime/rag-tool/query:
|
|
||||||
post:
|
|
||||||
responses:
|
|
||||||
'200':
|
|
||||||
description: >-
|
|
||||||
RAGQueryResult containing the retrieved content and metadata
|
|
||||||
content:
|
|
||||||
application/json:
|
|
||||||
schema:
|
|
||||||
$ref: '#/components/schemas/RAGQueryResult'
|
|
||||||
'400':
|
|
||||||
$ref: '#/components/responses/BadRequest400'
|
|
||||||
'429':
|
|
||||||
$ref: >-
|
|
||||||
#/components/responses/TooManyRequests429
|
|
||||||
'500':
|
|
||||||
$ref: >-
|
|
||||||
#/components/responses/InternalServerError500
|
|
||||||
default:
|
|
||||||
$ref: '#/components/responses/DefaultError'
|
|
||||||
tags:
|
|
||||||
- ToolRuntime
|
|
||||||
summary: >-
|
|
||||||
Query the RAG system for context; typically invoked by the agent.
|
|
||||||
description: >-
|
|
||||||
Query the RAG system for context; typically invoked by the agent.
|
|
||||||
parameters: []
|
|
||||||
requestBody:
|
|
||||||
content:
|
|
||||||
application/json:
|
|
||||||
schema:
|
|
||||||
$ref: '#/components/schemas/QueryRequest'
|
|
||||||
required: true
|
|
||||||
deprecated: false
|
|
||||||
/v1/toolgroups:
|
/v1/toolgroups:
|
||||||
get:
|
get:
|
||||||
responses:
|
responses:
|
||||||
|
|
@ -8917,274 +8854,6 @@ components:
|
||||||
title: ListToolDefsResponse
|
title: ListToolDefsResponse
|
||||||
description: >-
|
description: >-
|
||||||
Response containing a list of tool definitions.
|
Response containing a list of tool definitions.
|
||||||
RAGDocument:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
document_id:
|
|
||||||
type: string
|
|
||||||
description: The unique identifier for the document.
|
|
||||||
content:
|
|
||||||
oneOf:
|
|
||||||
- type: string
|
|
||||||
- $ref: '#/components/schemas/InterleavedContentItem'
|
|
||||||
- type: array
|
|
||||||
items:
|
|
||||||
$ref: '#/components/schemas/InterleavedContentItem'
|
|
||||||
- $ref: '#/components/schemas/URL'
|
|
||||||
description: The content of the document.
|
|
||||||
mime_type:
|
|
||||||
type: string
|
|
||||||
description: The MIME type of the document.
|
|
||||||
metadata:
|
|
||||||
type: object
|
|
||||||
additionalProperties:
|
|
||||||
oneOf:
|
|
||||||
- type: 'null'
|
|
||||||
- type: boolean
|
|
||||||
- type: number
|
|
||||||
- type: string
|
|
||||||
- type: array
|
|
||||||
- type: object
|
|
||||||
description: Additional metadata for the document.
|
|
||||||
additionalProperties: false
|
|
||||||
required:
|
|
||||||
- document_id
|
|
||||||
- content
|
|
||||||
- metadata
|
|
||||||
title: RAGDocument
|
|
||||||
description: >-
|
|
||||||
A document to be used for document ingestion in the RAG Tool.
|
|
||||||
InsertRequest:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
documents:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
$ref: '#/components/schemas/RAGDocument'
|
|
||||||
description: >-
|
|
||||||
List of documents to index in the RAG system
|
|
||||||
vector_store_id:
|
|
||||||
type: string
|
|
||||||
description: >-
|
|
||||||
ID of the vector database to store the document embeddings
|
|
||||||
chunk_size_in_tokens:
|
|
||||||
type: integer
|
|
||||||
description: >-
|
|
||||||
(Optional) Size in tokens for document chunking during indexing
|
|
||||||
additionalProperties: false
|
|
||||||
required:
|
|
||||||
- documents
|
|
||||||
- vector_store_id
|
|
||||||
- chunk_size_in_tokens
|
|
||||||
title: InsertRequest
|
|
||||||
DefaultRAGQueryGeneratorConfig:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
type:
|
|
||||||
type: string
|
|
||||||
const: default
|
|
||||||
default: default
|
|
||||||
description: >-
|
|
||||||
Type of query generator, always 'default'
|
|
||||||
separator:
|
|
||||||
type: string
|
|
||||||
default: ' '
|
|
||||||
description: >-
|
|
||||||
String separator used to join query terms
|
|
||||||
additionalProperties: false
|
|
||||||
required:
|
|
||||||
- type
|
|
||||||
- separator
|
|
||||||
title: DefaultRAGQueryGeneratorConfig
|
|
||||||
description: >-
|
|
||||||
Configuration for the default RAG query generator.
|
|
||||||
LLMRAGQueryGeneratorConfig:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
type:
|
|
||||||
type: string
|
|
||||||
const: llm
|
|
||||||
default: llm
|
|
||||||
description: Type of query generator, always 'llm'
|
|
||||||
model:
|
|
||||||
type: string
|
|
||||||
description: >-
|
|
||||||
Name of the language model to use for query generation
|
|
||||||
template:
|
|
||||||
type: string
|
|
||||||
description: >-
|
|
||||||
Template string for formatting the query generation prompt
|
|
||||||
additionalProperties: false
|
|
||||||
required:
|
|
||||||
- type
|
|
||||||
- model
|
|
||||||
- template
|
|
||||||
title: LLMRAGQueryGeneratorConfig
|
|
||||||
description: >-
|
|
||||||
Configuration for the LLM-based RAG query generator.
|
|
||||||
RAGQueryConfig:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
query_generator_config:
|
|
||||||
oneOf:
|
|
||||||
- $ref: '#/components/schemas/DefaultRAGQueryGeneratorConfig'
|
|
||||||
- $ref: '#/components/schemas/LLMRAGQueryGeneratorConfig'
|
|
||||||
discriminator:
|
|
||||||
propertyName: type
|
|
||||||
mapping:
|
|
||||||
default: '#/components/schemas/DefaultRAGQueryGeneratorConfig'
|
|
||||||
llm: '#/components/schemas/LLMRAGQueryGeneratorConfig'
|
|
||||||
description: Configuration for the query generator.
|
|
||||||
max_tokens_in_context:
|
|
||||||
type: integer
|
|
||||||
default: 4096
|
|
||||||
description: Maximum number of tokens in the context.
|
|
||||||
max_chunks:
|
|
||||||
type: integer
|
|
||||||
default: 5
|
|
||||||
description: Maximum number of chunks to retrieve.
|
|
||||||
chunk_template:
|
|
||||||
type: string
|
|
||||||
default: >
|
|
||||||
Result {index}
|
|
||||||
|
|
||||||
Content: {chunk.content}
|
|
||||||
|
|
||||||
Metadata: {metadata}
|
|
||||||
description: >-
|
|
||||||
Template for formatting each retrieved chunk in the context. Available
|
|
||||||
placeholders: {index} (1-based chunk ordinal), {chunk.content} (chunk
|
|
||||||
content string), {metadata} (chunk metadata dict). Default: "Result {index}\nContent:
|
|
||||||
{chunk.content}\nMetadata: {metadata}\n"
|
|
||||||
mode:
|
|
||||||
$ref: '#/components/schemas/RAGSearchMode'
|
|
||||||
default: vector
|
|
||||||
description: >-
|
|
||||||
Search mode for retrieval—either "vector", "keyword", or "hybrid". Default
|
|
||||||
"vector".
|
|
||||||
ranker:
|
|
||||||
$ref: '#/components/schemas/Ranker'
|
|
||||||
description: >-
|
|
||||||
Configuration for the ranker to use in hybrid search. Defaults to RRF
|
|
||||||
ranker.
|
|
||||||
additionalProperties: false
|
|
||||||
required:
|
|
||||||
- query_generator_config
|
|
||||||
- max_tokens_in_context
|
|
||||||
- max_chunks
|
|
||||||
- chunk_template
|
|
||||||
title: RAGQueryConfig
|
|
||||||
description: >-
|
|
||||||
Configuration for the RAG query generation.
|
|
||||||
RAGSearchMode:
|
|
||||||
type: string
|
|
||||||
enum:
|
|
||||||
- vector
|
|
||||||
- keyword
|
|
||||||
- hybrid
|
|
||||||
title: RAGSearchMode
|
|
||||||
description: >-
|
|
||||||
Search modes for RAG query retrieval: - VECTOR: Uses vector similarity search
|
|
||||||
for semantic matching - KEYWORD: Uses keyword-based search for exact matching
|
|
||||||
- HYBRID: Combines both vector and keyword search for better results
|
|
||||||
RRFRanker:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
type:
|
|
||||||
type: string
|
|
||||||
const: rrf
|
|
||||||
default: rrf
|
|
||||||
description: The type of ranker, always "rrf"
|
|
||||||
impact_factor:
|
|
||||||
type: number
|
|
||||||
default: 60.0
|
|
||||||
description: >-
|
|
||||||
The impact factor for RRF scoring. Higher values give more weight to higher-ranked
|
|
||||||
results. Must be greater than 0
|
|
||||||
additionalProperties: false
|
|
||||||
required:
|
|
||||||
- type
|
|
||||||
- impact_factor
|
|
||||||
title: RRFRanker
|
|
||||||
description: >-
|
|
||||||
Reciprocal Rank Fusion (RRF) ranker configuration.
|
|
||||||
Ranker:
|
|
||||||
oneOf:
|
|
||||||
- $ref: '#/components/schemas/RRFRanker'
|
|
||||||
- $ref: '#/components/schemas/WeightedRanker'
|
|
||||||
discriminator:
|
|
||||||
propertyName: type
|
|
||||||
mapping:
|
|
||||||
rrf: '#/components/schemas/RRFRanker'
|
|
||||||
weighted: '#/components/schemas/WeightedRanker'
|
|
||||||
WeightedRanker:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
type:
|
|
||||||
type: string
|
|
||||||
const: weighted
|
|
||||||
default: weighted
|
|
||||||
description: The type of ranker, always "weighted"
|
|
||||||
alpha:
|
|
||||||
type: number
|
|
||||||
default: 0.5
|
|
||||||
description: >-
|
|
||||||
Weight factor between 0 and 1. 0 means only use keyword scores, 1 means
|
|
||||||
only use vector scores, values in between blend both scores.
|
|
||||||
additionalProperties: false
|
|
||||||
required:
|
|
||||||
- type
|
|
||||||
- alpha
|
|
||||||
title: WeightedRanker
|
|
||||||
description: >-
|
|
||||||
Weighted ranker configuration that combines vector and keyword scores.
|
|
||||||
QueryRequest:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
content:
|
|
||||||
$ref: '#/components/schemas/InterleavedContent'
|
|
||||||
description: >-
|
|
||||||
The query content to search for in the indexed documents
|
|
||||||
vector_store_ids:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
description: >-
|
|
||||||
List of vector database IDs to search within
|
|
||||||
query_config:
|
|
||||||
$ref: '#/components/schemas/RAGQueryConfig'
|
|
||||||
description: >-
|
|
||||||
(Optional) Configuration parameters for the query operation
|
|
||||||
additionalProperties: false
|
|
||||||
required:
|
|
||||||
- content
|
|
||||||
- vector_store_ids
|
|
||||||
title: QueryRequest
|
|
||||||
RAGQueryResult:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
content:
|
|
||||||
$ref: '#/components/schemas/InterleavedContent'
|
|
||||||
description: >-
|
|
||||||
(Optional) The retrieved content from the query
|
|
||||||
metadata:
|
|
||||||
type: object
|
|
||||||
additionalProperties:
|
|
||||||
oneOf:
|
|
||||||
- type: 'null'
|
|
||||||
- type: boolean
|
|
||||||
- type: number
|
|
||||||
- type: string
|
|
||||||
- type: array
|
|
||||||
- type: object
|
|
||||||
description: >-
|
|
||||||
Additional metadata about the query result
|
|
||||||
additionalProperties: false
|
|
||||||
required:
|
|
||||||
- metadata
|
|
||||||
title: RAGQueryResult
|
|
||||||
description: >-
|
|
||||||
Result of a RAG query containing retrieved content and metadata.
|
|
||||||
ToolGroup:
|
ToolGroup:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
|
|
|
||||||
331
docs/static/stainless-llama-stack-spec.yaml
vendored
331
docs/static/stainless-llama-stack-spec.yaml
vendored
|
|
@ -2055,69 +2055,6 @@ paths:
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/URL'
|
$ref: '#/components/schemas/URL'
|
||||||
deprecated: false
|
deprecated: false
|
||||||
/v1/tool-runtime/rag-tool/insert:
|
|
||||||
post:
|
|
||||||
responses:
|
|
||||||
'200':
|
|
||||||
description: OK
|
|
||||||
'400':
|
|
||||||
$ref: '#/components/responses/BadRequest400'
|
|
||||||
'429':
|
|
||||||
$ref: >-
|
|
||||||
#/components/responses/TooManyRequests429
|
|
||||||
'500':
|
|
||||||
$ref: >-
|
|
||||||
#/components/responses/InternalServerError500
|
|
||||||
default:
|
|
||||||
$ref: '#/components/responses/DefaultError'
|
|
||||||
tags:
|
|
||||||
- ToolRuntime
|
|
||||||
summary: >-
|
|
||||||
Index documents so they can be used by the RAG system.
|
|
||||||
description: >-
|
|
||||||
Index documents so they can be used by the RAG system.
|
|
||||||
parameters: []
|
|
||||||
requestBody:
|
|
||||||
content:
|
|
||||||
application/json:
|
|
||||||
schema:
|
|
||||||
$ref: '#/components/schemas/InsertRequest'
|
|
||||||
required: true
|
|
||||||
deprecated: false
|
|
||||||
/v1/tool-runtime/rag-tool/query:
|
|
||||||
post:
|
|
||||||
responses:
|
|
||||||
'200':
|
|
||||||
description: >-
|
|
||||||
RAGQueryResult containing the retrieved content and metadata
|
|
||||||
content:
|
|
||||||
application/json:
|
|
||||||
schema:
|
|
||||||
$ref: '#/components/schemas/RAGQueryResult'
|
|
||||||
'400':
|
|
||||||
$ref: '#/components/responses/BadRequest400'
|
|
||||||
'429':
|
|
||||||
$ref: >-
|
|
||||||
#/components/responses/TooManyRequests429
|
|
||||||
'500':
|
|
||||||
$ref: >-
|
|
||||||
#/components/responses/InternalServerError500
|
|
||||||
default:
|
|
||||||
$ref: '#/components/responses/DefaultError'
|
|
||||||
tags:
|
|
||||||
- ToolRuntime
|
|
||||||
summary: >-
|
|
||||||
Query the RAG system for context; typically invoked by the agent.
|
|
||||||
description: >-
|
|
||||||
Query the RAG system for context; typically invoked by the agent.
|
|
||||||
parameters: []
|
|
||||||
requestBody:
|
|
||||||
content:
|
|
||||||
application/json:
|
|
||||||
schema:
|
|
||||||
$ref: '#/components/schemas/QueryRequest'
|
|
||||||
required: true
|
|
||||||
deprecated: false
|
|
||||||
/v1/toolgroups:
|
/v1/toolgroups:
|
||||||
get:
|
get:
|
||||||
responses:
|
responses:
|
||||||
|
|
@ -9633,274 +9570,6 @@ components:
|
||||||
title: ListToolDefsResponse
|
title: ListToolDefsResponse
|
||||||
description: >-
|
description: >-
|
||||||
Response containing a list of tool definitions.
|
Response containing a list of tool definitions.
|
||||||
RAGDocument:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
document_id:
|
|
||||||
type: string
|
|
||||||
description: The unique identifier for the document.
|
|
||||||
content:
|
|
||||||
oneOf:
|
|
||||||
- type: string
|
|
||||||
- $ref: '#/components/schemas/InterleavedContentItem'
|
|
||||||
- type: array
|
|
||||||
items:
|
|
||||||
$ref: '#/components/schemas/InterleavedContentItem'
|
|
||||||
- $ref: '#/components/schemas/URL'
|
|
||||||
description: The content of the document.
|
|
||||||
mime_type:
|
|
||||||
type: string
|
|
||||||
description: The MIME type of the document.
|
|
||||||
metadata:
|
|
||||||
type: object
|
|
||||||
additionalProperties:
|
|
||||||
oneOf:
|
|
||||||
- type: 'null'
|
|
||||||
- type: boolean
|
|
||||||
- type: number
|
|
||||||
- type: string
|
|
||||||
- type: array
|
|
||||||
- type: object
|
|
||||||
description: Additional metadata for the document.
|
|
||||||
additionalProperties: false
|
|
||||||
required:
|
|
||||||
- document_id
|
|
||||||
- content
|
|
||||||
- metadata
|
|
||||||
title: RAGDocument
|
|
||||||
description: >-
|
|
||||||
A document to be used for document ingestion in the RAG Tool.
|
|
||||||
InsertRequest:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
documents:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
$ref: '#/components/schemas/RAGDocument'
|
|
||||||
description: >-
|
|
||||||
List of documents to index in the RAG system
|
|
||||||
vector_store_id:
|
|
||||||
type: string
|
|
||||||
description: >-
|
|
||||||
ID of the vector database to store the document embeddings
|
|
||||||
chunk_size_in_tokens:
|
|
||||||
type: integer
|
|
||||||
description: >-
|
|
||||||
(Optional) Size in tokens for document chunking during indexing
|
|
||||||
additionalProperties: false
|
|
||||||
required:
|
|
||||||
- documents
|
|
||||||
- vector_store_id
|
|
||||||
- chunk_size_in_tokens
|
|
||||||
title: InsertRequest
|
|
||||||
DefaultRAGQueryGeneratorConfig:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
type:
|
|
||||||
type: string
|
|
||||||
const: default
|
|
||||||
default: default
|
|
||||||
description: >-
|
|
||||||
Type of query generator, always 'default'
|
|
||||||
separator:
|
|
||||||
type: string
|
|
||||||
default: ' '
|
|
||||||
description: >-
|
|
||||||
String separator used to join query terms
|
|
||||||
additionalProperties: false
|
|
||||||
required:
|
|
||||||
- type
|
|
||||||
- separator
|
|
||||||
title: DefaultRAGQueryGeneratorConfig
|
|
||||||
description: >-
|
|
||||||
Configuration for the default RAG query generator.
|
|
||||||
LLMRAGQueryGeneratorConfig:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
type:
|
|
||||||
type: string
|
|
||||||
const: llm
|
|
||||||
default: llm
|
|
||||||
description: Type of query generator, always 'llm'
|
|
||||||
model:
|
|
||||||
type: string
|
|
||||||
description: >-
|
|
||||||
Name of the language model to use for query generation
|
|
||||||
template:
|
|
||||||
type: string
|
|
||||||
description: >-
|
|
||||||
Template string for formatting the query generation prompt
|
|
||||||
additionalProperties: false
|
|
||||||
required:
|
|
||||||
- type
|
|
||||||
- model
|
|
||||||
- template
|
|
||||||
title: LLMRAGQueryGeneratorConfig
|
|
||||||
description: >-
|
|
||||||
Configuration for the LLM-based RAG query generator.
|
|
||||||
RAGQueryConfig:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
query_generator_config:
|
|
||||||
oneOf:
|
|
||||||
- $ref: '#/components/schemas/DefaultRAGQueryGeneratorConfig'
|
|
||||||
- $ref: '#/components/schemas/LLMRAGQueryGeneratorConfig'
|
|
||||||
discriminator:
|
|
||||||
propertyName: type
|
|
||||||
mapping:
|
|
||||||
default: '#/components/schemas/DefaultRAGQueryGeneratorConfig'
|
|
||||||
llm: '#/components/schemas/LLMRAGQueryGeneratorConfig'
|
|
||||||
description: Configuration for the query generator.
|
|
||||||
max_tokens_in_context:
|
|
||||||
type: integer
|
|
||||||
default: 4096
|
|
||||||
description: Maximum number of tokens in the context.
|
|
||||||
max_chunks:
|
|
||||||
type: integer
|
|
||||||
default: 5
|
|
||||||
description: Maximum number of chunks to retrieve.
|
|
||||||
chunk_template:
|
|
||||||
type: string
|
|
||||||
default: >
|
|
||||||
Result {index}
|
|
||||||
|
|
||||||
Content: {chunk.content}
|
|
||||||
|
|
||||||
Metadata: {metadata}
|
|
||||||
description: >-
|
|
||||||
Template for formatting each retrieved chunk in the context. Available
|
|
||||||
placeholders: {index} (1-based chunk ordinal), {chunk.content} (chunk
|
|
||||||
content string), {metadata} (chunk metadata dict). Default: "Result {index}\nContent:
|
|
||||||
{chunk.content}\nMetadata: {metadata}\n"
|
|
||||||
mode:
|
|
||||||
$ref: '#/components/schemas/RAGSearchMode'
|
|
||||||
default: vector
|
|
||||||
description: >-
|
|
||||||
Search mode for retrieval—either "vector", "keyword", or "hybrid". Default
|
|
||||||
"vector".
|
|
||||||
ranker:
|
|
||||||
$ref: '#/components/schemas/Ranker'
|
|
||||||
description: >-
|
|
||||||
Configuration for the ranker to use in hybrid search. Defaults to RRF
|
|
||||||
ranker.
|
|
||||||
additionalProperties: false
|
|
||||||
required:
|
|
||||||
- query_generator_config
|
|
||||||
- max_tokens_in_context
|
|
||||||
- max_chunks
|
|
||||||
- chunk_template
|
|
||||||
title: RAGQueryConfig
|
|
||||||
description: >-
|
|
||||||
Configuration for the RAG query generation.
|
|
||||||
RAGSearchMode:
|
|
||||||
type: string
|
|
||||||
enum:
|
|
||||||
- vector
|
|
||||||
- keyword
|
|
||||||
- hybrid
|
|
||||||
title: RAGSearchMode
|
|
||||||
description: >-
|
|
||||||
Search modes for RAG query retrieval: - VECTOR: Uses vector similarity search
|
|
||||||
for semantic matching - KEYWORD: Uses keyword-based search for exact matching
|
|
||||||
- HYBRID: Combines both vector and keyword search for better results
|
|
||||||
RRFRanker:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
type:
|
|
||||||
type: string
|
|
||||||
const: rrf
|
|
||||||
default: rrf
|
|
||||||
description: The type of ranker, always "rrf"
|
|
||||||
impact_factor:
|
|
||||||
type: number
|
|
||||||
default: 60.0
|
|
||||||
description: >-
|
|
||||||
The impact factor for RRF scoring. Higher values give more weight to higher-ranked
|
|
||||||
results. Must be greater than 0
|
|
||||||
additionalProperties: false
|
|
||||||
required:
|
|
||||||
- type
|
|
||||||
- impact_factor
|
|
||||||
title: RRFRanker
|
|
||||||
description: >-
|
|
||||||
Reciprocal Rank Fusion (RRF) ranker configuration.
|
|
||||||
Ranker:
|
|
||||||
oneOf:
|
|
||||||
- $ref: '#/components/schemas/RRFRanker'
|
|
||||||
- $ref: '#/components/schemas/WeightedRanker'
|
|
||||||
discriminator:
|
|
||||||
propertyName: type
|
|
||||||
mapping:
|
|
||||||
rrf: '#/components/schemas/RRFRanker'
|
|
||||||
weighted: '#/components/schemas/WeightedRanker'
|
|
||||||
WeightedRanker:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
type:
|
|
||||||
type: string
|
|
||||||
const: weighted
|
|
||||||
default: weighted
|
|
||||||
description: The type of ranker, always "weighted"
|
|
||||||
alpha:
|
|
||||||
type: number
|
|
||||||
default: 0.5
|
|
||||||
description: >-
|
|
||||||
Weight factor between 0 and 1. 0 means only use keyword scores, 1 means
|
|
||||||
only use vector scores, values in between blend both scores.
|
|
||||||
additionalProperties: false
|
|
||||||
required:
|
|
||||||
- type
|
|
||||||
- alpha
|
|
||||||
title: WeightedRanker
|
|
||||||
description: >-
|
|
||||||
Weighted ranker configuration that combines vector and keyword scores.
|
|
||||||
QueryRequest:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
content:
|
|
||||||
$ref: '#/components/schemas/InterleavedContent'
|
|
||||||
description: >-
|
|
||||||
The query content to search for in the indexed documents
|
|
||||||
vector_store_ids:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
description: >-
|
|
||||||
List of vector database IDs to search within
|
|
||||||
query_config:
|
|
||||||
$ref: '#/components/schemas/RAGQueryConfig'
|
|
||||||
description: >-
|
|
||||||
(Optional) Configuration parameters for the query operation
|
|
||||||
additionalProperties: false
|
|
||||||
required:
|
|
||||||
- content
|
|
||||||
- vector_store_ids
|
|
||||||
title: QueryRequest
|
|
||||||
RAGQueryResult:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
content:
|
|
||||||
$ref: '#/components/schemas/InterleavedContent'
|
|
||||||
description: >-
|
|
||||||
(Optional) The retrieved content from the query
|
|
||||||
metadata:
|
|
||||||
type: object
|
|
||||||
additionalProperties:
|
|
||||||
oneOf:
|
|
||||||
- type: 'null'
|
|
||||||
- type: boolean
|
|
||||||
- type: number
|
|
||||||
- type: string
|
|
||||||
- type: array
|
|
||||||
- type: object
|
|
||||||
description: >-
|
|
||||||
Additional metadata about the query result
|
|
||||||
additionalProperties: false
|
|
||||||
required:
|
|
||||||
- metadata
|
|
||||||
title: RAGQueryResult
|
|
||||||
description: >-
|
|
||||||
Result of a RAG query containing retrieved content and metadata.
|
|
||||||
ToolGroup:
|
ToolGroup:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
# the root directory of this source tree.
|
# the root directory of this source tree.
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
cd src/llama_stack/ui
|
cd src/llama_stack_ui
|
||||||
|
|
||||||
if [ ! -d node_modules ] || [ ! -x node_modules/.bin/prettier ] || [ ! -x node_modules/.bin/eslint ]; then
|
if [ ! -d node_modules ] || [ ! -x node_modules/.bin/prettier ] || [ ! -x node_modules/.bin/eslint ]; then
|
||||||
echo "UI dependencies not installed, skipping prettier/linter check"
|
echo "UI dependencies not installed, skipping prettier/linter check"
|
||||||
|
|
|
||||||
|
|
@ -5,18 +5,13 @@
|
||||||
# the root directory of this source tree.
|
# the root directory of this source tree.
|
||||||
|
|
||||||
from enum import Enum, StrEnum
|
from enum import Enum, StrEnum
|
||||||
from typing import Annotated, Any, Literal, Protocol
|
from typing import Annotated, Any, Literal
|
||||||
|
|
||||||
from pydantic import BaseModel, Field, field_validator
|
from pydantic import BaseModel, Field, field_validator
|
||||||
from typing_extensions import runtime_checkable
|
|
||||||
|
|
||||||
from llama_stack.apis.common.content_types import URL, InterleavedContent
|
from llama_stack.apis.common.content_types import URL, InterleavedContent
|
||||||
from llama_stack.apis.common.tracing import trace_protocol
|
|
||||||
from llama_stack.apis.version import LLAMA_STACK_API_V1
|
|
||||||
from llama_stack.schema_utils import json_schema_type, register_schema, webmethod
|
|
||||||
|
|
||||||
|
|
||||||
@json_schema_type
|
|
||||||
class RRFRanker(BaseModel):
|
class RRFRanker(BaseModel):
|
||||||
"""
|
"""
|
||||||
Reciprocal Rank Fusion (RRF) ranker configuration.
|
Reciprocal Rank Fusion (RRF) ranker configuration.
|
||||||
|
|
@ -30,7 +25,6 @@ class RRFRanker(BaseModel):
|
||||||
impact_factor: float = Field(default=60.0, gt=0.0) # default of 60 for optimal performance
|
impact_factor: float = Field(default=60.0, gt=0.0) # default of 60 for optimal performance
|
||||||
|
|
||||||
|
|
||||||
@json_schema_type
|
|
||||||
class WeightedRanker(BaseModel):
|
class WeightedRanker(BaseModel):
|
||||||
"""
|
"""
|
||||||
Weighted ranker configuration that combines vector and keyword scores.
|
Weighted ranker configuration that combines vector and keyword scores.
|
||||||
|
|
@ -55,10 +49,8 @@ Ranker = Annotated[
|
||||||
RRFRanker | WeightedRanker,
|
RRFRanker | WeightedRanker,
|
||||||
Field(discriminator="type"),
|
Field(discriminator="type"),
|
||||||
]
|
]
|
||||||
register_schema(Ranker, name="Ranker")
|
|
||||||
|
|
||||||
|
|
||||||
@json_schema_type
|
|
||||||
class RAGDocument(BaseModel):
|
class RAGDocument(BaseModel):
|
||||||
"""
|
"""
|
||||||
A document to be used for document ingestion in the RAG Tool.
|
A document to be used for document ingestion in the RAG Tool.
|
||||||
|
|
@ -75,7 +67,6 @@ class RAGDocument(BaseModel):
|
||||||
metadata: dict[str, Any] = Field(default_factory=dict)
|
metadata: dict[str, Any] = Field(default_factory=dict)
|
||||||
|
|
||||||
|
|
||||||
@json_schema_type
|
|
||||||
class RAGQueryResult(BaseModel):
|
class RAGQueryResult(BaseModel):
|
||||||
"""Result of a RAG query containing retrieved content and metadata.
|
"""Result of a RAG query containing retrieved content and metadata.
|
||||||
|
|
||||||
|
|
@ -87,7 +78,6 @@ class RAGQueryResult(BaseModel):
|
||||||
metadata: dict[str, Any] = Field(default_factory=dict)
|
metadata: dict[str, Any] = Field(default_factory=dict)
|
||||||
|
|
||||||
|
|
||||||
@json_schema_type
|
|
||||||
class RAGQueryGenerator(Enum):
|
class RAGQueryGenerator(Enum):
|
||||||
"""Types of query generators for RAG systems.
|
"""Types of query generators for RAG systems.
|
||||||
|
|
||||||
|
|
@ -101,7 +91,6 @@ class RAGQueryGenerator(Enum):
|
||||||
custom = "custom"
|
custom = "custom"
|
||||||
|
|
||||||
|
|
||||||
@json_schema_type
|
|
||||||
class RAGSearchMode(StrEnum):
|
class RAGSearchMode(StrEnum):
|
||||||
"""
|
"""
|
||||||
Search modes for RAG query retrieval:
|
Search modes for RAG query retrieval:
|
||||||
|
|
@ -115,7 +104,6 @@ class RAGSearchMode(StrEnum):
|
||||||
HYBRID = "hybrid"
|
HYBRID = "hybrid"
|
||||||
|
|
||||||
|
|
||||||
@json_schema_type
|
|
||||||
class DefaultRAGQueryGeneratorConfig(BaseModel):
|
class DefaultRAGQueryGeneratorConfig(BaseModel):
|
||||||
"""Configuration for the default RAG query generator.
|
"""Configuration for the default RAG query generator.
|
||||||
|
|
||||||
|
|
@ -127,7 +115,6 @@ class DefaultRAGQueryGeneratorConfig(BaseModel):
|
||||||
separator: str = " "
|
separator: str = " "
|
||||||
|
|
||||||
|
|
||||||
@json_schema_type
|
|
||||||
class LLMRAGQueryGeneratorConfig(BaseModel):
|
class LLMRAGQueryGeneratorConfig(BaseModel):
|
||||||
"""Configuration for the LLM-based RAG query generator.
|
"""Configuration for the LLM-based RAG query generator.
|
||||||
|
|
||||||
|
|
@ -145,10 +132,8 @@ RAGQueryGeneratorConfig = Annotated[
|
||||||
DefaultRAGQueryGeneratorConfig | LLMRAGQueryGeneratorConfig,
|
DefaultRAGQueryGeneratorConfig | LLMRAGQueryGeneratorConfig,
|
||||||
Field(discriminator="type"),
|
Field(discriminator="type"),
|
||||||
]
|
]
|
||||||
register_schema(RAGQueryGeneratorConfig, name="RAGQueryGeneratorConfig")
|
|
||||||
|
|
||||||
|
|
||||||
@json_schema_type
|
|
||||||
class RAGQueryConfig(BaseModel):
|
class RAGQueryConfig(BaseModel):
|
||||||
"""
|
"""
|
||||||
Configuration for the RAG query generation.
|
Configuration for the RAG query generation.
|
||||||
|
|
@ -181,38 +166,3 @@ class RAGQueryConfig(BaseModel):
|
||||||
if len(v) == 0:
|
if len(v) == 0:
|
||||||
raise ValueError("chunk_template must not be empty")
|
raise ValueError("chunk_template must not be empty")
|
||||||
return v
|
return v
|
||||||
|
|
||||||
|
|
||||||
@runtime_checkable
|
|
||||||
@trace_protocol
|
|
||||||
class RAGToolRuntime(Protocol):
|
|
||||||
@webmethod(route="/tool-runtime/rag-tool/insert", method="POST", level=LLAMA_STACK_API_V1)
|
|
||||||
async def insert(
|
|
||||||
self,
|
|
||||||
documents: list[RAGDocument],
|
|
||||||
vector_store_id: str,
|
|
||||||
chunk_size_in_tokens: int = 512,
|
|
||||||
) -> None:
|
|
||||||
"""Index documents so they can be used by the RAG system.
|
|
||||||
|
|
||||||
:param documents: List of documents to index in the RAG system
|
|
||||||
:param vector_store_id: ID of the vector database to store the document embeddings
|
|
||||||
:param chunk_size_in_tokens: (Optional) Size in tokens for document chunking during indexing
|
|
||||||
"""
|
|
||||||
...
|
|
||||||
|
|
||||||
@webmethod(route="/tool-runtime/rag-tool/query", method="POST", level=LLAMA_STACK_API_V1)
|
|
||||||
async def query(
|
|
||||||
self,
|
|
||||||
content: InterleavedContent,
|
|
||||||
vector_store_ids: list[str],
|
|
||||||
query_config: RAGQueryConfig | None = None,
|
|
||||||
) -> RAGQueryResult:
|
|
||||||
"""Query the RAG system for context; typically invoked by the agent.
|
|
||||||
|
|
||||||
:param content: The query content to search for in the indexed documents
|
|
||||||
:param vector_store_ids: List of vector database IDs to search within
|
|
||||||
:param query_config: (Optional) Configuration parameters for the query operation
|
|
||||||
:returns: RAGQueryResult containing the retrieved content and metadata
|
|
||||||
"""
|
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -16,8 +16,6 @@ from llama_stack.apis.resource import Resource, ResourceType
|
||||||
from llama_stack.apis.version import LLAMA_STACK_API_V1
|
from llama_stack.apis.version import LLAMA_STACK_API_V1
|
||||||
from llama_stack.schema_utils import json_schema_type, webmethod
|
from llama_stack.schema_utils import json_schema_type, webmethod
|
||||||
|
|
||||||
from .rag_tool import RAGToolRuntime
|
|
||||||
|
|
||||||
|
|
||||||
@json_schema_type
|
@json_schema_type
|
||||||
class ToolDef(BaseModel):
|
class ToolDef(BaseModel):
|
||||||
|
|
@ -195,8 +193,6 @@ class SpecialToolGroup(Enum):
|
||||||
class ToolRuntime(Protocol):
|
class ToolRuntime(Protocol):
|
||||||
tool_store: ToolStore | None = None
|
tool_store: ToolStore | None = None
|
||||||
|
|
||||||
rag_tool: RAGToolRuntime | None = None
|
|
||||||
|
|
||||||
# TODO: This needs to be renamed once OPEN API generator name conflict issue is fixed.
|
# TODO: This needs to be renamed once OPEN API generator name conflict issue is fixed.
|
||||||
@webmethod(route="/tool-runtime/list-tools", method="GET", level=LLAMA_STACK_API_V1)
|
@webmethod(route="/tool-runtime/list-tools", method="GET", level=LLAMA_STACK_API_V1)
|
||||||
async def list_runtime_tools(
|
async def list_runtime_tools(
|
||||||
|
|
|
||||||
|
|
@ -253,7 +253,7 @@ class StackRun(Subcommand):
|
||||||
)
|
)
|
||||||
return
|
return
|
||||||
|
|
||||||
ui_dir = REPO_ROOT / "llama_stack" / "ui"
|
ui_dir = REPO_ROOT / "llama_stack_ui"
|
||||||
logs_dir = Path("~/.llama/ui/logs").expanduser()
|
logs_dir = Path("~/.llama/ui/logs").expanduser()
|
||||||
try:
|
try:
|
||||||
# Create logs directory if it doesn't exist
|
# Create logs directory if it doesn't exist
|
||||||
|
|
|
||||||
|
|
@ -8,14 +8,9 @@ from typing import Any
|
||||||
|
|
||||||
from llama_stack.apis.common.content_types import (
|
from llama_stack.apis.common.content_types import (
|
||||||
URL,
|
URL,
|
||||||
InterleavedContent,
|
|
||||||
)
|
)
|
||||||
from llama_stack.apis.tools import (
|
from llama_stack.apis.tools import (
|
||||||
ListToolDefsResponse,
|
ListToolDefsResponse,
|
||||||
RAGDocument,
|
|
||||||
RAGQueryConfig,
|
|
||||||
RAGQueryResult,
|
|
||||||
RAGToolRuntime,
|
|
||||||
ToolRuntime,
|
ToolRuntime,
|
||||||
)
|
)
|
||||||
from llama_stack.log import get_logger
|
from llama_stack.log import get_logger
|
||||||
|
|
@ -26,36 +21,6 @@ logger = get_logger(name=__name__, category="core::routers")
|
||||||
|
|
||||||
|
|
||||||
class ToolRuntimeRouter(ToolRuntime):
|
class ToolRuntimeRouter(ToolRuntime):
|
||||||
class RagToolImpl(RAGToolRuntime):
|
|
||||||
def __init__(
|
|
||||||
self,
|
|
||||||
routing_table: ToolGroupsRoutingTable,
|
|
||||||
) -> None:
|
|
||||||
logger.debug("Initializing ToolRuntimeRouter.RagToolImpl")
|
|
||||||
self.routing_table = routing_table
|
|
||||||
|
|
||||||
async def query(
|
|
||||||
self,
|
|
||||||
content: InterleavedContent,
|
|
||||||
vector_store_ids: list[str],
|
|
||||||
query_config: RAGQueryConfig | None = None,
|
|
||||||
) -> RAGQueryResult:
|
|
||||||
logger.debug(f"ToolRuntimeRouter.RagToolImpl.query: {vector_store_ids}")
|
|
||||||
provider = await self.routing_table.get_provider_impl("knowledge_search")
|
|
||||||
return await provider.query(content, vector_store_ids, query_config)
|
|
||||||
|
|
||||||
async def insert(
|
|
||||||
self,
|
|
||||||
documents: list[RAGDocument],
|
|
||||||
vector_store_id: str,
|
|
||||||
chunk_size_in_tokens: int = 512,
|
|
||||||
) -> None:
|
|
||||||
logger.debug(
|
|
||||||
f"ToolRuntimeRouter.RagToolImpl.insert: {vector_store_id}, {len(documents)} documents, chunk_size={chunk_size_in_tokens}"
|
|
||||||
)
|
|
||||||
provider = await self.routing_table.get_provider_impl("insert_into_memory")
|
|
||||||
return await provider.insert(documents, vector_store_id, chunk_size_in_tokens)
|
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
routing_table: ToolGroupsRoutingTable,
|
routing_table: ToolGroupsRoutingTable,
|
||||||
|
|
@ -63,11 +28,6 @@ class ToolRuntimeRouter(ToolRuntime):
|
||||||
logger.debug("Initializing ToolRuntimeRouter")
|
logger.debug("Initializing ToolRuntimeRouter")
|
||||||
self.routing_table = routing_table
|
self.routing_table = routing_table
|
||||||
|
|
||||||
# HACK ALERT this should be in sync with "get_all_api_endpoints()"
|
|
||||||
self.rag_tool = self.RagToolImpl(routing_table)
|
|
||||||
for method in ("query", "insert"):
|
|
||||||
setattr(self, f"rag_tool.{method}", getattr(self.rag_tool, method))
|
|
||||||
|
|
||||||
async def initialize(self) -> None:
|
async def initialize(self) -> None:
|
||||||
logger.debug("ToolRuntimeRouter.initialize")
|
logger.debug("ToolRuntimeRouter.initialize")
|
||||||
pass
|
pass
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,6 @@ from aiohttp import hdrs
|
||||||
from starlette.routing import Route
|
from starlette.routing import Route
|
||||||
|
|
||||||
from llama_stack.apis.datatypes import Api, ExternalApiSpec
|
from llama_stack.apis.datatypes import Api, ExternalApiSpec
|
||||||
from llama_stack.apis.tools import RAGToolRuntime, SpecialToolGroup
|
|
||||||
from llama_stack.core.resolver import api_protocol_map
|
from llama_stack.core.resolver import api_protocol_map
|
||||||
from llama_stack.schema_utils import WebMethod
|
from llama_stack.schema_utils import WebMethod
|
||||||
|
|
||||||
|
|
@ -25,33 +24,16 @@ RouteImpls = dict[str, PathImpl]
|
||||||
RouteMatch = tuple[EndpointFunc, PathParams, str, WebMethod]
|
RouteMatch = tuple[EndpointFunc, PathParams, str, WebMethod]
|
||||||
|
|
||||||
|
|
||||||
def toolgroup_protocol_map():
|
|
||||||
return {
|
|
||||||
SpecialToolGroup.rag_tool: RAGToolRuntime,
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
def get_all_api_routes(
|
def get_all_api_routes(
|
||||||
external_apis: dict[Api, ExternalApiSpec] | None = None,
|
external_apis: dict[Api, ExternalApiSpec] | None = None,
|
||||||
) -> dict[Api, list[tuple[Route, WebMethod]]]:
|
) -> dict[Api, list[tuple[Route, WebMethod]]]:
|
||||||
apis = {}
|
apis = {}
|
||||||
|
|
||||||
protocols = api_protocol_map(external_apis)
|
protocols = api_protocol_map(external_apis)
|
||||||
toolgroup_protocols = toolgroup_protocol_map()
|
|
||||||
for api, protocol in protocols.items():
|
for api, protocol in protocols.items():
|
||||||
routes = []
|
routes = []
|
||||||
protocol_methods = inspect.getmembers(protocol, predicate=inspect.isfunction)
|
protocol_methods = inspect.getmembers(protocol, predicate=inspect.isfunction)
|
||||||
|
|
||||||
# HACK ALERT
|
|
||||||
if api == Api.tool_runtime:
|
|
||||||
for tool_group in SpecialToolGroup:
|
|
||||||
sub_protocol = toolgroup_protocols[tool_group]
|
|
||||||
sub_protocol_methods = inspect.getmembers(sub_protocol, predicate=inspect.isfunction)
|
|
||||||
for name, method in sub_protocol_methods:
|
|
||||||
if not hasattr(method, "__webmethod__"):
|
|
||||||
continue
|
|
||||||
protocol_methods.append((f"{tool_group.value}.{name}", method))
|
|
||||||
|
|
||||||
for name, method in protocol_methods:
|
for name, method in protocol_methods:
|
||||||
# Get all webmethods for this method (supports multiple decorators)
|
# Get all webmethods for this method (supports multiple decorators)
|
||||||
webmethods = getattr(method, "__webmethods__", [])
|
webmethods = getattr(method, "__webmethods__", [])
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ from llama_stack.apis.safety import Safety
|
||||||
from llama_stack.apis.scoring import Scoring
|
from llama_stack.apis.scoring import Scoring
|
||||||
from llama_stack.apis.scoring_functions import ScoringFunctions
|
from llama_stack.apis.scoring_functions import ScoringFunctions
|
||||||
from llama_stack.apis.shields import Shields
|
from llama_stack.apis.shields import Shields
|
||||||
from llama_stack.apis.tools import RAGToolRuntime, ToolGroups, ToolRuntime
|
from llama_stack.apis.tools import ToolGroups, ToolRuntime
|
||||||
from llama_stack.apis.vector_io import VectorIO
|
from llama_stack.apis.vector_io import VectorIO
|
||||||
from llama_stack.core.conversations.conversations import ConversationServiceConfig, ConversationServiceImpl
|
from llama_stack.core.conversations.conversations import ConversationServiceConfig, ConversationServiceImpl
|
||||||
from llama_stack.core.datatypes import Provider, SafetyConfig, StackRunConfig, VectorStoresConfig
|
from llama_stack.core.datatypes import Provider, SafetyConfig, StackRunConfig, VectorStoresConfig
|
||||||
|
|
@ -78,7 +78,6 @@ class LlamaStack(
|
||||||
Inspect,
|
Inspect,
|
||||||
ToolGroups,
|
ToolGroups,
|
||||||
ToolRuntime,
|
ToolRuntime,
|
||||||
RAGToolRuntime,
|
|
||||||
Files,
|
Files,
|
||||||
Prompts,
|
Prompts,
|
||||||
Conversations,
|
Conversations,
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,6 @@ from llama_stack.apis.tools import (
|
||||||
RAGDocument,
|
RAGDocument,
|
||||||
RAGQueryConfig,
|
RAGQueryConfig,
|
||||||
RAGQueryResult,
|
RAGQueryResult,
|
||||||
RAGToolRuntime,
|
|
||||||
ToolDef,
|
ToolDef,
|
||||||
ToolGroup,
|
ToolGroup,
|
||||||
ToolInvocationResult,
|
ToolInvocationResult,
|
||||||
|
|
@ -91,7 +90,7 @@ async def raw_data_from_doc(doc: RAGDocument) -> tuple[bytes, str]:
|
||||||
return content_str.encode("utf-8"), "text/plain"
|
return content_str.encode("utf-8"), "text/plain"
|
||||||
|
|
||||||
|
|
||||||
class MemoryToolRuntimeImpl(ToolGroupsProtocolPrivate, ToolRuntime, RAGToolRuntime):
|
class MemoryToolRuntimeImpl(ToolGroupsProtocolPrivate, ToolRuntime):
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
config: RagToolRuntimeConfig,
|
config: RagToolRuntimeConfig,
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue