Llama 4 Scout на Novita AI поддерживает вызов функций

Llama 4 Scout на Novita AI поддерживает вызов функций

Ключевые моменты

Novita AI представила Llama 4 Scout! Более того, эта версия полностью поддерживает вызов функций.

Если вы хотите проверить его производительность, начните бесплатную пробную версию прямо в Novita AI Playground!

Вызов функций позволяет LLM, таким как Llama 4 Scout, выполнять реальные задачи, интегрируясь с API и внешними инструментами, преобразуя команды на естественном языке в практические результаты.

Что такое вызов функций?

Вызов функций представляет собой ключевое достижение в возможностях больших языковых моделей (LLM), позволяя им взаимодействовать с внешними инструментами, API и источниками данных. Преобразуя подсказки на естественном языке в структурированные вызовы функций, LLM могут выполнять реальные действия, получать динамическую информацию и проводить сложные вычисления, выходящие за рамки их базовых способностей генерации текста.

Определение вызова функций

Вызов функций — это структурированный метод, который позволяет LLM взаимодействовать с внешними системами, генерируя исполняемые команды на основе запросов пользователя. В отличие от традиционных выходных данных LLM, которые ограничены генерацией текста, вызов функций позволяет моделям запускать предопределённые функции с конкретными параметрами, выполнять эти функции через внешний код и интегрировать результаты в связные ответы.

https://www.youtube.com/watch?v=i-oHvHejdsc&t=429s

Как работает вызов функций?

Вызов функций включает в себя структурированный процесс, в котором большая языковая модель (LLM) интерпретирует подсказки пользователя, чтобы определить, какую предопределённую функцию выполнить и с какими параметрами. Вот упрощённый обзор:

  1. Пользовательский запрос: Пользователь отправляет запрос в систему.
  2. Интерпретация LLM: LLM анализирует запрос, определяя подходящую функцию и параметры.
  3. Выполнение функции: Система выполняет функцию с указанными параметрами.
  4. Генерация ответа: Результат передаётся обратно в LLM, которая формирует окончательный ответ, включающий полученные данные.

вызов функций

Вызов функций vs. RAG

Аспект Вызов функций Retrieval-Augmented Generation (RAG)
Определение Вызывает внешние функции (API, базы данных) для выполнения задач в реальном времени. Извлекает и синтезирует информацию из внешних источников для формирования ответов.
Пример использования Запросы к базам данных, API-запросы, внешние инструменты (например, платежи). Системы вопросов и ответов, извлекающие данные для генерации ответов.
Преимущества — Задачи в реальном времени
— Взаимодействие с внешними системами
— Модульные системы
— Доступ к большим объёмам знаний
— Эффективность для сложных запросов
— Идеально для актуальных данных
Назначение Вызов внешних систем или сервисов. Улучшение генерации с помощью извлечённых знаний.
Реализация Предопределённые внешние вызовы (например, API). Извлечение информации в процессе генерации.
Гибкость Более гибкий для взаимодействия в реальном времени. Использует внешние/внутренние знания для генерации.

Как использовать вызов функций Llama 4 Scout через Novita AI

Novita AI запустила поддержку описания возможностей каждой LLM, которые можно напрямую просмотреть в консоли и документации.

вызов функций llama 4 scout

поддерживаемые модели llama 4

Выберите свою модель

1. Инициализация клиента

Сначала необходимо инициализировать клиент с вашим API-ключом Novita.

from openai import OpenAI
import json

client = OpenAI(
    base_url="https://api.novita.ai/v3/openai",
    # Получите API-ключ Novita AI на странице: https://novita.ai/settings/key-management.
    api_key="<YOUR Novita AI API Key>",
)

model = "meta-llama/llama-4-scout-17b-16e-instruct"

Определение вызываемой функции

Затем определите функцию Python, которую модель может вызвать. В этом примере это функция получения информации о погоде.

# Example function to simulate fetching weather data.
def get_weather(location):
    """Retrieves the current weather for a given location."""
    print("Calling get_weather function with location: ", location)
    # In a real application, you would call an external weather API here.
    # This is a simplified example returning hardcoded data.
    return json.dumps({"location": location, "temperature": "60 degrees Fahrenheit"})

2. Формирование API-запроса с инструментами и сообщением пользователя

Теперь создайте API-запрос к конечной точке Novita. Этот запрос включает параметр tools, определяющий функции, которые может использовать модель, и сообщение пользователя.

tools = [
    {
        "type": "function",
        "function": {
            "name": "get_weather",
            "description": "Get weather of an location, the user shoud supply a location first",
            "parameters": {
                "type": "object",
                "properties": {
                    "location": {
                        "type": "string",
                        "description": "The city and state, e.g. San Francisco, CA",
                    }
                },
                "required": ["location"]
            },
        }
    },
]

messages = [
    {
        "role": "user",
        "content": "What is the weather in San Francisco?"
    }
]

# Let's send the request and print the response.
response = client.chat.completions.create(
    model=model,
    messages=messages,
    tools=tools,
)

# Please check if the response contains tool calls if in production.
tool_call = response.choices[0].message.tool_calls[0]
print(tool_call.model_dump())

3. Результат

{'id': '0', 'function': {'arguments': '{"location": "San Francisco, CA"}', 'name': 'get_weather'}, 'type': 'function'}

4. Ответ с результатом вызова функции и получение окончательного ответа

Следующий шаг — обработать вызов функции, выполнить функцию get_weather и отправить результат обратно в модель для генерации финального ответа пользователю.

# Ensure tool_call is defined from the previous step
if tool_call:
    # Extend conversation history with the assistant's tool call message
    messages.append(response.choices[0].message)

    function_name = tool_call.function.name
    if function_name == "get_weather":
        function_args = json.loads(tool_call.function.arguments)
        # Execute the function and get the response
        function_response = get_weather(
            location=function_args.get("location"))
        # Append the function response to the messages
        messages.append(
            {
                "tool_call_id": tool_call.id,
                "role": "tool",
                "content": function_response,
            }
        )

    # Get the final response from the model, now with the function result
    answer_response = client.chat.completions.create(
        model=model,
        messages=messages,
        # Note: Do not include tools parameter here.
    )
    print(answer_response.choices[0].message)

5. Результат

{'id': '0', 'function': {'arguments': '{"location": "San Francisco, CA"}', 'name': 'get_weather'}, 'type': 'function'}

Благодаря Llama 4 Scout и Novita AI вызов функций переопределяет возможности LLM, предлагая решения в реальном времени для современных задач.

Часто задаваемые вопросы

Что такое вызов функций?

Это позволяет LLM запускать внешние инструменты или API для выполнения задач и получения данных.

Как Llama 4 Scout работает с вызовом функций?

Llama 4 Scout упрощает интеграцию с системами реального времени через Novita AI.

Подходит ли вызов функций для задач реального времени?

Да, он идеально подходит для таких задач, как API-вызовы или динамические запросы данных.

Novita AI — это универсальная облачная платформа, поддерживающая ваши AI-амбиции. Интегрированные API, serverless, GPU Instance — экономичные инструменты, которые вам нужны. Устраните проблемы с инфраструктурой, начните бесплатно и воплотите своё AI-видение в реальность.

Рекомендуемое чтение