Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Magazyny vector przechowują dane i ich wektorowe osadzanie razem, aby aplikacje mogły znaleźć rekordy według podobieństwa semantycznego. W aplikacjach Agent Framework można używać magazynów wektorowych do pobierania danych źródłowych na potrzeby generowania wspomaganego wyszukiwaniem (RAG) lub do przechowywania informacji, do których agent może później sięgnąć.
Abstrakcje magazynów wektorowych zapewniają typowe operacje dla kolekcji i rekordów, dzięki czemu logika aplikacji jest oddzielona od implementacji określonego magazynu wektorów. Możesz na przykład zacząć od lokalnej implementacji i przejść do usługi zarządzanej z minimalnymi zmianami.
Jak działają integracje z bazą wektorową
Typowy przepływ pracy magazynu wektorów obejmuje następujące kroki:
- Zdefiniuj model danych, który identyfikuje klucz rekordu, pola danych i pola wektorów.
- Skonfiguruj generator osadzania, jeśli magazyn wektorów nie generuje osadzania.
- Połącz się z magazynem wektorów i wybierz lub utwórz kolekcję.
- Wygeneruj embeddingi i wykonaj operację upsert na rekordach do kolekcji.
- Wyszukaj kolekcję przy użyciu tekstu lub wektora, w zależności od możliwości implementacji.
- Przekaż odpowiednie wyniki wyszukiwania agentowi jako kontekst lub udostępnij wyszukiwanie jako narzędzie dla agenta.
Obsługa magazynu wektorów .NET
Struktura agenta używa autonomicznych abstrakcji ekosystemu sztucznej inteligencji .NET:
-
Microsoft.Extensions.VectorDataudostępnia wspólne interfejsy API magazynu wektorów, kolekcji, rekordów i wyszukiwania. -
Microsoft.Extensions.AIzapewnia abstrakcje, takie jakIEmbeddingGenerator, do generowania osadzeń niezależnie od konkretnego dostawcy modelu.
Jeśli składnik Agent Framework akceptuje magazyn wektorowy, można podać zgodną implementację Microsoft.Extensions.VectorData. Każda implementacja bazy danych jest dystrybuowana oddzielnie od pakietu abstrakcji.
Podstawowe abstrakcje
| Abstrakcja | Purpose |
|---|---|
VectorStore |
Udostępnia operacje między kolekcjami i tworzy typizowane wystąpienia kolekcji. |
VectorStoreCollection<TKey, TRecord> |
Tworzy lub usuwa kolekcję oraz aktualizuje lub wstawia, pobiera albo usuwa jej rekordy. |
IVectorSearchable<TRecord> |
Wyszukuje rekordy za pomocą wektora lub tekstu, gdy dostępny jest generator osadzeń albo możliwość generowania osadzeń po stronie bazy danych. |
Dostępne implementacje magazynu wektorów
Poniższe implementacje używają typowych abstrakcji magazynu wektorów .NET. Przejrzyj dokumentację poszczególnych implementacji dla wersji pakietów, obsługiwanych typów danych i ograniczeń specyficznych dla usługi.
| Implementation | Availability | Używa oficjalnie obsługiwanego zestawu SDK bazy danych | Konserwator lub sprzedawca |
|---|---|---|---|
| Wyszukiwanie AI platformy Azure | Available | Yes | Microsoft |
| Azure Cosmos DB for MongoDB vCore | Available | Yes | Microsoft |
| Azure Cosmos DB dla baz danych NoSQL | Available | Yes | Microsoft |
| Couchbase | Available | Yes | Couchbase |
| Elasticsearch | Available | Yes | Elastic |
| Chroma | Zaplanowane | Nie dotyczy | Nie dotyczy |
| W pamięci | Available | Nie dotyczy | Microsoft |
| Milvus | Zaplanowane | Nie dotyczy | Nie dotyczy |
| MongoDB | Available | Yes | Microsoft |
| Neon Serverless Postgres | Korzystanie z implementacji bazy danych Postgres | 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 |
| Nietrwałe w pamięci | Przestarzałe; użyj implementacji w pamięci | Nie dotyczy | Microsoft |
| Weaviate | Available | Yes | Microsoft |
Ważna
Implementacje magazynów wektorowych są rozwijane przez różnych opiekunów. Przed użyciem należy ocenić jakość, licencjonowanie, zasady pomocy technicznej i zgodność wersji każdej implementacji. Niektóre implementacje używają zestawów SDK baz danych, których dostawca bazy danych nie obsługuje oficjalnie.
Wprowadzenie
- Dodaj
Microsoft.Extensions.VectorData.Abstractionspakiet oraz pakiet dla wybranej implementacji bazy wektorowej. - Zdefiniuj typ rekordu i zidentyfikuj jego klucz, dane i właściwości wektora.
- Skonfiguruj
IEmbeddingGenerator, jeśli implementacja wymaga osadzeń generowanych przez aplikację. - Utwórz implementację
VectorStore, a następnie pobierz silnie typizowanyVectorStoreCollection<TKey, TRecord>. - Upewnij się, że kolekcja istnieje, wstaw lub zaktualizuj rekordy i wywołaj
SearchAsyncz tekstem lub wektorem.
Aby uzyskać pełne wprowadzenie do modeli danych, pozyskiwania, osadzania i wyszukiwania, zobacz Vector databases for .NET AI apps (Bazy danych wektorów dla aplikacji sztucznej inteligencji).
Obsługa magazynu wektorowego w języku Python
Agent Framework zapewnia eksperymentalne, natywne kontrakty w Pythonie dla modeli magazynów wektorowych, operacji na kolekcjach, fabryk magazynów, wyszukiwania wektorowego i hybrydowego wyszukiwania słów kluczowych oraz narzędzi wyszukiwania agentów. Kontrakty są częścią agent-framework-core i nie wymagają bibliotek Pydantic, NumPy, pandas ani Semantic Kernel.
Warning
Natywne dla Pythona interfejsy API magazynu wektorowego są eksperymentalne. Przed uzyskaniem stabilności mogą wystąpić ograniczone zmiany powodujące niezgodność.
Podstawowe abstrakcje
| Abstrakcja | Purpose |
|---|---|
VectorStoreField i VectorStoreCollectionDefinition |
Opisz pola klucza, danych i wektorowe, w tym nazwy magazynów danych, indeksy, wymiary i funkcje odległości. |
@vectorstoremodel i register_vectorstoremodel() |
Rejestrowanie klas danych, modeli Pydantic, struktur msgspec, klas zwykłych lub typów modeli należących do zewnątrz. |
BaseVectorCollection i SupportsVectorUpsert |
Definiowanie wsadowego upsertu, pobierania, usuwania, cyklu życia kolekcji, konwersji rekordów i opcjonalnego generowania embeddingów. |
BaseVectorStore |
Definiuje repozytorium, które zawiera listę kolekcji i tworzy typowane klienty kolekcji. |
BaseVectorSearch i SupportsVectorSearch |
Zdefiniuj wyszukiwanie wektorowe i hybrydowe słowo kluczowe, stronicowanie, filtry, progi wyników i wyniki wyszukiwania. |
Filter, FilterGroupi Param |
Zdefiniuj przenośne filtry oparte wyłącznie na danych, w tym parametry filtrowania dostarczane przez model dla narzędzi wyszukiwania. |
InMemoryStore i InMemoryCollection |
Zapewnij lokalne dla procesu operacje CRUD oraz przeszukiwanie liniowe na potrzeby programowania i testów. |
GenerateVectors |
Określa, czy operacje upsert generują wszystkie, żadne czy wybrane pola wektorowe. |
create_vector_search_tool(), create_upsert_tool(), create_get_tool()i create_delete_tool() |
Udostępnij wyszukiwanie wektorowe i operacje CRUD na kolekcjach jako narzędzia funkcji platformy Agent Framework. |
VectorStoreHistoryProvider |
Przechowuje historię konwersacji ograniczoną do określonego zakresu w kolekcji należącej do dostawcy, z opcjonalną kompresją i przeszukiwaniem pełnej historii. |
VectorCollectionContextProvider |
Dodaje konfigurowalne narzędzia CRUD i narzędzia wyszukiwania dla kolekcji należącej do wywołującego. |
Poniższy przykład definiuje rekordy magazynu wektorów przez dodawanie adnotacji do ich kluczy, danych i pól wektorów:
# 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
Użyj VectorStoreCollectionDefinition bezpośrednio w słownikach. W przypadku typów modelu należących do innego pakietu użyj elementu register_vectorstoremodel() z jawną definicją oraz opcjonalnym enkoderem i dekoderem. Wartości wektorów tablicopodobnych są serializowane przez tolist() bez dodawania zależności od NumPy.
Struktura agenta obejmuje implementację w pamięci na potrzeby programowania i testów. Przechowuje rekordy w bieżącym procesie i stosuje skanowanie liniowe, więc do obciążeń produkcyjnych użyj konektora bazy danych.
Przekaż opcje osadzania dla każdej operacji
Przekaż embeddings_options do upsert(), aby zastosować opcje dostawcy do każdego wygenerowanego pola wektorowego. Użyj embeddings_options_by_field , gdy różne pola wektorów logicznych wymagają różnych opcji. Te dwa argumenty wykluczają się wzajemnie.
W przypadku osadzania zapytań przekaż embeddings_options do search() lub create_vector_search_tool(). Agent Framework przekazuje zadeklarowane wymiary wybranego pola wektorowego i odrzuca sprzeczną wartość dimensions przed wywołaniem dostawcy osadzeń.
Opcje osadzania upsert wymagają wygenerowanych wektorów i nie można ich połączyć z generate_vectors=False. Opcje osadzania wyszukiwania wymagają lokalnego generatora osadzania i są ignorowane podczas podawania wektora zapytania wstępnie skompilowanego.
Poniższy przykład przechowuje wstępnie skompilowane wektory i wyszukuje je za pomocą przenośnego drzewa filtrów:
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}")
Użyj Param polecenia , gdy model powinien podać wartość filtru. Jego typ Python, opis i ograniczenia stają się częścią schematu JSON narzędzia wyszukiwania:
# 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}."
),
)
Użyj kolekcji wektorów z agentem
Użyj VectorCollectionContextProvider , gdy aplikacja jest właścicielem kolekcji i modelu danych. Dostawca dodaje wygenerowane operacje CRUD i narzędzia do wyszukiwania. Operacje Upsert i Delete domyślnie wymagają akceptacji, natomiast Get i Search nie.
Przekaż scope_filter, aby pogrupować rekordy dla wygenerowanych narzędzi, ale nie traktuj filtru jako granicy autoryzacji ani gwarancji atomowości po stronie zaplecza. Narzędzia wyszukiwania przekazywane przez additional_search_tools zachowują własne filtry, dlatego podczas udostępniania kolekcji zastosuj równoważny filtr do każdego narzędzia niestandardowego.
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:
Przechowuj historię konwersacji w magazynie wektorowym
Użyj VectorStoreHistoryProvider, gdy dostawca powinien zarządzać schematem kolekcji oraz automatycznie ładować i zapisywać komunikaty struktury Agent Framework. Identyfikatory aplikacji, dzierżawcy, agenta, źródła i sesji zapobiegają ich przypadkowemu nakładaniu się, ale Twoja aplikacja nadal musi autoryzować dostęp i używać poświadczeń magazynu lub przestrzeni nazw o odpowiednim zakresie uprawnień.
Podczas konfigurowania osadzania podaj jawną nazwę kolekcji i wymiary osadzania. Kompaktowanie zmniejsza tylko historię załadowaną do kontekstu modelu. Jeśli włączysz narzędzie wyszukiwania, przeszukuje transkrypcję w pełnym zakresie.
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:
Implementacje platformy agentów natywnych
W poniższych implementacjach są używane natywne kontrakty platformy Agent Framework. Niektóre są również dostępne jako oddzielne łączniki Semantic Kernel, ale dwie rodziny łączników nie są wymienne.
| Implementation | Pakiet i cykl życia programu Agent Framework | Oddzielny łącznik Semantic Kernel | Tryby wyszukiwania | Kluczowe ograniczenia |
|---|---|---|---|---|
| W pamięci |
agent-framework-core; wydano pakiet z eksperymentalnymi interfejsami API dla wektorów |
Dostępny | Gęsty wektor z przenośnymi filtrami | Lokalne skanowanie liniowe procesów na potrzeby programowania i testów, a nie produkcyjnej bazy danych. |
| Wyszukiwanie AI platformy Azure |
agent-framework-azure-ai-search; pakiet beta z eksperymentalnymi wektorowymi interfejsami API |
Dostępny | Gęsty wektor i hybryda oparta na słowach kluczowych | Jedno pole gęstego wektora najwyższego poziomu na zapytanie. Niektóre progi, hybrydowe mechanizmy sterujące odzyskiwaniem tekstu, ścisłe filtrowanie końcowe i uprawnienia wymagają obsługującego zestawu SDK/interfejsu API w wersji zapoznawczej oraz allow_preview=True. |
| Azure Cosmos DB for NoSQL |
agent-framework-azure-cosmos; pakiet beta z eksperymentalnymi wektorowymi interfejsami API |
Dostępny | Gęsty wektor z przenośnymi filtrami | Klucze muszą być ciągami przechowywanymi jako id, a kontenery używają /id klucza partycji. Wyszukiwanie słów kluczowych i hybrydowych nie jest obsługiwane, a wyszukiwanie euklidesowe nie obsługuje progów oceny. |
| Azure DocumentDB |
agent-framework-azure-documentdb; pakiet alfa |
Niedostępne | Wektor gęsty z przenośnymi filtrami metadanych | Klucze muszą być ciągami lub liczbami całkowitymi. Wygenerowane identyfikatory ObjectId, wyszukiwanie hybrydowe i pełnotekstowe oraz zagnieżdżone ścieżki filtrów nie są obsługiwane. |
| DuckDB |
agent-framework-duckdb; pakiet alfa |
Niedostępne | Dokładny wektor gęsty z przenośnymi filtrami | Wymaga Python 3.10+ i DuckDB 1.4.1–1.5.x. Przybliżone indeksy, wyszukiwanie kluczowe i hybrydowe, wyszukiwanie pełnotekstowe i wektoryzacja po stronie serwera nie są obsługiwane. Pliki lokalne umożliwiają tylko jeden proces zapisu naraz. |
| MongoDB |
agent-framework-mongodb; pakiet alfa |
Dostępny | Przybliżony lub dokładny wektor gęsty z filtrami przenośnymi | Wymaga narzędzia PyMongo 4.13.2 lub nowszego oraz wdrożenia z funkcją wyszukiwania wektorowego bazy danych MongoDB. Wyszukiwanie według słów kluczowych i hybrydowe, zagnieżdżone ścieżki filtrów, generowanie osadzeń po stronie dostawcy oraz automatyczna migracja schematu nie są obsługiwane. Modele, które deklarują is_full_text_indexed , są odrzucane, a nowo zapisane rekordy stają się przeszukiwalne asynchronicznie. |
| PostgreSQL z elementem pgvector |
agent-framework-postgres; pakiet alfa |
Dostępny | Dokładny wektor gęsty, HNSW i IVFFlat | Wymaga programu PostgreSQL 13+, pgvector 0.8.0+, istniejącego schematu i włączonego rozszerzenia. Wyszukiwanie słów kluczowych i hybrydowych nie jest obsługiwane. |
| Qdrant |
agent-framework-qdrant; pakiet alfa |
Dostępny | Gęsty wektor z przenośnymi filtrami po stronie serwera | Tryb serwera wymaga programu Qdrant 1.16.2 lub nowszego. Klucze muszą być niepodpisane 64-bitowymi liczbami całkowitymi lub identyfikatorami UUID. Wyszukiwanie słów kluczowych i hybrydowych nie jest obsługiwane, a filtry nie są dostępne w trybie lokalnego zestawu SDK. |
| Redis |
agent-framework-redis; pakiet beta z eksperymentalnymi wektorowymi interfejsami API |
Dostępny | Wektor gęsty na rekordach HASH lub JSON | Wymaga usługi Redis 8.0.3 lub nowszej z funkcją wyszukiwania; Rekordy JSON wymagają również formatu RedisJSON. Klaster Redis, wyszukiwanie słów kluczowych i wyszukiwanie hybrydowe nie są obsługiwane. |
| SQL Server |
agent-framework-sql-server; pakiet alfa |
Dostępny | Dokładny wektor gęsty z przenośnymi filtrami | Wymaga Python 3.10–3.14 i SQL Server 2025 lub bazy danych Azure SQL z obsługą wektorów. Przybliżone indeksy, wyszukiwanie kluczowe i hybrydowe, wektoryzacja po stronie serwera i migracja schematu nie są obsługiwane. |
Zainstaluj pakiet łącznika wersji wstępnej dla używanej bazy danych:
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
Na Python 3.10 do 3.14 agent-framework-postgres instaluje dystrybucję binarną Psycopg. W systemie Python 3.15 lub nowszym jest używana wersja pure-Python Psycopg, ponieważ zgodne koła binarne nie są publikowane, dlatego host musi zapewnić instalację systemulibpq.
Każdy łącznik implementuje wspólny model, kolekcję, operację CRUD, filtr i kontrakty wyszukiwania. Nadal obowiązują funkcje i ograniczenia specyficzne dla bazy danych. Aby zapoznać się z kompletnymi przykładami, zobacz Wyszukiwanie AI platformy Azure, DuckDB, MongoDB vector operations, MongoDB agent RAG, Postgres, Qdrant, Redis i SQL Server przykłady.
Implementacje oparte wyłącznie na Semantic Kernel
Aplikacje mogą nadal bezpośrednio używać magazynów wektorowych w Pythonie platformy Semantic Kernel. Te implementacje używają oddzielnych kontraktów magazynu wektorów Semantic Kernel zamiast natywnych kontraktów platformy Agent Framework. Następujące implementacje nie mają obecnie natywnego łącznika platformy Agent Framework:
| Implementation | Availability | Używa oficjalnie obsługiwanego zestawu SDK bazy danych | Konserwator lub sprzedawca |
|---|---|---|---|
| Azure Cosmos DB for MongoDB vCore | Available | Yes | projekt Microsoft Semantic Kernel |
| Chroma | Available | Yes | projekt Microsoft Semantic Kernel |
| Elasticsearch | Zaplanowane | Nie dotyczy | Nie dotyczy |
| Faiss | Available | Yes | projekt Microsoft Semantic Kernel |
| Neon Serverless Postgres | Korzystanie z implementacji bazy danych Postgres | Yes | projekt Microsoft Semantic Kernel |
| Oracle | Available | Yes | Oracle |
| Pinecone | Available | Yes | projekt Microsoft Semantic Kernel |
| SQLite | Zaplanowane | Nie dotyczy | projekt Microsoft Semantic Kernel |
| Weaviate | Available | Yes | projekt Microsoft Semantic Kernel |
Ważna
Implementacje magazynów wektorowych są rozwijane przez różnych opiekunów. Przed użyciem należy ocenić jakość, licencjonowanie, zasady pomocy technicznej i zgodność wersji każdej implementacji.
Użyj implementacji opartej wyłącznie na Semantic Kernel
- Zainstaluj
semantic-kerneli zależności wymagane przez wybraną implementację. - Zdefiniuj model za pomocą dekoratora
@vectorstoremodeli określ jego klucz, dane oraz pola wektorowe. - Utwórz kolekcję specyficzną dla implementacji dla tego modelu.
- Upewnij się, że kolekcja istnieje, a następnie wstaw lub zaktualizuj rekordy.
- Użyj interfejsów API wyszukiwania kolekcji, aby pobrać rekordy dla aplikacji.
Aby zapoznać się z konfiguracją implementacji i kompletnymi przykładami, zobacz Semantic Kernel Vector Stores (Magazyny wektorów Semantic Kernel).
Obsługa magazynu wektorów dla Go
Integracja magazynu wektorowego nie jest jeszcze dostępna w programie Agent Framework for Go. Aktualny status znajdziesz w repozytorium Agent Framework dla Go.
Powiązane scenariusze struktury agentów
- Dodaj aplikację RAG do agenta.
- Dodaj pamięć historii czatów semantycznych.
- Wybierz integrację dostawcy kontekstu.