Применение функций в GPT: Подробный обзор с примерами кода

Большие языковые модели, такие как GPT (Generative Pre-trained Transformer), продемонстрировали впечатляющие способности в обработке и генерации текста.

Применение функций в GPT: Подробный обзор с примерами кода
Краткое содержание

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

Зачем интегрировать функции с GPT?

Интеграция функций с GPT позволяет:

  • Доступ к актуальной информации: Модели GPT обучены на данных, доступных до определенного момента времени. Интеграция с внешними API позволяет получать свежие данные, такие как текущая погода, новости или финансовые показатели.
  • Выполнение специализированных задач: Некоторые задачи требуют специализированных вычислений или доступа к специфическим данным, которые не входят в обучающую выборку модели. Например, выполнение математических расчетов, доступ к базам данных или взаимодействие с другими системами.
  • Расширение функциональности: Интеграция позволяет моделям выполнять действия, такие как отправка электронных писем, управление календарем или выполнение команд в операционной системе.

Примеры интеграции функций с GPT

Вебчат и OpenAI API для ChatGPT, GPT-4o, Claude 3 Sonnet 3.5, Google Gemini, Llama 405B...

Рассмотрим несколько примеров, демонстрирующих, как можно интегрировать функции с GPT для расширения его возможностей.

Получение текущей погоды

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

Пример реализации на Python:

import openai
import requests

openai.api_key = 'YOUR_OPENAI_API_KEY'
weather_api_key = 'YOUR_OPENWEATHERMAP_API_KEY'

def get_weather(city):
    url = f'http://api.openweathermap.org/data/2.5/weather?q={city}&appid={weather_api_key}&units=metric&lang=ru'
    response = requests.get(url)
    if response.status_code == 200:
        data = response.json()
        weather_description = data['weather'][0]['description']
        temperature = data['main']['temp']
        return f'В {city} сейчас {weather_description}, температура {temperature}°C.'
    else:
        return 'Не удалось получить данные о погоде.'

def gpt_with_weather(prompt):
    if 'погода' in prompt.lower():
        city = prompt.split()[-1]
        weather_info = get_weather(city)
        prompt += f'\n\n{weather_info}'
    response = openai.Completion.create(
        engine='text-davinci-003',
        prompt=prompt,
        max_tokens=150
    )
    return response.choices[0].text.strip()

# Пример использования
user_prompt = 'Какая погода в Москве?'
result = gpt_with_weather(user_prompt)
print(result)

В этом примере функция get_weather получает текущую погоду в указанном городе с помощью API OpenWeatherMap. Функция gpt_with_weather добавляет информацию о погоде к запросу пользователя перед передачей его модели GPT, что позволяет модели предоставлять более точные и актуальные ответы.

Выполнение математических расчетов

Хотя GPT может выполнять простые математические операции, для сложных вычислений рекомендуется использовать специализированные библиотеки, такие как SymPy.

Пример реализации на Python:

import openai
import sympy as sp

openai.api_key = 'YOUR_OPENAI_API_KEY'

def solve_equation(equation):
    try:
        x = sp.symbols('x')
        solution = sp.solve(equation, x)
        return f'Решение уравнения {equation}:\n{x} = {solution}'
    except Exception as e:
        return f'Ошибка при решении уравнения: {str(e)}'

def gpt_with_math(prompt):
    if 'реши уравнение' in prompt.lower():
        equation = prompt.split(':')[-1].strip()
        math_solution = solve_equation(equation)
        prompt += f'\n\n{math_solution}'
    response = openai.Completion.create(
        engine='text-davinci-003',
        prompt=prompt,
        max_tokens=150
    )
    return response.choices[0].text.strip()

# Пример использования
user_prompt = 'Реши уравнение: x**2 - 5*x + 6 = 0'
result = gpt_with_math(user_prompt)
print(result)

В этом примере функция solve_equation решает квадратное уравнение с использованием SymPy. Функция gpt_with_math добавляет решение уравнения к запросу пользователя перед передачей его модели GPT, что позволяет модели предоставлять более точные и информативные ответы.

Отправка электронных писем

GPT может быть интегрирован с почтовыми сервисами для автоматической отправки электронных писем на основе запросов пользователя. Для этого можно использовать библиотеку smtplib в Python.

Пример реализации на Python:

import openai
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

openai.api_key = 'YOUR_OPENAI_API_KEY'

def send_email(subject, body, to_email):
    from_email = 'your_email@example.com'
    password = 'YOUR_EMAIL_PASSWORD'

    msg = MIMEMultipart()
    msg['From'] = from_email
    msg['To'] = to_email
    msg['Subject'] = subject

    msg.attach(MIMEText(body, 'plain'))

    try:
        server = smtplib.SMTP('smtp.example.com', 587)
        server.starttls()
        server.login(from_email, password)
        text = msg.as_string()
        server.sendmail(from_email, to_email, text)
        server.quit()
        return 'Письмо успешно отправлено.'
    except Exception as e:
        return f'Ошибка при отправке письма: {str(e)}'

def gpt_with_email(prompt):
    if 'отправь письмо' in prompt.lower():
        # Предполагается, что в prompt содержатся необходимые детали
        subject = 'Тема письма'
        body = '

Получение финансовых данных

Вебчат и OpenAI API для ChatGPT, GPT-4o, Claude 3 Sonnet 3.5, Google Gemini, Llama 405B...

GPT можно интегрировать с финансовыми API для предоставления актуальной информации о ценах акций, валютных курсах и других финансовых показателях. Для этого можно использовать API, такие как Alpha Vantage или Yahoo Finance.

