Skip to main content

Interface para se comunicar com a api da OpenAI adotando as melhores práticas de LLM para criar e se comunicar com um agente.

Project description

OPENIZIAI

Static Badge CI codecov GitHub License PyPI - Version

O projeto ainda está em suas primeiras versões. Isso significa que o projeto está em constante mudanças e todo feedback é bem vindo!

Utilize seus modelos LLM com o que quiser e como quiser

OpeniziAI é um projeto que disponibiliza uma interface que implementa práticas de prompt enginnering para ser capaz de:

  • Criar dados de treino para fine tuning

  • Aplicar fine tuning nos seus dados

  • Criar agentes especializados

Como instalar

pip install openiziai

Como usar

import openiziai # Importe a biblioteca
from openai import OpenAI

client = OpenAI() # Instancie o client da OpenAI com seu token

# Este é o seu dataset
data = {
    'data': {
        'nome_do_projeto': 'openiziai',
        'objetivo': 'disponibilizar uma interface para se comunicar com a api da OpenAI',
        'componentes': {
            'task': 'descreve a tarefa que o modelo deverá executar',
            'tools': 'coleção de funções úteis para auxiliar no seu modelo',
            'fine_tuning': 'aplica o fine tuning do seu modelo',
            'agents': 'unidade capaz de realizar tarefas utilizando modelo do GPT'
        }
    }
}

# Crie a descrição da task que o seu modelo deve executar
task = openiziai.Task(
    backstory='Você deve ser capaz de responder tudo relacionado a biblioteca python `openiziai`',
    short_backstory='Dê orientações sobre a biblioteca openiziai',
    role='Especialista na documentação do openiziai',
    goal='Oferecer exemplos do que a biblioteca openiziai é capaz'
)

# Crie o seu dado de treino
tool = openiziai.tools.TrainDataTool(
    client=client,
    data=data,
    task=task,
)
my_trained_data_file = tool.execute(
    n_examples=500,
    n_batch=5,
    temperature=0.5,
    max_tokens=1000,
    max_context_length=8,
) # >>> 'path/to/project/data/train/train_{id}_20240519.jsonl'

# Aplique o fine tuning nos seus dados
fine_tuning = openiziai.FineTuning(
    client=client,
    train_file=my_trained_data_file,
    task=task,
)

## Envie seu dado de treino e inicie fine tuning para a OpenAI
fine_tuning.upload_file_to_openai().start()
fine_tuning.status # >>> QUEUED
fine_tuning.status # >>> RUNNING
fine_tuning.status # >>> COMPLETED

# Busque o seu modelo
my_model = fine_tuning.model
# >>> GPTModel(name='your_model_id', task=Task(...), base_model='gpt-3.5-turbo', created_at=datetime(...))

# Construa o seu agente
my_agent = openiziai.agents.Agent(client=client, model=my_model)
# ou
my_agent = openiziai.agents.Agent(client=client, model='your_model_id', task=task)

response = my_agent.prompt('o que eu consigo fazer com o openiziai?')
# >>> promptresponse(
# ...    id='prompt-id',
# ...    prompt='o que eu consigo fazer com o openiziai?',
# ...    response='construir tasks, utilizar tools, aplicar fine tuning e construir agentes especializados',
# ...    temperature=0.5,
# ...    tokens=500
# ...    fine_tuned_model='your_model_id'
# >>> )

response.response
# >>> construir tasks, utilizar tools, aplicar fine tuning e construir agentes especializados

Você também pode manter o contexto das suas interações com o seu agente.

Basta utilizar o gerenciador de contexto para gerenciar seus contextos!

# ...
with openiziai.agents.AgentManager(
    agent=my_agent,
    context_store='path/to/your/context/store',
    max_context_length=10,
) as manager:
    response = manager.prompt(
        'o que eu consigo fazer com o openiziai?',
        temperature=0.5,
        max_tokens=1000,
    )
    # >>> Construir tasks, utilizar tools, aplicar fine tuning e construir agentes especializados
    response = manager.prompt('o que é esse último?')
    # >>> Agente é unidade capaz de realizar tarefas utilizando modelo do GPT

Com o gerenciador de contexto você também terá uma cópia do contexto para que possa recuperar as interações em outros momentos.

Por que usar?

A OpeniziAI não implementa nenhuma telemetria ou contratação de serviço. A biblioteca te oferece uma maneira declarativa de aplicar os passos básicos para utilizar os modelos da OpenAI especializados nos seus próprios dados.

Será apenas você e seu modelo.

Tecnologias

O projeto utiliza, principalmente, as ferramentas:

  • OpenAI- Responsável por disponibilizar toda a API para se comunicar com os modelos GPT

  • Pydantic - Para analisar e validar os inputs do modelo.

  • Trio - Para programação assincrona.

Para o gerenciamente de bibliotecas, foi utilizado o Poetry.

Como contribuir

O projeto esta aberto a quaisquer contribuições!

Basta abrir uma issue ou crie um fork e solicite um PR.

Licença

Este projeto está sob licença MIT.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openiziai-0.1.1.tar.gz (13.9 kB view details)

Uploaded Source

Built Distribution

openiziai-0.1.1-py3-none-any.whl (16.9 kB view details)

Uploaded Python 3

File details

Details for the file openiziai-0.1.1.tar.gz.

File metadata

  • Download URL: openiziai-0.1.1.tar.gz
  • Upload date:
  • Size: 13.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for openiziai-0.1.1.tar.gz
Algorithm Hash digest
SHA256 5509abbfda88908213cc5dd8484b25808178e4d1141d93bcdaee26e2f8ec8abb
MD5 8bd72b053a52065d343a1f5016f66036
BLAKE2b-256 18d8a5df7c696b73bc8527f576e304e8cff1f3a4840ef6ca2f1b022891aa4d61

See more details on using hashes here.

File details

Details for the file openiziai-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: openiziai-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 16.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for openiziai-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d20c635c5096d0d28dced954b8ac4d31192ca1acb8e228a12926b3c9e69b8fed
MD5 680e8e173f6fc4b1134f9d27c10605a1
BLAKE2b-256 a80b7b62b435c581d8088f014ad8436b572af5a121611c116a78373fce39a982

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page