Menu fechado

Acesse Múltiplos Modelos de IA com uma Única API em Python

IA

Introdução ao OpenRouter e ao Ecossistema de IA

O ecossistema de Inteligência Artificial (IA) é extremamente diverso, com múltiplos provedores oferecendo suas próprias APIs, esquemas de autenticação, limites de taxa e conjuntos de modelos. Isso complica o processo de integração desses provedores. O OpenRouter surge como uma solução inovadora, atuando como uma camada de roteamento unificada entre o código do usuário e múltiplos provedores de IA.

Características e Benefícios do OpenRouter

As principais características do OpenRouter incluem a unificação de acesso a diferentes modelos de IA, roteamento inteligente entre provedores, fallbacks para garantir a confiabilidade e integração com múltiplos provedores de IA. Isso traz benefícios como a simplificação do desenvolvimento de aplicativos de IA, melhoria da confiabilidade e escalabilidade, acesso a uma ampla gama de modelos de IA e redução do esforço de integração com múltiplos provedores.

Pré-requisitos e Implementação do OpenRouter

Utilizar o OpenRouter requer conhecimento básico de Python e familiaridade com módulos, dicionários, exceções e variáveis de ambiente. Além disso, é necessário ter uma conta no OpenRouter para gerar uma chave de API. A implementação inclui criar uma conta, instalar o pacote requests, configurar a chave de API como uma variável de ambiente e implementar o roteamento inteligente entre provedores.

Exemplos de Implementação e Configuração do OpenRouter

A implementação do OpenRouter envolve criar uma conta, gerar uma chave de API, configurar o ambiente Python e autenticar com o OpenRouter. Exemplos de código em Python incluem listar modelos de IA disponíveis, rotear requisições para modelos específicos e implementar fallbacks para modelos.


import os
import requests

OPENROUTER_API_URL = "https://openrouter.ai/api/v1/chat/completions"
api_key = os.getenv("OPENROUTER_API_KEY")

headers = {
    "Authorization": f"Bearer {api_key}",
    "Content-Type": "application/json"
}

payload = {
    "model": "openrouter/auto",
    "messages": [{"role": "user", "content": "Say hello in one sentence."}]
}

response = requests.post(OPENROUTER_API_URL, headers=headers, json=payload)
data = response.json()

print(f"Model: {data.get('model')}")
print(f"Response: {data.get('choices', [{}])[0].get('message', {}).get('content')}")

Implementando Estratégias de Roteamento com o OpenRouter

O OpenRouter suporta várias estratégias de roteamento para priorizar os provedores, incluindo preço, throughput e latência. A escolha da estratégia depende das necessidades específicas do aplicativo.





import os
import requests

OPENROUTER_API_URL = "https://openrouter.ai/api/v1/chat/completions"
api_key = os.getenv("OPENROUTER_API_KEY")

def make_request(model, messages, provider_config=None):
    headers = {
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json"
    }
    payload = {"model": model, "messages": messages}
    if provider_config:
        payload["provider"] = provider_config
    response = requests.post(OPENROUTER_API_URL, headers=headers, json=payload)
    response.raise_for_status()
    return response.json()

data_price = make_request(
    model="meta-llama/llama-3.1-70b-instruct",
    messages=[{"role": "user", "content": "Explain AI in one sentence."}],
    provider_config={"sort": "price"}
)

data_throughput = make_request(
    model="meta-llama/llama-3.1-70b-instruct",
    messages=[{"role": "user", "content": "Explain AI in one sentence."}],
    provider_config={"sort": "throughput"}
)

data_latency = make_request(
    model="meta-llama/llama-3.1-70b-instruct",
    messages=[{"role": "user", "content": "Explain AI in one sentence."}],
    provider_config={"sort": "latency"}
)

Implementando Fallbacks de Modelo para Confiabilidade

Fallbacks de modelo são essenciais para garantir a confiabilidade do aplicativo. Isso envolve passar uma lista de modelos em ordem de prioridade para o OpenRouter.


import os
import requests

OPENROUTER_API_URL = "https://openrouter.ai/api/v1/chat/completions"
api_key = os.getenv("OPENROUTER_API_KEY")

def make_request_with_fallback(models_list, messages):
    headers = {
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json"
    }
    payload = {"model": models_list[0], "messages": messages}
    response = requests.post(OPENROUTER_API_URL, headers=headers, json=payload)
    return response

models_list = [
    "gpt-4",
    "gpt-3.5-turbo",
    "gpt-3.5-turbo-16k"
]
messages = [{"role": "user", "content": "What is the capital of France?"}]

response = make_request_with_fallback(models_list, messages)
data = response.json()

if 'model' in data:
    print(f"Model: {data['model']} by {data.get('provider', 'Unknown')}")
    if 'choices' in data:
        print(f"Response: {data['choices'][0].get('message', {}).get('content', 'No content found')}")
    else:
        print("No choices found in the response.")
        print(f"Response: {data}")
else:
    print("No model found in the response.")
    print(f"Response: {data}")

Essa abordagem garante que o aplicativo continue funcionando mesmo quando um modelo específico não estiver disponível, melhorando a confiabilidade e a robustez do sistema.


Fonte de Referência: realpython.com.
Curadoria e Adaptação: Redação Yassutaro Developers.



Redação YTI&W-News

Redação Developers | Yassutaro TI & Web

Notícias do universo do Desenvolvimento Web, dicas e tutoriais para Webmasters.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Publicado em:Inteligência Artificial,JavaScript / Back-end,Marketing Digital,SEO,SEO Técnico
Fale Conosco
×

Inscreva-se em nossa Newsletter!


Receba nossos lançamentos e artigos em primera mão!