Zum Hauptinhalt springen

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_ids eine 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

Grundlegende Nutzung der Bedrock-Wissensdatenbank
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
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"

2. Stellen Sie eine Anfrage mit dem Parameter vector_store_ids​

Curl-Anfrage an den LiteLLM-Proxy
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"]
}
]
}'

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

Alle verfĂĽgbaren Vektorspeicher auflisten
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.

Immer aktiv fĂĽr ein Modell
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.

  1. Sie stellen eine Completion-Anfrage mit dem Parameter vector_store_ids und eine der Vektorspeicher-IDs wird in der litellm.vector_store_registry gefunden.
  2. 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

ParameterTypBeschreibung
vector_store_idsListe[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

ParameterTypErforderlichBeschreibung
vector_store_idstrJaEindeutiger Identifikator fĂĽr den Vektorspeicher
custom_llm_providerstrJaDer Anbieter des Vektorspeichers (z. B. "bedrock")
vector_store_namestrNeinEin aussagekräftiger Name für den Vektorspeicher
vector_store_descriptionstrNeinBeschreibung dessen, was der Vektorspeicher enthält
vector_store_metadatadict oder strNeinZusätzliche Metadaten über den Vektorspeicher
litellm_credential_namestrNeinName 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

Vektorspeicher-Konfiguration in config.yaml
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.