API de Assistentes do OpenAI do Azure (versão prévia)

Os Assistentes, um novo recurso do Serviço OpenAI do Azure, já estão disponíveis em versão prévia pública. A API de Assistentes facilita para os desenvolvedores criar aplicativos com experiências sofisticadas semelhantes a copiloto que podem examinar dados, sugerir soluções e automatizar tarefas.

  • Os assistentes podem chamar os modelos do Azure OpenAI com instruções específicas para ajustar sua personalidade e funcionalidades.
  • Os assistentes podem acessar várias ferramentas em paralelo. Elas podem ser ferramentas hospedadas no Azure OpenAI, como de interpretador de código e de pesquisa de arquivos, ou ferramentas que você cria, hospeda e acessa por meio de chamada de função.
  • Os assistentes podem acessar threads persistentes. Os threads simplificam o desenvolvimento de aplicativos de IA armazenando o histórico de mensagens e truncando-o quando a conversa fica muito longa para o comprimento de contexto do modelo. Crie um thread uma vez e simplesmente acrescente Mensagens a ele à medida que os usuários respondem.
  • Os assistentes podem acessar arquivos em vários formatos. Como parte de sua criação ou como parte de threads entre assistentes e usuários. Ao usar ferramentas, os Assistentes também podem criar arquivos (como imagens ou planilhas) e citar arquivos que eles referenciam nas Mensagens que eles criam.

Visão geral

Anteriormente, a criação de assistentes de IA personalizados demandava um trabalho pesado mesmo para desenvolvedores experientes. Embora a API de preenchimentos de chat seja leve e sofisticada, ela é inerentemente sem estado, o que significa que os desenvolvedores precisavam gerenciar o estado da conversa e os threads de chat, as integrações de ferramentas, os documentos e os índices de recuperação, além de executar o código manualmente.

A API de Assistentes, como a evolução com estado da API de preenchimento de chat, oferece uma solução para esses desafios. A API de Assistentes dá suporte a threads persistentes gerenciados automaticamente. Isso significa que, como desenvolvedor, você não precisa mais desenvolver sistemas de gerenciamento de estado de conversa e contornar as restrições da janela de contexto de um modelo. A API de Assistentes cuidará automaticamente das otimizações para manter o thread abaixo da janela de contexto máxima do modelo escolhido. Depois de criar um thread, você pode simplesmente acrescentar novas mensagens a ele conforme os usuários respondem. Os Assistentes também podem acessar várias ferramentas em paralelo, se necessário. Essas ferramentas incluem:

Dica

Não há preço ou cota adicionais para usar Assistentes, a menos que você use a ferramenta de interpretador de códigoou pesquisa de arquivos.

A API de assistentes baseia-se nos mesmos recursos que alimentam o produto GPT do OpenAI. Alguns casos de uso possíveis abrangem sistemas de recomendação de produtos da plataforma IA, aplicativos de analista de vendas, assistentes de codificação, chatbots de perguntas e respostas para funcionários, entre outros. Comece a criar no playground de assistentes sem código na IA do Azure Studio ou comece a criar com a API.

Importante

Recuperar dados não confiáveis usando a chamada de função, o Interpretador de Código ou a Pesquisa de Arquivos com entrada de arquivo e as funcionalidades de Threads do Assistente podem comprometer a segurança do assistente ou do aplicativo que usa o Assistente. Saiba mais sobre as abordagens de mitigação aqui.

Playground de Assistentes

Fornecemos um passo a passo do playground de Assistentes em nosso guia de início rápido. Isso viabiliza um ambiente sem código para testar os recursos dos assistentes.

Componentes de Assistentes

Um diagrama mostrando os componentes de um assistente.

