LLM ed Embedders
Questa pagina presenta le interfacce astratte utilizzate per collegare LLM e incorporatori nella memoria dell'agente Oracle.
Interfaccia LLM
classe oracleagentmemory.apis.llms.ILlm
Basi: ABC
Interfaccia astratta per il richiamo LLM.
metodo generate (abstract)
Genera una risposta da un LLM in modo sincrono.
- Parametri:
- prompt
str | Sequence[dict[str, str]]: prompt di testo normale (trattato come messaggio utente singolo) o elenco di messaggi in stile chat, in cui ogni messaggio è un mapping con almeno una chiave"content"e, facoltativamente, un"role". - response_json_schema
dict[str, Any] | None: schema JSON facoltativo che descrive il formato di risposta previsto. - **kwargs (Qualsiasi): argomenti di parole chiave specifici del provider inoltrati al backend di base.
- prompt
- Restituzioni: output LLM normalizzato.
- Tipo restituito: LlmResponse
metodo generate_async (abstract, asincrono)
Genera in modo asincrono una risposta da un LLM.
- Parametri:
- prompt
str | Sequence[dict[str, str]]: prompt di testo normale (trattato come messaggio utente singolo) o elenco di messaggi in stile chat, in cui ogni messaggio è un mapping con almeno una chiave"content"e, facoltativamente, un"role". - response_json_schema
dict[str, Any] | None: schema JSON facoltativo che descrive il formato di risposta previsto. - **kwargs (Qualsiasi): argomenti di parole chiave specifici del provider inoltrati al backend di base.
- prompt
- Restituzioni: output LLM normalizzato.
- Tipo restituito: LlmResponse
Risposte LLM
classe oracleagentmemory.apis.llms.LlmResponse
Basi: object
Una piccola risposta normalizzata restituita da ILlm.
- Parametri: testo
str
Testo
Contenuto di testo generato principale.
- Tipo: str
Interfaccia incorporamento
classe oracleagentmemory.apis.IEmbedder
Basi: ABC
Interfaccia astratta per gli incorporatori di testo.
metodo embed (abstract)
Incorpora un batch di testi in un array 2D float32 NumPy.
- Parametri:
- testi
list[str]: batch di testi da incorporare. - is_query
bool: indica se il batch viene incorporato per il recupero in fase di query.
- testi
- Restituzioni: un array 2D a forma di
(len(texts), dim)condtype=float32. - Tipo restituito: numpy.ndarray
metodo embed_async (abstract, asincrono)
Incorpora un batch di testi in un array 2D float32 NumPy.
- Parametri:
- testi
list[str]: batch di testi da incorporare. - is_query
bool: indica se il batch viene incorporato per il recupero in fase di query.
- testi
- Restituzioni: un array 2D a forma di
(len(texts), dim)condtype=float32. - Tipo restituito: numpy.ndarray
Adattatori LiteLLM
classe oracleagentmemory.core.llms.Llm
Basi: ILlm
Adattatore che utilizza litellm per produrre completamenti chat.
Creare un adattatore LLM supportato da LiteLLM.
- Parametri:
- modello
str: identificativo del modello passato comemodel=...alitellm.completion. - **default_kwargs (Qualsiasi): argomenti con parole chiave predefinite inoltrati a LiteLLM per ogni chiamata (ad esempio
temperature=0.2,max_tokens=256).
- modello
metodo generate
Genera una risposta.
- Parametri:
- prompt
str | Sequence[dict[str, str]]: stringa di prompt o messaggi di chat. Una stringa viene considerata come un singolo messaggio utente. - response_json_schema
dict[str, Any] | None: schema JSON facoltativo che descrive il formato di risposta previsto. Se fornito, questo metodo utilizza il meccanismo di output strutturato provider-native tramiteresponse_formatcompatibile con OpenAI. - **kwargs (Qualsiasi): parametri di chiamata aggiuntivi inoltrati a LiteLLM.
- prompt
- Restituzioni: output LLM normalizzato.
- Tipo restituito: LlmResponse
metodo generate_async (asincrono)
Genera una risposta in modo asincrono utilizzando LiteLLM.
- Parametri:
- prompt
str | Sequence[dict[str, str]]: stringa di prompt o messaggi di chat. Una stringa viene considerata come un singolo messaggio utente. - response_json_schema
dict[str, Any] | None: schema JSON facoltativo che descrive il formato di risposta previsto. Se fornito, questo metodo utilizza il meccanismo di output strutturato provider-native tramiteresponse_formatcompatibile con OpenAI. - **kwargs (Qualsiasi): parametri di chiamata aggiuntivi inoltrati a LiteLLM.
- prompt
- Restituzioni: output LLM normalizzato.
- Tipo restituito: LlmResponse
classe oracleagentmemory.core.embedders.Embedder
Basi: IEmbedder
Embedder con supporto LiteLLM
- Parametri:
- model
str: identificativo del modello supportato da LiteLLM. - normalizza
bool: indica se eseguire la normalizzazione delle integrazioni L2 restituite da LiteLLM. - api_base
str | None: URL di base facoltativo per LiteLLM per indirizzare le distribuzioni personalizzate. - api_key
str | None: chiave API facoltativa inoltrata a LiteLLM quando si contatta il provider. - embedding_kwargs
dict[str, Any] | None– Argomenti delle parole chiave aggiuntivi inoltrati alitellm.embedding(). - prefisso_query
str | None
- model
Note
Il client LiteLLM viene importato solo quando viene utilizzato per la prima volta l'incorporatore, mantenendo bassi i costi di dipendenza facoltativi per le applicazioni che non si basano su LiteLLM. I dettagli di connessione, ad esempio api_base e api_key, vengono uniti nella chiamata a litellm.embedding se fornita.
metodo embed
Incorpora un batch di testi utilizzando LiteLLM.
- Parametri:
- testi
list[str]: batch di stringhe di testo raw da incorporare. - is_query
bool
- testi
- Restituisce:
- numpy.ndarray: matrice
float32bidimensionale con i vettori di incorporamento restituiti da LiteLLM. - is_query: indica se il testo è una query o meno, potrebbe essere necessario per modelli di incorporamento specifici.
- numpy.ndarray: matrice
- Aumenti: RuntimeError: se il payload di risposta LiteLLM non include l'incorporamento dei dati.
- Tipo restituito: ndarray
Esempi
Semplice incorporamento di testo singolo con un incorporatore LiteLLM configurato:
vector = embedder.embed(["ping"])
vector.shape[0]
1
metodo embed_async (asincrono)
Incorpora un batch di testi utilizzando LiteLLM.
- Parametri:
- testi
list[str]: batch di stringhe di testo raw da incorporare. - is_query
bool: indica se il testo è una query o meno, potrebbe essere necessario per modelli di incorporamento specifici.
- testi
- Restituzioni: una matrice
float32bidimensionale con i vettori di incorporamento restituiti da LiteLLM. - Tipo restituito: numpy.ndarray
- Aumenti: RuntimeError: se il payload di risposta LiteLLM non include l'incorporamento dei dati.