Monitoramento de modelos do IBM e do watsonx

IBM watsonx oferece modelos de base de nível empresarial otimizados para casos de uso comerciais. Este guia mostra como instrumentar um aplicativo usando modelos do IBM watsonx com o OpenLLMetry para enviar dados de telemetria para Instana.

Pré-requisitos

Certifique-se de que os seguintes pré-requisitos estejam atendidos:

  • Python 3.10 ou posterior. Python 3.13 não é compatível devido a problemas de compatibilidade de dependências. Acesse Python 3.12 ou
  • IBM watsonx credenciais (ID do projeto e chave de API obtida em IBMwatsonx )
  • Uma conta no Instana
  • Visão geral da configuração básica, dos modos com agente e sem agente

Implementação de instrumentos na sua aplicação IBM watsonx

  1. Instale os pacotes necessários.

    pip install traceloop-sdk langchain-ibm ibm_watsonx_ai ibm-watson-machine-learning
    Observação: Se você encontrar um erro de compilação com o pandas (como, por exemplo, error: too few arguments to function '_PyLong_AsByteArray'), isso indica que você está usando o Python 3.13, que ainda não é compatível. Para obter mais informações, consulte Python. Esta versão não é compatível.
  2. Configure as variáveis de ambiente.

    Como encontrar suas credenciais do IBM watsonx

    Você pode encontrar suas credenciais na consola do IBM watsonx.ai :

    Método rápido (seção Descubra):

    • Na página inicial do IBM watsonx.ai, verifique se há uma seção “Descubra” com informações para desenvolvedores
    • Se disponível, esta seção exibe o ID do projeto, o endereço watsonx.ai, o endereço URL e a chave API, tudo em um só lugar
    • Copie esses valores diretamente

    Método alternativo:

    • API Instruções : Acesse a seção “IAM > Chaves do API ” no console do IBM Cloud
      • Crie uma nova chave API, caso ainda não tenha uma
      • Copie o valor da chave ` API ` (você não poderá vê-lo novamente após a criação)
    • ID do projeto :
      • Go aos seus projetos no watsonx.ai
      • Selecione ou crie um projeto
      • Vá até a guia "Gerenciar"
      • Encontre e copie o ID do projeto
    • watsonx.ai URL : Normalmente algo como https://us-south.ml.cloud.ibm.com (mas varia de acordo com a sua região específica)

    Configurando as variáveis de ambiente

    Exporte suas credenciais do IBM watsonx :
    export WATSONX_URL="<your-watsonx-url>"
    export WATSONX_PROJECT_ID="<your-project-id>"
    export WATSONX_API_KEY="<your-api-key>"

    Como alternativa, se você preferir usar um .env arquivo para armazenar suas credenciais, instale o python-dotenv.

    pip install python-dotenv

    Crie um .env arquivo no diretório do seu projeto:

    WATSONX_URL=<your-watsonx-url>
    WATSONX_PROJECT_ID=<your-project-id>
    WATSONX_API_KEY=<your-api-key>

    Em seguida, adicione a seguinte importação no início do seu arquivo ` Python `:

    from dotenv import load_dotenv
    load_dotenv()
  3. Crie sua aplicação IBM watsonx. Crie um arquivo ` Python ` com o seguinte código:

    import os
    import random
    from langchain_ibm import WatsonxLLM
    from pydantic import SecretStr
    from traceloop.sdk import Traceloop
    from traceloop.sdk.decorators import workflow
    
    Traceloop.init(app_name="watsonx_chat_service", disable_batch=True)
    
    @workflow(name="watsonx_llm_query")  # type: ignore[arg-type]
    def generate_response(model_id: str, question: str) -> str:
        print(f"  → Initializing {model_id}...")
        llm = WatsonxLLM(
            model_id=model_id,
            url=SecretStr(os.getenv("WATSONX_URL", "")),
            apikey=SecretStr(os.getenv("WATSONX_API_KEY", "")),
            project_id=os.getenv("WATSONX_PROJECT_ID", ""),
            params={
                "max_new_tokens": 100,
                "temperature": 0.5,
            }
        )
        print(f"  → Sending request...")
        response = llm.invoke(question)
        print(f"  ✓ Response received")
        return response
    
    # Multiple models and prompts
    models = ['ibm/granite-8b-code-instruct', 'ibm/granite-4-h-small']
    questions = [
        "Tell me a fun fact about space exploration",
        "What would happen if you could travel at the speed of light?",
        "Explain quantum entanglement in simple terms",
        "What are the most interesting unsolved mysteries in science?",
        "If you could have any superpower, what would be most useful and why?"
    ]
    
    print("\n=== Starting WatsonX LLM Test ===\n")
    
    # Run multiple queries with different models and prompts
    for i in range(5):
        model = random.choice(models)
        question = random.choice(questions)
    
        print(f"\n[Query {i+1}/5]")
        print(f"Question: {question}")
    
        try:
            response = generate_response(model, question)
            print(f"Response: {response}\n")
        except Exception as e:
            print(f"ERROR: {str(e)}\n")
    
    print("=== Test Complete ===")
  4. Execute o aplicativo.

    python3 watsonx_app.py

    O aplicativo enviará perguntas para IBM e watsonx e exibirá as respostas. OpenLLMetry captura automaticamente os traços de cada chamada ao API e os envia para Instana.

  5. Veja os dados em Instana.

    Após executar sua aplicação, os seguintes itens são exibidos no painel de observabilidade da Gen AI do Instana :

    • Modelo utilizado
    • Uso de tokens (tokens de entrada e saída)
    • Latência de Resposta
    • Conteúdo da solicitação e da resposta

Resolução de problemas

Para problemas comuns, como traços que não aparecem ou erros de conexão, consulte o guia de resolução de problemas.

Autenticação de erros

Se você encontrar erros de autenticação:

  1. Verifique se WATSONX_API_KEY está configurado corretamente
  2. Verifique se a sua chave do API é válida em IBM Cloud
  3. Certifique-se de que sua chave API não esteja vencida ou revogada
  4. Verifique se o ID do seu projeto está correto

Erros de acesso ao projeto

Se você encontrar erros de acesso ao projeto:

  1. Verifique se o seu WATSONX_PROJECT_ID está correto
  2. Verifique se a sua chave do API tem acesso ao projeto especificado
  3. Certifique-se de que o projeto exista na sua conta do IBM watsonx
  4. Verifique se o projeto está na região correta

Erros de modelo não encontrado

Se você encontrar erros do tipo “modelo não encontrado”:

  1. Verifique se o nome do modelo está correto (por exemplo, ibm/granite-4-h-small)
  2. Verifique se o modelo está disponível na sua região
  3. Certifique-se de que seu projeto tenha acesso ao modelo especificado
  4. Consulte a documentação dos modelos em IBMwatsonx para ver os modelos disponíveis

Próximas etapas

  • Conheça os provedores de LLM compatíveis com o Instana
  • Saiba mais sobre o cálculo de custos do uso do LLM
  • Configure alertas para o uso do IBM, watsonx e API
  • Consulte a documentação em IBMwatsonx para conhecer os recursos do modelo