{"id":15442875,"url":"https://github.com/rwallan/openiziai","last_synced_at":"2025-04-19T20:04:08.141Z","repository":{"id":240582578,"uuid":"803006791","full_name":"RWallan/openiziai","owner":"RWallan","description":"Interface para se comunicar com a api da OpenAI adotando as melhores práticas de LLM para criar e se comunicar com um agente.","archived":false,"fork":false,"pushed_at":"2024-05-23T13:42:29.000Z","size":121,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-10-18T13:16:36.887Z","etag":null,"topics":["data-science","ia","llm","openai","pydantic-v2","python3"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RWallan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-19T21:06:29.000Z","updated_at":"2024-06-09T10:17:53.000Z","dependencies_parsed_at":"2024-05-19T23:20:57.070Z","dependency_job_id":"0193b126-da38-42af-8d03-294894f9097f","html_url":"https://github.com/RWallan/openiziai","commit_stats":null,"previous_names":["rwallan/openiziai"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RWallan%2Fopeniziai","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RWallan%2Fopeniziai/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RWallan%2Fopeniziai/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RWallan%2Fopeniziai/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RWallan","download_url":"https://codeload.github.com/RWallan/openiziai/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241587784,"owners_count":19986628,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-science","ia","llm","openai","pydantic-v2","python3"],"created_at":"2024-10-01T19:31:03.657Z","updated_at":"2025-03-03T00:32:15.514Z","avatar_url":"https://github.com/RWallan.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OPENIZIAI\n\n![Static Badge](https://img.shields.io/badge/python-3.11%7C3.12-blue)\n[![CI](https://github.com/RWallan/openiziai/actions/workflows/ci.yaml/badge.svg?branch=main)](https://github.com/RWallan/openiziai/actions/workflows/ci.yaml)\n[![codecov](https://codecov.io/github/RWallan/openiziai/branch/main/graph/badge.svg?token=FYZ1IOHC9Y)](https://codecov.io/github/RWallan/openiziai)\n![GitHub License](https://img.shields.io/github/license/RWallan/openiziai)\n![PyPI - Version](https://img.shields.io/pypi/v/openiziai)\n\nO projeto ainda está em suas primeiras versões. Isso significa que o projeto está em constante mudanças e todo feedback é bem vindo!\n\n### Utilize seus modelos LLM com o que quiser e como quiser\n\nOpeniziAI é um projeto que disponibiliza uma interface que implementa práticas de _prompt enginnering_ para ser capaz de:\n\n- Criar dados de treino para fine tuning\n\n- Aplicar fine tuning nos seus dados\n\n- Criar agentes especializados\n\n## Como instalar\n\n```bash\npip install openiziai\n```\n\n## Como usar\n\n```python\nimport openiziai # Importe a biblioteca\nfrom openai import OpenAI\n\nclient = OpenAI() # Instancie o client da OpenAI com seu token\n\n# Este é o seu dataset\ndata = {\n    'data': {\n        'nome_do_projeto': 'openiziai',\n        'objetivo': 'disponibilizar uma interface para se comunicar com a api da OpenAI',\n        'componentes': {\n            'task': 'descreve a tarefa que o modelo deverá executar',\n            'tools': 'coleção de funções úteis para auxiliar no seu modelo',\n            'fine_tuning': 'aplica o fine tuning do seu modelo',\n            'agents': 'unidade capaz de realizar tarefas utilizando modelo do GPT'\n        }\n    }\n}\n\n# Crie a descrição da task que o seu modelo deve executar\ntask = openiziai.Task(\n    backstory='Você deve ser capaz de responder tudo relacionado a biblioteca python `openiziai`',\n    short_backstory='Dê orientações sobre a biblioteca openiziai',\n    role='Especialista na documentação do openiziai',\n    goal='Oferecer exemplos do que a biblioteca openiziai é capaz'\n)\n\n# Crie o seu dado de treino\ntool = openiziai.tools.TrainDataTool(\n    client=client,\n    data=data,\n    task=task,\n)\nmy_trained_data_file = tool.execute(\n    n_examples=500,\n    n_batch=5,\n    temperature=0.5,\n    max_tokens=1000,\n    max_context_length=8,\n) # \u003e\u003e\u003e 'path/to/project/data/train/train_{id}_20240519.jsonl'\n\n# Aplique o fine tuning nos seus dados\nfine_tuning = openiziai.FineTuning(\n    client=client,\n    train_file=my_trained_data_file,\n    task=task,\n)\n\n## Envie seu dado de treino e inicie fine tuning para a OpenAI\nfine_tuning.upload_file_to_openai().start()\nfine_tuning.status # \u003e\u003e\u003e QUEUED\nfine_tuning.status # \u003e\u003e\u003e RUNNING\nfine_tuning.status # \u003e\u003e\u003e COMPLETED\n\n# Busque o seu modelo\nmy_model = fine_tuning.model\n# \u003e\u003e\u003e GPTModel(name='your_model_id', task=Task(...), base_model='gpt-3.5-turbo', created_at=datetime(...))\n\n# Construa o seu agente\nmy_agent = openiziai.agents.Agent(client=client, model=my_model)\n# ou\nmy_agent = openiziai.agents.Agent(client=client, model='your_model_id', task=task)\n\nresponse = my_agent.prompt('o que eu consigo fazer com o openiziai?')\n# \u003e\u003e\u003e promptresponse(\n# ...    id='prompt-id',\n# ...    prompt='o que eu consigo fazer com o openiziai?',\n# ...    response='construir tasks, utilizar tools, aplicar fine tuning e construir agentes especializados',\n# ...    temperature=0.5,\n# ...    tokens=500\n# ...    fine_tuned_model='your_model_id'\n# \u003e\u003e\u003e )\n\nresponse.response\n# \u003e\u003e\u003e construir tasks, utilizar tools, aplicar fine tuning e construir agentes especializados\n```\n\nVocê também pode manter o contexto das suas interações com o seu agente.\n\nBasta utilizar o gerenciador de contexto para gerenciar seus contextos!\n\n```python\n# ...\nwith openiziai.agents.AgentManager(\n    agent=my_agent,\n    context_store='path/to/your/context/store',\n    max_context_length=10,\n) as manager:\n    response = manager.prompt(\n        'o que eu consigo fazer com o openiziai?',\n        temperature=0.5,\n        max_tokens=1000,\n    )\n    # \u003e\u003e\u003e Construir tasks, utilizar tools, aplicar fine tuning e construir agentes especializados\n    response = manager.prompt('o que é esse último?')\n    # \u003e\u003e\u003e Agente é unidade capaz de realizar tarefas utilizando modelo do GPT\n```\n\nCom o gerenciador de contexto você também terá uma cópia do contexto para que possa recuperar as interações em outros momentos.\n\n## Por que usar?\n\nA 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.\n\n**Será apenas você e seu modelo.**\n\n## Tecnologias\n\nO projeto utiliza, principalmente, as ferramentas:\n\n- [OpenAI](https://platform.openai.com/docs/introduction)- Responsável por disponibilizar toda a API para se comunicar com os modelos GPT\n\n- [Pydantic](https://docs.pydantic.dev/latest/) - Para analisar e validar os inputs do modelo.\n\n- [Trio](https://trio.readthedocs.io/en/stable/) - Para programação assincrona.\n\nPara o gerenciamente de bibliotecas, foi utilizado o Poetry.\n\n## Como contribuir\n\nO projeto esta aberto a quaisquer contribuições!\n\nBasta [abrir uma issue](https://github.com/RWallan/openiziai/issues) ou crie um fork e solicite um PR.\n\n## Licença\n\nEste projeto está sob licença MIT.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frwallan%2Fopeniziai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frwallan%2Fopeniziai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frwallan%2Fopeniziai/lists"}