Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Vektorspeicher speichern Daten und deren Vektoreinbettungen zusammen, sodass Anwendungen Datensätze nach semantischer Ähnlichkeit finden können. In Agent Framework-Anwendungen können Sie Vektorspeicher verwenden, um Erdungsdaten für die erweiterte Abrufgenerierung (Retrieval Augmented Generation, RAG) abzurufen oder Informationen zu speichern, die ein Agent später zurückrufen kann.
Vektorspeicherabstraktionen stellen allgemeine Vorgänge für Sammlungen und Datensätze bereit, wobei Ihre Anwendungslogik von der spezifischen Vektorspeicherimplementierung getrennt bleibt. Sie können z. B. mit einer lokalen Implementierung beginnen und mit minimalen Änderungen zu einem verwalteten Dienst wechseln.
Funktionsweise von Vektorspeicherintegrationen
Ein typischer Vektorspeicherworkflow umfasst die folgenden Schritte:
- Definieren Sie ein Datenmodell, das den Datensatzschlüssel, Datenfelder und Vektorfelder identifiziert.
- Konfigurieren Sie einen Einbettungsgenerator, wenn der Vektorspeicher keine Einbettungen generiert.
- Stellen Sie eine Verbindung mit einem Vektorspeicher her und wählen Sie eine Sammlung aus oder erstellen Sie eine.
- Embeddings generieren und Datensätze in die Sammlung einfügen oder aktualisieren.
- Durchsuchen Sie die Sammlung mit Text oder einem Vektor, abhängig von den Funktionen der Implementierung.
- Übergeben Sie relevante Suchergebnisse als Kontext an einen Agent oder machen Sie die Suche als Agenttool verfügbar.
Unterstützung für .NET Vektorspeicher
Agent Framework verwendet die eigenständigen Abstraktionen des .NET KI-Ökosystems:
-
Microsoft.Extensions.VectorDatastellt allgemeine Vektorspeicher-, Sammlungs-, Datensatz- und Such-APIs bereit. -
Microsoft.Extensions.AIstellt Abstraktionen wieIEmbeddingGeneratorbereit, um Einbettungen unabhängig von einem bestimmten Modellanbieter zu generieren.
Wenn eine Agent Framework-Komponente einen Vektorspeicher akzeptiert, können Sie eine kompatible Microsoft.Extensions.VectorData Implementierung bereitstellen. Jede Datenbankimplementierung wird separat vom Abstraktionspaket verteilt.
Kernabstraktionen
| Abstraktion | Purpose |
|---|---|
VectorStore |
Stellt Vorgänge über Sammlungen hinweg bereit und erstellt typierte Sammlungsinstanzen. |
VectorStoreCollection<TKey, TRecord> |
Erstellt oder löscht eine Sammlung und fügt deren Datensätze ein oder aktualisiert sie, ruft sie ab oder löscht sie. |
IVectorSearchable<TRecord> |
Durchsucht Datensätze nach Vektor oder Text, wenn ein Einbettungsgenerator oder eine datenbankseitige Einbettungsfunktion verfügbar ist. |
Verfügbare Vektorspeicherimplementierungen
Die folgenden Implementierungen verwenden die allgemeinen .NET Vektorspeicherabstraktionen. Überprüfen Sie die Dokumentation der einzelnen Implementierungen für Paketversionen, unterstützte Datentypen und dienstspezifische Einschränkungen.
| Implementation | Availability | Verwendet ein offiziell unterstütztes Datenbank-SDK | Maintainer oder Anbieter |
|---|---|---|---|
| Azure KI-Suche | Available | Yes | Microsoft |
| Azure Cosmos DB für MongoDB vCore | Available | Yes | Microsoft |
| Azure Cosmos DB für NoSQL | Available | Yes | Microsoft |
| Couchbase | Available | Yes | Couchbase |
| Elasticsearch | Available | Yes | Elastic |
| Farbton | Geplant | Nicht anwendbar | Nicht anwendbar |
| Im Arbeitsspeicher | Available | Nicht anwendbar | Microsoft |
| Milvus | Geplant | Nicht anwendbar | Nicht anwendbar |
| MongoDB | Available | Yes | Microsoft |
| Neon Serverless Postgres | Verwenden der Postgres-Implementierung | Yes | Microsoft |
| Oracle | Available | Yes | Oracle |
| Pinecone | Available | No | Microsoft |
| Postgres | Available | Yes | Microsoft |
| Qdrant | Available | Yes | Microsoft |
| Redis | Available | Yes | Microsoft |
| SQL Server | Available | Yes | Microsoft |
| SQLite | Available | Yes | Microsoft |
| Veränderlich im Arbeitsspeicher | Veraltet; verwenden Sie die In-Memory-Implementierung | Nicht anwendbar | Microsoft |
| Weaviate | Available | Yes | Microsoft |
Important
Implementierungen für Vektorspeicher stammen von verschiedenen Maintainern. Bewerten Sie die Qualität, Lizenzierung, Supportrichtlinie und Versionskompatibilität jeder Implementierung, bevor Sie sie verwenden. Einige Implementierungen verwenden Datenbank-SDKs, die der Datenbankanbieter nicht offiziell unterstützt.
Get started
- Hinzufügen des
Microsoft.Extensions.VectorData.AbstractionsPaket und das Paket für Ihre gewählte Vektorspeicher-Implementierung. - Definieren Sie einen Datensatztyp, und identifizieren Sie dessen Schlüssel-, Daten- und Vektoreigenschaften.
- Konfigurieren Sie
IEmbeddingGenerator, wenn Ihre Implementierung von der Anwendung generierte Einbettungen erfordert. - Erstellen Sie das
VectorStoreder Implementierung, und rufen Sie dann ein typisiertesVectorStoreCollection<TKey, TRecord>ab. - Stellen Sie sicher, dass die Sammlung vorhanden ist, aktualisieren oder fügen Sie Datensätze ein und rufen Sie
SearchAsyncmit Text oder einem Vektor auf.
Eine vollständige Einführung in Datenmodelle, Aufnahme, Einbettungen und Suchen finden Sie in vector-Datenbanken für .NET KI-Apps.
Unterstützung für Python Vektorspeicher
Agent Framework stellt experimentelle, native Python-Verträge für Vektorspeichermodelle, Sammlungsoperationen, Speicherfabriken, die Vektor- und Schlüsselwort-Hybridsuche sowie Agentensuchtools bereit. Die Verträge sind Teil von agent-framework-core und erfordern weder Pydantic, NumPy, pandas noch Semantischer Kernel.
Warnung
Die nativen Python Vektorspeicher-APIs sind experimentell. Vereinzelte Breaking Changes können auftreten, bevor sie stabil werden.
Kernabstraktionen
| Abstraktion | Purpose |
|---|---|
VectorStoreField und VectorStoreCollectionDefinition |
Beschreiben Sie Schlüssel-, Daten- und Vektorfelder, einschließlich Speichernamen, Indizes, Dimensionen und Entfernungsfunktionen. |
@vectorstoremodel und register_vectorstoremodel() |
Registrieren Sie Datenklassen, Pydantische Modelle, msgspec-Strukturen, einfache Klassen oder externe Modelltypen. |
BaseVectorCollection und SupportsVectorUpsert |
Definieren Sie Batch-Upsert, Abrufen, Löschen, Sammlungslebenszyklus, Datensatzkonvertierung und optionale Einbettungsgenerierung. |
BaseVectorStore |
Definiert einen Speicher, der Sammlungen auflistet und typierte Sammlungsclients erstellt. |
BaseVectorSearch und SupportsVectorSearch |
Definieren Sie Vektor- und Schlüsselwort-Hybridsuche, Paginierung, Filter, Score-Schwellenwerte und Suchergebnisse. |
Filter, FilterGroup und Param |
Definieren Sie portierbare, reine Datenfilter, einschließlich modellseitig bereitgestellter Filterparameter für Suchwerkzeuge. |
InMemoryStore und InMemoryCollection |
Stellen Sie prozesslokale CRUD- und lineare Scan-Suche für Entwicklung und Tests bereit. |
GenerateVectors |
Steuert, ob Upserts alle, keine oder ausgewählte Vektorfelder generieren. |
create_vector_search_tool(), create_upsert_tool(), create_get_tool() und create_delete_tool() |
Machen Sie Vektorsuche- und Sammlungs-CRUD-Vorgänge als Agent Framework-Funktionstools verfügbar. |
VectorStoreHistoryProvider |
Speichert den kontextbezogenen Konversationsverlauf in einer anbietereigenen Sammlung, mit optionaler Komprimierung und Suche im gesamten Verlauf. |
VectorCollectionContextProvider |
Fügt konfigurierbare CRUD- und Suchwerkzeuge für die eigene Sammlung des Aufrufers hinzu. |
Im folgenden Beispiel werden Datensätze eines Vektorspeichers durch Annotation ihrer Schlüssel-, Daten- und Vektorfelder definiert:
# 5. Dataclasses use the default registered codec.
@vectorstoremodel(collection_name="hotels")
@dataclass
class Hotel:
hotel_id: Annotated[str, VectorStoreField("key")]
name: Annotated[str, VectorStoreField("data", is_indexed=True)]
description: Annotated[
str | list[float] | None,
VectorStoreField("vector", dimensions=3, distance_function="cosine_similarity"),
] = None
# 6. Pydantic models provide validation with additional round-trip cost.
@vectorstoremodel(collection_name="products")
class Product(BaseModel):
product_id: Annotated[str, VectorStoreField("key")]
name: Annotated[str, VectorStoreField("data", is_full_text_indexed=True)]
vector: Annotated[list[float] | None, VectorStoreField("vector", dimensions=3)] = None
Verwenden Sie VectorStoreCollectionDefinition direkt für Wörterbücher. Verwenden Sie register_vectorstoremodel() für Modelltypen, die einem anderen Paket gehören, mit einer expliziten Definition und optionalem Encoder und Decoder. Array-ähnliche Vektorwerte werden über tolist() serialisiert, ohne eine Abhängigkeit von NumPy hinzuzufügen.
Das Agent Framework enthält eine In-Memory-Implementierung für Die Entwicklung und Tests. Es speichert Datensätze im aktuellen Prozess und verwendet einen linearen Scan, verwenden Sie also einen Datenbankconnector für Produktionsworkloads.
Übergeben Sie für jeden Vorgang Optionen für die Einbettung
Übergeben Sie embeddings_options an upsert(), um Provider-Optionen auf alle generierten Vektorfelder anzuwenden. Verwenden Sie diese Option embeddings_options_by_field , wenn unterschiedliche logische Vektorfelder unterschiedliche Optionen benötigen. Diese beiden Argumente schließen sich gegenseitig aus.
Für Abfrage-Embeddings übergeben Sie embeddings_options an search() oder create_vector_search_tool(). Agent Framework liefert die deklarierten Dimensionen des ausgewählten Vektorfelds und lehnt einen widersprüchlichen dimensions Wert ab, bevor der Einbettungsanbieter aufgerufen wird.
Upsert-Einbettungsoptionen erfordern generierte Vektoren und können nicht mit generate_vectors=Falsekombiniert werden. Sucheinbettungsoptionen erfordern einen lokalen Einbettungsgenerator und werden ignoriert, wenn Sie einen vordefinierten Abfragevektor angeben.
Im folgenden Beispiel werden vorab berechnete Vektoren gespeichert und mithilfe eines portablen Filterbaums durchsucht:
import asyncio
from dataclasses import dataclass
from typing import Annotated
from agent_framework import Filter, FilterGroup, InMemoryCollection, VectorStoreField, vectorstoremodel
@vectorstoremodel(collection_name="hotels")
@dataclass
class Hotel:
hotel_id: Annotated[str, VectorStoreField("key")]
name: Annotated[str, VectorStoreField("data")]
city: Annotated[str, VectorStoreField("data")]
rating: Annotated[float, VectorStoreField("data")]
amenities: Annotated[list[str], VectorStoreField("data")]
vector: Annotated[
list[float] | None,
VectorStoreField("vector", dimensions=2, distance_function="cosine_similarity"),
] = None
async def main() -> None:
"""Store precomputed vectors and search them with direct filters."""
collection: InMemoryCollection[str, Hotel] = InMemoryCollection(Hotel)
await collection.ensure_collection_exists()
# 1. The sample already has vectors, so generation is disabled explicitly.
await collection.upsert(
[
Hotel("hotel-1", "Harbor View", "Lisbon", 4.8, ["wifi", "pool"], [1.0, 0.1]),
Hotel("hotel-2", "Old Town Rooms", "Lisbon", 4.1, ["wifi"], [0.8, 0.2]),
Hotel("hotel-3", "City Center", "Seattle", 4.7, ["wifi", "gym"], [0.1, 1.0]),
],
generate_vectors=False,
)
# 2. Filter values are ordinary data. No Python source is parsed or executed.
search_filter = FilterGroup(
"and",
(
Filter("city", "eq", "Lisbon"),
Filter("rating", "between", (4.5, 5.0)),
Filter("amenities", "contains", "pool"),
),
)
results = await collection.search(
vector=[1.0, 0.0],
filter=search_filter,
top=5,
)
# 3. Search results are consumed asynchronously.
async for result in results:
print(f"{result['record'].name}: {result['score']:.3f}")
Verwenden Sie Param, wenn das Modell einen Filterwert angeben soll. Ihr Python-Typ, ihre Beschreibung und ihre Einschränkungen werden Teil des JSON-Schemas des Suchtools:
# 2. Param values become optional model-visible filter arguments.
# When the allowed values are known, use Literal so the tool schema exposes
# them as an enum.
category = Param(
"category",
Literal["Boutique", "Budget", "Extended-Stay", "Luxury", "Resort and Spa", "Suite"],
description="Only return hotels in this category.",
)
min_rating = Param(
"min_rating",
float,
description="The minimum guest rating.",
minimum=0,
maximum=5,
)
tool = create_vector_search_tool(
collection,
description="Search the hotel dataset, optionally filtering by category and minimum rating.",
filter=FilterGroup(
"and",
(
Filter("category", "eq", category),
Filter("rating", "gte", min_rating),
),
),
result_mapper=lambda result: (
f"(hotel_id: {result['record'].hotel_id}) {result['record'].hotel_name} "
f"(rating {result['record'].rating}) - {result['record'].description}. "
f"Address: {result['record'].address.city}, {result['record'].address.country}."
),
)
Eine Vektorsammlung mit einem Agenten verwenden
Verwenden Sie VectorCollectionContextProvider, wenn Ihre Anwendung die Sammlung und das Datenmodell verwaltet. Der Anbieter fügt generierte CRUD- und Suchtools hinzu. Upsert und Löschen erfordern standardmäßig eine Genehmigung, während get und search keine Genehmigung erfordern.
Übergeben Sie scope_filter an Gruppendatensätze für die generierten Tools, behandeln Sie den Filter jedoch nicht als Autorisierungsgrenze oder atomische Back-End-Garantie. Suchtools, die über additional_search_tools weitergegeben werden, behalten ihre eigenen Filter. Wenden Sie daher auf jedes benutzerdefinierte Suchtool einen entsprechenden Filter an, wenn eine Sammlung geteilt wird.
collection: InMemoryCollection[str, ProjectNote] = InMemoryCollection(
ProjectNote,
embedding_generator=OpenAIEmbeddingClient(
model="text-embedding-3-small",
),
)
await collection.ensure_collection_exists()
# Omitted mapping entries keep their safe defaults. This sample disables
# approval for upsert so the scripted interaction can run unattended;
# delete still requires approval, while get and search remain read-only.
collection_context = VectorCollectionContextProvider(
collection,
# This process-local collection contains records for only this sample.
scope_filter=None,
approval_mode={"upsert": "never_require"},
)
async with Agent(
client=OpenAIChatClient(model="gpt-5.4-nano"),
name="ProjectNotesAssistant",
instructions="Use the collection tools to manage project notes. Do not invent stored notes.",
context_providers=[collection_context],
) as agent:
Konversationsverlauf in einem Vektorspeicher speichern
Verwenden Sie VectorStoreHistoryProvider, wenn der Anbieter das Schema der Sammlung verwalten und Agent-Framework-Nachrichten automatisch laden und speichern soll. Die Anwendungs-, Mandanten-, Agent-, Quell- und Sitzungsbezeichner verhindern versehentliche Überlappungen, ihre Anwendung muss jedoch weiterhin den Zugriff autorisieren und entsprechend bereichsbezogene Speicheranmeldeinformationen oder Namespaces verwenden.
Wenn Sie Einbettungen konfigurieren, geben Sie einen expliziten Sammlungsnamen und die Einbettungsabmessungen an. Die Komprimierung reduziert nur den Verlauf, der in den Modellkontext geladen wurde. Wenn Sie das Suchtool aktivieren, durchsucht es das vollständige Transkript.
history = VectorStoreHistoryProvider(
InMemoryStore(),
application_id="release-planning",
tenant_id="contoso",
agent_id="release-assistant",
collection_name="release_planning_history_text_embedding_3_small",
contents_format="json",
embedding_generator=OpenAIEmbeddingClient(
model="text-embedding-3-small",
),
embedding_options={
"dimensions": 1536,
"encoding_format": "float",
},
compaction_strategy=SlidingWindowStrategy(
keep_last_groups=2,
preserve_system=True,
),
include_search_tool=True,
)
# 2. Only the compacted projection is loaded into the model context. The
# provider-owned search tool can still retrieve older scoped messages.
async with Agent(
client=OpenAIChatClient(model="gpt-5.4-nano"),
name="ReleaseAssistant",
instructions=(
"Help with release planning. Use the history search tool when an "
"older detail is not present in the loaded conversation."
),
context_providers=[history],
) as agent:
Native Agent Framework-Implementierungen
Die folgenden Implementierungen verwenden die nativen Agent Framework-Verträge. Einige sind auch als separate Semantischer Kernel Connectors verfügbar, aber die beiden Verbindungsfamilien sind nicht austauschbar.
| Implementation | Agent Framework-Paket und -Lebenszyklus | Eigenständiger Semantischer Kernel-Konnektor | Suchmodi | Wichtige Einschränkungen |
|---|---|---|---|---|
| Im Arbeitsspeicher |
agent-framework-core; veröffentlichtes Paket mit experimentellen Vektor-APIs |
Verfügbar | Dichter Vektor mit tragbaren Filtern | prozesslokaler linearer Suchlauf für Entwicklung und Tests, keine Datenbank für den Produktionseinsatz. |
| Azure KI-Suche |
agent-framework-azure-ai-search; Betapaket mit experimentellen Vektor-APIs |
Verfügbar | Dichtvektor- und Schlüsselwort-Hybrid | Ein dichtes Vektorfeld der obersten Ebene pro Abfrage. Einige Schwellenwerte, hybride Steuerelemente für den Textabruf, strenge Postfilterung und Berechtigungen erfordern eine entsprechende Preview-SDK/-API und allow_preview=True. |
| Azure Cosmos DB für NoSQL-Datenbanklösungen |
agent-framework-azure-cosmos; Betapaket mit experimentellen Vektor-APIs |
Verfügbar | Dichter Vektor mit tragbaren Filtern | Schlüssel müssen als idZeichenfolgen gespeichert sein, und Container verwenden den /id Partitionsschlüssel. Schlüsselwort- und Hybridsuche werden nicht unterstützt, und die Euklidean-Suche unterstützt keine Bewertungsschwellenwerte. |
| Azure DocumentDB |
agent-framework-azure-documentdb; Alphapaket |
Nicht verfügbar | Dichter Vektor mit portablen Metadatenfiltern | Schlüssel müssen Zeichenfolgen oder ganze Zahlen sein. Generierte ObjectIds, Hybrid- und Volltextsuche und geschachtelte Filterpfade werden nicht unterstützt. |
| DuckDB |
agent-framework-duckdb; Alphapaket |
Nicht verfügbar | Exakter dichter Vektor mit tragbaren Filtern | Erfordert Python 3.10+ und DuckDB 1.4.1–1.5.x. Approximative Indizes, Schlüsselwort- und Hybridsuche, Volltextsuche und serverseitige Vektorisierung werden nicht unterstützt. Lokale Dateien ermöglichen jeweils nur einen Schreibvorgang. |
| MongoDB |
agent-framework-mongodb; Alphapaket |
Verfügbar | Ungefährer oder exakter dichter Vektor mit tragbaren Filtern | Erfordert PyMongo 4.13.2+ und eine Bereitstellung mit der MongoDB-Vektorsuche. Schlüsselwort- und Hybridsuche, geschachtelte Filterpfade, anbieterseitige Einbettungsgenerierung und automatische Schemamigration werden nicht unterstützt. Modelle, die deklarieren is_full_text_indexed , werden abgelehnt, und neu geschriebene Datensätze werden asynchron durchsuchbar. |
| PostgreSQL mit pgvector |
agent-framework-postgres; Alphapaket |
Verfügbar | Exakter dichter Vektor, HNSW und IVFFlat | Erfordert PostgreSQL 13+, pgvector 0.8.0+, ein vorhandenes Schema und die aktivierte Erweiterung. Schlüsselwort- und Hybridsuche werden nicht unterstützt. |
| Qdrant |
agent-framework-qdrant; Alphapaket |
Verfügbar | Dichter Vektor mit serverseitigen tragbaren Filtern | Für den Servermodus ist Qdrant 1.16.2+ erforderlich. Schlüssel müssen nicht signierte 64-Bit-Ganzzahlen oder UUIDs sein. Schlüsselwort- und Hybridsuche werden nicht unterstützt, und Filter sind im lokalen SDK-Modus nicht verfügbar. |
| Redis |
agent-framework-redis; Betapaket mit experimentellen Vektor-APIs |
Verfügbar | Dichter Vektor über HASH- oder JSON-Datensätze | Erfordert Redis 8.0.3+ mit Suche; JSON-Einträge erfordern auch RedisJSON. Redis Cluster, Stichwortsuche und Hybridsuche werden nicht unterstützt. |
| SQL Server |
agent-framework-sql-server; Alphapaket |
Verfügbar | Exakter dichter Vektor mit tragbaren Filtern | Erfordert Python 3.10–3.14 und SQL Server 2025 oder einer vektorfähigen Azure SQL-Datenbank. Approximative Indizes, Schlüsselwort- und Hybridsuche, serverseitige Vektorisierung und Schema-Migration werden nicht unterstützt. |
Installieren Sie ein Vorabversionskonnektorpaket für die datenbank, die Sie verwenden:
pip install agent-framework-azure-ai-search --pre
pip install agent-framework-azure-cosmos --pre
pip install agent-framework-azure-documentdb --pre
pip install agent-framework-duckdb --pre
pip install agent-framework-mongodb --pre
pip install agent-framework-postgres --pre
pip install agent-framework-qdrant --pre
pip install agent-framework-redis --pre
pip install agent-framework-sql-server --pre
Unter Python 3.10 bis 3.14 installiert agent-framework-postgres die Binärdistribution von Psycopg. Auf Python 3.15 oder höher verwendet es reine Python Psycopg, da kompatible binäre Räder nicht veröffentlicht werden, sodass der Host eine Systeminstallation libpq bereitstellen muss.
Jeder Connector implementiert das allgemeine Modell, die Sammlung, CRUD, Filter und Suchverträge. Datenbankspezifische Funktionen und Einschränkungen gelten weiterhin. Vollständige Beispiele finden Sie in den Beispielen Azure KI-Suche, DuckDB,MongoDB-Vektoroperationen, MongoDB-Agent RAG, Postgres, Qdrant, Redis und SQL Server Beispielen.
Semantischer Kernel-only-Implementierungen
Anwendungen können weiterhin Python Vektorspeicher von Semantischer Kernel direkt verwenden. Diese Implementierungen verwenden die separaten Semantischer Kernel Vektorspeicherverträge anstelle der nativen Agent Framework-Verträge. Die folgenden Implementierungen verfügen derzeit nicht über einen nativen Agent Framework-Connector:
| Implementation | Availability | Verwendet ein offiziell unterstütztes Datenbank-SDK | Maintainer oder Anbieter |
|---|---|---|---|
| Azure Cosmos DB für MongoDB vCore | Available | Yes | Microsoft Semantischer Kernel Projekt |
| Chroma | Available | Yes | Microsoft Semantischer Kernel Projekt |
| Elasticsearch | Geplant | Nicht anwendbar | Nicht anwendbar |
| Faiss | Available | Yes | Microsoft Semantischer Kernel Projekt |
| Neon Serverless Postgres | Verwenden der Postgres-Implementierung | Yes | Microsoft Semantischer Kernel Projekt |
| Oracle | Available | Yes | Oracle |
| Pinecone | Available | Yes | Microsoft Semantischer Kernel Projekt |
| SQLite | Geplant | Nicht anwendbar | Microsoft Semantischer Kernel Projekt |
| Weaviate | Available | Yes | Microsoft Semantischer Kernel Projekt |
Important
Implementierungen für Vektorspeicher stammen von verschiedenen Maintainern. Bewerten Sie die Qualität, Lizenzierung, Supportrichtlinie und Versionskompatibilität jeder Implementierung, bevor Sie sie verwenden.
Verwenden einer Semantischer Kernel-only-Implementierung
- Installieren Sie
semantic-kernelund die Abhängigkeiten, die für Ihre gewählte Implementierung erforderlich sind. - Definieren Sie ein Modell mit dem
@vectorstoremodelDekorateur, und identifizieren Sie seine Schlüssel-, Daten- und Vektorfelder. - Erstellen Sie eine implementierungsspezifische Auflistung für dieses Modell.
- Stellen Sie sicher, dass die Sammlung vorhanden ist, und fügen Sie dann Datensätze per Upsert ein oder aktualisieren Sie sie.
- Verwenden Sie die Such-APIs der Sammlung, um Datensätze für Ihre Anwendung abzurufen.
Implementierungssetup und vollständige Beispiele finden Sie unter Semantischer Kernel Vector Stores.
Unterstützung für Go-Vektorspeicher
Die Vektorspeicherintegration ist im Agent Framework für Go noch nicht verfügbar. Den neuesten Status finden Sie im Agent Framework Go-Repository .
Verwandte Agent-Framework-Szenarien
- Fügen Sie RAG zu einem Agent hinzu.
- Fügen Sie speicher für semantischen Chatverlauf hinzu.
- Wählen Sie eine Kontextanbieterintegration aus.