«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Создайте своего собственного агента LLM, используя модели с открытым исходным кодом (llama)

Создайте своего собственного агента LLM, используя модели с открытым исходным кодом (llama)

Опубликовано 31 октября 2024 г.
Просматривать:885

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

В этой статье мы узнаем, как создать собственный агент, использующий LLM с открытым исходным кодом (llama3.1), который запускается локально на нашем ПК. Мы также будем использовать Ollama и LangChain.

Контур

  • Установить Олламу
  • Вытащить модель
  • Показать модель
  • Создайте новую папку, откройте ее в редакторе кода
  • Создать и активировать виртуальную среду
  • Установить langchain langchain-ollama
  • Создайте собственный агент с моделью с открытым исходным кодом на Python
  • Заключение

Установить Олламу

Для установки Ollama следуйте инструкциям в зависимости от типа вашей ОС в README GitHub:

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 pull с моделью и номером ее версии. . Пример: ollama pull llama3.1:70b

На Mac модели будут загружены в ~/.ollama/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-ollama

Выполните следующую команду, чтобы установить langchain и langchain-ollama:

pip install -U langchain langchain-ollama

Приведенная выше команда установит или обновит пакеты LangChain и LangChain-Ollama в Python. Флаг -U гарантирует, что будут установлены последние версии этих пакетов, заменяя любые старые версии, которые могут уже присутствовать.

Создайте собственный агент с моделью с открытым исходным кодом на Python.

Создайте файл Python, например: 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 для вызова агента с определенными входными данными. Мы передаем простой вопрос «Сколько букв в слове образование», а затем печатаем результат или указываем, если результат не найден.

При запуске мы получаем следующий результат:

> 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