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

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 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.0.tar.gz (13.9 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: openiziai-0.1.0.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.0.tar.gz
Algorithm Hash digest
SHA256 e7742c4cf9b19f62a2a0de34d617f721ed1250ec3f64689afd47c8d564e486c9
MD5 357275a534fea1dc412448bbb946dfac
BLAKE2b-256 b7370b21c9988a1d6bb33438b9ed5255ab22862681e95560c6035133faab0c74

See more details on using hashes here.

File details

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

File metadata

  • Download URL: openiziai-0.1.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 83a9fd77bca16f9085e3a928b7008a01b155d9180a2d3ccda48c647b23045814
MD5 6fe427a0c5202324adb46593bff5fdc0
BLAKE2b-256 a4de9a59c16644c238945355ea7b75da33ff3d1b96d4e39029b5fdc9ad914f77

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