Componente Descrição
Assistente IA personalizada que usa modelos do OpenAI do Azure em conjunto com ferramentas.
Thread Uma sessão de conversa entre um Assistente e um usuário. Os Threads armazenam Mensagens e manipulam automaticamente o truncamento para ajustar o conteúdo no contexto de um modelo.
Message Uma mensagem criada por um Assistente ou um usuário. As mensagens podem incluir texto, imagens e outros arquivos. As mensagens são armazenadas como uma lista no Thread.
Executar Ativação de um Assistente para começar a ser executado com base no conteúdo do Thread. O Assistente usa sua configuração e as Mensagens do Thread para executar tarefas chamando modelos e ferramentas. Como parte de uma Execução, o Assistente acrescenta mensagens ao thread.
Etapa de Execução Uma lista detalhada das etapas que o Assistente realizou como parte de uma Execução. Um Assistente pode chamar ferramentas ou criar Mensagens durante sua execução. Examinar as Etapas de Execução permite que você entenda como o Assistente está chegando aos resultados finais.

Acesso a dados de assistentes

Atualmente, os assistentes, os threads, as mensagens e os arquivos criados para assistentes têm o escopo no nível de recurso do OpenAI do Azure. Portanto, qualquer pessoa com acesso ao recurso do OpenAI do Azure ou ao acesso à chave de API é capaz de ler/gravar assistentes, threads, mensagens e arquivos.

Recomendamos fortemente os seguintes controles de acesso a dados:

  • Implemente a autorização. Antes de executar leituras ou gravações em assistentes, threads, mensagens e arquivos, certifique-se de que o usuário final esteja autorizado a fazer isso.
  • Restrinja o recurso do OpenAI do Azure e o acesso à chave de API. Considere cuidadosamente quem tem acesso aos recursos do OpenAI do Azure em que os assistentes estão sendo usados e as chaves de API associadas.
  • Audite rotineiramente quais contas/indivíduos têm acesso ao recurso do OpenAI do Azure. As chaves de API e o acesso no nível do recurso permitem uma ampla gama de operações, incluindo leitura e modificação de mensagens e arquivos.
  • Habilite as configurações de diagnóstico para permitir o acompanhamento de longo prazo de determinados aspectos do log de atividades do recurso do Azure OpenAI.

Parâmetros

A API de Assistentes tem suporte para vários parâmetros que permitem personalizar a saída dos Assistentes. O parâmetro tool_choice permite forçar o Assistente a usar uma ferramenta especificada. Você também pode criar mensagens com a função assistant para criar históricos de conversa personalizados em Threads. temperature, top_p, response_format permitem ajustar ainda mais as respostas. Para saber mais, consulte a documentação de referência.

Gerenciamento de janela de contexto

Os assistentes truncam automaticamente o texto para garantir que ele permaneça dentro do comprimento máximo de contexto do modelo. Você pode personalizar esse comportamento especificando os tokens máximos que gostaria que uma execução utilizasse e/ou o número máximo de mensagens recentes que você gostaria de incluir em uma execução.

Tokens máximos de conclusão e prompt máximo

Para controlar o uso do token em uma única execução, defina max_prompt_tokens e max_completion_tokens ao criar a Execução. Esses limites se aplicam ao número total de tokens usados em todas as conclusões em todo o ciclo de vida da Execução.

Por exemplo, iniciar uma execução com max_prompt_tokens definido como 500 e max_completion_tokens definido como 1000 significa que a primeira conclusão truncará o thread para 500 tokens e limitará a saída a 1.000 tokens. Se apenas 200 tokens de prompt e 300 tokens de conclusão forem usados na primeira conclusão, a segunda conclusão terá limites disponíveis de 300 tokens de prompt e 700 tokens de conclusão.

Se uma conclusão atingir o limite de max_completion_tokens, a Execução terminará com um status incompleto e os detalhes serão fornecidos no campo incomplete_details do objeto Run.

Ao usar a ferramenta Pesquisa de Arquivos, recomendamos definir o max_prompt_tokens como no máximo 20.000. Para conversas mais longas ou várias interações com a Pesquisa de Arquivos, considere aumentar esse limite para 50.000 ou, idealmente, remover os limites de max_prompt_tokens completamente para obter os resultados de maior qualidade.

Estratégia de truncamento

Você também pode especificar uma estratégia de truncamento para controlar como o thread deve ser renderizado na janela de contexto do modelo. Usar uma estratégia de truncamento do tipo auto usará a estratégia de truncamento padrão do OpenAI. Usar uma estratégia de truncamento do tipo last_messages permitirá que você especifique o número das mensagens mais recentes a serem incluídas na janela de contexto.

Confira também