Применение функций в GPT: Подробный обзор с примерами кода
Большие языковые модели, такие как GPT (Generative Pre-trained Transformer), продемонстрировали впечатляющие способности в обработке и генерации текста.
Однако их возможности значительно расширяются при интеграции с внешними функциями и API, что позволяет моделям выполнять более сложные задачи, выходящие за рамки простого текстового взаимодействия.
Зачем интегрировать функции с GPT?
Интеграция функций с GPT позволяет:
- Доступ к актуальной информации: Модели GPT обучены на данных, доступных до определенного момента времени. Интеграция с внешними API позволяет получать свежие данные, такие как текущая погода, новости или финансовые показатели.
- Выполнение специализированных задач: Некоторые задачи требуют специализированных вычислений или доступа к специфическим данным, которые не входят в обучающую выборку модели. Например, выполнение математических расчетов, доступ к базам данных или взаимодействие с другими системами.
- Расширение функциональности: Интеграция позволяет моделям выполнять действия, такие как отправка электронных писем, управление календарем или выполнение команд в операционной системе.
Примеры интеграции функций с GPT
Рассмотрим несколько примеров, демонстрирующих, как можно интегрировать функции с 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 = '
Получение финансовых данных
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}
Интеграция функций с моделями GPT значительно расширяет их возможности, позволяя решать задачи, которые требуют актуальных данных и специфического контекста. Применение внешних API и библиотек позволяет GPT выходить за рамки простого текстового анализа, делая его инструментом для выполнения множества специализированных задач, таких как:
- Доступ к динамическим данным: Подключение к API, таким как погодные и финансовые сервисы, предоставляет модели актуальную информацию, которой нет в её базовой обучающей выборке. Это делает GPT актуальным и полезным инструментом для задач, требующих оперативных данных.
- Упрощение сложных вычислений: Вместо использования ограниченных вычислительных возможностей модели, интеграция с математическими библиотеками позволяет решать сложные уравнения и проводить точные расчёты.
- Выполнение действий во внешней среде: GPT может быть использован для автоматизации задач, таких как отправка электронных писем или управление календарными событиями. Это делает его полезным в управлении временем, взаимодействии с пользователями и автоматизации ежедневных задач.
- Создание адаптивных решений для бизнеса: Интеграция GPT с API позволяет адаптировать его под конкретные бизнес-процессы. Например, агент может автоматизировать общение с клиентами, предоставлять сведения о продуктах или проводить расчёты, которые раньше требовали ручного ввода.
GPT в сочетании с функциями и API становится гибким инструментом, способным решать задачи не только текстового анализа, но и реальных взаимодействий. Такая модель открывает новые возможности для автоматизации процессов, повышения точности и оперативности работы. Однако важно учитывать безопасность и корректность данных, поступающих из внешних источников, чтобы гарантировать надёжность и этичность применения GPT в реальных сценариях.