Tutorial de Compactação de API do OCI Responses
Use o SDK Python do OpenAI com a API de Respostas do OCI para compactar o histórico de conversas de forma explícita ou automática e, em seguida, continue a conversa com o contexto retornado.
Visão Geral
À medida que uma conversa cresce, um aplicativo envia mais histórico com cada solicitação. A compactação reduz esse histórico a uma representação menor que o modelo pode usar em revezamentos posteriores. Use-o para gerenciar o contexto em conversas de longa execução e fluxos de trabalho do agente.
Neste tutorial, você descreve uma configuração de implantação fictícia, compacta a conversa e faz uma pergunta de acompanhamento para verificar quais detalhes o modelo retido.
Você usa o SDK Python OpenAI com uma chave de API do OCI Generative AI e um ponto final regional do OCI. O SDK fornece a interface do cliente. As solicitações são autenticadas com a OCI e enviadas para a OCI Generative AI.
Todos os modelos suportados pela API de Respostas do OCI, incluindo modelos importados, suportam compactação explícita e automática. A compactação está disponível em regiões de IA empresarial e segue a região e a disponibilidade de hospedagem de cada modelo. Ambos os modos são suportados para inferência sob demanda e hospedagem dedicada.
| Modo | Operação | O que enviar em seguida |
|---|---|---|
| Explícito (autônomo) | Chame client.responses.compact(...), que envia POST /responses/compact, quando um aplicativo estiver pronto para compactar o histórico. |
Informe o array output retornado completo, seguido pela próxima mensagem do usuário. |
| Automático (gerenciado pelo servidor) | Chame client.responses.create(...) com context_management e um limite de token. O OCI compacta o contexto durante o POST /responses quando o limite é atingido. |
Com store=False, informe o item de compactação mais recente e todos os próximos itens de saída, seguidos pela próxima mensagem do usuário. Se nenhum item de compactação for retornado, mantenha o histórico existente e anexe a nova saída. |
Os itens de compactação contêm contexto criptografado e opaco. Preservar os campos serializados e a ordem. Não leia, edite ou substitua seu conteúdo por um resumo de texto.
A compactação consome tokens de modelo e pode perder detalhes durante a consolidação. Compactar antes de atingir o limite de contexto do modelo e deixar espaço para a resposta e voltas posteriores. A compactação explícita é síncrona e não oferece suporte a armazenamento, execução em segundo plano ou streaming.
Os exemplos gerenciam o histórico no aplicativo e definem store=False em solicitações de criação de resposta. Para o workflow separado que usa o estado de conversa gerenciado pelo OCI, consulte Usar Memória do Agente com API de Respostas.
Antes de Começar
Para concluir este tutorial, você precisa:
- Acesso à API de Respostas do OCI em uma região suportada do Enterprise AI. Selecione um modelo em Modelos e Regiões Suportados que esteja disponível para sua tenancy na região selecionada. Para modelos básicos, verifique Modelos por Região para obter disponibilidade de hospedagem dedicada e sob demanda.
- Uma chave de API da OCI Generative AI com acesso ao modelo e projeto selecionados. Se necessário, crie uma chave de API e adicione suas permissões.
- Um OCID do projeto do OCI Generative AI. A compactação requer contexto de projeto para cada modelo. Se necessário, crie um projeto.
- Python 3.10 ou posterior em macOS, Linux ou Subsistema Windows para Linux. Os comandos usam um shell compatível com Bash.
Os exemplos usam o Python SDK OpenAI com credenciais do OCI e um URL base do OCI. Eles não exigem uma chave de API OpenAI, o SDK do OCI Python ou a CLI do OCI.
Esses exemplos usam a autenticação de chave da API do OCI Generative AI. A compactação também suporta autenticação do OCI IAM. Para essa configuração, consulte Autenticação Baseada em IAM do Serviço Generative AI. É necessário um OCID de projeto do OCI Generative AI com qualquer um dos métodos de autenticação.
1. Preparar o Ambiente Python e o Acesso ao OCI
2. Compactar uma conversa explicitamente
Este exemplo cria uma resposta, adiciona a saída de resposta completa ao histórico e chama responses.compact. Em seguida, ele substitui o histórico pela saída compactada completa e pergunta sobre a janela de retenção e manutenção de backup da implantação.
A conversa curta torna a sequência fácil de seguir. Em um aplicativo, chame a compactação quando o histórico acumulado precisar ser reduzido e ainda se ajustar ao limite de contexto do modelo.
3. Ativar Compactação Automática
Para compactação automática, inclua context_management em uma solicitação de criação de resposta com type: "compaction" e um compact_threshold explícito de pelo menos 1000 tokens. Selecione um limite menor que o limite de contexto do modelo e deixe espaço para saída e voltas posteriores.
Este exemplo cria 40 trocas de status sintético localmente para construir um histórico mais longo. Ele envia esse histórico em uma solicitação com um limite de 1.000 tokens, verifica a compactação e envia uma solicitação de acompanhamento. As 40 exchanges não fazem chamadas de API separadas.
4. Usar um Modelo Hospedado em um Cluster de IA Dedicado (Opcional)
Você pode usar modelos que suportam a API de Respostas da OCI para inferência sob demanda ou hospedá-los em clusters de IA dedicados, de acordo com as opções de hospedagem de cada modelo. Ambos os modos de compactação funcionam com qualquer uma das opções de hospedagem. Os exemplos anteriores usam um ID de modelo sob demanda. Quando hospeda um modelo em um cluster de IA dedicado, você cria um ponto final de modelo nesse cluster para chamar o modelo. Informe o OCID desse ponto final como o valor model da solicitação.
O cluster de hospedagem fornece os recursos de Computação para inferência. Você pode criar vários pontos finais para o mesmo modelo hospedado, por exemplo, para fornecer a diferentes aplicativos, equipes ou centros de custo seus próprios pontos de acesso. Cada ponto final tem seu próprio OCID e os pontos finais compartilham os recursos de Computação do cluster. Para obter mais informações, consulte Gerenciando Pontos Finais de Modelo.
Verificar os Resultados
Um item de compactação retornado confirma que ocorreu a compactação. Não se sabe se todos os detalhes foram preservados. Revise a resposta de acompanhamento em relação à configuração original.
Para avaliar a compactação de um aplicativo, use conversas representativas com fatos e instruções importantes para o fluxo de trabalho. Compare a mesma pergunta de acompanhamento com o histórico completo, com compactação explícita e com compactação automática. Verifique fatos retidos, instruções a seguir, formato de saída e quaisquer chamadas de ferramenta que o workflow exigir.
Execute vários exemplos e ajuste o limite de compactação com base no que você observar. A própria compactação usa tokens de modelo, de modo que um contexto menor não garante menos uso total de token ou respostas mais rápidas para cada solicitação.
Diagnóstico e Solução de Problemas
| Sintoma | O que verificar |
|---|---|
| Um script reporta uma variável de ambiente ausente. | Defina OCI_BASE_URL, OCI_MODEL e OCI_OPENAI_PROJECT no shell em que você executa o script. |
401 ou 403 | Confirme se você está usando uma chave de API da OCI Generative AI e o ponto final da OCI regional correto. Verifique a validade da chave, as permissões do projeto e o acesso ao modelo ou ao ponto final de inferência. |
404 para /responses/compact | Confirme se o URL base termina em /openai/v1. Verifique se o ID do modelo ou o OCID do ponto final de inferência está correto e disponível na região selecionada. |
| Uma solicitação relata contexto de projeto ausente. | Defina OCI_OPENAI_PROJECT como o OCID do projeto do OCI Generative AI e passe-o por project= ao criar o cliente SDK. O contexto do projeto é necessário para cada modelo. |
| A compactação automática não retorna um item de compactação. | Confirme se a solicitação inclui context_management com type: "compaction" e um limite de pelo menos 1000 tokens. Use um histórico mais longo ou reduza um limite maior, mantendo-o em ou mais de 1.000. |
O SDK não tem método responses.compact. | Ative o ambiente virtual e instale o openai>=2.45.0. Verifique a versão instalada com python -m pip show openai. |
| Uma resposta de acompanhamento perde os detalhes esperados. | Para compactação explícita, informe o array output retornado completo. Para compactação automática, mantenha o item de compactação mais recente e todos os itens de saída posteriores. Se nenhum item de compactação for retornado, mantenha o histórico existente e a nova saída. A compactação pode perder detalhes, portanto, também avalie o modelo e o limite com conversas representativas. |
Próximas Etapas
- Verifique o comportamento e os limites da API em Gerenciar Contexto com Compactação.
- Saiba mais sobre o histórico de conversas gerenciadas pela OCI.
- Consulte o guia de compactação OpenAI para obter a interface do SDK compatível. Use os requisitos específicos do OCI neste tutorial para solicitações do OCI.