LLMFLEX هي حزمة Python تتيح لمطوري Python العمل مع نماذج لغة كبيرة مختلفة (LLM) والهندسة السريعة مع واجهة بسيطة. إنه يفضل الموارد الحرة والمحلية بدلاً من استخدام واجهات برمجة التطبيقات المدفوعة لتطوير حلول محلية وخاصة ذاتية الذكاء الاصطناعي.
يوفر فصولًا لتحميل نماذج LLM ، ونماذج التضمين ، وقواعد بيانات المتجهات لإنشاء تطبيقات LLM التي تعمل بالطاقة مع تقنيات الهندسة والخرقة الخاصة بك. باستخدام أمر واحد ، يمكنك تحميل واجهة chatbot للدردشة مع LLM أو تقديم نموذج كأبي Openai أيضًا.
يوصى بشدة بإنشاء بيئة افتراضية قبل تثبيت الحزمة. تأكد أيضًا من أنك قمت بتثبيت Pytorch و Llama-CPP-Python مع طريقة التثبيت الصحيحة وفقًا لتكوين الأجهزة قبل تثبيت LLMFlex. يرجى زيارة الروابط المقدمة للحزم المعنية لمزيد من أدلة التثبيت التفصيلية.
بعد القيام بالخطوات المذكورة أعلاه ، يمكنك بسهولة تثبيت LLMFLEX مع pip .
pip install llmflex
يمكنك أيضًا تثبيت exllamav2 و AutoAwq و AutogptQ إذا كان لديك أجهزة CUDA. يرجى زيارة الروابط المقدمة للحزم المعنية لمزيد من أدلة التثبيت التفصيلية.
على عكس Langchain ، يمكنك إنشاء LLMs متعددة بدرجة حرارة مختلفة ، وعلم الرموز الجديدة ، ووقف الكلمات وما إلى ذلك. مع نفس النموذج الأساسي دون تحميل النموذج عدة مرات باستخدام فئة LlmFactory . قد يكون ذلك مفيدًا عند إنشاء وكيلك الخاص بمهام LLM مختلفة تتطلب تكوينات مختلفة.
جميع LLMS التي تم إنشاؤها باستخدام LlmFactory متوافقة مع Langchain ، ويمكن دمجها بسلاسة في رمز Langchain الحالي. جميع فئات LLM هي إعادة تنفيذ بعض فئات Langchain LLM التي تدعم إدارة أكثر كفاءة وتوقف الكلمات ، وكلها مع واجهة موحدة.
يتم دعم جميع تنسيقات النماذج المتعددة ، ويتم التعامل مع جميع عملية التحميل في فئة LlmFactory ، لذلك فهي مجرد توصيل وتشغيل. التنسيقات المدعومة:
BaseTool الفئة الأساسية لإنشاء أدوات LLM التي تعمل بالطاقة. يتم تنفيذ BrowserTool مدعوم من DuckDuckgo كمثال.
يتم توفير فئة Agent . يمكنك تمرير أدواتك و LLM لتهيئة الوكيل ، بعد إعطاء الوكيل مهمة ، سيعمل الوكيل على العمل على السحر من خلال الأدوات المحددة.
الفئات المجمعة لاستخدام نماذج التضمين التي تحتوي على نموذج التضمين و kear-text kount الرموز باستخدام نموذج التضمين.
باستخدام مجموعات أدوات التضمين و FAISS ، يمكن أن يسمح لك فئة FaissVectorDatabase بتخزين النصوص الخاصة بك والبحث عن مهام الخرقة الخاصة بك.
دروس دردشة فئات لتخزين ذاكرة الدردشة على القرص.
BaseChatMemory
فئة الذاكرة دون استخدام أي نماذج تضمين أو قواعد بيانات المتجهات.
LongShortTermChatMemory
فئة الذاكرة باستخدام FaissVectorDatabase الأساسي للحفاظ على ذاكرة طويلة الأجل جنبا إلى جنب مع أحدث الذاكرة.
يتم تنفيذ فئة PromptTemplate لتنسيق المطالبة الخاصة بك بتنسيقات مطالبة مختلفة للنماذج من مصادر مختلفة. تم بالفعل تنفيذ بعض الإعدادات المسبقة مثل Llama3 و ChatML و Vicuna والمزيد ، ولكن يمكنك إضافة قالب تنسيقك الخاص.
يتم توفير WebApp SPEREMLIT لاستخدام chatbot من الذكاء الاصطناعي المحلي. يتم دعم الاتصال بالوظيفة والخرقة على المستندات الخاصة بك على WebApp. يمكنك أيضًا توجيه استجابة LLM من خلال توفير نص البداية للاستجابة.
هذه هي الطريقة التي يمكنك بها البدء بأي نموذج توليد نص على Luggingface مع جهازك.
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' )استخدم عميل رد الفعل الواحد للذهاب من خلال سير العمل أكثر تعقيدًا.
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 ، وتضمين النموذج ، و splitter النص ، و reeranker ، قم بإنشاء ملف تكوين وتعديله أولاً:
# Create a config file for the webapp
llmflex create-app-configبعد تعديل الملف ، قم بتشغيل ما يلي:
llmflex interface --config_dir chatbot_config.yamlسترى واجهة مبتدئة ، استخدمها للدردشة مع طراز LLM.
يمكنك الآن تحميل الملفات النصية الخاصة بك لإنشاء قواعد المعرفة والتحدث عن مستنداتك مع مساعد AI الخاص بك.
لمزيد من التفاصيل حول كيفية تكوين YAML الخاص بك ، يرجى قراءة الوثائق المقدمة. 
يتم توفير وثائق Python لجميع الفئات والأساليب والوظائف في دليل ./docs في هذا المستودع.
هذا المشروع مرخص بموجب شروط ترخيص معهد ماساتشوستس للتكنولوجيا.