LLM 및 임베더
이 페이지에서는 LLM 및 임베더를 Oracle 에이전트 메모리에 연결하는 데 사용되는 추상적 인터페이스를 제공합니다.
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(임의) – 기본 백엔드로 전달되는 공급자별 키워드 인수입니다.
- 프롬프트
- 반환: 정규화된 LLM 출력입니다.
- 반품 유형: LlmResponse
method generate_async(개요, 비동기)
LLM에서 비동기적으로 응답을 생성합니다.
- 매개변수:
- 프롬프트
str | Sequence[dict[str, str]]– 일반 텍스트 프롬프트(단일 사용자 메시지로 처리됨) 또는 채팅 스타일의 메시지 목록입니다. 여기서 각 메시지는 최소한"content"키와 선택적으로"role"를 포함하는 매핑입니다. - response_json_schema
dict[str, Any] | None– 필요한 응답 형식을 설명하는 선택적 JSON 스키마입니다. - **kwargs(임의) – 기본 백엔드로 전달되는 공급자별 키워드 인수입니다.
- 프롬프트
- 반환: 정규화된 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
LiteLLM 어댑터
클래스 oracleagentmemory.core.llms.LlmApiType
기준: str, Enum
Llm에 대해 지원되는 OpenAI 호환 API 제품군입니다.
CHAT_COMPLETIONS *= 'CHAT_COMPLETIONS'*
응답 *= '응답'*
클래스 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로 전송됩니다.api_type=LlmApiType.RESPONSES를 사용할 경우max_output_tokens로 전송됩니다. - reasoning_effort
str | None– 선택적 추론 작업입니다.api_type=LlmApiType.CHAT_COMPLETIONS를 사용할 경우reasoning_effort로 전송됩니다.api_type=LlmApiType.RESPONSES를 사용할 경우reasoning={"effort": ...}로 변환됩니다. - **default_kwargs(임의) – 모든 호출에 적용된 고급 기본 키워드 인수입니다. 공통 연결 및 생성 설정에 대해서는 위의 명시적 매개변수를 선호합니다. 명시적으로 및
default_kwargs에서 동일한 설정이 제공되는 경우 명시적 매개변수가 우선합니다.
- model
예제
OCI Generative AI 모델은 LiteLLM의 "oci/..." 모델 식별자를 사용합니다. 일반적인 설정은 LiteLLM 특정 키워드 인수를 통해 표준 OCI 구성 파일에서 OCI API 키 인증 세부 정보를 전달하는 것입니다. The OCI Python SDK is not installed by this package; applications that already depend on it may alternatively pass an oci_signer object.
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[dict[str, str]]– 프롬프트 문자열 또는 채팅 메시지입니다. 문자열은 단일 사용자 메시지로 처리됩니다. - response_json_schema
dict[str, Any] | None– 필요한 응답 형식을 설명하는 선택적 JSON 스키마입니다. 제공된 경우 이 방법은 OpenAI 호환response_format를 통해 제공자 고유의 구조화된 출력 방식을 사용합니다. - **kwargs(Any) – 이 요청과 함께 전송된 추가 호출 매개변수입니다. 응답 API를 통해 이 호출의 경로를 지정하려면
api_type=LlmApiType.RESPONSES를 전달합니다.
- prompt
- 반환: 정규화된 LLM 출력입니다.
- 반품 유형: LlmResponse
method generate_async(비동기)
비동기적으로 응답을 생성합니다.
- 매개변수:
- prompt
str | Sequence[dict[str, str]]– 프롬프트 문자열 또는 채팅 메시지입니다. 문자열은 단일 사용자 메시지로 처리됩니다. - response_json_schema
dict[str, Any] | None– 필요한 응답 형식을 설명하는 선택적 JSON 스키마입니다. 제공된 경우 이 방법은 OpenAI 호환response_format를 통해 제공자 고유의 구조화된 출력 방식을 사용합니다. - **kwargs(Any) – 이 요청과 함께 전송된 추가 호출 매개변수입니다. 응답 API를 통해 이 호출의 경로를 지정하려면
api_type=LlmApiType.RESPONSES를 전달합니다.
- prompt
- 반환: 정규화된 LLM 출력입니다.
- 반품 유형: LlmResponse
클래스 oracleagentmemory.core.embedders.Embedder
기준: IEmbedder
공급자 지원 임베더입니다.
공급자 지원 임베더를 생성합니다.
- 매개변수:
- model
str– 기본 임베딩 제공자에게 전송된 모델 식별자입니다. - api_base
str | None– OpenAI 호환 끝점에 대한 선택적 기본 URL입니다. - api_key
str | None– 공급자에 연결할 때 사용되는 선택적 API 키입니다. - normalize
bool– 공급자가 반환한 임베딩을 L2 정규화할지 여부입니다. - query_prefix
str | None– 질의 텍스트를 포함할 때만 추가되는 선택적 접두어입니다. - truncate_prompt_tokens
int | None– 긴 포함 프롬프트 자르기를 지원하는 공급자에게 전달되는 선택적 입력 토큰 제한입니다. - **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를 수신합니다.
- texts
- 반환: 제공자가 반환한 포함 벡터가 있는 2차원
float32매트릭스입니다. - 반환 유형: numpy.ndarray
- 발생: RuntimeError – 제공자 응답 페이로드에 포함 데이터가 포함되지 않은 경우입니다.
method embed_async(비동기)
구성된 제공자를 사용하여 텍스트 일괄 처리를 비동기적으로 포함합니다.
- 매개변수:
- texts
list[str]– 포함할 원시 텍스트 문자열의 일괄 처리입니다. - is_query
bool– 텍스트가 질의인지 여부입니다. 쿼리 텍스트는 구성된 경우query_prefix를 수신합니다.
- texts
- 반환: 제공자가 반환한 포함 벡터가 있는 2차원
float32매트릭스입니다. - 반환 유형: numpy.ndarray
- 발생: RuntimeError – 제공자 응답 페이로드에 포함 데이터가 포함되지 않은 경우입니다.