24 Chamar um Agente Implantado
Você pode chamar o URL do ponto final do seu agente no seu aplicativo de produção.
Independentemente da interface programática usada para chamar o ponto final do agente, você deve ser autenticado com o OCI e ter as permissões relevantes. No caso de pontos finais do agente, o chamador precisa ter pelo menos a permissão USE no ponto final do agente.
O URI do ponto final é documentado na guia de detalhes da IU do agente. Você pode copiar esse URI de ponto final em seu código para chamar o agente.

Métodos para Chamar URIs de Ponto Final
Você pode chamar o URI do ponto final do agente por meio de diferentes ferramentas, SDKs e CLIs.
Os métodos a seguir permitem que você chame o URI do ponto final nos agentes do Oracle AI Data Platform Workbench.
Chamar com a CLI do OCI
oci raw-request
--http-method POST
--target-uri <your-agent-flow-endpoint-uri>
--request-body '{"query":"Tell me about the Ryder Cup in 1985"}'
--auth <security_token>Chamar com a Biblioteca de Solicitações Python
import oci import requests import json import uuid from contextlib import closing from requests import Request, Response
class AuthHelper: """ AuthHelper allows creating an OCI signer with either API key or security_token (which are short term sessions) """ def init(self, oci_profile: str, use_security_token:bool = True): config = oci.config.from_file(file_location="/Volumes/jr/default/misc/config",profile_name=oci_profile) if use_security_token: with open(config["security_token_file"], 'r') as f: token = f.read() private_key = oci.signer.load_private_key_from_file(config["key_file"])
self.signer = oci.auth.signers.SecurityTokenSigner(token, private_key) else: self.signer = oci.signer.Signer( tenancy=config["tenancy"], user=config["user"], fingerprint=config["fingerprint"], private_key_file_location=config["key_file"], #pass_phrase=config.get("pass_phrase"), #private_key_content=config.get("key_content") )
@property
def Signer(self):
return self.signer
class MyRawJsonRpcClient: """ Simple class using requests lib to post JSON to chat endpoint using OCI signing """ def init(self, chat_url:str, oci_profile: str, sessionKey:str, use_security_token:bool = True): self.authhelper = AuthHelper(oci_profile=oci_profile, use_security_token=use_security_token) self.authsigner = self.authhelper.Signer self.chat_url = chat_url self.sessionKey = sessionKey
def send(self, input:str) -> Response:
body = {
"isStreamEnabled" : False,
"sessionKey" : self.sessionKey,
"trace" : False,
"input" :[{
"role":"User",
"content":[{
"type" : "INPUT_TEXT",
"text" : input
}]
}]
}
response:Request = requests.post(
url =self.chat_url,
params = None,
auth = self.authsigner,
json=body,
headers={}
)
return response
sessionKey arbitrário. sessionKey é o identificador exclusivo da sessão do usuário com o agente. Se você continuar reutilizando o mesmo sessionKey, as mensagens do usuário e as respostas do agente serão anexadas à mesma conservação. client = MyRawJsonRpcClient(chat_url="<your-agent-flow-endpoint-uri>",
oci_profile = "DEFAULT",
sessionKey= “<your-session-key>”,
use_security_token = False )Você também pode fornecer uma mensagem do usuário e usar o cliente para enviar a mensagem ao URI do ponto final do agente: user_input = f"Hello, tell me a good dad joke."
r = client.send(input = user_input)
response_json = r.json()Por meio do APEX
Você pode usar a amostra de código disponível no repositório Github de Amostras do AI Data Platform Workbench. A amostra orienta você pelo processo de chamar um ponto final de implantação do agente em um aplicativo APEX.
Por Streamlit
Você pode usar a amostra de código disponível no repositório Github de Amostras do AI Data Platform Workbench. A amostra orienta você pelo processo de chamar um ponto final de implantação do agente em um aplicativo Streamlit.
Melhores Práticas - Respostas Assíncronas e Não Assíncronas
Recomendamos que você escreva seu código de cliente assumindo respostas assíncronas. Por exemplo:
import httpx
async def fetch_data():
async with httpx.AsyncClient() as client:
response = await client.get(URL)
return response.json()