Inferir um modelo

Com a inferência, você pode interagir com modelos de base e avaliar respostas geradas por IA para suas aplicações. O recurso de inferência oferece uma API pronta para uso em produção que permite integrar recursos de IA conversacional aos seus fluxos de trabalho, testar o comportamento dos modelos e desenvolver aplicativos inteligentes.

O Inference resolve o desafio de implantar e escalar modelos de IA, oferecendo acesso imediato a modelos de base por meio de APIs conhecidas e padronizadas do setor. Seja para criar um protótipo de chatbot, desenvolver um assistente de IA ou integrar a compreensão de linguagem natural ao seu aplicativo, a inferência elimina a complexidade da hospedagem de modelos e permite que você se concentre em gerar valor para seus usuários.

Antes de Iniciar

  • Crie uma conta no IBM Cloud no modelo “Pague conforme usar” ou por assinatura. Não são oferecidas contas de teste. Para obter mais informações ou para fazer o upgrade da sua conta, consulte Tipos de conta.

  • Crie um projeto “ Red Hat AI Inference ”.

  • Certifique-se de que você possui a função “Writer” ou superior no serviço Red Hat AI Inference. Para obter mais informações, veja Gerenciando acesso ao IAM.

Inferir um modelo usando o console

O console oferece um ambiente interativo onde você pode experimentar diferentes modelos, testar prompts e aprimorar suas interações com a IA antes de integrá-las às suas aplicações.

  1. No console, abra o serviço “ Red Hat AI Inference ” e clique no nome do seu projeto para abri-lo.

  2. Na página do projeto, clique em “Playground” para abrir o ambiente de teste de inferência.

  3. Comece sua sessão de bate-papo. Você pode personalizar sua sessão de bate-papo com as seguintes opções:

Seleção de modelo
Você pode escolher entre uma lista de modelos de base.
Prompt do sistema
O prompt do sistema instrui o modelo sobre como conduzir o diálogo.
Configurações de inferência
Ajuste os parâmetros Aleatoriedade, Repetição e Limites de resposta.
Histórico do bate-papo
Você pode filtrar o histórico de bate-papo por modelo ou intervalo de datas.

Inferir um modelo usando a API

Com a API, você pode integrar recursos de IA às suas aplicações de forma programática, utilizando endpoints de tipo “ OpenAI-compatible ” (envio de solicitação e recebimento de resposta), que são padrão do setor. Essa abordagem é essencial para implantações em ambiente de produção nas quais é necessário automatizar interações de IA, lidar com grandes volumes de solicitações ou integrar IA conversacional a sistemas existentes. A API oferece flexibilidade para personalizar o comportamento do modelo, gerenciar o histórico de conversas e dimensionar seus recursos baseados em IA de acordo com o crescimento do seu aplicativo.

Atualmente, as seguintes APIs são compatíveis:

Sugestões de chat /v1/chat/completions
Criar - Documentação do OpenAI
Get - Documentação do OpenAI
Lista - Documentação do OpenAI
Excluir - Documentação do OpenAI
Modelos /v1/models
Get - Documentação do OpenAI
Lista - Documentação do OpenAI

Consulte as seções a seguir para ver exemplos de como realizar tarefas comuns de inferência usando a API.

Terminal de API

Todas as solicitações de API utilizam o seguinte formato básico: URL:

https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference

Substitua <project_id> pelo ID do seu projeto. Para encontrá-lo, acesse Red Hat AI Inference projects e abra seu projeto.

Autenticação na API

Antes de poder fazer chamadas à API, você precisa autenticar suas solicitações. Você pode se autenticar usando um token de portador ou uma chave de API do IBM Cloud.

Autenticação por meio de um token de portador

Os tokens de portador garantem acesso seguro aos recursos de inferência do seu projeto e são gerados a partir da sua chave da API do IBM Cloud. Os tokens ao portador expiram após um período determinado, portanto, devem ser atualizados periodicamente.

O exemplo a seguir mostra como recuperar um token de portador.

curl -X POST "https://iam.cloud.ibm.com/identity/token" --header "Content-Type: application/x-www-form-urlencoded" --header "Accept: application/json" --data-urlencode "grant_type=urn:ibm:params:oauth:grant-type:apikey" --data-urlencode "apikey=$<IBM_CLOUD_API_KEY>"

O token de portador é o access_token na resposta. Esses tokens têm uma data de validade e devem ser atualizados periodicamente.

{"access_token":"xxxxx","refresh_token":"not_supported","token_type":"Bearer","expires_in":3600,"expiration":1770058324,"scope":"ibm openid"}

Autenticação por meio de uma chave de API

Existem duas maneiras de se autenticar com uma chave de API: você pode criar um ID de serviço, que é a maneira recomendada de distribuir acesso e controles. Se você criar um ID de serviço, também precisará criar uma chave de API de ID de serviço, que será usada para autenticação. A seção “Introdução ao Red Hat AI Inference ” explica como criar um ID de serviço e uma chave de API para realizar a autenticação programaticamente.

