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 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.
Metadata
Release files for openiziai 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| openiziai-0.1.1.tar.gz | 13.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| openiziai-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 30.9 kB
Release files / openiziai-0.1.1.tar.gz
| Download URL | openiziai-0.1.1.tar.gz |
|---|---|
| Size | 13.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5509abbfda88908213cc5dd8484b25808178e4d1141d93bcdaee26e2f8ec8abb
|
|
BLAKE2b-256 checksum How to use checksums |
18d8a5df7c696b73bc8527f576e304e8cff1f3a4840ef6ca2f1b022891aa4d61
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/5.0.0 CPython/3.12.3
|
Release files / openiziai-0.1.1-py3-none-any.whl
| Download URL | openiziai-0.1.1-py3-none-any.whl |
|---|---|
| Size | 16.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d20c635c5096d0d28dced954b8ac4d31192ca1acb8e228a12926b3c9e69b8fed
|
|
BLAKE2b-256 checksum How to use checksums |
a80b7b62b435c581d8088f014ad8436b572af5a121611c116a78373fce39a982
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/5.0.0 CPython/3.12.3
|