LLMFLEX ist ein Python -Paket, mit dem Python -Entwickler mit verschiedenen großsprachigen Modellen (LLM) arbeiten und mit einer einfachen Schnittstelle ein schnelles Engineering durchführen können. Es bevorzugt kostenlose und lokale Ressourcen, anstatt bezahlte APIs zu verwenden, um wirklich lokale und private KI-betriebene Lösungen zu entwickeln.
Es bietet Klassen zum Laden von LLM -Modellen, Einbettungsmodellen und Vektordatenbanken, um LLM -Antriebsanwendungen mit Ihren eigenen Eingabe- und RAG -Techniken zu erstellen. Mit einem One-Liner-Befehl können Sie eine Chatbot-Schnittstelle zum Chat mit dem LLM laden oder auch ein Modell als OpenAI-API bedienen.
Das Erstellen einer virtuellen Umgebung vor der Installation des Pakets wird dringend empfohlen. Stellen Sie außerdem sicher, dass Sie Pytorch und Lama-CPP-Python mit der richtigen Installationsmethode gemäß Ihrer Hardwarekonfiguration installiert haben, bevor Sie LLMFLEX installieren. Bitte besuchen Sie die Links für die jeweiligen Pakete, um detailliertere Installationsführer zu erhalten.
Nachdem Sie die oben genannten Schritte durchgeführt haben, können Sie LLMFLEX problemlos mit pip installieren.
pip install llmflex
Sie können auch Exllamav2, AutoAWQ und AutoGPTQ installieren, wenn Sie CUDA -Geräte haben. Bitte besuchen Sie die Links für die jeweiligen Pakete, um detailliertere Installationsführer zu erhalten.
Im Gegensatz zu Langchain können Sie mehrere LLMs mit unterschiedlichen Temperaturen, maximalen neuen Token, Stoppwörtern usw. erstellen, mit demselben zugrunde liegenden Modell, ohne das Modell mehrmals unter Verwendung der LlmFactory -Klasse zu laden. Dies kann nützlich sein, wenn Sie Ihren eigenen Agenten mit unterschiedlichen LLM -Aufgaben erstellen, für die unterschiedliche Konfigurationen erforderlich sind.
Alle mit LlmFactory erstellten LLMs sind Langchain -kompatibel und können nahtlos in Ihren vorhandenen Langchain -Code integriert werden. Alle LLM-Klassen sind Neuimplementationen einiger Langchain-LLM-Klassen, die ein effizienteres Streaming- und Stopp-Word-Management unterstützen, alle mit einer einheitlichen Schnittstelle.
Alle Modellformate werden alle unterstützt, und der Ladevorgang wird in der LlmFactory -Klasse behandelt, sodass es nur Plug -and -Play ist. Unterstützte Formate:
Ein Basisklassen BaseTool zum Erstellen von LLM -Tools. Ein von DuckDuckgo angetriebener BrowserTool wird als Beispiel implementiert.
Eine Agent wird zur Verfügung gestellt. Sie können Ihre Tools und LLM übergeben, um den Agenten zu initialisieren. Nachdem der Agent eine Aufgabe gegeben hat, wird der Agent die Magie für Sie mit den angegebenen Tools erarbeiten.
Bündelte Klassen für die Verwendung von Einbettungsmodellen, die das Einbettungsmodell und einen Token-Count-basierten Textsplitter mit dem Einbettungsmodell enthält.
Mithilfe von Einbettungs -Toolkits und Faiss können Sie eine FaissVectorDatabase -Klasse ermöglichen, um Texte nach Ihren Lappenaufgaben zu speichern und zu suchen.
Chat -Speicherkurse zum Speichern von Chat -Speicher auf der Festplatte.
BaseChatMemory
Speicherklasse ohne Einbettungsmodelle oder Vektordatenbanken.
LongShortTermChatMemory
Speicherklasse unter Verwendung einer zugrunde liegenden FaissVectorDatabase , um den Langzeitgedächtnis zusammen mit dem neuesten Speicher zu erhalten.
Eine PromptTemplate -Klasse wird implementiert, um Ihre Eingabeaufforderung mit verschiedenen Eingabeaufforderungen für Modelle aus verschiedenen Quellen zu formatieren. Einige Voreinstellungen wie Llama3 , ChatML , Vicuna und mehr sind bereits implementiert, aber Sie können immer Ihre eigene Vorlage für ein eigenes Format hinzufügen.
Für die Verwendung von AI -Chatbot -Gebrauch von AI -Chatbot wird ein streamlites WebApp bereitgestellt. Funktionsanrufe und Lappen in Ihren eigenen Dokumenten werden im WebApp unterstützt. Sie können auch die Antwort des LLM steuern, indem Sie den Anfangstext für die Antwort bereitstellen.
Auf diese Weise können Sie mit jedem Textgenerierungsmodell mit Ihrer Maschine beginnen.
from llmflex import LlmFactory
# Load the model from Huggingface
model = LlmFactory ( "TheBloke/OpenHermes-2.5-Mistral-7B-GGUF" )
# Create a llm
llm = model ( temperature = 0.7 , max_new_tokens = 512 )
# Use the LLM for your task
prompt = "Q: What is the colour of an apple? A:"
ans = llm . invoke ( prompt , stop = [ 'Q:' ])
print ( ans )
# Or if you prefer to generate the output with token streamming.
for token in llm . stream ( prompt , stop = [ 'Q:' ]):
print ( token , end = "" )So laden Sie ein Einbettungsmodell und verwenden Sie eine Vektor -Datenbank:
from llmflex . Embeddings import HuggingfaceEmbeddingsToolkit
from llmflex . VectorDBs import FaissVectorDatabase
# Loading the embedding model toolkit
embeddings = HuggingfaceEmbeddingsToolkit ( model_id = "thenlper/gte-small" )
# Create a vector database
food = [ "Apple" , "Banana" , "Pork" ]
vectordb = FaissVectorDatabase . from_texts ( embeddings = embeddings , texts = food )
# Do semantic search on the vector database
print ( vectordb . search ( "Beef" )) Eine BrowserTool -Klasse wird als Beispiel implementiert, um ein Tool mit LLMFLEX zu erstellen. Das Tool verwendet standardmäßig DuckDuckgo . So können Sie es verwenden:
from llmflex . Tools import BrowserTool
from llmflex . Rankers import FlashrankRanker
# Create a reranker
ranker = FlashrankRanker ()
# Create a broswer tool with the embeddings toolkit created earlier
tool = BrowserTool ( embeddings = embeddings , llm = llm , ranker = ranker )
# Run the tool
tool ( search_query = 'Install python' )Verwenden Sie den One-Shot React-Agenten, um kompliziertere Workflows durchzuführen.
from llmflex . Agents import Agent
agent = Agent ( llm = llm , tools = [ tool ], prompt_template = model . prompt_template )
agent . run ( "Do some research online to find out the latest trends about Generative AI." )Wenn Sie nur möchten, dass eine GUI mit Ihrem LLM -Modell mit langfristigem und kurzfristigem Speicher mit Ihrem LLM -Modell plaudert, geben Sie diesen Befehl in das Terminal ein:
llmflex interfaceWenn Sie das LLM -Modell konfigurieren möchten, einbetten, ein Einbettungsmodell, Textsplitter und Reranker einbetten, erstellen Sie eine Konfigurationsdatei und ändern Sie es zuerst:
# Create a config file for the webapp
llmflex create-app-configFühren Sie nach der Änderung der Datei Folgendes aus:
llmflex interface --config_dir chatbot_config.yamlSie werden ein stromiges Frontend sehen und mit dem LLM -Modell chatten.
Jetzt können Sie Ihre Textdateien hochladen, um Wissensbasis zu erstellen und mit Ihrem AI -Assistenten über Ihre Dokumente zu sprechen.
Weitere Informationen zum Konfigurieren Ihres YAML finden Sie in der angegebenen Dokumentation. 
Python -Dokumentation für alle Klassen, Methoden und Funktionen finden Sie im Verzeichnis ./docs in diesem Repository.
Dieses Projekt ist gemäß den Bedingungen der MIT -Lizenz lizenziert.