LLMFLEX - это пакет Python, который позволяет разработчикам Python работать с различными крупными языковыми моделями (LLM) и выполняет быструю технику с простым интерфейсом. Это благоприятствует бесплатным и местным ресурсам вместо использования платных API для разработки действительно местных и частных решений с AI.
Он предоставляет классы для загрузки моделей LLM, моделей встраивания и векторных баз данных для создания приложений LLM с помощью ваших собственных быстрого разработки и тряпичных методов. С помощью команды одной линии вы можете загрузить интерфейс чат-бота, чтобы пообщаться с LLM или подавать модель как API OpenAI.
Создание виртуальной среды перед установкой пакета настоятельно рекомендуется. Также убедитесь, что вы установили Pytorch и Llama-Cpp-Python с правильным методом установки в соответствии с вашей аппаратной конфигурацией перед установкой LLMFLEX. Пожалуйста, посетите ссылки, предусмотренные для соответствующих пакетов для более подробных руководств по установке.
После того, как вы сделали вышеуказанные шаги, вы можете легко установить llmflex с помощью pip .
pip install llmflex
Вы также можете установить Exllamav2, AutoaWQ и AutoGPTQ, если у вас есть устройства CUDA. Пожалуйста, посетите ссылки, предусмотренные для соответствующих пакетов для более подробных руководств по установке.
В отличие от Langchain, вы можете создать несколько LLM с различной температурой, максимально новыми токенами, остановить слова и т. Д. С одной и той же базовой моделью без загрузки модели несколько раз с помощью класса LlmFactory . Это может быть полезно, когда вы создаете свой собственный агент с различными задачами LLM, которые требуют различных конфигураций.
Все LLM, созданные с помощью LlmFactory , совместимы с Langchain и могут быть легко интегрированы в ваш существующий код Langchain. Все классы LLM представляют собой повторную внедрение некоторых классов LANGCHAIN LLM, которые поддерживают более эффективную потоковую передачу и останавливают управление словами, все с унифицированным интерфейсом.
Все форматы модели поддерживаются, и все процесс загрузки обрабатывается в классе LlmFactory , так что это просто подключение и воспроизведение. Поддерживаемые форматы:
Базовый класс BaseTool для создания инструментов LLM с питанием. BrowserTool , оснащенный DuckDuckgo , реализован в качестве примера.
Agent класс предоставлен. Вы можете передать свои инструменты и LLM, чтобы инициализировать агента, после того, как он задал агенту задачу, агент разрабатывает магию для вас с данными инструментами.
В комплекте классы для использования моделей встраивания, которые содержат модель встраивания и текстовый сплиттер на основе токенов с использованием модели встраивания.
Используя встроенные наборы инструментов и FAISS, класс FaissVectorDatabase может позволить вам хранить и искать тексты для ваших тряпичных задач.
Классы памяти чата для хранения памяти чата на диске.
BaseChatMemory
Класс памяти без использования каких -либо моделей встраивания или векторных баз данных.
LongShortTermChatMemory
Класс памяти с использованием основной FaissVectorDatabase для поддержания долгосрочной памяти вместе с самой последней памятью.
Класс PromptTemplate реализован для форматирования вашей подсказки с различными форматами приглашения для моделей из разных источников. Некоторые пресеты, такие как Llama3 , ChatML , Vicuna и другие, уже реализованы, но вы можете всегда добавить свой собственный шаблон формата запроса.
Условное веб -приложение предоставляется для локального использования чат -бота искусственного интеллекта. Функциональные вызова и тряпка в ваших собственных документах поддерживаются на веб -приложении. Вы также можете управлять ответом LLM, предоставив начальный текст для ответа.
Вот как вы можете начать с любой модели генерации текста на Huggingface с вашей машиной.
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 = "" )Чтобы загрузить модель встраивания и использовать векторную базу данных:
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" )) Класс BrowserTool реализован в качестве примера для создания инструмента с LLMFLEX. Инструмент по умолчанию использует DuckDuckgo . Вот как вы можете его использовать:
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' )Используйте одноразовый агент React, чтобы пройти более сложные рабочие процессы.
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." )Если вы просто хотите, чтобы графический интерфейс начал общаться с вашей моделью LLM как с долгосрочной, так и с краткосрочной памятью, введите эту команду в терминале:
llmflex interfaceЕсли вы хотите настроить модель LLM, модель встраивания, текстовой сплиттер и reranker, создайте файл конфигурации и измените ее сначала:
# Create a config file for the webapp
llmflex create-app-configПосле изменения файла запустите следующее:
llmflex interface --config_dir chatbot_config.yamlВы увидите фронт поток, используйте его для общения с моделью LLM.
Теперь вы можете загрузить свои текстовые файлы, чтобы создать базы знаний и рассказать о своих документах с вашим помощником искусственного интеллекта.
Для получения дополнительной информации о том, как настроить свой YAML, прочитайте предоставленную документацию. 
Документация Python для всех классов, методов и функций представлена в каталоге ./docs в этом репозитории.
Этот проект лицензирован в соответствии с условиями лицензии MIT.