autogen_ext.memory.chromadb#
- class ChromaDBVectorMemory(config: ChromaDBVectorMemoryConfig | None = None)[源]#
基类:
Memory
、Component
[ChromaDBVectorMemoryConfig
]使用 ChromaDB 支持的向量相似性搜索存储和检索记忆。
ChromaDBVectorMemory 提供了一种基于向量的记忆实现,它使用 ChromaDB 根据语义相似性存储和检索内容。它通过利用向量嵌入来查找相似内容,增强了智能体在对话中回忆上下文相关信息的能力。
此实现可作为使用向量嵌入的更复杂记忆系统的参考。对于需要检索内容特殊格式的高级用例,用户应扩展此类别并重写 update_context() 方法。
此实现需要安装 ChromaDB 附加组件。安装方式:
pip install "autogen-ext[chromadb]"
- 参数:
config (ChromaDBVectorMemoryConfig | None) – ChromaDB 记忆的配置。如果为 None,则默认为具有默认值的 PersistentChromaDBVectorMemoryConfig。支持两种配置类型: * PersistentChromaDBVectorMemoryConfig:用于本地存储 * HttpChromaDBVectorMemoryConfig:用于连接远程 ChromaDB 服务器
示例
import os import asyncio from pathlib import Path from autogen_agentchat.agents import AssistantAgent from autogen_agentchat.ui import Console from autogen_core.memory import MemoryContent, MemoryMimeType from autogen_ext.memory.chromadb import ( ChromaDBVectorMemory, PersistentChromaDBVectorMemoryConfig, SentenceTransformerEmbeddingFunctionConfig, OpenAIEmbeddingFunctionConfig, ) from autogen_ext.models.openai import OpenAIChatCompletionClient def get_weather(city: str) -> str: return f"The weather in {city} is sunny with a high of 90°F and a low of 70°F." def fahrenheit_to_celsius(fahrenheit: float) -> float: return (fahrenheit - 32) * 5.0 / 9.0 async def main() -> None: # Use default embedding function default_memory = ChromaDBVectorMemory( config=PersistentChromaDBVectorMemoryConfig( collection_name="user_preferences", persistence_path=os.path.join(str(Path.home()), ".chromadb_autogen"), k=3, # Return top 3 results score_threshold=0.5, # Minimum similarity score ) ) # Using a custom SentenceTransformer model custom_memory = ChromaDBVectorMemory( config=PersistentChromaDBVectorMemoryConfig( collection_name="multilingual_memory", persistence_path=os.path.join(str(Path.home()), ".chromadb_autogen"), embedding_function_config=SentenceTransformerEmbeddingFunctionConfig( model_name="paraphrase-multilingual-mpnet-base-v2" ), ) ) # Using OpenAI embeddings openai_memory = ChromaDBVectorMemory( config=PersistentChromaDBVectorMemoryConfig( collection_name="openai_memory", persistence_path=os.path.join(str(Path.home()), ".chromadb_autogen"), embedding_function_config=OpenAIEmbeddingFunctionConfig( api_key=os.environ["OPENAI_API_KEY"], model_name="text-embedding-3-small" ), ) ) # Add user preferences to memory await openai_memory.add( MemoryContent( content="The user prefers weather temperatures in Celsius", mime_type=MemoryMimeType.TEXT, metadata={"category": "preferences", "type": "units"}, ) ) # Create assistant agent with ChromaDB memory assistant = AssistantAgent( name="assistant", model_client=OpenAIChatCompletionClient( model="gpt-4.1", ), tools=[ get_weather, fahrenheit_to_celsius, ], max_tool_iterations=10, memory=[openai_memory], ) # The memory will automatically retrieve relevant content during conversations await Console(assistant.run_stream(task="What's the temperature in New York?")) # Remember to close the memory when finished await default_memory.close() await custom_memory.close() await openai_memory.close() asyncio.run(main())
输出
---------- TextMessage (user) ---------- What's the temperature in New York? ---------- MemoryQueryEvent (assistant) ---------- [MemoryContent(content='The user prefers weather temperatures in Celsius', mime_type='MemoryMimeType.TEXT', metadata={'type': 'units', 'category': 'preferences', 'mime_type': 'MemoryMimeType.TEXT', 'score': 0.3133561611175537, 'id': 'fb00506c-acf4-4174-93d7-2a942593f3f7'}), MemoryContent(content='The user prefers weather temperatures in Celsius', mime_type='MemoryMimeType.TEXT', metadata={'mime_type': 'MemoryMimeType.TEXT', 'category': 'preferences', 'type': 'units', 'score': 0.3133561611175537, 'id': '34311689-b419-4e1a-8bc4-09143f356c66'})] ---------- ToolCallRequestEvent (assistant) ---------- [FunctionCall(id='call_7TjsFd430J1aKwU5T2w8bvdh', arguments='{"city":"New York"}', name='get_weather')] ---------- ToolCallExecutionEvent (assistant) ---------- [FunctionExecutionResult(content='The weather in New York is sunny with a high of 90°F and a low of 70°F.', name='get_weather', call_id='call_7TjsFd430J1aKwU5T2w8bvdh', is_error=False)] ---------- ToolCallRequestEvent (assistant) ---------- [FunctionCall(id='call_RTjMHEZwDXtjurEYTjDlvq9c', arguments='{"fahrenheit": 90}', name='fahrenheit_to_celsius'), FunctionCall(id='call_3mMuCK1aqtzZPTqIHPoHKxtP', arguments='{"fahrenheit": 70}', name='fahrenheit_to_celsius')] ---------- ToolCallExecutionEvent (assistant) ---------- [FunctionExecutionResult(content='32.22222222222222', name='fahrenheit_to_celsius', call_id='call_RTjMHEZwDXtjurEYTjDlvq9c', is_error=False), FunctionExecutionResult(content='21.11111111111111', name='fahrenheit_to_celsius', call_id='call_3mMuCK1aqtzZPTqIHPoHKxtP', is_error=False)] ---------- TextMessage (assistant) ---------- The temperature in New York today is sunny with a high of about 32°C and a low of about 21°C.
- component_config_schema#
- component_provider_override: ClassVar[str | None] = 'autogen_ext.memory.chromadb.ChromaDBVectorMemory'#
覆盖组件的提供者字符串。这应该用于防止内部模块名称成为模块名称的一部分。
- async update_context(model_context: ChatCompletionContext) UpdateContextResult [源]#
使用相关的记忆内容更新提供的模型上下文。
- 参数:
model_context – 要更新的上下文。
- 返回:
包含相关记忆的 UpdateContextResult
- async add(content: MemoryContent, cancellation_token: CancellationToken | None = None) None [源]#
向记忆中添加新内容。
- 参数:
content – 要添加的记忆内容
cancellation_token – 用于取消操作的可选令牌
- async query(query: str | MemoryContent, cancellation_token: CancellationToken | None = None, **kwargs: Any) MemoryQueryResult [源]#
查询记忆存储并返回相关条目。
- 参数:
query – 查询内容项
cancellation_token – 用于取消操作的可选令牌
**kwargs – 其他特定于实现的参数
- 返回:
包含具有相关性分数的记忆条目的 MemoryQueryResult
- pydantic model ChromaDBVectorMemoryConfig[源]#
基类:
BaseModel
ChromaDB 记忆实现的基本配置。
v0.4.1 版本中有所更改:添加了通过 embedding_function_config 支持自定义嵌入函数的功能。
显示 JSON 模式
{ "title": "ChromaDBVectorMemoryConfig", "description": "Base configuration for ChromaDB-based memory implementation.\n\n.. versionchanged:: v0.4.1\n Added support for custom embedding functions via embedding_function_config.", "type": "object", "properties": { "client_type": { "enum": [ "persistent", "http" ], "title": "Client Type", "type": "string" }, "collection_name": { "default": "memory_store", "description": "Name of the ChromaDB collection", "title": "Collection Name", "type": "string" }, "distance_metric": { "default": "cosine", "description": "Distance metric for similarity search", "title": "Distance Metric", "type": "string" }, "k": { "default": 3, "description": "Number of results to return in queries", "title": "K", "type": "integer" }, "score_threshold": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Minimum similarity score threshold", "title": "Score Threshold" }, "allow_reset": { "default": false, "description": "Whether to allow resetting the ChromaDB client", "title": "Allow Reset", "type": "boolean" }, "tenant": { "default": "default_tenant", "description": "Tenant to use", "title": "Tenant", "type": "string" }, "database": { "default": "default_database", "description": "Database to use", "title": "Database", "type": "string" }, "embedding_function_config": { "description": "Configuration for the embedding function", "discriminator": { "mapping": { "default": "#/$defs/DefaultEmbeddingFunctionConfig", "openai": "#/$defs/OpenAIEmbeddingFunctionConfig", "sentence_transformer": "#/$defs/SentenceTransformerEmbeddingFunctionConfig" }, "propertyName": "function_type" }, "oneOf": [ { "$ref": "#/$defs/DefaultEmbeddingFunctionConfig" }, { "$ref": "#/$defs/SentenceTransformerEmbeddingFunctionConfig" }, { "$ref": "#/$defs/OpenAIEmbeddingFunctionConfig" } ], "title": "Embedding Function Config" } }, "$defs": { "DefaultEmbeddingFunctionConfig": { "description": "Configuration for the default ChromaDB embedding function.\n\nUses ChromaDB's default embedding function (Sentence Transformers all-MiniLM-L6-v2).\n\n.. versionadded:: v0.4.1\n Support for custom embedding functions in ChromaDB memory.", "properties": { "function_type": { "const": "default", "default": "default", "title": "Function Type", "type": "string" } }, "title": "DefaultEmbeddingFunctionConfig", "type": "object" }, "OpenAIEmbeddingFunctionConfig": { "description": "Configuration for OpenAI embedding functions.\n\nUses OpenAI's embedding API for generating embeddings.\n\n.. versionadded:: v0.4.1\n Support for custom embedding functions in ChromaDB memory.\n\nArgs:\n api_key (str): OpenAI API key. If empty, will attempt to use environment variable.\n model_name (str): OpenAI embedding model name. Defaults to \"text-embedding-ada-002\".\n\nExample:\n .. code-block:: python\n\n from autogen_ext.memory.chromadb import OpenAIEmbeddingFunctionConfig\n\n _ = OpenAIEmbeddingFunctionConfig(api_key=\"sk-...\", model_name=\"text-embedding-3-small\")", "properties": { "function_type": { "const": "openai", "default": "openai", "title": "Function Type", "type": "string" }, "api_key": { "default": "", "description": "OpenAI API key", "title": "Api Key", "type": "string" }, "model_name": { "default": "text-embedding-ada-002", "description": "OpenAI embedding model name", "title": "Model Name", "type": "string" } }, "title": "OpenAIEmbeddingFunctionConfig", "type": "object" }, "SentenceTransformerEmbeddingFunctionConfig": { "description": "Configuration for SentenceTransformer embedding functions.\n\nAllows specifying a custom SentenceTransformer model for embeddings.\n\n.. versionadded:: v0.4.1\n Support for custom embedding functions in ChromaDB memory.\n\nArgs:\n model_name (str): Name of the SentenceTransformer model to use.\n Defaults to \"all-MiniLM-L6-v2\".\n\nExample:\n .. code-block:: python\n\n from autogen_ext.memory.chromadb import SentenceTransformerEmbeddingFunctionConfig\n\n _ = SentenceTransformerEmbeddingFunctionConfig(model_name=\"paraphrase-multilingual-mpnet-base-v2\")", "properties": { "function_type": { "const": "sentence_transformer", "default": "sentence_transformer", "title": "Function Type", "type": "string" }, "model_name": { "default": "all-MiniLM-L6-v2", "description": "SentenceTransformer model name to use", "title": "Model Name", "type": "string" } }, "title": "SentenceTransformerEmbeddingFunctionConfig", "type": "object" } }, "required": [ "client_type" ] }
- 字段:
allow_reset (bool)
client_type (Literal['persistent', 'http'])
collection_name (str)
database (str)
distance_metric (str)
embedding_function_config (autogen_ext.memory.chromadb._chroma_configs.DefaultEmbeddingFunctionConfig | autogen_ext.memory.chromadb._chroma_configs.SentenceTransformerEmbeddingFunctionConfig | autogen_ext.memory.chromadb._chroma_configs.OpenAIEmbeddingFunctionConfig | autogen_ext.memory.chromadb._chroma_configs.CustomEmbeddingFunctionConfig)
k (int)
score_threshold (float | None)
tenant (str)
- field embedding_function_config: Annotated[DefaultEmbeddingFunctionConfig | SentenceTransformerEmbeddingFunctionConfig | OpenAIEmbeddingFunctionConfig | CustomEmbeddingFunctionConfig, FieldInfo(annotation=NoneType, required=True, discriminator='function_type')] [可选]#
嵌入函数的配置
- pydantic model PersistentChromaDBVectorMemoryConfig[源]#
-
持久化 ChromaDB 记忆的配置。
显示 JSON 模式
{ "title": "PersistentChromaDBVectorMemoryConfig", "description": "Configuration for persistent ChromaDB memory.", "type": "object", "properties": { "client_type": { "default": "persistent", "enum": [ "persistent", "http" ], "title": "Client Type", "type": "string" }, "collection_name": { "default": "memory_store", "description": "Name of the ChromaDB collection", "title": "Collection Name", "type": "string" }, "distance_metric": { "default": "cosine", "description": "Distance metric for similarity search", "title": "Distance Metric", "type": "string" }, "k": { "default": 3, "description": "Number of results to return in queries", "title": "K", "type": "integer" }, "score_threshold": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Minimum similarity score threshold", "title": "Score Threshold" }, "allow_reset": { "default": false, "description": "Whether to allow resetting the ChromaDB client", "title": "Allow Reset", "type": "boolean" }, "tenant": { "default": "default_tenant", "description": "Tenant to use", "title": "Tenant", "type": "string" }, "database": { "default": "default_database", "description": "Database to use", "title": "Database", "type": "string" }, "embedding_function_config": { "description": "Configuration for the embedding function", "discriminator": { "mapping": { "default": "#/$defs/DefaultEmbeddingFunctionConfig", "openai": "#/$defs/OpenAIEmbeddingFunctionConfig", "sentence_transformer": "#/$defs/SentenceTransformerEmbeddingFunctionConfig" }, "propertyName": "function_type" }, "oneOf": [ { "$ref": "#/$defs/DefaultEmbeddingFunctionConfig" }, { "$ref": "#/$defs/SentenceTransformerEmbeddingFunctionConfig" }, { "$ref": "#/$defs/OpenAIEmbeddingFunctionConfig" } ], "title": "Embedding Function Config" }, "persistence_path": { "default": "./chroma_db", "description": "Path for persistent storage", "title": "Persistence Path", "type": "string" } }, "$defs": { "DefaultEmbeddingFunctionConfig": { "description": "Configuration for the default ChromaDB embedding function.\n\nUses ChromaDB's default embedding function (Sentence Transformers all-MiniLM-L6-v2).\n\n.. versionadded:: v0.4.1\n Support for custom embedding functions in ChromaDB memory.", "properties": { "function_type": { "const": "default", "default": "default", "title": "Function Type", "type": "string" } }, "title": "DefaultEmbeddingFunctionConfig", "type": "object" }, "OpenAIEmbeddingFunctionConfig": { "description": "Configuration for OpenAI embedding functions.\n\nUses OpenAI's embedding API for generating embeddings.\n\n.. versionadded:: v0.4.1\n Support for custom embedding functions in ChromaDB memory.\n\nArgs:\n api_key (str): OpenAI API key. If empty, will attempt to use environment variable.\n model_name (str): OpenAI embedding model name. Defaults to \"text-embedding-ada-002\".\n\nExample:\n .. code-block:: python\n\n from autogen_ext.memory.chromadb import OpenAIEmbeddingFunctionConfig\n\n _ = OpenAIEmbeddingFunctionConfig(api_key=\"sk-...\", model_name=\"text-embedding-3-small\")", "properties": { "function_type": { "const": "openai", "default": "openai", "title": "Function Type", "type": "string" }, "api_key": { "default": "", "description": "OpenAI API key", "title": "Api Key", "type": "string" }, "model_name": { "default": "text-embedding-ada-002", "description": "OpenAI embedding model name", "title": "Model Name", "type": "string" } }, "title": "OpenAIEmbeddingFunctionConfig", "type": "object" }, "SentenceTransformerEmbeddingFunctionConfig": { "description": "Configuration for SentenceTransformer embedding functions.\n\nAllows specifying a custom SentenceTransformer model for embeddings.\n\n.. versionadded:: v0.4.1\n Support for custom embedding functions in ChromaDB memory.\n\nArgs:\n model_name (str): Name of the SentenceTransformer model to use.\n Defaults to \"all-MiniLM-L6-v2\".\n\nExample:\n .. code-block:: python\n\n from autogen_ext.memory.chromadb import SentenceTransformerEmbeddingFunctionConfig\n\n _ = SentenceTransformerEmbeddingFunctionConfig(model_name=\"paraphrase-multilingual-mpnet-base-v2\")", "properties": { "function_type": { "const": "sentence_transformer", "default": "sentence_transformer", "title": "Function Type", "type": "string" }, "model_name": { "default": "all-MiniLM-L6-v2", "description": "SentenceTransformer model name to use", "title": "Model Name", "type": "string" } }, "title": "SentenceTransformerEmbeddingFunctionConfig", "type": "object" } } }
- 字段:
client_type (Literal['persistent', 'http'])
persistence_path (str)
- pydantic model HttpChromaDBVectorMemoryConfig[源]#
-
HTTP ChromaDB 记忆的配置。
显示 JSON 模式
{ "title": "HttpChromaDBVectorMemoryConfig", "description": "Configuration for HTTP ChromaDB memory.", "type": "object", "properties": { "client_type": { "default": "http", "enum": [ "persistent", "http" ], "title": "Client Type", "type": "string" }, "collection_name": { "default": "memory_store", "description": "Name of the ChromaDB collection", "title": "Collection Name", "type": "string" }, "distance_metric": { "default": "cosine", "description": "Distance metric for similarity search", "title": "Distance Metric", "type": "string" }, "k": { "default": 3, "description": "Number of results to return in queries", "title": "K", "type": "integer" }, "score_threshold": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Minimum similarity score threshold", "title": "Score Threshold" }, "allow_reset": { "default": false, "description": "Whether to allow resetting the ChromaDB client", "title": "Allow Reset", "type": "boolean" }, "tenant": { "default": "default_tenant", "description": "Tenant to use", "title": "Tenant", "type": "string" }, "database": { "default": "default_database", "description": "Database to use", "title": "Database", "type": "string" }, "embedding_function_config": { "description": "Configuration for the embedding function", "discriminator": { "mapping": { "default": "#/$defs/DefaultEmbeddingFunctionConfig", "openai": "#/$defs/OpenAIEmbeddingFunctionConfig", "sentence_transformer": "#/$defs/SentenceTransformerEmbeddingFunctionConfig" }, "propertyName": "function_type" }, "oneOf": [ { "$ref": "#/$defs/DefaultEmbeddingFunctionConfig" }, { "$ref": "#/$defs/SentenceTransformerEmbeddingFunctionConfig" }, { "$ref": "#/$defs/OpenAIEmbeddingFunctionConfig" } ], "title": "Embedding Function Config" }, "host": { "default": "localhost", "description": "Host of the remote server", "title": "Host", "type": "string" }, "port": { "default": 8000, "description": "Port of the remote server", "title": "Port", "type": "integer" }, "ssl": { "default": false, "description": "Whether to use HTTPS", "title": "Ssl", "type": "boolean" }, "headers": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "default": null, "description": "Headers to send to the server", "title": "Headers" } }, "$defs": { "DefaultEmbeddingFunctionConfig": { "description": "Configuration for the default ChromaDB embedding function.\n\nUses ChromaDB's default embedding function (Sentence Transformers all-MiniLM-L6-v2).\n\n.. versionadded:: v0.4.1\n Support for custom embedding functions in ChromaDB memory.", "properties": { "function_type": { "const": "default", "default": "default", "title": "Function Type", "type": "string" } }, "title": "DefaultEmbeddingFunctionConfig", "type": "object" }, "OpenAIEmbeddingFunctionConfig": { "description": "Configuration for OpenAI embedding functions.\n\nUses OpenAI's embedding API for generating embeddings.\n\n.. versionadded:: v0.4.1\n Support for custom embedding functions in ChromaDB memory.\n\nArgs:\n api_key (str): OpenAI API key. If empty, will attempt to use environment variable.\n model_name (str): OpenAI embedding model name. Defaults to \"text-embedding-ada-002\".\n\nExample:\n .. code-block:: python\n\n from autogen_ext.memory.chromadb import OpenAIEmbeddingFunctionConfig\n\n _ = OpenAIEmbeddingFunctionConfig(api_key=\"sk-...\", model_name=\"text-embedding-3-small\")", "properties": { "function_type": { "const": "openai", "default": "openai", "title": "Function Type", "type": "string" }, "api_key": { "default": "", "description": "OpenAI API key", "title": "Api Key", "type": "string" }, "model_name": { "default": "text-embedding-ada-002", "description": "OpenAI embedding model name", "title": "Model Name", "type": "string" } }, "title": "OpenAIEmbeddingFunctionConfig", "type": "object" }, "SentenceTransformerEmbeddingFunctionConfig": { "description": "Configuration for SentenceTransformer embedding functions.\n\nAllows specifying a custom SentenceTransformer model for embeddings.\n\n.. versionadded:: v0.4.1\n Support for custom embedding functions in ChromaDB memory.\n\nArgs:\n model_name (str): Name of the SentenceTransformer model to use.\n Defaults to \"all-MiniLM-L6-v2\".\n\nExample:\n .. code-block:: python\n\n from autogen_ext.memory.chromadb import SentenceTransformerEmbeddingFunctionConfig\n\n _ = SentenceTransformerEmbeddingFunctionConfig(model_name=\"paraphrase-multilingual-mpnet-base-v2\")", "properties": { "function_type": { "const": "sentence_transformer", "default": "sentence_transformer", "title": "Function Type", "type": "string" }, "model_name": { "default": "all-MiniLM-L6-v2", "description": "SentenceTransformer model name to use", "title": "Model Name", "type": "string" } }, "title": "SentenceTransformerEmbeddingFunctionConfig", "type": "object" } } }
- 字段:
client_type (Literal['persistent', 'http'])
headers (Dict[str, str] | None)
host (str)
port (int)
ssl (bool)
- pydantic model DefaultEmbeddingFunctionConfig[源]#
基类:
BaseModel
默认 ChromaDB 嵌入函数的配置。
使用 ChromaDB 的默认嵌入函数(Sentence Transformers all-MiniLM-L6-v2)。
v0.4.1 版本中新增:ChromaDB 记忆中对自定义嵌入函数的支持。
显示 JSON 模式
{ "title": "DefaultEmbeddingFunctionConfig", "description": "Configuration for the default ChromaDB embedding function.\n\nUses ChromaDB's default embedding function (Sentence Transformers all-MiniLM-L6-v2).\n\n.. versionadded:: v0.4.1\n Support for custom embedding functions in ChromaDB memory.", "type": "object", "properties": { "function_type": { "const": "default", "default": "default", "title": "Function Type", "type": "string" } } }
- 字段:
function_type (Literal['default'])
- pydantic model SentenceTransformerEmbeddingFunctionConfig[源]#
基类:
BaseModel
SentenceTransformer 嵌入函数的配置。
允许为嵌入指定自定义 SentenceTransformer 模型。
v0.4.1 版本中新增:ChromaDB 记忆中对自定义嵌入函数的支持。
- 参数:
model_name (str) – 要使用的 SentenceTransformer 模型的名称。默认为“all-MiniLM-L6-v2”。
示例
from autogen_ext.memory.chromadb import SentenceTransformerEmbeddingFunctionConfig _ = SentenceTransformerEmbeddingFunctionConfig(model_name="paraphrase-multilingual-mpnet-base-v2")
显示 JSON 模式
{ "title": "SentenceTransformerEmbeddingFunctionConfig", "description": "Configuration for SentenceTransformer embedding functions.\n\nAllows specifying a custom SentenceTransformer model for embeddings.\n\n.. versionadded:: v0.4.1\n Support for custom embedding functions in ChromaDB memory.\n\nArgs:\n model_name (str): Name of the SentenceTransformer model to use.\n Defaults to \"all-MiniLM-L6-v2\".\n\nExample:\n .. code-block:: python\n\n from autogen_ext.memory.chromadb import SentenceTransformerEmbeddingFunctionConfig\n\n _ = SentenceTransformerEmbeddingFunctionConfig(model_name=\"paraphrase-multilingual-mpnet-base-v2\")", "type": "object", "properties": { "function_type": { "const": "sentence_transformer", "default": "sentence_transformer", "title": "Function Type", "type": "string" }, "model_name": { "default": "all-MiniLM-L6-v2", "description": "SentenceTransformer model name to use", "title": "Model Name", "type": "string" } } }
- 字段:
function_type (Literal['sentence_transformer'])
model_name (str)
- pydantic model OpenAIEmbeddingFunctionConfig[源]#
基类:
BaseModel
OpenAI 嵌入函数的配置。
使用 OpenAI 的嵌入 API 生成嵌入。
v0.4.1 版本中新增:ChromaDB 记忆中对自定义嵌入函数的支持。
- 参数:
示例
from autogen_ext.memory.chromadb import OpenAIEmbeddingFunctionConfig _ = OpenAIEmbeddingFunctionConfig(api_key="sk-...", model_name="text-embedding-3-small")
显示 JSON 模式
{ "title": "OpenAIEmbeddingFunctionConfig", "description": "Configuration for OpenAI embedding functions.\n\nUses OpenAI's embedding API for generating embeddings.\n\n.. versionadded:: v0.4.1\n Support for custom embedding functions in ChromaDB memory.\n\nArgs:\n api_key (str): OpenAI API key. If empty, will attempt to use environment variable.\n model_name (str): OpenAI embedding model name. Defaults to \"text-embedding-ada-002\".\n\nExample:\n .. code-block:: python\n\n from autogen_ext.memory.chromadb import OpenAIEmbeddingFunctionConfig\n\n _ = OpenAIEmbeddingFunctionConfig(api_key=\"sk-...\", model_name=\"text-embedding-3-small\")", "type": "object", "properties": { "function_type": { "const": "openai", "default": "openai", "title": "Function Type", "type": "string" }, "api_key": { "default": "", "description": "OpenAI API key", "title": "Api Key", "type": "string" }, "model_name": { "default": "text-embedding-ada-002", "description": "OpenAI embedding model name", "title": "Model Name", "type": "string" } } }
- 字段:
api_key (str)
function_type (Literal['openai'])
model_name (str)
- pydantic model CustomEmbeddingFunctionConfig[源]#
基类:
BaseModel
自定义嵌入函数的配置。
允许使用返回 ChromaDB 兼容嵌入函数的自定义函数。
v0.4.1 版本中新增:ChromaDB 记忆中对自定义嵌入函数的支持。
警告
包含自定义函数的配置不可序列化。
- 参数:
function (Callable) – 返回 ChromaDB 兼容嵌入函数的函数。
params (Dict[str, Any]) – 传递给函数的参数。
显示 JSON 模式
{ "title": "CustomEmbeddingFunctionConfig", "type": "object", "properties": { "function_type": { "const": "custom", "default": "custom", "title": "Function Type", "type": "string" }, "function": { "default": null, "title": "Function" }, "params": { "description": "Parameters to pass to the function", "title": "Params", "type": "object" } } }
- 字段:
function (Callable[[...], Any])
function_type (Literal['custom'])
params (Dict[str, Any])