MicroCore est une collection d'adaptateurs Python pour les grands modèles linguistiques et les API de recherche sémantique permettant de communiquer avec ces services de manière pratique, de les rendre facilement commutables et de séparer la logique métier des détails d'implémentation.
Il définit des interfaces pour les fonctionnalités généralement utilisées dans les applications d'IA, ce qui vous permet de garder votre application aussi simple que possible et d'essayer différents modèles et services sans avoir à modifier le code de votre application.
Vous pouvez même basculer entre les modèles de complétion de texte et de complétion de chat uniquement à l'aide de la configuration.
L'exemple d'utilisation de base est le suivant :
from microcore import llm
while user_msg := input ( 'Enter message: ' ):
print ( 'AI: ' + llm ( user_msg ))
Installer en tant que package PyPi :
pip install ai-microcore
Alternativement, vous pouvez simplement copier le dossier microcore
à la racine des sources de votre projet.
git clone [email protected]:Nayjest/ai-microcore.git && mv ai-microcore/microcore ./ && rm -rf ai-microcore
Python3.10/3.11/3.12
Les versions du package OpenAI v0.28+ et v1.X sont prises en charge.
Avoir OPENAI_API_KEY
dans les variables d'environnement du système d'exploitation est suffisant pour une utilisation de base.
Les fonctionnalités de recherche de similarité fonctionneront immédiatement si le package chromadb
pip est installé.
Quelques options sont disponibles pour configurer le microcœur :
microcore.configure(**params)
.env
à la racine de votre projet ; exemples : basic.env, Mistral Large.env, Anthropic Claude 3 Opus.env, Gemini sur Vertex AI.env, Gemini sur AI Studio.envmc.configure(DOT_ENV_FILE='dev-config.ini')
Pour la liste complète des options de configuration disponibles, vous pouvez également consulter microcore/config.py
.
Pour les modèles ne fonctionnant pas via l'API OpenAI, vous devrez peut-être installer des packages supplémentaires :
pip install anthropic
pip install google-generativeai
pip install vertexai
?De plus, pour travailler via Vertex AI, vous devez installer Google Cloud CLI et configurer l'autorisation.
Vous devrez installer les transformateurs et la bibliothèque de deep learning de votre choix (PyTorch, TensorFlow, Flax, etc.).
Voir installation des transformateurs.
microcore.configure()
ont la priorité la plus élevée..env
par défaut ou la valeur de DOT_ENV_FILE
) est supérieure aux variables d'environnement du système d'exploitation.USE_DOT_ENV
sur false
désactive la lecture des fichiers de configuration.Effectue une requête vers un grand modèle de langage (LLM).
Variante asynchrone : 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 ),
])
Affiche le modèle d'invite avec les paramètres.
Les modèles Jinja2 complets sont utilisés par défaut.
Options de configuration associées :
from microcore import configure
configure (
# 'tpl' folder in current working directory by default
PROMPT_TEMPLATES_PATH = 'my_templates_folder'
)
Recherche de similarité
Trouver le texte le plus similaire
Retourner une collection de textes
Stocker le texte et les métadonnées associées dans la base de données d'intégrations
Stocker plusieurs textes et métadonnées associées dans la base de données d'intégrations
Effacer la collection
LLM Microcore prend en charge tous les modèles et fournisseurs d'API disposant de l'API OpenAI.
Fournisseur d'API | Modèles |
---|---|
OpenAI | Tous les modèles GPT-4 et GTP-3.5-Turbo tous les modèles de complétion de texte (davinci, gpt-3.5-turbo-instruct, etc.) |
Microsoft Azure | Tous les modèles OpenAI, Mistral Large |
Anthropique | Claude 3 modèles |
MistralAI | Tous les modèles Mistral |
Google IA Studio | Modèles Google Gemini |
Google Vertex AI | Gemini Pro et autres modèles |
Infra Profond | infrarouge profond/airoboros-70b jondurbin/airoboros-l2-70b-gpt4-1.4.1 méta-lama/Llama-2-70b-chat-hf et d'autres modèles ayant l'API OpenAI |
À toute échelle | méta-lama/Llama-2-70b-chat-hf méta-lama/Llama-2-13b-chat-hf méta-lama/Llama-7b-chat-hf |
Groq | LLaMA2 70b Mixtral 8x7b Gemma 7b |
Feux d'artifice | Plus de 50 modèles de langage open source |
Effectue une révision du code par LLM pour les modifications apportées aux fichiers git .patch dans tous les langages de programmation.
Déterminer le nombre de pétales et la couleur de la fleur à partir d'une photo (gpt-4-turbo)
Précision de référence de plus de 20 modèles de pointe pour résoudre les problèmes mathématiques des Olympiades. Inférence de modèles de langue locale via HuggingFace Transformers, inférence parallèle.
@FAIRE
Il s'agit d'une fonctionnalité expérimentale.
Ajuste le système d'importation Python pour fournir une configuration automatique de l'environnement MicroCore basée sur les métadonnées dans les docstrings du module.
import microcore . ai_modules
Veuillez consulter CONTRIBUER pour plus de détails.
Sous licence MIT © 2023 Vitalii Stepanenko