Você também pode se autenticar usando uma chave de API de usuário, em vez de uma chave de API de ID de serviço. Para obter mais informações, consulte Gerenciando as chaves de API do usuário.

Gerando uma sugestão de autocompletamento no chat

As sugestões de texto são o cerne da inferência. Elas permitem que você envie mensagens a um modelo de base e receba respostas geradas por IA. É assim que se criam experiências conversacionais, obtêm-se respostas a perguntas, gera-se conteúdo ou processam-se entradas em linguagem natural. É possível controlar o fluxo da conversa por meio de prompts do sistema que definem o comportamento do modelo e mantêm o histórico de mensagens para interações sensíveis ao contexto.

O exemplo a seguir mostra como gerar uma sugestão de autocompletamento no chat. Para obter uma lista completa dos parâmetros disponíveis, consulte “OpenAI: Preenchimento automático de chat ”.

curl https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference/chat/completions -H "Content-Type: application/json" -H "Authorization: Bearer <bearer_token>" -d '{
 "model": "granite-4-0-h-small",
 "messages": [
   {
     "role": "developer",
     "content": "You are a helpful assistant"
   },
   {
     "role": "user",
     "content": "Hello! Tell me about yourself"
   }
 ]
}'
from openai import OpenAI
client = OpenAI(
  api_key="<bearer_token>",
  base_url="https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference",
)
completion = client.chat.completions.create(
  model="granite-4-0-h-small",
  messages=[
    {"role": "developer", "content": "You are a helpful assistant."},
    {"role": "user", "content": "Hello! Tell me about yourself"}
  ]
)
print(completion.choices[0].message)

Obter um texto de autocompletar do chat pelo ID

Recuperar uma conversa específica pelo ID é útil para fins de auditoria, depuração ou análise de interações anteriores.

O exemplo a seguir mostra como obter uma conversa pelo seu ID. Para obter uma lista completa dos parâmetros disponíveis, consulte “Get Chat Completion ”.

curl -L 'https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference/chat/completions/<completion_id>' \
-H 'Accept: application/json' -H "Authorization: Bearer <bearer_token>"
from openai import OpenAI
client = OpenAI(
  api_key="<bearer_token>",
  base_url="https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference",
)
completion = client.chat.completions.retrieve(completion_id="<completion_id>")
print(completion)

Listando sugestões de preenchimento automático no chat

A lista de conclusões de chat oferece uma visão geral de todas as suas atividades de inferência, permitindo que você monitore padrões de uso, acompanhe custos e analise como seu aplicativo está interagindo com os modelos de base. Isso é particularmente valioso para compreender o comportamento dos usuários, identificar casos de uso populares e otimizar sua estratégia de integração de IA.

O exemplo a seguir mostra como listar as sugestões de preenchimento automático do chat. Para obter uma lista completa dos parâmetros disponíveis, consulte “Lista de sugestões de chat ”.

curl -L 'https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference/chat/completions' \
-H 'Accept: application/json' -H "Authorization: Bearer <bearer_token>"
from openai import OpenAI
client = OpenAI(
  api_key="<bearer_token>",
  base_url="https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference",
)
completions = client.chat.completions.list()
print(completions)

Excluindo uma sugestão de chat

A exclusão das sugestões de chat ajuda a limpar os dados de teste e a cumprir os requisitos de privacidade.

O exemplo a seguir mostra como excluir uma sugestão de chat. Para obter uma lista completa dos parâmetros disponíveis, consulte “Exclusão da autocompletagem do chat ”.

curl -X DELETE https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference/chat/completions/<completion_id> \
-H "Content-Type: application/json" -H "Authorization: Bearer <bearer_token>"

Listando modelos

Descubra quais modelos de fundação estão disponíveis em seu projeto e entenda suas capacidades, para que você possa utilizar o melhor modelo para o seu caso de uso específico e otimizar aspectos como qualidade da resposta, velocidade ou custo.

O exemplo a seguir mostra como listar modelos. Para obter uma lista completa dos parâmetros disponíveis, consulte “OpenAI: List Models ”.

curl -L 'https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference/models' \
-H 'Accept: application/json' -H "Authorization: Bearer <bearer_token>"
from openai import OpenAI
client = OpenAI(
  api_key="<bearer_token>",
  base_url="https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference",
)
models = client.models.list()
print(models)

Obter um modelo pelo ID

A obtenção de informações detalhadas sobre um modelo específico ajuda você a compreender suas características, capacidades e limitações antes de utilizá-lo em seu aplicativo.

O exemplo a seguir mostra como obter um modelo pelo ID. Para obter uma lista completa dos parâmetros disponíveis, consulte “Recuperar modelo ”.

curl -L 'https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference/models/<model>' \
-H 'Accept: application/json' -H "Authorization: Bearer <bearer_token>"
from openai import OpenAI
client = OpenAI(
  api_key="<bearer_token>",
  base_url="https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference",
)
model = client.models.retrieve("<model>")  # for example, "granite-4-0-h-small"
print(model)