MicroCore es una colección de adaptadores de Python para modelos de lenguajes grandes y API de búsqueda semántica que permiten comunicarse con estos servicios de manera conveniente, hacerlos fácilmente intercambiables y separar la lógica empresarial de los detalles de implementación.
Define interfaces para funciones que normalmente se utilizan en aplicaciones de IA, lo que le permite mantener su aplicación lo más simple posible y probar varios modelos y servicios sin necesidad de cambiar el código de su aplicación.
Incluso puede cambiar entre los modelos de finalización de texto y finalización de chat solo usando la configuración.
El ejemplo básico de uso es el siguiente:
from microcore import llm
while user_msg := input ( 'Enter message: ' ):
print ( 'AI: ' + llm ( user_msg ))
Instalar como paquete PyPi:
pip install ai-microcore
Alternativamente, puede simplemente copiar la carpeta microcore
a la raíz de fuentes de su proyecto.
git clone [email protected]:Nayjest/ai-microcore.git && mv ai-microcore/microcore ./ && rm -rf ai-microcore
Pitón 3.10/3.11/3.12
Se admiten las versiones del paquete OpenAI v0.28+ y v1.X.
Tener OPENAI_API_KEY
en las variables de entorno del sistema operativo es suficiente para un uso básico.
Las funciones de búsqueda de similitudes funcionarán de inmediato si tiene instalado el paquete chromadb
pip.
Hay algunas opciones disponibles para configurar el micronúcleo:
microcore.configure(**params)
.env
en la raíz de su proyecto; ejemplos: basic.env, Mistral Large.env, Anthropic Claude 3 Opus.env, Gemini en Vertex AI.env, Gemini en AI Studio.envmc.configure(DOT_ENV_FILE='dev-config.ini')
Para obtener la lista completa de opciones de configuración disponibles, también puede consultar microcore/config.py
.
Para los modelos que no funcionan a través de la API OpenAI, es posible que necesite instalar paquetes adicionales:
pip install anthropic
pip install google-generativeai
pip install vertexai
Además, para trabajar a través de Vertex AI, debe instalar Google Cloud CLI y configurar la autorización.
Deberá instalar transformadores y una biblioteca de aprendizaje profundo de su elección (PyTorch, TensorFlow, Flax, etc.).
Ver instalación de transformadores.
microcore.configure()
tienen la máxima prioridad..env
de forma predeterminada o el valor de DOT_ENV_FILE
) es mayor que las variables de entorno del sistema operativo.USE_DOT_ENV
en false
deshabilita la lectura de archivos de configuración.Realiza una solicitud a un modelo de lenguaje grande (LLM).
Variante asincrónica: 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 ),
])
Representa una plantilla de aviso con parámetros.
De forma predeterminada se utilizan plantillas Jinja2 con todas las funciones.
Opciones de configuración relacionadas:
from microcore import configure
configure (
# 'tpl' folder in current working directory by default
PROMPT_TEMPLATES_PATH = 'my_templates_folder'
)
Búsqueda de similitud
Encuentra el texto más similar
Volver colección de textos
Almacene texto y metadatos relacionados en la base de datos incrustada
Almacene múltiples textos y metadatos relacionados en la base de datos integrada
Borrar colección
LLM Microcore admite todos los modelos y proveedores de API que tienen API OpenAI.
Proveedor de API | Modelos |
---|---|
AbiertoAI | Todos los modelos GPT-4 y GTP-3.5-Turbo todos los modelos de finalización de texto (davinci, gpt-3.5-turbo-instruct, etc.) |
MicrosoftAzure | Todos los modelos OpenAI, Mistral Grande |
antrópico | Claude 3 modelos |
MistralAI | Todos los modelos Mistral |
Estudio de IA de Google | Modelos de Google Géminis |
IA de vértice de Google | Géminis Pro y otros modelos |
Infraestructura profunda | infrarrojo profundo/airoboros-70b jondurbin/airoboros-l2-70b-gpt4-1.4.1 meta-llama/Llama-2-70b-chat-hf y otros modelos que tienen API OpenAI |
cualquier escala | meta-llama/Llama-2-70b-chat-hf meta-llama/Llama-2-13b-chat-hf meta-llama/Llama-7b-chat-hf |
Groq | LLaMA2 70b Mixtral 8x7b gema 7b |
Fuegos artificiales | Más de 50 modelos de lenguaje de código abierto |
Realiza revisión de código por parte de LLM para detectar cambios en archivos git .patch en cualquier lenguaje de programación.
Determinar el número de pétalos y el color de la flor a partir de una foto (gpt-4-turbo)
Precisión de referencia de más de 20 modelos de última generación para resolver problemas matemáticos de las Olimpiadas. Inferencia de modelos de lenguaje local a través de HuggingFace Transformers, inferencia paralela.
@HACER
Esta es una característica experimental.
Modifica el sistema de importación de Python para proporcionar una configuración automática del entorno MicroCore basada en metadatos en las cadenas de documentación del módulo.
import microcore . ai_modules
Consulte CONTRIBUCIÓN para obtener más detalles.
Licenciado bajo la licencia MIT © 2023 Vitalii Stepanenko