LLMと埋込み
このページでは、LLMおよび埋込みをOracle Agent Memoryに接続するために使用する抽象インタフェースを示します。
LLMインタフェース
クラス oracleagentmemory.apis.llms.ILlm
ベース: ABC
LLM呼出しの抽象インタフェース。
method generate (抽象)
LLMからのレスポンスを同期的に生成します。
- パラメータ:
- プロンプト
str | Sequence[dict[str, str]]– プレーン・テキスト・プロンプト(単一ユーザー・メッセージとして処理)またはチャット形式のメッセージ・リスト(各メッセージは、少なくとも"content"キーおよびオプションで"role"を含むマッピング)のいずれかです。 - response_json_schema
dict[str, Any] | None– 必要なレスポンス形式を記述するオプションのJSONスキーマ。 - **kwargs (Any)– 基盤となるバックエンドに転送されるプロバイダ固有のキーワード引数。
- プロンプト
- 戻り値:正規化されたLLM出力。
- 戻りタイプ: LlmResponse
method generate_async (抽象、非同期)
LLMからのレスポンスを非同期で生成します。
- パラメータ:
- プロンプト
str | Sequence[dict[str, str]]– プレーン・テキスト・プロンプト(単一ユーザー・メッセージとして処理)またはチャット形式のメッセージ・リスト(各メッセージは、少なくとも"content"キーおよびオプションで"role"を含むマッピング)のいずれかです。 - response_json_schema
dict[str, Any] | None– 必要なレスポンス形式を記述するオプションのJSONスキーマ。 - **kwargs (Any)– 基盤となるバックエンドに転送されるプロバイダ固有のキーワード引数。
- プロンプト
- 戻り値:正規化されたLLM出力。
- 戻りタイプ: LlmResponse
LLMレスポンス
クラス oracleagentmemory.apis.llms.LlmResponse
ベース: object
ILlmによって返される小さい正規化されたレスポンス。
- パラメータ: text
str
テキスト
プライマリ生成テキスト・コンテンツ。
- タイプ: str
Embedderインタフェース
クラス oracleagentmemory.apis.IEmbedder
ベース: ABC
テキスト・埋込み用の抽象インタフェース。
method embed (抽象)
テキストのバッチを2D float32 NumPy配列に埋め込みます。
- パラメータ:
- texts
list[str]– 埋め込むテキストのバッチ。 - is_query
bool– バッチが問合せ時取得用に埋め込まれているかどうか。
- texts
- 戻り値:
dtype=float32を持つ2D配列型の(len(texts), dim)。 - 戻り値の型: numpy.ndarray
method embed_async (抽象、非同期)
テキストのバッチを2D float32 NumPy配列に埋め込みます。
- パラメータ:
- texts
list[str]– 埋め込むテキストのバッチ。 - is_query
bool– バッチが問合せ時取得用に埋め込まれているかどうか。
- texts
- 戻り値:
dtype=float32を持つ2D配列型の(len(texts), dim)。 - 戻り値の型: numpy.ndarray
LiteLLMアダプタ
クラス oracleagentmemory.core.llms.Llm
ベース: ILlm
litellmを活用してチャット完了を生成するアダプタ。
LiteLLMにバックアップされたLLMアダプタを作成します。
- パラメータ:
- model
str–model=...としてlitellm.completionに渡されるモデル識別子。 - **default_kwargs (Any)– 呼び出しごとにLiteLLMに転送されるデフォルトのキーワード引数(
temperature=0.2、max_tokens=256など)。
- model
メソッド 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
クラス 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へのコールにマージされます。
メソッド embed
LiteLLMを使用してテキストのバッチを埋め込みます。
- パラメータ:
- texts
list[str]– 埋め込む生のテキスト文字列のバッチ。 - is_query
bool
- texts
- 戻り値:
- numpy.ndarray–LiteLLMによって返される埋込みベクトルを含む2次元の
float32行列。 - is_query– テキストがクエリーかどうかは、特定の埋め込みモデルに必要になることがあります。
- numpy.ndarray–LiteLLMによって返される埋込みベクトルを含む2次元の
- Raises: RuntimeError–LiteLLM応答ペイロードに埋め込みデータが含まれていない場合。
- 戻り型: ndarray
例
構成済のLiteLLM埋込み子を使用した単純な単一テキスト埋込み:
vector = embedder.embed(["ping"])
vector.shape[0]
1
method embed_async (非同期)
LiteLLMを使用してテキストのバッチを埋め込みます。
- パラメータ:
- texts
list[str]– 埋め込む生のテキスト文字列のバッチ。 - is_query
bool– テキストが問合せであるかどうかは、特定の埋込みモデルに必要になる場合があります。
- texts
- 戻り値: LiteLLMによって戻される埋込みベクトルを含む2次元の
float32マトリックス。 - 戻り値の型: numpy.ndarray
- Raises: RuntimeError–LiteLLM応答ペイロードに埋め込みデータが含まれていない場合。