MicroCore é uma coleção de adaptadores python para grandes modelos de linguagem e APIs de pesquisa semântica que permitem a comunicação com esses serviços de maneira conveniente, tornando-os facilmente alternáveis e separando a lógica de negócios dos detalhes de implementação.
Ele define interfaces para recursos normalmente usados em aplicativos de IA, o que permite manter seu aplicativo o mais simples possível e experimentar vários modelos e serviços sem a necessidade de alterar o código do aplicativo.
Você ainda pode alternar entre os modelos de preenchimento de texto e preenchimento de bate-papo apenas usando a configuração.
O exemplo básico de uso é o seguinte:
from microcore import llm
while user_msg := input ( 'Enter message: ' ):
print ( 'AI: ' + llm ( user_msg ))
Instale como pacote PyPi:
pip install ai-microcore
Alternativamente, você pode simplesmente copiar a pasta microcore
para a raiz das fontes do seu projeto.
git clone [email protected]:Nayjest/ai-microcore.git && mv ai-microcore/microcore ./ && rm -rf ai-microcore
Pitão 3.10/3.11/3.12
Ambas as versões do pacote OpenAI v0.28+ e v1.X são suportadas.
Ter OPENAI_API_KEY
nas variáveis de ambiente do sistema operacional é suficiente para uso básico.
Os recursos de pesquisa por similaridade funcionarão imediatamente se você tiver o pacote chromadb
pip instalado.
Existem algumas opções disponíveis para configurar o microcore:
microcore.configure(**params)
.env
na raiz do seu projeto; exemplos: basic.env, Mistral Large.env, Anthropic Claude 3 Opus.env, Gemini em Vertex AI.env, Gemini em AI Studio.envmc.configure(DOT_ENV_FILE='dev-config.ini')
Para obter a lista completa de opções de configuração disponíveis, você também pode verificar microcore/config.py
.
Para os modelos que não funcionam via API OpenAI, pode ser necessário instalar pacotes adicionais:
pip install anthropic
pip install google-generativeai
pip install vertexai
Além disso, para trabalhar com o Vertex AI, você precisa instalar o Google Cloud CLI e configurar a autorização.
Você precisará instalar transformadores e uma biblioteca de aprendizado profundo de sua escolha (PyTorch, TensorFlow, Flax, etc).
Veja instalação de transformadores.
microcore.configure()
têm a prioridade mais alta..env
por padrão ou o valor de DOT_ENV_FILE
) é maior que as variáveis de ambiente do sistema operacional.USE_DOT_ENV
como false
desativa a leitura de arquivos de configuração.Executa uma solicitação para um modelo de linguagem grande (LLM).
Variante assíncrona: allm(prompt: str, **kwargs)
from microcore import *
# Will print all requests and responses to console
use_logging ()
# Basic usage
ai_response = llm ( 'What is your model name?' )
# You also may pass a list of strings as prompt
# - For chat completion models elements are treated as separate messages
# - For completion LLMs elements are treated as text lines
llm ([ '1+2' , '=' ])
llm ( '1+2=' , model = 'gpt-4' )
# To specify a message role, you can use dictionary or classes
llm ( dict ( role = 'system' , content = '1+2=' ))
# equivalent
llm ( SysMsg ( '1+2=' ))
# The returned value is a string
assert '7' == llm ([
SysMsg ( 'You are a calculator' ),
UserMsg ( '1+2=' ),
AssistantMsg ( '3' ),
UserMsg ( '3+4=' )]
). strip ()
# But it contains all fields of the LLM response in additional attributes
for i in llm ( '1+2=?' , n = 3 , temperature = 2 ). choices :
print ( 'RESPONSE:' , i . message . content )
# To use response streaming you may specify the callback function:
llm ( 'Hi there' , callback = lambda x : print ( x , end = '' ))
# Or multiple callbacks:
output = []
llm ( 'Hi there' , callbacks = [
lambda x : print ( x , end = '' ),
lambda x : output . append ( x ),
])
Renderiza o modelo de prompt com parâmetros.
Modelos Jinja2 completos são usados por padrão.
Opções de configuração relacionadas:
from microcore import configure
configure (
# 'tpl' folder in current working directory by default
PROMPT_TEMPLATES_PATH = 'my_templates_folder'
)
Pesquisa de similaridade
Encontre o texto mais semelhante
Retornar coleção de textos
Armazene texto e metadados relacionados no banco de dados de incorporações
Armazene vários textos e metadados relacionados no banco de dados de embeddings
Limpar coleção
LLM Microcore oferece suporte a todos os modelos e provedores de API com API OpenAI.
Provedor de API | Modelos |
---|---|
OpenAI | Todos os modelos GPT-4 e GTP-3.5-Turbo todos os modelos de conclusão de texto (davinci, gpt-3.5-turbo-instruct, etc) |
Microsoft Azure | Todos os modelos OpenAI, Mistral Large |
Antrópico | Cláudio 3 modelos |
Mistral AI | Todos os modelos Mistral |
Estúdio de IA do Google | Modelos do Google Gêmeos |
Google Vertex AI | Gemini Pro e outros modelos |
Infraestrutura Profunda | deepinfra/airoboros-70b jondurbin/airoboros-l2-70b-gpt4-1.4.1 metal-lhama/Llama-2-70b-chat-hf e outros modelos com API OpenAI |
Qualquer escala | metal-lhama/Llama-2-70b-chat-hf metal-lhama/Llama-2-13b-chat-hf metal-lhama/Llama-7b-chat-hf |
Groq | LLaMA2 70b Mixtral 8x7b Gema 7b |
Fogos de artifício | Mais de 50 modelos de linguagem de código aberto |
Executa revisão de código pelo LLM para alterações em arquivos git .patch em qualquer linguagem de programação.
Determine o número de pétalas e a cor da flor a partir de uma foto (gpt-4-turbo)
Precisão de referência de mais de 20 modelos de última geração na resolução de problemas matemáticos das olimpíadas. Inferência de modelos de idioma local por meio de HuggingFace Transformers, inferência paralela.
@PENDÊNCIA
Este é um recurso experimental.
Ajusta o sistema de importação do Python para fornecer configuração automática do ambiente MicroCore com base em metadados em docstrings do módulo.
import microcore . ai_modules
Consulte CONTRIBUINDO para obter detalhes.
Licenciado sob a licença MIT © 2023 Vitalii Stepanenko