MicroCore ist eine Sammlung von Python-Adaptern für große Sprachmodelle und semantische Such-APIs, die eine bequeme Kommunikation mit diesen Diensten ermöglichen, sie leicht umschaltbar machen und die Geschäftslogik von den Implementierungsdetails trennen.
Es definiert Schnittstellen für Funktionen, die typischerweise in KI-Anwendungen verwendet werden, sodass Sie Ihre Anwendung so einfach wie möglich halten und verschiedene Modelle und Dienste ausprobieren können, ohne Ihren Anwendungscode ändern zu müssen.
Sie können sogar nur über die Konfiguration zwischen Textvervollständigungs- und Chat-Vervollständigungsmodellen wechseln.
Das grundlegende Anwendungsbeispiel lautet wie folgt:
from microcore import llm
while user_msg := input ( 'Enter message: ' ):
print ( 'AI: ' + llm ( user_msg ))
Als PyPi-Paket installieren:
pip install ai-microcore
Alternativ können Sie einfach microcore
Ordner in das Stammverzeichnis Ihrer Projektquellen kopieren.
git clone [email protected]:Nayjest/ai-microcore.git && mv ai-microcore/microcore ./ && rm -rf ai-microcore
Python 3.10 / 3.11 / 3.12
Sowohl die OpenAI-Paketversionen v0.28+ als auch v1.X werden unterstützt.
Für die grundlegende Verwendung reicht es aus, OPENAI_API_KEY
in den Umgebungsvariablen des Betriebssystems zu haben.
Die Ähnlichkeitssuchfunktionen funktionieren sofort, wenn Sie das chromadb
Pip-Paket installiert haben.
Für die Konfiguration von Microcore stehen einige Optionen zur Verfügung:
microcore.configure(**params)
.env
Datei in Ihrem Projektstammverzeichnis. Beispiele: basic.env, Mistral Large.env, Anthropic Claude 3 Opus.env, Gemini auf Vertex AI.env, Gemini auf AI Studio.envmc.configure(DOT_ENV_FILE='dev-config.ini')
Die vollständige Liste der verfügbaren Konfigurationsoptionen finden Sie auch unter microcore/config.py
.
Für Modelle, die nicht über die OpenAI-API funktionieren, müssen Sie möglicherweise zusätzliche Pakete installieren:
pip install anthropic
pip install google-generativeai
pip install vertexai
„Zusätzlich müssen Sie für die Arbeit mit Vertex AI die Google Cloud CLI installieren und die Autorisierung konfigurieren.
Sie müssen Transformatoren und eine Deep-Learning-Bibliothek Ihrer Wahl installieren (PyTorch, TensorFlow, Flax usw.).
Siehe Installation von Transformatoren.
microcore.configure()
übergeben werden, haben die höchste Priorität..env
oder der Wert von DOT_ENV_FILE
) ist höher als die der Betriebssystemumgebungsvariablen.USE_DOT_ENV
auf false
setzen, wird das Lesen von Konfigurationsdateien deaktiviert.Führt eine Anfrage an ein großes Sprachmodell (LLM) durch.
Asynchrone Variante: 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 ),
])
Rendert eine Eingabeaufforderungsvorlage mit Parametern.
Standardmäßig werden voll funktionsfähige Jinja2-Vorlagen verwendet.
Verwandte Konfigurationsoptionen:
from microcore import configure
configure (
# 'tpl' folder in current working directory by default
PROMPT_TEMPLATES_PATH = 'my_templates_folder'
)
Ähnlichkeitssuche
Finden Sie den ähnlichsten Text
Textsammlung zurückgeben
Speichern Sie Text und zugehörige Metadaten in der Einbettungsdatenbank
Speichern Sie mehrere Texte und zugehörige Metadaten in der Einbettungsdatenbank
Übersichtliche Sammlung
LLM Microcore unterstützt alle Modelle und API-Anbieter mit OpenAI-API.
API-Anbieter | Modelle |
---|---|
OpenAI | Alle GPT-4- und GTP-3.5-Turbo-Modelle alle Textvervollständigungsmodelle (davinci, gpt-3.5-turbo-instruct usw.) |
Microsoft Azure | Alle OpenAI-Modelle, Mistral Large |
Anthropisch | Claude 3 Modelle |
MistralAI | Alle Mistral-Modelle |
Google AI Studio | Google Gemini-Modelle |
Google Vertex AI | Gemini Pro und andere Modelle |
Tiefe Infrarot | deepinfra/airoboros-70b jondurbin/airoboros-l2-70b-gpt4-1.4.1 meta-lama/Llama-2-70b-chat-hf und andere Modelle mit OpenAI-API |
Anyscale | meta-lama/Llama-2-70b-chat-hf meta-lama/Llama-2-13b-chat-hf meta-lama/Llama-7b-chat-hf |
Groq | LLaMA2 70b Mixtral 8x7b Gemma 7b |
Feuerwerk | Über 50 Open-Source-Sprachmodelle |
Führt eine Codeüberprüfung durch LLM auf Änderungen in Git-Patch-Dateien in beliebigen Programmiersprachen durch.
Bestimmen Sie die Anzahl der Blütenblätter und die Farbe der Blüte anhand eines Fotos (gpt-4-turbo)
Benchmark-Genauigkeit von über 20 hochmodernen Modellen zur Lösung olympischer Mathematikprobleme. Inferenz lokaler Sprachmodelle über HuggingFace Transformers, parallele Inferenz.
@TODO
Dies ist eine experimentelle Funktion.
Optimiert das Python-Importsystem, um eine automatische Einrichtung der MicroCore-Umgebung basierend auf Metadaten in Moduldokumentzeichenfolgen bereitzustellen.
import microcore . ai_modules
Weitere Informationen finden Sie unter BEITRAGEN.
Lizenziert unter der MIT-Lizenz © 2023 Vitalii Stepanenko