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
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | e7742c4cf9b19f62a2a0de34d617f721ed1250ec3f64689afd47c8d564e486c9 |
|
MD5 | 357275a534fea1dc412448bbb946dfac |
|
BLAKE2b-256 | b7370b21c9988a1d6bb33438b9ed5255ab22862681e95560c6035133faab0c74 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 83a9fd77bca16f9085e3a928b7008a01b155d9180a2d3ccda48c647b23045814 |
|
MD5 | 6fe427a0c5202324adb46593bff5fdc0 |
|
BLAKE2b-256 | a4de9a59c16644c238945355ea7b75da33ff3d1b96d4e39029b5fdc9ad914f77 |