LLM, Embedders 및 Rerankers
이 페이지에서는 LLM, 임베더 및 순위 재지정기를 Oracle 에이전트 메모리에 연결하는 데 사용되는 추상적 인터페이스를 제공합니다.
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(임의) – 추가 호출 옵션입니다. 기본 제공 Llm은
api_type=LlmApiType.RESPONSES을 수락하여 Responses API를 선택하고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(임의) – 추가 호출 옵션입니다. 기본 제공 Llm은
api_type=LlmApiType.RESPONSES을 수락하여 Responses API를 선택하고image_input_limit_config=ImageInputLimitConfig(...)을 수락하여 해당 요청에 대한 이미지 제한을 대체합니다. 다른 키워드 인수는 기본 백엔드로 전달됩니다.
- prompt
- 반환: 정규화된 LLM 출력입니다.
- 반품 유형: LlmResponse
LLM 응답
클래스 oracleagentmemory.apis.llms.LlmResponse
기준: object
ILlm에서 반환된 작은 정규화된 응답입니다.
- 매개변수: 텍스트
str
텍스트
기본 생성 텍스트 콘텐츠입니다.
- 유형: str
임베더 인터페이스
클래스 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
등록 정보 embedding_dimension
- 반품 유형: int
- 설명: 이 임베더에서 생성된 임베딩의 크기를 반환합니다.
포함 너비가 구성 또는 제공자 메타데이터에서 알려진 경우 하위 클래스가 이 속성을 무효화할 수 있습니다. 기본 구현은 embed()를 한 번 프로브하고 결과 크기를 캐시합니다.
- 반환: 각 임베딩 벡터에서 부동 소수점 값의 양수입니다.
- 반품 유형: int
등록 정보 max_input_tokens
- 반품 유형: int
- 설명: 지원되는 최대 입력 토큰을 반환합니다.
모델의 입력 예산이 구성 또는 제공자 메타데이터에서 알려진 경우 하위 클래스가 이 속성을 무효화할 수 있습니다. 기본 구현은 예상되는 512 입력 토큰으로 크기가 지정된 프로브를 한 번 검증하고 512를 보수적 폴백으로 캐시합니다. 로컬에서 모델 토큰화기를 실행하지 않으므로 호출자는 모델의 실제 입력 예산을 알고 있을 때 수동으로 max_input_tokens를 설정해야 합니다.
- 반환: 하나의 텍스트 페이로드에 대해 양수 최대 입력 토큰 수입니다.
- 반품 유형: int
순위 재지정 인터페이스
클래스 oracleagentmemory.apis.IReranker
기준: ABC
동기 및 비동기 문서 순위 변경을 위한 추상 인터페이스입니다.
구현은 모든 입력 문서에 대해 하나의 결과를 반환해야 합니다. 각 0 기반 입력 인덱스는 정확히 한 번 표시되어야 합니다. relevance_score는 유한해야 하며 점수가 높을수록 관련성이 높아야 합니다. 결과는 최고 점수부터 최저 점수까지 정렬되어야 합니다.
방법 rerank
rerank_async에 위임하여 문서를 동기적으로 순위 지정합니다.
- 매개변수:
- query
str– 문서를 비교하는 데 사용되는 검색 질의입니다. - 문서
list[str]– 안정적인 입력 순서의 후보자 문서 텍스트입니다. 결과 인덱스는 이 목록의 위치를 참조합니다. - **kwargs(임의) – 공급자별 옵션입니다.
- query
- 반품: 정확히
len(documents)결과를 사용하여 순위를 완료합니다. 모든 입력 인덱스는 한 번 나타나며 관련성이 가장 낮은 항목부터 관련성이 가장 낮은 항목 순으로 정렬됩니다. - 반품 유형: RerankResponse
method rerank_async(개요, 비동기)
쿼리와 관련된 문서 순위를 비동기적으로 지정합니다.
- 매개변수:
- query
str– 문서를 비교하는 데 사용되는 검색 질의입니다. - 문서
list[str]– 안정적인 입력 순서의 후보자 문서 텍스트입니다. 결과 인덱스는 이 목록의 위치를 참조합니다. - **kwargs(임의) – 공급자별 옵션입니다.
- query
- 반품: 정확히
len(documents)결과를 사용하여 순위를 완료합니다. 모든 입력 인덱스는 한 번 나타나며 관련성이 가장 낮은 항목부터 관련성이 가장 낮은 항목 순으로 정렬됩니다. - 반품 유형: RerankResponse
클래스 oracleagentmemory.apis.RerankResponse
기준: object
관련성 점수를 내림차순으로 문서 순위를 지정합니다.
- 매개변수: 결과
list[RerankResponseResult]
클래스 oracleagentmemory.apis.RerankResponseResult
기준: object
한 문서의 순위 재지정 결과입니다.
- 매개변수:
- 인덱스
int– 입력 목록에서 문서의 0 기반 위치입니다. - relevance_score
float– 질의-문서 쌍의 관련성 점수입니다. 값이 클수록 관련성이 높아집니다. - document
str | None– 제공자가 반환했을 때의 문서 텍스트, 그렇지 않은 경우None입니다.
- 인덱스
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– 선택적 원시 이미지 및 요청별 이미지 제한입니다. 생략된 필드는 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에 사용합니다. - **default_kwargs(임의) – 모든 호출에 적용된 고급 기본 키워드 인수입니다. 공통 연결 및 생성 설정에 대해서는 위의 명시적 매개변수를 선호합니다. 명시적으로 및
default_kwargs에서 동일한 설정이 제공되는 경우 명시적 매개변수가 우선합니다.
- model
예제
OCI Generative AI 모델은 LiteLLM의 "oci/..." 모델 식별자를 사용합니다. 일반적인 설정은 LiteLLM 특정 키워드 인수를 통해 표준 OCI 구성 파일에서 OCI API 키 인증 세부 정보를 전달하는 것입니다. 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로 호출됩니다. 엔드포인트에서 인증을 강제 적용하지 않는 경우 명목상 api_key(예: "none")를 전달합니다.
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를 전달합니다. 이미지 프롬프트의 경우 이 요청에 대해 이 Llm 인스턴스의 이미지 제한을 무효화하려면image_input_limit_config=ImageInputLimitConfig(...)을 전달합니다. 생략된 필드는 인스턴스 구성을 상속합니다. 기타 키워드 인수는 제공자 요청과 함께 전송됩니다.
- 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를 전달합니다. 이미지 프롬프트의 경우 이 요청에 대해 이 Llm 인스턴스의 이미지 제한을 무효화하려면image_input_limit_config=ImageInputLimitConfig(...)을 전달합니다. 생략된 필드는 인스턴스 구성을 상속합니다. 기타 키워드 인수는 제공자 요청과 함께 전송됩니다.
- prompt
- 반환: 정규화된 LLM 출력입니다.
- 반품 유형: LlmResponse
등록 정보 supports_vision
- 반품 유형: 부울
- 설명: 이 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에 사용합니다. - **default_kwargs(임의) – 모든 포함 호출에 적용된 고급 기본 키워드 인수입니다. 공통 설정에 대해서는 위의 명시적 매개변수를 선호합니다.
- model
예제
OCI Generative AI 임베딩 모델은 "oci/..." 모델 식별자를 사용합니다. 일반적인 설정은 LiteLLM 특정 키워드 인수를 통해 표준 OCI 구성 파일에서 OCI API 키 인증 세부 정보를 전달하는 것입니다. 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 API 키와 함께 "openai/text-embedding-3-small"와 같은 식별자를 사용합니다.
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 호환 임베딩 서버는 "hosted_vllm/..." 제공자 접두어를 서버의 /v1 기본 URL과 함께 사용합니다.
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
- 발생: RuntimeError – 제공자 응답 페이로드에 포함 데이터가 포함되지 않은 경우입니다.
method embed_async(비동기)
구성된 제공자를 사용하여 텍스트 일괄 처리를 비동기적으로 포함합니다.
- 매개변수:
- texts
list[str]– 포함할 원시 텍스트 문자열의 일괄 처리입니다. - is_query
bool– 텍스트가 질의인지 여부입니다. 질의 텍스트는query_prefix를 수신하고, 비질의 텍스트는 구성된 경우document_prefix를 수신합니다.
- texts
- 반환: 제공자가 반환한 포함 벡터가 있는 2차원
float32매트릭스입니다. - 반환 유형: numpy.ndarray
- 발생: RuntimeError – 제공자 응답 페이로드에 포함 데이터가 포함되지 않은 경우입니다.
등록 정보 embedding_dimension
- 반품 유형: int
-
설명: 구성되거나 추론된 임베딩 차원을 반환합니다.
- 반환: 각 임베딩 벡터의 양수 치수입니다.
- 반품 유형: int
노트
생성자가 제공한 값은 제공자에게 연락하지 않고 반환됩니다. 그렇지 않으면 등록 정보가 한 번 프로브되고 결과가 캐시됩니다.
등록 정보 max_input_tokens
- 반품 유형: int
-
설명: 구성되거나 추론된 포함 입력 토큰 제한을 반환합니다.
- 반환: 하나의 텍스트 페이로드에 대해 양수 최대 입력 토큰 수입니다.
- 반품 유형: int
노트
생성자가 제공한 값은 제공자에게 연락하지 않고 반환됩니다. 그렇지 않으면 이 등록 정보는 예상되는 512 입력 토큰에 대한 공급자 프로브 크기를 검증하고 512를 보수적 폴백으로 캐시합니다. 로컬에서 모델 토큰화기를 실행하지 않으므로 정밀도가 중요한 경우 모델의 문서화된 입력 예산에서 max_input_tokens를 수동으로 설정합니다.
클래스 oracleagentmemory.core.Reranker
기준: IReranker
공급자 중립 순위 재지정 인터페이스가 지원하는 순위 재지정자입니다.
- 매개변수:
- model
str– Reranker 모델 식별자입니다. OCI Generative AI 모델 앞에oci/를 붙입니다(예:oci/cohere.rerank-v4.0-fast). - api_base
str | None– OpenAI 호환 순위 재지정 끝점에 대한 선택적 기본 URL입니다. - api_key
str | None– 공급자가 사용하는 선택적 API 키입니다. -
**default_kwargs(임의) –
모든 등급 재지정 요청에 적용되는 제공자별 옵션입니다.
참고: 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 임베딩 SQL을 호출하여 텍스트를 포함합니다.
이 임베더는 SQL을 통해 임베딩 생성을 데이터베이스에 위임하면서 패키지의 기존 임베더 계약을 그대로 유지합니다. 직접 임베딩은 데이터베이스 상주 모델 구성에 대해 VECTOR_EMBEDDING를 선호하며 벡터라이저 구성에 JSON 제공자 매개변수 표면이 필요한 경우 DBMS_VECTOR_CHAIN.UTL_TO_EMBEDDING로 폴백됩니다.
Oracle AI Database SQL 실행이 지원하는 임베더를 생성합니다.
- 매개변수:
- 연결
object– 호출 가능한cursor()또는acquire()메소드를 사용하는 Oracle DB 연결 또는 풀 유사 객체입니다. - model
str– 모델 식별자입니다. 기본"database"제공자의 경우 따옴표로 묶이지 않은 Oracle SQL 식별자 또는 데이터베이스 내 임베딩 모델의 스키마 정규화된 식별자여야 합니다. 접속된 스키마는 SQL에서 이 모델 이름을 분석할 수 있어야 합니다. 원격 제공자의 경우 해당 서비스에 필요한 모델 이름 또는 제공자별 모델 식별자를 사용합니다. - input_name
str– 벡터화기 구성이 데이터베이스 상주 모델을 대상으로 할 때VECTOR_EMBEDDING에서 사용되는 모델 입력 이름입니다. 기본값은 Oracle의 DBMS_VECTOR ONNX 임베딩 모델 예제 및 메타데이터에 사용되는 입력 이름인"DATA"입니다. 임포트된 모델이 다른 속성을 사용하는 경우 여기에 실제 모델 입력 이름을 전달합니다. - embedding_dimension
int | None– 선택적 포함 벡터 차원입니다. 제공된 경우 DB 지원 클라이언트는 차원 프로브 질의를 전송하지 않고도 벡터 스키마를 생성하거나 검증할 수 있습니다. 생략할 경우 하나의 프로브 포함 요청으로 차원이 지연 추론됩니다. - max_input_tokens
int– 기본 저장소 벙커에서 사용되는 최대 입력 토큰 예산입니다. 생략할 경우max_input_tokens속성은 예상되는512입력 토큰으로 크기가 지정된 데이터베이스 모델 프로브를 검증하고512를 보수적 폴백으로 캐시합니다. 로컬에서 모델 토큰화기를 실행하지 않으므로 모델의 문서화된 입력 예산에 따라max_input_tokens를 수동으로 설정합니다. - normalize
bool– 데이터베이스에서 임베딩을 인출한 후 L2 정규화할지 여부입니다. - query_prefix
str | None– 질의 텍스트를 포함할 때만 추가되는 선택적 접두어입니다. - batch_size
int– 라운드 트립을 포함하는 하나의 SQL로 그룹화된 최대 텍스트 수입니다. - 공급자
str– Oracle AI Database에 구성된 임베딩 제공업체입니다. 기본값인"database"는 일반적으로 ONNX 형식으로 Oracle Database에 로드된 포함 모델을 사용합니다. 원격 제공업체에는 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–url,credential_name또는host="local"와 같은 선택적 Oracle 벡터화기 설정입니다. 생성자 인수는 이 매핑에서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
- 연결
예제
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"])
포옹 얼굴 예:
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매트릭스입니다. - 반환 유형: 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매트릭스입니다. - 반환 유형: numpy.ndarray
예제
embedder = OracleDBEmbedder(
connection=pool,
model="DOC_MODEL",
)
matrix = await embedder.embed_async(["hello"])
matrix.shape
(1, 384)
등록 정보 embedding_dimension
- 반품 유형: int
-
설명: 구성되거나 추론된 임베딩 차원을 반환합니다.
- 반환: 각 임베딩 벡터의 양수 치수입니다.
- 반품 유형: int
노트
생성자가 제공한 값은 데이터베이스 모델에 연결하지 않고 반환됩니다. 그렇지 않으면 등록 정보가 한 번 프로브되고 이후 액세스에 대한 결과가 캐시됩니다.
예제
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.CREATE_PREFERENCE에 적합한 JSON 페이로드(DBMS_VECTOR_CHAIN.VECTORIZER포함)를 압축합니다. - 반환 유형: 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"}}'
등록 정보 max_input_tokens
- 반품 유형: int
-
설명: 조각화에 대해 구성되거나 추론된 입력 토큰 예산을 반환합니다.
- 반환: 하나의 텍스트 페이로드에 대해 양수 최대 입력 토큰 수입니다.
- 반품 유형: int
노트
생성자가 제공한 값은 데이터베이스 모델에 연결하지 않고 반환됩니다. 그렇지 않으면 이 등록 정보는 예상되는 512 입력 토큰에 맞게 크기 조정된 데이터베이스 모델 프로브를 검증하고 512를 보수적 폴백으로 캐시합니다. 로컬에서 모델 토큰화기를 실행하지 않으므로 정밀도가 중요한 경우 모델의 문서화된 입력 예산에서 max_input_tokens를 수동으로 설정합니다.
예제
embedder = OracleDBEmbedder(
connection=pool,
model="DOC_MODEL",
max_input_tokens=2048,
)
embedder.max_input_tokens
2048