0Pricing
AI Prompt Engineering · Урок

Вызов функций и интеграция API

Освойте создание промптов, побуждающих LLM вызывать внешние функции или API и взаимодействовать с реальными системами.

«Вызов функций и интеграция API» — бесплатный урок AI Prompt Engineering на CoddyKit. Это урок 1 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AI Prompt Engineering, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AI Prompt Engineering содержит 3 уроков всего.

Вызов внешних инструментов

LLM обладают большими возможностями, но в основном существуют в мире текста. Что делать, если им нужна информация из реального мира или необходимо выполнить какие-либо действия?

Вызов функций позволяет LLM взаимодействовать с внешними инструментами и программными интерфейсами! Это устраняет разрыв между языком и действием, позволяя ИИ:

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

Это открывает новые возможности для систем ИИ.

Роль LLM: предложение вызовов

Когда Вы включаете вызов функций, Вы предоставляете LLM описания доступных инструментов (функций).

Вместо прямого ответа LLM может решить, что полезным окажется определённый инструмент. Тогда она выдаёт структурированное «предложение» вызова функции, содержащее имя функции и её аргументы.

Важно: LLM не выполняет функцию самостоятельно. Она лишь сообщает Вашему приложению, какую функцию вызвать и с какими входными данными.

Определение инструментов

Чтобы использовать вызов функций, необходимо определить инструменты (функции) так, чтобы LLM могла их понять. Обычно для этого указывают:

  • имя функции (например, get_current_weather)
  • описание её назначения (это крайне важно для правильного выбора LLM)
  • параметры, которые она принимает, включая их типы и описания (например, location: string)

Эта «схема» сообщает LLM всё необходимое для предложения допустимого вызова.

Определение инструмента погоды

Вот концептуальное определение инструмента для работы с погодой на языке Python. Обратите внимание на чёткое описание и параметры. Именно это Вы предоставляете LLM.

Эта функция представляет внешний инструмент, который LLM могла бы концептуально «вызвать».

def get_current_weather(location: str, unit: str = "celsius"):
    """
    Get the current weather in a given location.
    Args:
        location (str): The city and state, e.g. "London, UK"
        unit (str): The unit of temperature, "celsius" or "fahrenheit"
    Returns:
        dict: Weather information.
    """
    # In a real app, this would call a weather API
    if location == "London, UK":
        return {"temperature": "15", "unit": unit, "forecast": "cloudy"}
    elif location == "New York, USA":
        return {"temperature": "20", "unit": unit, "forecast": "sunny"}
    else:
        return {"temperature": "N/A", "unit": unit, "forecast": "unknown"}

Составление запросов для инструментов

Чтобы побудить LLM использовать Ваши инструменты, в запросе необходимо чётко указать намерение пользователя. Затем LLM решает, может ли помочь какой-либо инструмент.

Не нужно прямо говорить LLM «вызови get_weather». Вместо этого задайте вопрос, который подразумевает такую необходимость:

  • «Какая погода в Лондоне?»
  • «Можете ли Вы забронировать для меня встречу на завтра?»

Имея описания инструментов, LLM сделает вывод о необходимости вызова функции.

Предложение вызова от LLM

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

Затем Ваше приложение разбирает этот результат.

Вот что могла бы предложить LLM, если спросить её: «Какая погода в Лондоне?»:

{
  "tool_calls": [
    {
      "id": "call_abc123",
      "function": {
        "name": "get_current_weather",
        "arguments": "{\"location\": \"London, UK\", \"unit\": \"celsius\"}"
      },
      "type": "function"
    }
  ]
}

Приложение запускает инструмент

Получив предложение вызова функции от LLM, Ваше приложение берёт управление на себя:

  1. Оно определяет запрошенную функцию (например, get_current_weather).
  2. Оно извлекает аргументы (например, "London, UK").
  3. Оно выполняет настоящую функцию Python (или делает вызов программного интерфейса) в среде Вашего приложения.

Именно здесь за пределами LLM происходит действие в «реальном мире».

LLM обрабатывает результат работы инструмента

После выполнения функции Вашим приложением оно получает результат (например, {"temperature": "15", ...}).

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

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

Взаимодействие от начала до конца

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

Это упрощённое представление цикла взаимодействия.

def get_current_weather(location, unit="celsius"):
    if location == "London, UK":
        return {"temp": "15", "unit": unit, "forecast": "cloudy"}
    return {"temp": "N/A", "unit": unit, "forecast": "unknown"}

def simulate_llm_response(user_query):
    # LLM 'thinks' and decides to call a tool
    if "weather in London" in user_query:
        return {
            "type": "tool_call",
            "function": "get_current_weather",
            "args": {"location": "London, UK"}
        }
    return {"type": "text", "content": "I cannot help with that."}

def simulate_llm_final_response(tool_output):
    # LLM processes tool output and gives natural language
    temp = tool_output.get("temp", "N/A")
    forecast = tool_output.get("forecast", "unknown")
    return f"The weather in London is {temp} degrees and {forecast}."

def main():
    user_input = "What is the weather in London, UK?"
    print(f"User: {user_input}")

    llm_output = simulate_llm_response(user_input)

    if llm_output["type"] == "tool_call":
        func_name = llm_output["function"]
        func_args = llm_output["args"]
        print(f"LLM suggested calling: {func_name}({func_args})")

        # Execute the function
        tool_result = get_current_weather(**func_args)
        print(f"Tool output: {tool_result}")

        # Feed result back to LLM
        final_answer = simulate_llm_final_response(tool_result)
        print(f"LLM's final answer: {final_answer}")
    else:
        print(f"LLM: {llm_output['content']}")

if __name__ == "__main__":
    main()

Проверка вызова функций

Представьте, что LLM возвращает запрос на вызов функции. Какой следующий шаг сразу должно выполнить Ваше приложение?

Повторение: инструменты в действии

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

Мы узнали следующее:

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

Этот мощный метод позволяет LLM выйти за пределы простой генерации текста: они могут выполнять действия и получать актуальную информацию.

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

Урок «Вызов функций и интеграция API» бесплатный?

Да — полный текст урока «Вызов функций и интеграция API» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AI Prompt Engineering, подпишись на CoddyKit PRO. Курс AI Prompt Engineering содержит 3 уроков всего.

Чему я научусь в уроке «Вызов функций и интеграция API»?

Освойте создание промптов, побуждающих LLM вызывать внешние функции или API и взаимодействовать с реальными системами. Ты практикуешь AI Prompt Engineering с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать AI Prompt Engineering?

Предыдущий опыт не требуется. AI Prompt Engineering на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 3.

Сколько времени занимает урок «Вызов функций и интеграция API»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке AI Prompt Engineering?

Да. Каждый урок AI Prompt Engineering включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Вызов функций и интеграция API
  2. Многоагентные системы промптинга
  3. Пользовательские инструменты и плагины для LLM
← Назад к AI Prompt Engineering