from portkey_ai import Portkey
import os

lb_config = {
    "strategy": { "mode": "loadbalance" },
    "targets": ({
        "provider": 'openai',
        "api_key": os.environ("OPENAI_API_KEY"),
        "weight": 0.1
    },{
        "provider": 'groq',
        "api_key": os.environ("GROQ_API_KEY"),
        "weight": 0.9,
        "override_params": {
            "model": 'llama3-70b-8192'
        },
    }),
}

client = Portkey(config=lb_config)

response = client.chat.completions.create(
    messages=({"role": "user", "content": "What's the meaning of life?"}),
    model="gpt-4o-mini"
)

print(response.choices(0).message.content)

Implementando o roteamento condicional:


from portkey_ai import Portkey
import os

openai_api_key = os.environ("OPENAI_API_KEY")
groq_api_key = os.environ("GROQ_API_KEY")

pk_config = {
    "strategy": {
        "mode": "conditional",
        "conditions": (
            {
                "query": {"metadata.user_plan": {"$eq": "pro"}},
                "then": "openai"
            },
            {
                "query": {"metadata.user_plan": {"$eq": "basic"}},
                "then": "groq"
            }
        ),
        "default": "groq"
    },
    "targets": (
        {
            "name": "openai",
            "provider": "openai",
            "api_key": openai_api_key
        },
        {
            "name": "groq",
            "provider": "groq",
            "api_key": groq_api_key,
            "override_params": {
                "model": "llama3-70b-8192"
            }
        }
    )
}

metadata = {
    "user_plan": "pro"
}

client = Portkey(config=pk_config, metadata=metadata)

response = client.chat.completions.create(
    messages=({"role": "user", "content": "What's the meaning of life?"})
)
print(response.choices(0).message.content)

O exemplo acima usa o valor de metadados user_plan Para determinar qual modelo deve ser usado para a consulta. Isso é útil para provedores de SaaS que oferecem IA através de um plano freemium.

Aproveitando a porta de porte de portkey para integração de LLM

Portkey representa uma inovação significativa na integração do LLM. Ele aborda desafios críticos no gerenciamento de vários fornecedores e otimizando o desempenho. Ao fornecer uma estrutura de código aberto que permite a interação perfeita com vários provedores de LLM, o projeto preenche uma lacuna significativa nos fluxos de trabalho de desenvolvimento atuais da IA.

O projeto prospera na colaboração da comunidade, recebendo contribuições de desenvolvedores em todo o mundo. Com uma comunidade ativa do GitHub e questões abertas, a Portkey incentiva os desenvolvedores a participar da expansão de suas capacidades. A abordagem de desenvolvimento transparente do projeto e o licenciamento de código aberto tornam acessível para desenvolvedores individuais e equipes corporativas.