"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > قم بإنشاء وكيل LLM المخصص الخاص بك باستخدام نماذج مفتوحة المصدر (اللاما)

قم بإنشاء وكيل LLM المخصص الخاص بك باستخدام نماذج مفتوحة المصدر (اللاما)

تم النشر بتاريخ 2024-10-31
تصفح:277

Create your own Custom LLM Agent Using Open Source Models (llama)

في هذه المقالة، سوف نتعلم كيفية إنشاء وكيل مخصص يستخدم مادة مفتوحة المصدر (llama3.1) يتم تشغيلها محليًا على جهاز الكمبيوتر الخاص بنا. سوف نستخدم أيضًا Ollama وLangChain.

الخطوط العريضة

  • تثبيت أولاما
  • نموذج السحب
  • نموذج العرض
  • إنشاء مجلد جديد، وفتحه باستخدام محرر الأكواد
  • إنشاء وتفعيل البيئة الافتراضية
  • تثبيت لانجشين لانجشين-أولاما
  • إنشاء وكيل مخصص بنموذج مفتوح المصدر في بايثون
  • خاتمة

قم بتثبيت أولاما

اتبع التعليمات بناءً على نوع نظام التشغيل لديك في ملف README الخاص بـ GitHub لتثبيت Ollama:

https://github.com/ollama/ollama

أنا أستخدم جهاز كمبيوتر يعمل بنظام Linux، لذا سأقوم بتشغيل الأمر التالي في الجهاز الطرفي الخاص بي:

curl -fsSL https://ollama.com/install.sh | sh

نموذج سحب

إحضار نموذج LLM المتوفر عبر الأمر التالي:

ollama pull llama3.1

سيؤدي هذا إلى تنزيل الإصدار الافتراضي المميز للنموذج. عادةً ما يشير الإعداد الافتراضي إلى أحدث وأصغر نموذج لمعلمة الحجم. في هذه الحالة سيكون نموذج llama3.1:8b.

لتنزيل نسخة أخرى من النموذج يمكنك الذهاب إلى: https://ollama.com/library/llama3.1 واختيار الإصدار المراد تثبيته، ثم تشغيل أمر سحب ollama مع النموذج ورقم الإصدار الخاص به . مثال: ollama سحب llama3.1:70b

على نظام Mac، سيتم تنزيل النماذج إلى ~/.olma/models

على Linux (أو WSL)، سيتم تخزين النماذج على /usr/share/ollama/.ollama/models

يخدم النموذج

قم بتشغيل الأمر التالي لبدء تشغيل ollama دون تشغيل تطبيق سطح المكتب.

ollama serve

يتم تقديم جميع النماذج تلقائيًا على المضيف المحلي:11434

أنشئ مجلدًا جديدًا وافتحه باستخدام محرر الأكواد

أنشئ مجلدًا جديدًا على جهاز الكمبيوتر الخاص بك ثم افتحه باستخدام محرر الأكواد مثل VS Code.

إنشاء وتفعيل البيئة الافتراضية

افتح المحطة. استخدم الأمر التالي لإنشاء بيئة افتراضية .venv وتفعيلها:

python3 -m venv .venv
source .venv/bin/activate

قم بتثبيت langchain langchain-olma

قم بتشغيل الأمر التالي لتثبيت langchain و langchain-ollama:

pip install -U langchain langchain-ollama

سيقوم الأمر أعلاه بتثبيت أو ترقية حزم LangChain و LangChain-Ollama في Python. تضمن العلامة -U تثبيت أحدث الإصدارات من هذه الحزم، لتحل محل أي إصدارات أقدم قد تكون موجودة بالفعل.

بناء وكيل مخصص بنموذج مفتوح المصدر في بايثون

قم بإنشاء ملف بايثون على سبيل المثال: main.py وأضف الكود التالي:

from langchain_ollama import ChatOllama
from langchain.agents import tool
from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
from langchain.agents.format_scratchpad.openai_tools import (
    format_to_openai_tool_messages,
)
from langchain.agents import AgentExecutor
from langchain.agents.output_parsers.openai_tools import OpenAIToolsAgentOutputParser


llm = ChatOllama(
            model="llama3.1",
            temperature=0,
            verbose=True
        )

@tool
def get_word_length(word: str) -> int:
    """Returns the length of a word."""
    return len(word)


tools = [get_word_length]



prompt = ChatPromptTemplate.from_messages(
            [
                (
                    "system",
                    "You are very powerful assistant",
                ),
                ("user", "{input}"),
                MessagesPlaceholder(variable_name="agent_scratchpad"),
            ]
        )

llm_with_tools = llm.bind_tools(tools)

agent = (
    {
        "input": lambda x: x["input"],
        "agent_scratchpad": lambda x: format_to_openai_tool_messages(
            x["intermediate_steps"]
        ),
    }
    | prompt
    | llm_with_tools
    | OpenAIToolsAgentOutputParser()
)

# Create an agent executor by passing in the agent and tools
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
result = agent_executor.invoke({"input": "How many letters in the word educa"})

if result:
    print(f"[Output] --> {result['output']}")
else:
    print('There are no result..')

يقوم مقتطف الكود أعلاه بإعداد وكيل LangChain باستخدام نموذج ChatOllama (llama3.1) لمعالجة إدخال المستخدم واستخدام أداة مخصصة تحسب طول الكلمة. فهو يحدد قالبًا سريعًا للوكيل، ويربط الأداة بنموذج اللغة، ويبني وكيلًا يعالج المدخلات وينسق الخطوات المتوسطة. وأخيرًا، يقوم بإنشاء AgentExecutor لاستدعاء الوكيل بإدخال محدد. نمرر سؤالًا بسيطًا لطرحه "كم عدد الحروف في كلمة educa" ثم نطبع الناتج أو نشير إلى ما إذا لم يتم العثور على نتيجة.

عند التشغيل نحصل على النتيجة التالية:

> Entering new AgentExecutor chain...

Invoking: `get_word_length` with `{'word': 'educa'}`


5The word "educa" has 5 letters.

> Finished chain.
[Output] --> The word "educa" has 5 letters.

ترى الوكيل يستخدم النموذج (llama3.1) لاستدعاء الأداة بشكل صحيح للحصول على عدد الحروف في الكلمة.

خاتمة

شكرا على القراءة.

تحقق من مستودع Ollama هنا: https://github.com/ollama/ollama

بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/emmakodes_/create-your-own-custom-llm-agent-using-open-source-models-llama31-4aag?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ Study_golang @163.com حذف
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3