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.