LLM 和嵌入程序
此页提供了用于将 LLM 和嵌入程序插入到 Oracle 代理内存中的抽象接口。
LLM 接口
class oracleagentmemory.apis.llms.ILlm
基础:ABC
LLM 调用的抽象接口。
method generate(抽象)
同步从 LLM 生成响应。
- 参数:
- prompt
str | Sequence[dict[str, str]]- 纯文本提示(处理为单个用户消息)或聊天式消息列表,其中每条消息都是至少包含"content"键和可选"role"的映射。 - response_json_schema
dict[str, Any] | None- 描述预期响应格式的可选 JSON 方案。 - **kwargs ( Any )- 转发到底层后端的特定于提供程序的关键字参数。
- prompt
- 返回值:标准化 LLM 输出。
- 返回类型:LlmResponse
method generate_async(抽象、异步)
从 LLM 异步生成响应。
- 参数:
- prompt
str | Sequence[dict[str, str]]- 纯文本提示(处理为单个用户消息)或聊天式消息列表,其中每条消息都是至少包含"content"键和可选"role"的映射。 - response_json_schema
dict[str, Any] | None- 描述预期响应格式的可选 JSON 方案。 - **kwargs ( Any )- 转发到底层后端的特定于提供程序的关键字参数。
- prompt
- 返回值:标准化 LLM 输出。
- 返回类型:LlmResponse
LLM 响应
class oracleagentmemory.apis.llms.LlmResponse
基准:object
ILlm 返回的小型规范化响应。
- 参数:文本
str
文本
生成的主要文本内容。
- 类型: str
嵌入器界面
class oracleagentmemory.apis.IEmbedder
基础:ABC
文本嵌入程序的抽象界面。
method embed(抽象)
将一批文本嵌入 2D float32 NumPy 数组中。
- 参数:
- texts
list[str]- 要嵌入的一批文本。 - is_query
bool- 是否嵌入批处理以进行查询时间检索。
- texts
- 返回值:使用
dtype=float32形成(len(texts), dim)的 2D 数组。 - 返回类型: numpy.ndarray
method embed_async(抽象、异步)
将一批文本嵌入 2D float32 NumPy 数组中。
- 参数:
- texts
list[str]- 要嵌入的一批文本。 - is_query
bool- 是否嵌入批处理以进行查询时间检索。
- texts
- 返回值:使用
dtype=float32形成(len(texts), dim)的 2D 数组。 - 返回类型: numpy.ndarray
LiteLLM 适配器
class oracleagentmemory.core.llms.Llm
基础:ILlm
适配器利用文字生成聊天完成。
创建 LiteLLM 支持的 LLM 适配器。
- 参数:
- model
str- 将模型标识符作为model=...传递给litellm.completion。 - **default_kwargs ( Any )- 每次调用(例如
temperature=0.2、max_tokens=256)都转发到 LiteLLM 的缺省关键字参数。
- model
method generate
生成回应。
- 参数:
- prompt
str | Sequence[dict[str, str]]- 提示字符串或聊天消息。字符串被视为单个用户消息。 - response_json_schema
dict[str, Any] | None- 描述预期响应格式的可选 JSON 方案。如果提供,此方法将通过与 OpenAI 兼容的response_format使用提供程序本机结构化输出机制。 - **kwargs ( Any )- 转发到 LiteLLM 的其他调用参数。
- prompt
- 返回值:标准化 LLM 输出。
- 返回类型:LlmResponse
method generate_async(异步)
使用 LiteLLM 异步生成响应。
- 参数:
- prompt
str | Sequence[dict[str, str]]- 提示字符串或聊天消息。字符串被视为单个用户消息。 - response_json_schema
dict[str, Any] | None- 描述预期响应格式的可选 JSON 方案。如果提供,则此方法通过与 OpenAI 兼容的response_format使用提供程序本机结构化输出机制。 - **kwargs ( Any )- 转发到 LiteLLM 的其他调用参数。
- prompt
- 返回值:标准化 LLM 输出。
- 返回类型:LlmResponse
class oracleagentmemory.core.embedders.Embedder
基础:IEmbedder
LiteLLM 支持的嵌入程序
- 参数:
- model
str-LiteLLM 支持的模型标识符。 - normalize
bool-LiteLLM 是否返回 L2 规范化嵌入。 - api_base
str | None-LiteLLM 到目标定制部署的可选基本 URL。 - api_key
str | None- 与提供程序联系时转发到 LiteLLM 的可选 API 密钥。 - embedding_kwargs
dict[str, Any] | None- 转发到litellm.embedding()的其他关键字参数。 - query_prefix
str | None
- model
注
仅当首次使用嵌入器时才导入 LiteLLM 客户机,这样对于不依赖 LiteLLM 的应用程序,可保持可选的依赖性成本较低。如果提供连接详细信息(如 api_base 和 api_key),则会将连接详细信息合并到对 litellm.embedding 的调用中。
method embed
使用 LiteLLM 嵌入一批文本。
- 参数:
- texts
list[str]- 要嵌入的一批原始文本字符串。 - is_query
bool
- texts
- 返回:
- numpy.ndarray - 包含 LiteLLM 返回的嵌入向量的二维
float32矩阵。 - is_query - 文本是否为查询,对于特定嵌入模型可能是必需的。
- numpy.ndarray - 包含 LiteLLM 返回的嵌入向量的二维
- 引发:RuntimeError - 如果 LiteLLM 响应有效负载不包括嵌入数据。
- 返回类型:ndarray
示例
使用配置的 LiteLLM 嵌入器进行简单的单文本嵌入:
vector = embedder.embed(["ping"])
vector.shape[0]
1
method embed_async(异步)
使用 LiteLLM 嵌入一批文本。
- 参数:
- texts
list[str]- 要嵌入的一批原始文本字符串。 - is_query
bool- 文本是否为查询,对于特定的嵌入模型可能是必需的。
- texts
- 返回值:包含 LiteLLM 返回的嵌入向量的二维
float32矩阵。 - 返回类型: numpy.ndarray
- 引发:RuntimeError - 如果 LiteLLM 响应有效负载不包括嵌入数据。