LLM、埋込みおよび再ランカ
このページでは、LLM、埋込みおよび再ランカのOracle Agent Memoryへの接続に使用する抽象インタフェースを示します。
LLMインタフェース
クラス oracleagentmemory.apis.llms.ILlm
ベース: ABC
LLM呼出しの抽象インタフェース。
method generate (抽象)
LLMからのレスポンスを同期的に生成します。
- パラメータ:
- prompt
str | Sequence[Message | Mapping[str, str | Sequence[Mapping[str, Any]]]] | ChatMessageTypedDictT– 文字列、チャット形式のディクショナリ・シーケンス、またはMessageオブジェクトのシーケンス。文字列はユーザー・メッセージになり、メッセージ・コンテンツにはテキスト部分とイメージ部分が含まれる場合があります。イメージ・パーツは、プロバイダに送信される前に検証されます。 - response_json_schema
dict[str, Any] | None– 必要なレスポンス形式を記述するオプションのJSONスキーマ。 - **kwargs (Any)– 追加の呼び出しオプション。組込みLlmは、レスポンスAPIを選択するために
api_type=LlmApiType.RESPONSESを受け入れ、そのリクエストのイメージ制限をオーバーライドするためにimage_input_limit_config=ImageInputLimitConfig(...)を受け入れます。その他のキーワード引数は、基礎となるバックエンドに転送されます。
- prompt
- 戻り値:正規化されたLLM出力。
- 戻りタイプ: LlmResponse
method generate_async (抽象、非同期)
LLMからのレスポンスを非同期で生成します。
- パラメータ:
- prompt
str | Sequence[Message | Mapping[str, str | Sequence[Mapping[str, Any]]]] | ChatMessageTypedDictT– 文字列、チャット形式のディクショナリ・シーケンス、またはMessageオブジェクトのシーケンス。文字列はユーザー・メッセージになり、メッセージ・コンテンツにはテキスト部分とイメージ部分が含まれる場合があります。イメージ・パーツは、プロバイダに送信される前に検証されます。 - response_json_schema
dict[str, Any] | None– 必要なレスポンス形式を記述するオプションのJSONスキーマ。 - **kwargs (Any)– 追加の呼び出しオプション。組込みLlmは、レスポンスAPIを選択するために
api_type=LlmApiType.RESPONSESを受け入れ、そのリクエストのイメージ制限をオーバーライドするためにimage_input_limit_config=ImageInputLimitConfig(...)を受け入れます。その他のキーワード引数は、基礎となるバックエンドに転送されます。
- prompt
- 戻り値:正規化された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
property embedding_dimension
- 戻り型: int
- 説明:この埋込みによって生成される埋込みのサイズを返します。
構成メタデータまたはプロバイダ・メタデータから埋込み幅がわかっている場合、サブクラスはこのプロパティをオーバーライドできます。デフォルトの実装では、embed()を1回プローブし、結果サイズをキャッシュします。
- 戻り値:各埋込みベクトルの浮動小数点値の正の数。
- 戻り型: int
property max_input_tokens
- 戻り型: int
- 説明:サポートされている最大入力トークンを返します。
モデルの入力予算が構成またはプロバイダ・メタデータからわかっている場合、サブクラスはこのプロパティをオーバーライドできます。デフォルトの実装では、推定512入力トークンにサイズ設定されたプローブが1回検証され、512が保守的なフォールバックとしてキャッシュされます。モデル・トークナイザはローカルで実行されないため、コール元は、モデルの実際の入力予算がわかっているときにmax_input_tokensを手動で設定する必要があります。
- 戻り値: 1つのテキスト・ペイロードに対する正の最大入力トークン数。
- 戻り型: int
Rerankerインタフェース
クラス oracleagentmemory.apis.IReranker
ベース: ABC
同期および非同期文書再ランク付け用の抽象インタフェースです。
実装は、入力ドキュメントごとに1つの結果を返す必要があります。ゼロベースの各入力索引は、1回のみ出現する必要があります。relevance_scoreは有限である必要があり、スコアが高いほど関連性が高くなる必要があります。結果は、最高スコアから最低スコアの順に並べる必要があります。
メソッド rerank
rerank_asyncに委任して、ドキュメントを同期的にランク付けします。
- パラメータ:
- query
str– ドキュメントの比較に使用される検索問合せ。 - ドキュメント
list[str]– 安定した入力順序で候補ドキュメント・テキスト。結果インデックスは、このリスト内の位置を参照します。 - **kwargs (Any)– プロバイダ固有のオプション。
- query
- 戻り値:正確に
len(documents)の結果を使用した完全なランキング。すべての入力索引は、最も関連性が低いものから順に1回表示されます。 - 戻りタイプ: RerankResponse
method rerank_async (抽象、非同期)
クエリーに関連するドキュメントを非同期にランク付けします。
- パラメータ:
- query
str– ドキュメントの比較に使用される検索問合せ。 - ドキュメント
list[str]– 安定した入力順序で候補ドキュメント・テキスト。結果インデックスは、このリスト内の位置を参照します。 - **kwargs (Any)– プロバイダ固有のオプション。
- query
- 戻り値:正確に
len(documents)の結果を使用した完全なランキング。すべての入力索引は、最も関連性が低いものから順に1回表示されます。 - 戻りタイプ: RerankResponse
クラス oracleagentmemory.apis.RerankResponse
ベース: object
ドキュメント・ランキングを関連スコアの降順で完了します。
- パラメータ: results
list[RerankResponseResult]
クラス oracleagentmemory.apis.RerankResponseResult
ベース: object
1つの文書の再ランク付けの結果。
- パラメータ:
- index
int– 入力リスト内のドキュメントのゼロベースの位置。 - relevance_score
float– 問合せドキュメント・ペアの関連スコア。値が大きいほど関連性が高くなります。 - document
str | None– プロバイダがドキュメントを返したときのドキュメント・テキスト。それ以外の場合はNone。
- index
LiteLLMアダプタ
クラス oracleagentmemory.core.llms.LlmApiType
ベース: str、Enum
LlmでサポートされているOpenAI互換APIファミリ。
CHAT_COMPLETIONS = 'CHAT_COMPLETIONS'
応答 = 'RESPONSES'
クラス oracleagentmemory.core.llms.Llm
ベース: ILlm
モデル応答を生成するためのアダプタです。
LLMアダプタを作成します。
- パラメータ:
- model
str– 基礎となるモデル・プロバイダに送信されるモデル識別子。 - api_base
str | None–OpenAI互換エンドポイントのオプションのベースURL。 - api_key
str | None– プロバイダへの接続時に使用されるオプションのAPIキー。 - api_type
LlmApiType– 呼び出すAPIファミリ。チャット完了の場合はLlmApiType.CHAT_COMPLETIONS、レスポンスAPIの場合はLlmApiType.RESPONSESを使用します。デフォルトはLlmApiType.CHAT_COMPLETIONSです。 - stream
bool– ストリーミング出力をリクエストするかどうか。ストリームは内部的に消費され、単一のLlmResponseとして返されます。 - temperature
float | None– オプションのサンプリング温度。 - max_tokens
int | None– 出力トークンの制限(オプション)。api_type=LlmApiType.CHAT_COMPLETIONSでは、これはmax_tokensとして送信されます。 - reasoning_effort
str | None– オプションの推論作業。api_type=LlmApiType.CHAT_COMPLETIONSでは、これはreasoning_effortとして送信されます。api_type=LlmApiType.RESPONSESでは、これはreasoning={"effort": ...}に変換されます。 - enable_structured_output_reminder
bool– 構造化出力が要求されたときに、構造化出力スキーマをプロンプトに追加するかどうか。省略した場合、デフォルトはモデル・ルートに従います。これは、LiteLLMの明示的な"openai/..."ルートでホストされたvLLMおよび非クローズ・モデルに対して有効です。ベア・モデル名またはその他のカスタム・エンドポイントに対して、これを明示的に設定します。 - supports_vision
bool– このモデルが、生成プロンプトでイメージの内容を受け入れるかどうか。省略すると、サポートが遅延して検出されます。アダプタは最初にモデル・メタデータをチェックし、メタデータが使用できない場合、固定再イメージ・プローブを送信します。検出をスキップするには、これをTrueまたはFalseに設定します。 - image_input_limit_config
ImageInputLimitConfig– オプションのrawイメージおよびリクエストごとのイメージ制限。省略されたフィールドには、SDKのデフォルトが使用されます。検証は、イメージ・リクエストごとに有効なままです。 - max_concurrent_requests
int | None– このLLMインスタンスを通じて許可される非同期リクエストの最大数。16を使用するには、値を省略します。Noneを渡して、同時実行性の制限を無効にします。エンドポイントの動作が異なる場合は、これを明示的に設定します。 - proxy
str | None– プロバイダ要求用のオプションのプロキシURL。指定した場合、この明示的なプロキシは、環境からのプロキシ設定よりも優先されます。省略すると、trust_envが有効なときに環境プロキシ設定が使用されます。 - trust_env
bool– プロバイダが環境変数からの読み取りプロキシおよびTLS設定を要求するかどうか。省略した場合、デフォルトはTrueです。Falseに設定すると、これらの環境設定が無視されます。明示的なproxyが引き続き使用されます。 - key_file
str | None– PEM形式のクライアント非公開鍵ファイルへのオプションのパス。サーバーで相互TLSが必要な場合は、cert_fileとともに指定します。 - cert_file
str | None– PEM形式のクライアント証明書チェーンファイルへのオプションのパス。サーバーで相互TLSが必要な場合は、key_fileとともに指定します。 - ca_file
str | None– サーバー証明書の検証に使用される PEM形式の信頼できるCA証明書またはバンドルへのオプションのパス。これは、プライベートCAまたはシステム以外のCAに使用します。 - **default_kwargs (Any)– すべての呼び出しに適用される拡張デフォルトキーワード引数。一般的な接続および生成設定については、前述の明示的なパラメータを優先してください。明示的にも
default_kwargsにも同じ設定が指定されている場合、明示的なパラメータが優先されます。
- model
例
OCI生成AIモデルは、LiteLLMの"oci/..."モデル識別子を使用します。一般的な設定は、LiteLLM固有のキーワード引数を介してOCI APIキー認証の詳細を標準OCI構成ファイルから渡すことです。OCI Python SDKはこのパッケージによってインストールされません。すでに依存しているアプリケーションは、かわりにoci_signerオブジェクトを渡すことができます。
import configparser
from pathlib import Path
parser = configparser.RawConfigParser()
parser.read(Path("~/.oci/config").expanduser())
cfg = parser["DEFAULT"]
key_file = Path(cfg["key_file"]).expanduser()
oci_llm = Llm(
model="oci/openai.gpt-oss-120b",
oci_compartment_id="ocid1.compartment.oc1..example",
oci_region=cfg.get("region", "us-chicago-1"),
oci_user=cfg["user"],
oci_fingerprint=cfg["fingerprint"],
oci_tenancy=cfg["tenancy"],
oci_key_file=str(key_file),
)
oci_llm.generate("Reply with OK.")
OpenAIホスト・モデルでは、"openai/gpt-5.1"やOpenAI APIキーなどのLiteLLMモデル識別子が使用されます。チャット完了はデフォルトのAPIファミリです。
openai_llm = Llm(
model="openai/gpt-5.1",
api_key="sk-example",
temperature=0,
max_tokens=128,
)
openai_llm.model
'openai/gpt-5.1'
openai_llm.generate("Reply with OK.")
チャット完了ではなくOpenAIレスポンスAPIを介してターゲット・モデルをコールする必要がある場合は、api_type=LlmApiType.RESPONSESを使用します。
responses_llm = Llm(
model="openai/gpt-5.4",
api_key="sk-example",
api_type=LlmApiType.RESPONSES,
reasoning_effort="high",
stream=True,
)
responses_llm.model
'openai/gpt-5.4'
vLLMを含む自己ホストOpenAI互換サーバーは、"openai/..."モデル識別子とサーバーの/v1ベースURLを使用してコールされます。エンドポイントで認証が強制されない場合は、"none"などの名目api_keyを渡します。
vllm_llm = Llm(
model="openai/openai/gpt-oss-120b",
api_base="http://localhost:8000/v1",
api_key="none",
stream=True,
)
vllm_llm.model
'openai/openai/gpt-oss-120b'
vllm_llm.generate("Reply with OK.")
メソッド generate
応答を生成します。
- パラメータ:
- prompt
str | Sequence[Message | Mapping[str, str | Sequence[Mapping[str, Any]]]] | ChatMessageTypedDictT– 文字列、チャット形式のディクショナリ・シーケンス、またはメッセージ・オブジェクトのシーケンス。文字列はユーザー・メッセージになり、コンテンツにはテキストおよびイメージの部分が含まれる場合があります。イメージ・パーツは、プロバイダに送信される前に検証されます。 - response_json_schema
dict[str, Any] | None– 必要なレスポンス形式を記述するオプションのJSONスキーマ。指定した場合、このメソッドはOpenAI互換のresponse_formatを介してプロバイダ・ネイティブの構造化出力メカニズムを使用します。 - **kwargs (Any)– 追加の呼び出しパラメータ。レスポンスAPIを介してこのコールをルーティングするには、
api_type=LlmApiType.RESPONSESを渡します。イメージ・プロンプトの場合、image_input_limit_config=ImageInputLimitConfig(...)を渡して、このリクエストに対するこのLlmインスタンスのイメージ制限をオーバーライドします。省略されたフィールドはインスタンス構成を継承します。その他のキーワード引数は、プロバイダ・リクエストとともに送信されます。
- prompt
- 戻り値:正規化されたLLM出力。
- 戻りタイプ: LlmResponse
method generate_async (非同期)
非同期でレスポンスを生成します。
- パラメータ:
- prompt
str | Sequence[Message | Mapping[str, str | Sequence[Mapping[str, Any]]]] | ChatMessageTypedDictT– 文字列、プロンプト、またはチャット形式のメッセージシーケンス。文字列はユーザー・メッセージになり、コンテンツにはテキストおよびイメージの部分が含まれる場合があります。イメージ・パーツは、プロバイダに送信される前に検証されます。 - response_json_schema
dict[str, Any] | None– 必要なレスポンス形式を記述するオプションのJSONスキーマ。指定した場合、このメソッドはOpenAI互換のresponse_formatを介してプロバイダ・ネイティブの構造化出力メカニズムを使用します。 - **kwargs (Any)– 追加の呼び出しパラメータ。レスポンスAPIを介してこのコールをルーティングするには、
api_type=LlmApiType.RESPONSESを渡します。イメージ・プロンプトの場合、image_input_limit_config=ImageInputLimitConfig(...)を渡して、このリクエストに対するこのLlmインスタンスのイメージ制限をオーバーライドします。省略されたフィールドはインスタンス構成を継承します。その他のキーワード引数は、プロバイダ・リクエストとともに送信されます。
- prompt
- 戻り値:正規化されたLLM出力。
- 戻りタイプ: LlmResponse
property supports_vision
- 戻りタイプ: bool
- 説明:このLLMがイメージ入力をサポートしているかどうかを返し、遅延を検出します。
クラス oracleagentmemory.core.embedders.Embedder
ベース: IEmbedder
プロバイダに支えられた埋込み。
プロバイダに支えられた埋込みを作成します。
- パラメータ:
- model
str– 基礎となる埋込みプロバイダに送信されるモデル識別子。 - api_base
str | None–OpenAI互換エンドポイントのオプションのベースURL。 - api_key
str | None– プロバイダへの接続時に使用されるオプションのAPIキー。 - embedding_dimension
int | None– オプションの埋込みベクトル・ディメンション。指定した場合、DBバック・クライアントは、プロバイダ・プローブを送信せずにベクトル・スキーマを作成または検証できます。省略すると、embedding_dimensionは小さいフォールバック・プローブでディメンションを遅延させます。 - max_input_tokens
int– 埋め込みモデルでサポートされる最大入力トークン数。省略すると、max_input_tokensプロパティは、推定512入力トークンにサイズ設定されたプロバイダ・プローブを検証し、512を保守的なフォールバックとしてキャッシュします。モデル・トークナイザはローカルで実行されないため、モデルの文書化された入力予算に基づいてmax_input_tokensを手動で設定します。 - normalize
bool– プロバイダから返された埋込みをL2で正規化するかどうか。 - query_prefix
str | None– 問合せテキストを埋め込む場合にのみ追加されるオプションの接頭辞。 - document_prefix
str | None– 問合せ以外のテキストを埋め込む場合にのみ追加されるオプションの接頭辞。 - truncate_prompt_tokens
int | None– 長い埋め込みプロンプトの切り捨てをサポートするプロバイダに転送される、オプションの入力トークンの制限。 - proxy
str | None– プロバイダ要求用のオプションのプロキシURL。指定した場合、この明示的なプロキシは、環境からのプロキシ設定よりも優先されます。省略すると、trust_envが有効なときに環境プロキシ設定が使用されます。 - trust_env
bool– プロバイダが環境変数からの読み取りプロキシおよびTLS設定を要求するかどうか。省略した場合、デフォルトはTrueです。Falseに設定すると、これらの環境設定が無視されます。明示的なproxyが引き続き使用されます。 - key_file
str | None– PEM形式のクライアント非公開鍵ファイルへのオプションのパス。サーバーで相互TLSが必要な場合は、cert_fileとともに指定します。 - cert_file
str | None– PEM形式のクライアント証明書チェーンファイルへのオプションのパス。サーバーで相互TLSが必要な場合は、key_fileとともに指定します。 - ca_file
str | None– サーバー証明書の検証に使用される PEM形式の信頼できるCA証明書またはバンドルへのオプションのパス。これは、プライベートCAまたはシステム以外のCAに使用します。 - **default_kwargs (Any)– すべての埋め込み呼び出しに適用される拡張デフォルトキーワード引数。共通設定については、前述の明示的なパラメータを優先してください。
- model
例
OCI生成AI埋込みモデルでは、"oci/..."モデル識別子を使用します。一般的な設定は、LiteLLM固有のキーワード引数を介してOCI APIキー認証の詳細を標準OCI構成ファイルから渡すことです。OCI Python SDKはこのパッケージによってインストールされません。すでに依存しているアプリケーションは、かわりにoci_signerオブジェクトを渡すことができます。
import configparser
from pathlib import Path
parser = configparser.RawConfigParser()
parser.read(Path("~/.oci/config").expanduser())
cfg = parser["DEFAULT"]
key_file = Path(cfg["key_file"]).expanduser()
oci_embedder = Embedder(
model="oci/cohere.embed-english-v3.0",
oci_compartment_id="ocid1.compartment.oc1..example",
oci_region=cfg.get("region", "us-chicago-1"),
oci_user=cfg["user"],
oci_fingerprint=cfg["fingerprint"],
oci_tenancy=cfg["tenancy"],
oci_key_file=str(key_file),
)
oci_embedder.embed(["hello world"])
OpenAIホスト埋込みモデルでは、"openai/text-embedding-3-small"などの識別子をOpenAI APIキーとともに使用します。
openai_embedder = Embedder(
model="openai/text-embedding-3-small",
api_key="sk-example",
truncate_prompt_tokens=8192,
)
openai_embedder.model
'openai/text-embedding-3-small'
openai_embedder.embed(["hello world"])
vLLMを含む自己ホストOpenAI互換の埋込みサーバーでは、サーバーの/v1ベースURLとともに"hosted_vllm/..."プロバイダ接頭辞を使用します。
vllm_embedder = Embedder(
model="hosted_vllm/sentence-transformers/all-MiniLM-L6-v2",
api_base="http://localhost:8000/v1",
)
vllm_embedder.model
'hosted_vllm/sentence-transformers/all-MiniLM-L6-v2'
vllm_embedder.embed(["hello world"])
メソッド embed
構成済プロバイダを使用してテキストのバッチを埋め込みます。
- パラメータ:
- texts
list[str]– 埋め込む生のテキスト文字列のバッチ。 - is_query
bool– テキストがクエリーかどうか。問合せテキストはquery_prefixを受信し、非問合せテキストは構成時にdocument_prefixを受信します。
- texts
- 戻り値:プロバイダから返される埋込みベクトルを含む2次元の
float32マトリックス。 - 戻り値の型: numpy.ndarray
- Raises: RuntimeError– プロバイダ・レスポンス・ペイロードにデータの埋込みが含まれていない場合。
method embed_async (非同期)
構成されたプロバイダを使用して、テキストのバッチを非同期に埋め込みます。
- パラメータ:
- texts
list[str]– 埋め込む生のテキスト文字列のバッチ。 - is_query
bool– テキストがクエリーであるかどうか。問合せテキストはquery_prefixを受信し、非問合せテキストは構成時にdocument_prefixを受信します。
- texts
- 戻り値:プロバイダから返される埋込みベクトルを含む2次元の
float32マトリックス。 - 戻り値の型: numpy.ndarray
- Raises: RuntimeError– プロバイダ・レスポンス・ペイロードにデータの埋込みが含まれていない場合。
property embedding_dimension
- 戻り型: int
-
説明:構成済または推測埋込みディメンションを返します。
- 戻り値:各埋込みベクトルの正のディメンション数。
- 戻り型: int
ノート
コンストラクタ提供の値は、プロバイダに連絡せずに返されます。それ以外の場合、プロパティは1回プローブし、結果をキャッシュします。
property max_input_tokens
- 戻り型: int
-
説明:構成済または推測の埋込み入力トークン制限を返します。
- 戻り値: 1つのテキスト・ペイロードに対する正の最大入力トークン数。
- 戻り型: int
ノート
コンストラクタ提供の値は、プロバイダに連絡せずに返されます。それ以外の場合、このプロパティは、推定512入力トークンにサイズ設定されたプロバイダ・プローブを検証し、512を保守的なフォールバックとしてキャッシュします。モデル・トークナイザはローカルで実行されないため、精度が重要な場合は、モデルの文書化された入力予算からmax_input_tokensを手動で設定します。
クラス oracleagentmemory.core.Reranker
ベース: IReranker
Rerankerは、プロバイダに依存しないRerankインタフェースによってサポートされます。
- パラメータ:
- model
str–Rerankerモデル識別子。OCI生成AIモデルにoci/を接頭辞として付けます(たとえば、oci/cohere.rerank-v4.0-fast)。 - api_base
str | None–OpenAI互換の再ランク付けエンドポイントのオプションのベースURL。 - api_key
str | None– プロバイダによって使用されるオプションのAPIキー。 -
**default_kwargs (Any)–
すべての再ランク付けリクエストに適用されるプロバイダ固有のオプション。
ノート: OCIの再ランク付けには、
oci_compartment_id、oci_region、oci_user、oci_fingerprint、oci_tenancyおよびoci_key_fileが必要です。OCIモデルを使用する前に、オプションのrerank-oci依存性グループをインストールします。
- model
例
reranker = Reranker(
model="your-reranker-model",
api_base="https://your-reranker-endpoint/v1",
api_key="your-api-key",
)
reranker.rerank("favorite food", ["The user likes pasta."])
oci_reranker = Reranker(
model="oci/cohere.rerank-v4.0-fast",
oci_compartment_id="ocid1.compartment...",
oci_region="your-region",
oci_user="ocid1.user...",
oci_fingerprint="aa:bb:cc",
oci_tenancy="ocid1.tenancy...",
oci_key_file="~/.oci/oci_api_key.pem",
)
oci_reranker.rerank("favorite food", ["The user likes pasta."])
プロバイダにバックアップされた再ランカを作成します。
method rerank_async (非同期)
クエリーに関連するドキュメントを非同期にランク付けします。
- パラメータ:
- query
str– ドキュメントの比較に使用される検索問合せ。 - ドキュメント
list[str]– 安定した入力順序で候補ドキュメント・テキスト。 - **kwargs (任意)– 再ランキング・プロバイダに転送されるプロバイダ固有のオプション。
- query
- 戻り値:最も高い関連性スコアから最も低いものの順にプロバイダ・ランキングを完了します。
- 戻りタイプ: RerankResponse
Oracle DB埋込み
クラス oracleagentmemory.core.embedders.OracleDBEmbedder
ベース: IEmbedder
Oracle AI Database Embedding SQLを呼び出してテキストを埋め込みます。
この埋込みにより、パッケージの既存の埋込み契約はそのまま保持され、埋込み生成はSQLを介してデータベースに委任されます。直接埋込みは、データベース常駐のモデル構成にVECTOR_EMBEDDINGを優先し、ベクトル化の構成にJSONプロバイダ・パラメータ・サーフェスが必要な場合にDBMS_VECTOR_CHAIN.UTL_TO_EMBEDDINGにフォールバックします。
Oracle AI Database SQLの実行に裏付けられた埋込みを作成します。
- パラメータ:
- connection
object- 呼出し可能なcursor()またはacquire()メソッドを持つOracle DB接続またはプールのようなオブジェクト。 - model
str– モデル識別子。デフォルトの"database"プロバイダの場合、これは、データベース内埋込みモデルの引用符なしのOracle SQL識別子またはスキーマ修飾識別子である必要があります。接続されたスキーマは、SQLでこのモデル名を解決できる必要があります。リモート・プロバイダの場合は、そのサービスに必要なモデル名またはプロバイダ固有のモデル識別子を使用します。 - input_name
str– ベクトル化構成がデータベース常駐モデルをターゲットとする場合、VECTOR_EMBEDDINGで使用されるモデル入力名。デフォルトは"DATA"で、OracleのDBMS_VECTOR ONNX埋込みモデルの例およびメタデータで使用される入力名です。インポートされたモデルで別の属性が使用されている場合は、実際のモデル入力名をここに渡します。 - embedding_dimension
int | None– オプションの埋込みベクトル・ディメンション。指定した場合、DBバック・クライアントは、ディメンション・プローブ問合せを送信せずにベクトル・スキーマを作成または検証できます。省略すると、ディメンションは1つのプローブ埋込みリクエストで遅延して推測されます。 - max_input_tokens
int– デフォルトのストアチャンカーで使用される最大入力トークン予算。省略すると、max_input_tokensプロパティは、推定512入力トークンにサイズ設定されたデータベース・モデル・プローブを検証し、512を保守的なフォールバックとしてキャッシュします。モデル・トークナイザはローカルで実行されないため、モデルの文書化された入力予算に基づいてmax_input_tokensを手動で設定します。 - normalize
bool– 埋込みをデータベースからフェッチした後にL2で正規化するかどうか。 - query_prefix
str | None– 問合せテキストを埋め込む場合にのみ追加されるオプションの接頭辞。 - batch_size
int–1つのSQL埋込みラウンドトリップにグループ化されるテキストの最大数。 - プロバイダ
str– Oracle AI Databaseに構成された埋込みプロバイダ。デフォルトの"database"では、Oracle Databaseにロードされた埋込みモデル(通常はONNX形式)が使用されます。リモート・プロバイダには、Cohere、OpenAI、Google AI、Oracle Cloud Infrastructure Generative AIなどのサービスが含まれます。vLLMなどのOpenAI互換サービスは、"openai"をprovider_optionsのサービス・エンドポイントとともに使用します。サポートされているプロバイダとその構成については、OracleのDBMS_VECTOR_CHAINドキュメントを参照してください: https://docs.oracle.com/en/database/oracle/oracle-database/26/vecse/dbms_vector_chain-vecse.html - provider_options
Mapping[str, Any] | None– オプションのOracleベクトル化設定(url、credential_name、host="local"など)。このマッピングでは、コンストラクタ引数によってprovider、modelおよびinput_nameがオーバーライドされます。Oracleドキュメント・プロバイダのオプションおよびデータベース資格証明の作成方法: https://docs.oracle.com/en/database/oracle/oracle-database/26/vecse/utl_to_embedding-and-utl_to_embeddings-dbms_vector_chain.html https://docs.oracle.com/en/database/oracle/oracle-database/26/vecse/create_credential-dbms_vector_chain.html
- connection
例
Oracle接続プールとDB常駐の埋込みモデルを使用します。
import oracledb
pool = oracledb.create_pool(
user="scott",
password="tiger",
dsn="dbhost.example.com/orclpdb",
)
embedder = OracleDBEmbedder(
connection=pool,
model="DOC_MODEL",
embedding_dimension=768,
)
embedder.embed(["hello world"])
スキーマ修飾モデル名は、接続されたスキーマが別のスキーマが所有するモデルに対する権限を持っている場合に使用できます。
shared_embedder = OracleDBEmbedder(
connection=pool,
model="MY_OTHER_SCHEMA.MY_ONNX_MODEL",
embedding_dimension=768,
)
shared_embedder.embed(["hello world"])
次の例は、OpenAI、vLLM、Cohereおよびその他のプロバイダとのOracle AI Database埋込みの構成方法を示しています。
OpenAIの例:
openai_embedder = OracleDBEmbedder(
connection=pool,
provider="openai",
model="text-embedding-3-small",
provider_options={
"credential_name": "OPENAI_CRED",
"url": "https://api.openai.example.com/embeddings",
},
)
openai_embedder.embed(["hello world"])
Cohereの例:
cohere_embedder = OracleDBEmbedder(
connection=pool,
provider="cohere",
model="embed-english-v3.0",
provider_options={
"credential_name": "COHERE_CRED",
"url": "https://api.cohere.example.com/embed",
"input_type": "search_document",
},
)
cohere_embedder.embed(["hello world"])
vLLMなどのOpenAI互換サービスでは、"openai"プロバイダも使用されます。エンドポイントにOracle AI Database資格証明が必要ない場合、hostを"local"に設定します。
vllm_embedder = OracleDBEmbedder(
connection=pool,
provider="openai",
model="BAAI/bge-small-en-v1.5",
provider_options={
"url": "http://localhost:8080/v1/embeddings",
"host": "local",
},
)
vllm_embedder.embed(["hello world"])
Geminiの例:
gemini_embedder = OracleDBEmbedder(
connection=pool,
provider="googleai",
model="gemini-embedding-001",
provider_options={
"credential_name": "GOOGLEAI_CRED",
"url": "https://googleapis.example.com/models/",
},
)
gemini_embedder.embed(["hello world"])
Hugging Faceの例:
huggingface_embedder = OracleDBEmbedder(
connection=pool,
provider="huggingface",
model=(
"sentence-transformers/all-MiniLM-L6-v2"
),
provider_options={
"credential_name": "HF_CRED",
"url": "https://router.huggingface.example.com/",
},
)
huggingface_embedder.embed(["hello world"])
問合せ固有の接頭辞は、ストアAPIを変更せずに構成できます。
embedder = OracleDBEmbedder(
connection=pool,
model="DOC_MODEL",
query_prefix="search_document: ",
)
embedder.embed(["pizza"], is_query=True)
メソッド embed
Oracle AI DatabaseでSQLを実行して、テキストのバッチを埋め込みます。
- パラメータ:
- texts
list[str]– 埋め込む生のテキスト文字列のバッチ。 - is_query
bool– テキストがクエリーであるかどうか。問合せテキストは、構成時にquery_prefixを受け取ります。
- texts
- 戻り値: 2次元の
float32マトリックスで、入力テキストごとに1行あります。 - 戻り値の型: numpy.ndarray
例
embedder = OracleDBEmbedder(
connection=pool,
model="DOC_MODEL",
)
matrix = embedder.embed(["alpha", "beta"])
matrix.shape[0]
2
method embed_async (非同期)
Oracle AI Database SQLを使用して、テキストのバッチを非同期に埋め込みます。
- パラメータ:
- texts
list[str]– 埋め込む生のテキスト文字列のバッチ。 - is_query
bool– テキストがクエリーかどうか。問合せテキストは、構成時にquery_prefixを受け取ります。
- texts
- 戻り値: 2次元の
float32マトリックスで、入力テキストごとに1行あります。 - 戻り値の型: numpy.ndarray
例
embedder = OracleDBEmbedder(
connection=pool,
model="DOC_MODEL",
)
matrix = await embedder.embed_async(["hello"])
matrix.shape
(1, 384)
property embedding_dimension
- 戻り型: int
-
説明:構成済または推測埋込みディメンションを返します。
- 戻り値:各埋込みベクトルの正のディメンション数。
- 戻り型: int
ノート
コンストラクタ提供の値は、データベース・モデルに接続せずに返されます。それ以外の場合、プロパティーは1回プローブし、将来のアクセスのために結果をキャッシュします。
例
embedder = OracleDBEmbedder(
connection=pool,
model="DOC_MODEL",
embedding_dimension=768,
)
embedder.embedding_dimension
768
メソッド get_vectorizer_config_json
このDBモデルのOracleベクトル化プリファレンスJSONを返します。
同じモデル構成が、直接埋込みと管理対象ハイブリッド索引によって使用されます。直接埋込みでは、これを使用して、VECTOR_EMBEDDINGが構成済データベース・モデルを表すことができるかどうか、またはプロバイダJSONにDBMS_VECTOR_CHAIN.UTL_TO_EMBEDDINGが必要かどうかを判断します。ハイブリッド索引付けはこれをDBMS_VECTOR_CHAIN.CREATE_PREFERENCEに渡し、Oracleのベクトル化パイプラインがその索引の埋込み作業を所有します。
- 戻り値:
DBMS_VECTOR_CHAIN.VECTORIZERを使用したDBMS_VECTOR_CHAIN.CREATE_PREFERENCEに適したコンパクトなJSONペイロード。 - 戻り型: str
例
embedder = OracleDBEmbedder(
connection=pool,
model="DOC_MODEL",
embedding_dimension=768,
)
embedder.get_vectorizer_config_json()
'{"model":"DOC_MODEL"}'
custom_embedder = OracleDBEmbedder(
connection=pool,
model="DOC_MODEL",
input_name="TEXT",
embedding_dimension=768,
)
custom_embedder.get_vectorizer_config_json()
'{"model":"DOC_MODEL","input_name":"TEXT"}'
shared_embedder = OracleDBEmbedder(
connection=pool,
model="MY_OTHER_SCHEMA.MY_ONNX_MODEL",
embedding_dimension=768,
)
shared_embedder.get_vectorizer_config_json()
'{"model":"MY_OTHER_SCHEMA.MY_ONNX_MODEL"}'
remote_embedder = OracleDBEmbedder(
connection=pool,
provider="openai",
model="text-embedding-3-small",
provider_options={"host": "local", "url": "http://localhost:8080/v1/embeddings"},
)
remote_embedder.get_vectorizer_config_json()
'{"embedder_spec":{"host":"local","url":"http://localhost:8080/v1/embeddings","provider":"openai","model":"text-embedding-3-small"}}'
property max_input_tokens
- 戻り型: int
-
説明:チャンク化のための構成済または推測入力トークン予算を返します。
- 戻り値: 1つのテキスト・ペイロードに対する正の最大入力トークン数。
- 戻り型: int
ノート
コンストラクタ提供の値は、データベース・モデルに接続せずに返されます。それ以外の場合、このプロパティは、推定512入力トークンにサイズ設定されたデータベース・モデル・プローブを検証し、512を保守的なフォールバックとしてキャッシュします。モデル・トークナイザはローカルで実行されないため、精度が重要な場合は、モデルの文書化された入力予算からmax_input_tokensを手動で設定します。
例
embedder = OracleDBEmbedder(
connection=pool,
model="DOC_MODEL",
max_input_tokens=2048,
)
embedder.max_input_tokens
2048