Пример реализации на Python с использованием Alpha Vantage:

import openai
import requests

# Инициализация API OpenAI
openai.api_key = 'YOUR_OPENAI_API_KEY'
alpha_vantage_api_key = 'YOUR_ALPHA_VANTAGE_API_KEY'

def get_stock_price(symbol):
    url = f'https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol={symbol}&interval=1min&apikey={alpha_vantage_api_key}'
    response = requests.get(url)
    if response.status_code == 200:
        data = response.json()
        try:
            last_refreshed = data['Meta Data']['3. Last Refreshed']
            last_close = data['Time Series (1min)'][last_refreshed]['4. close']
            return f'Цена акции {symbol} на {last_refreshed} составляет ${last_close}.'
        except KeyError:
            return 'Не удалось получить данные о цене акции.'
    else:
        return 'Ошибка при запросе данных о цене акции.'

def gpt_with_stock_price(prompt):
    if 'цена акции' in prompt.lower():
        symbol = prompt.split()[-1].upper()
        stock_info = get_stock_price(symbol)
        prompt += f'\n\n{stock_info}'
    response = openai.Completion.create(
        engine='text-davinci-003',
        prompt=prompt,
        max_tokens=150
    )
    return response.choices[0].text.strip()

# Пример использования
user_prompt = 'Какая цена акции AAPL?'
result = gpt_with_stock_price(user_prompt)
print(result)

В этом примере функция get_stock_price получает текущую цену акции указанного символа с помощью API Alpha Vantage. Функция gpt_with_stock_price добавляет информацию о цене акции к запросу пользователя перед передачей его модели GPT, что позволяет модели предоставлять более точные и актуальные ответы.

Управление календарем

GPT можно интегрировать с календарными сервисами, такими как Google Calendar, для создания, изменения и удаления событий на основе запросов пользователя. Для этого можно использовать Google Calendar API.

Пример реализации на Python с использованием Google Calendar API:

import openai
from google.oauth2 import service_account
from googleapiclient.discovery import build
from datetime import datetime, timedelta

# Инициализация API OpenAI
openai.api_key = 'YOUR_OPENAI_API_KEY'

# Настройка доступа к Google Calendar API
SCOPES = ['https://www.googleapis.com/auth/calendar']
SERVICE_ACCOUNT_FILE = 'path/to/your/service-account-file.json'

credentials = service_account.Credentials.from_service_account_file(
    SERVICE_ACCOUNT_FILE, scopes=SCOPES)
service = build('calendar', 'v3', credentials=credentials)

def create_calendar_event(summary, start_time, end_time):
    event = {
        'summary': summary,
        'start': {
            'dateTime': start_time,
            'timeZone': 'Europe/Moscow',
        },
        'end': {
            'dateTime': end_time,
            'timeZone': 'Europe/Moscow',
        },
    }
    try:
        event = service.events().insert(calendarId='primary', body=event).execute()
        return f'Событие "{summary}" создано на {start_time}.'
    except Exception as e:
        return f'Ошибка при создании события: {str(e)}'

def gpt_with_calendar(prompt):
    if 'создай событие' in prompt.lower():
        # Предполагается, что в prompt содержатся необходимые детали
        summary = 'Встреча с командой'
        start_time = (datetime.now() + timedelta(days=1)).isoformat()
        end_time = (datetime.now() + timedelta(days=1, hours=1)).isoformat()
        event_status = create_calendar_event(summary,
::contentReference[oaicite:0]{index=0}
 
Вебчат и OpenAI API для ChatGPT, GPT-4o, Claude 3 Sonnet 3.5, Google Gemini, Llama 405B...

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

  1. Доступ к динамическим данным: Подключение к API, таким как погодные и финансовые сервисы, предоставляет модели актуальную информацию, которой нет в её базовой обучающей выборке. Это делает GPT актуальным и полезным инструментом для задач, требующих оперативных данных.
  2. Упрощение сложных вычислений: Вместо использования ограниченных вычислительных возможностей модели, интеграция с математическими библиотеками позволяет решать сложные уравнения и проводить точные расчёты.
  3. Выполнение действий во внешней среде: GPT может быть использован для автоматизации задач, таких как отправка электронных писем или управление календарными событиями. Это делает его полезным в управлении временем, взаимодействии с пользователями и автоматизации ежедневных задач.
  4. Создание адаптивных решений для бизнеса: Интеграция GPT с API позволяет адаптировать его под конкретные бизнес-процессы. Например, агент может автоматизировать общение с клиентами, предоставлять сведения о продуктах или проводить расчёты, которые раньше требовали ручного ввода.

GPT в сочетании с функциями и API становится гибким инструментом, способным решать задачи не только текстового анализа, но и реальных взаимодействий. Такая модель открывает новые возможности для автоматизации процессов, повышения точности и оперативности работы. Однако важно учитывать безопасность и корректность данных, поступающих из внешних источников, чтобы гарантировать надёжность и этичность применения GPT в реальных сценариях.

Nerd IT 🌀 ML, DS, ANN, GPT
Привет! Меня зовут Семён, я работаю в сфере ML и аналитики данных и пишу в блог nerdit.ru статьи о своем опыте и том, что может пригодиться начинающим в начале их пути изучения больших данных.

Подписаться на новости Nerd IT

Не пропустите последние выпуски. Зарегистрируйтесь сейчас, чтобы получить полный доступ к статьям.
jamie@example.com
Подписаться