Verwenden von Vektorspeichern (Wissensdatenbanken)
Verwenden Sie Vektorspeicher mit jedem von LiteLLM unterstĂĽtzten Modell
LiteLLM integriert sich in Vektorspeicher und ermöglicht es Ihren Modellen, auf die Daten Ihrer Organisation zuzugreifen, um genauere und kontextbezogenere Antworten zu erhalten.
Unterstützte Vektorspeicher​
Schnellstart​
Um einen Vektorspeicher mit LiteLLM zu verwenden, mĂĽssen Sie
- litellm.vector_store_registry initialisieren
- Tools mit vector_store_ids an die Completion-Anfrage ĂĽbergeben. Wobei
vector_store_idseine Liste von Vektorspeicher-IDs ist, die Sie in litellm.vector_store_registry initialisiert haben
LiteLLM Python SDK​
LiteLLM ermöglicht es Ihnen, Vektorspeicher in der OpenAI API-Spezifikation zu verwenden, indem Sie ein Tool mit den zu verwendenden vector_store_ids übergeben
import os
import litellm
from litellm.vector_stores.vector_store_registry import VectorStoreRegistry, LiteLLM_ManagedVectorStore
# Init vector store registry
litellm.vector_store_registry = VectorStoreRegistry(
vector_stores=[
LiteLLM_ManagedVectorStore(
vector_store_id="T37J8R4WTM",
custom_llm_provider="bedrock"
)
]
)
# Make a completion request with vector_store_ids parameter
response = await litellm.acompletion(
model="anthropic/claude-3-5-sonnet",
messages=[{"role": "user", "content": "What is litellm?"}],
tools=[
{
"type": "file_search",
"vector_store_ids": ["T37J8R4WTM"]
}
],
)
print(response.choices[0].message.content)
LiteLLM Proxy​
1. Konfigurieren Sie Ihre vector_store_registry​
Um einen Vektorspeicher mit LiteLLM zu verwenden, müssen Sie Ihre vector_store_registry konfigurieren. Dies teilt LiteLLM mit, welche Vektorspeicher verwendet werden sollen und welcher API-Provider für den Vektorspeicher zuständig ist.
- config.yaml
- LiteLLM UI
model_list:
- model_name: claude-3-5-sonnet
litellm_params:
model: anthropic/claude-3-5-sonnet
api_key: os.environ/ANTHROPIC_API_KEY
vector_store_registry:
- vector_store_name: "bedrock-litellm-website-knowledgebase"
litellm_params:
vector_store_id: "T37J8R4WTM"
custom_llm_provider: "bedrock"
vector_store_description: "Bedrock vector store for the Litellm website knowledgebase"
vector_store_metadata:
source: "https://www.litellm.com/docs"
Navigieren Sie in der LiteLLM-UI zu Experimental > Vector Stores > Create Vector Store. Auf dieser Seite können Sie einen Vektorspeicher mit einem Namen, einer Vektorspeicher-ID und Anmeldeinformationen erstellen.
2. Stellen Sie eine Anfrage mit dem Parameter vector_store_ids​
- Curl
- OpenAI Python SDK
curl https://:4000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $LITELLM_API_KEY" \
-d '{
"model": "claude-3-5-sonnet",
"messages": [{"role": "user", "content": "What is litellm?"}],
"tools": [
{
"type": "file_search",
"vector_store_ids": ["T37J8R4WTM"]
}
]
}'
from openai import OpenAI
# Initialize client with your LiteLLM proxy URL
client = OpenAI(
base_url="https://:4000",
api_key="your-litellm-api-key"
)
# Make a completion request with vector_store_ids parameter
response = client.chat.completions.create(
model="claude-3-5-sonnet",
messages=[{"role": "user", "content": "What is litellm?"}],
tools=[
{
"type": "file_search",
"vector_store_ids": ["T37J8R4WTM"]
}
]
)
print(response.choices[0].message.content)
Erweitert​
Protokollierung der Vektorspeichernutzung​
LiteLLM ermöglicht es Ihnen, Ihre Vektorspeichernutzung in der LiteLLM-UI auf der Seite Logs anzuzeigen.
Nachdem eine Anfrage mit einem Vektorspeicher abgeschlossen ist, navigieren Sie zur Seite Logs in LiteLLM. Hier sollten Sie die an den Vektorspeicher gesendete Abfrage und die entsprechende Antwort mit Punktzahlen sehen können.
LiteLLM Logs Seite: Vektorspeichernutzung
Auflisten verfügbarer Vektorspeicher​
Sie können alle verfügbaren Vektorspeicher über den Endpunkt /vector_store/list auflisten.
Anfrage
curl -X GET "https://:4000/vector_store/list" \
-H "Authorization: Bearer $LITELLM_API_KEY"
Antwort
Die Antwort ist eine Liste aller Vektorspeicher, die mit LiteLLM verwendet werden können.
{
"object": "list",
"data": [
{
"vector_store_id": "T37J8R4WTM",
"custom_llm_provider": "bedrock",
"vector_store_name": "bedrock-litellm-website-knowledgebase",
"vector_store_description": "Bedrock vector store for the Litellm website knowledgebase",
"vector_store_metadata": {
"source": "https://www.litellm.com/docs"
},
"created_at": "2023-05-03T18:21:36.462Z",
"updated_at": "2023-05-03T18:21:36.462Z",
"litellm_credential_name": "bedrock_credentials"
}
],
"total_count": 1,
"current_page": 1,
"total_pages": 1
}
Immer aktiv für ein Modell​
Verwenden Sie dies, wenn Vektorspeicher standardmäßig für ein bestimmtes Modell verwendet werden sollen.
In dieser Konfiguration fĂĽgen wir vector_store_ids zum Modell claude-3-5-sonnet-with-vector-store hinzu. Das bedeutet, dass jede Anfrage an das Modell claude-3-5-sonnet-with-vector-store immer den Vektorspeicher mit der ID T37J8R4WTM verwendet, der in der vector_store_registry definiert ist.
model_list:
- model_name: claude-3-5-sonnet-with-vector-store
litellm_params:
model: anthropic/claude-3-5-sonnet
vector_store_ids: ["T37J8R4WTM"]
vector_store_registry:
- vector_store_name: "bedrock-litellm-website-knowledgebase"
litellm_params:
vector_store_id: "T37J8R4WTM"
custom_llm_provider: "bedrock"
vector_store_description: "Bedrock vector store for the Litellm website knowledgebase"
vector_store_metadata:
source: "https://www.litellm.com/docs"
Wie es funktioniert​
Wenn Ihre Anfrage einen Parameter vector_store_ids enthält, bei dem eine der Vektorspeicher-IDs in der vector_store_registry gefunden wird, verwendet LiteLLM den Vektorspeicher automatisch für die Anfrage.
- Sie stellen eine Completion-Anfrage mit dem Parameter
vector_store_idsund eine der Vektorspeicher-IDs wird in derlitellm.vector_store_registrygefunden. - LiteLLM automatisch
- Verwendet Ihre letzte Nachricht als Abfrage, um relevante Informationen aus der Wissensdatenbank abzurufen
- FĂĽgt den abgerufenen Kontext Ihrer Konversation hinzu
- Sendet die erweiterten Nachrichten an das Modell
Beispieltransformation​
Wenn Sie vector_store_ids=["IHRE_WISSENSBASIS_ID"] übergeben, durchläuft Ihre Anfrage diese Schritte
1. UrsprĂĽngliche Anfrage an LiteLLM
{
"model": "anthropic/claude-3-5-sonnet",
"messages": [
{"role": "user", "content": "What is litellm?"}
],
"vector_store_ids": ["YOUR_KNOWLEDGE_BASE_ID"]
}
2. Anfrage an die AWS Bedrock Wissensdatenbank
{
"retrievalQuery": {
"text": "What is litellm?"
}
}
Diese wird gesendet an: https://bedrock-agent-runtime.{aws_region}.amazonaws.com/knowledgebases/IHRE_WISSENSBASIS_ID/retrieve
3. Finale Anfrage an LiteLLM
{
"model": "anthropic/claude-3-5-sonnet",
"messages": [
{"role": "user", "content": "What is litellm?"},
{"role": "user", "content": "Context: \n\nLiteLLM is an open-source SDK to simplify LLM API calls across providers (OpenAI, Claude, etc). It provides a standardized interface with robust error handling, streaming, and observability tools."}
]
}
Dieser Vorgang geschieht automatisch, wann immer Sie den Parameter vector_store_ids in Ihrer Anfrage angeben.
API-Referenz​
LiteLLM Completion Wissensdatenbank-Parameter​
Wenn Sie die Wissensdatenbank-Integration mit LiteLLM verwenden, können Sie die folgenden Parameter angeben
| Parameter | Typ | Beschreibung |
|---|---|---|
vector_store_ids | Liste[str] | Liste der abzufragenden Wissensdatenbank-IDs |
VectorStoreRegistry​
Die VectorStoreRegistry ist eine zentrale Komponente für die Verwaltung von Vektorspeichern in LiteLLM. Sie fungiert als Registry, in der Sie Ihre Vektorspeicher konfigurieren und darauf zugreifen können.
Was ist VectorStoreRegistry?​
VectorStoreRegistry ist eine Klasse, die
- Eine Sammlung von Vektorspeichern pflegt, die LiteLLM verwenden kann
- Es Ihnen ermöglicht, Vektorspeicher mit ihren Anmeldeinformationen und Metadaten zu registrieren
- Vektorspeicher über ihre IDs in Ihren Completion-Anfragen zugänglich macht
Verwendung von VectorStoreRegistry in Python​
from litellm.vector_stores.vector_store_registry import VectorStoreRegistry, LiteLLM_ManagedVectorStore
# Initialize the vector store registry with one or more vector stores
litellm.vector_store_registry = VectorStoreRegistry(
vector_stores=[
LiteLLM_ManagedVectorStore(
vector_store_id="YOUR_VECTOR_STORE_ID", # Required: Unique ID for referencing this store
custom_llm_provider="bedrock" # Required: Provider (e.g., "bedrock")
)
]
)
LiteLLM_ManagedVectorStore Parameter​
Jeder Vektorspeicher in der Registry wird mit einem LiteLLM_ManagedVectorStore-Objekt mit diesen Parametern konfiguriert
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
vector_store_id | str | Ja | Eindeutiger Identifikator fĂĽr den Vektorspeicher |
custom_llm_provider | str | Ja | Der Anbieter des Vektorspeichers (z. B. "bedrock") |
vector_store_name | str | Nein | Ein aussagekräftiger Name für den Vektorspeicher |
vector_store_description | str | Nein | Beschreibung dessen, was der Vektorspeicher enthält |
vector_store_metadata | dict oder str | Nein | Zusätzliche Metadaten über den Vektorspeicher |
litellm_credential_name | str | Nein | Name der fĂĽr diesen Vektorspeicher zu verwendenden Anmeldeinformationen |
Konfiguration von VectorStoreRegistry in config.yaml​
Für den LiteLLM-Proxy können Sie dieselbe Registry in Ihrer Datei config.yaml konfigurieren
vector_store_registry:
- vector_store_name: "bedrock-litellm-website-knowledgebase" # Optional friendly name
litellm_params:
vector_store_id: "T37J8R4WTM" # Required: Unique ID
custom_llm_provider: "bedrock" # Required: Provider
vector_store_description: "Bedrock vector store for the Litellm website knowledgebase"
vector_store_metadata:
source: "https://www.litellm.com/docs"
Der Abschnitt litellm_params akzeptiert alle gleichen Parameter wie der Konstruktor LiteLLM_ManagedVectorStore im Python SDK.