Автоматизація звітності з даних клієнтів, що раніше займала 2 години на тиждень, тепер виконується за 5 хвилин за допомогою Claude API та Python.
Контекст і проблема
Багато задач, особливо у сфері підтримки клієнтів, аналітики даних та генерації контенту, передбачають повторювані дії з текстом. Ручне оброблення цих даних займає цінний час, що можна використати для більш стратегічних завдань. Наприклад, аналіз відгуків користувачів, класифікація запитів до служби підтримки, або створення чернеток для маркетингових матеріалів.
Практична реалізація
Розглянемо приклад автоматизації вилучення ключових даних з електронних листів від клієнтів та їх структурування у CSV файл. Скрипт використовуватиме Claude API для обробки тексту листів, а Python для взаємодії з API та форматування даних.
import os
import openai
import csv
# Встановіть ваш ключ API Claude (замініть на свій)
openai.api_key = os.getenv("CLAUDE_API_KEY")
def extract_data_from_email(email_text):
"""Витягує дані з тексту електронного листа, використовуючи Claude."""
prompt = f"""Витягни з наступного тексту електронного листа:
- Ім'я клієнта
- Опис проблеми
- Дата звернення
Поверни відповідь у форматі JSON.
Текст: {email_text}"""
response = openai.Completion.create(
model="claude-3-opus-20240229", # Оберіть відповідну модель Claude
prompt=prompt,
max_tokens=200,
temperature=0.2
)
return response.choices[0].text.strip()
def process_emails(email_files, output_csv):
"""Обробляє список файлів з електронними листами та записує дані у CSV."""
with open(output_csv, 'w', newline='', encoding='utf-8') as csvfile:
fieldnames = ['Ім\'я клієнта', 'Опис проблеми', 'Дата звернення']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
for email_file in email_files:
try:
with open(email_file, 'r', encoding='utf-8') as f:
email_text = f.read()
data = extract_data_from_email(email_text)
try:
import json
data_dict = json.loads(data)
writer.writerow(data_dict)
except json.JSONDecodeError:
print(f"Помилка декодування JSON з файлу {email_file}")
except FileNotFoundError:
print(f"Файл не знайдено: {email_file}")
# Приклад використання
email_files = ['email1.txt', 'email2.txt', 'email3.txt'] # Замініть на ваші файли
process_emails(email_files, 'extracted_data.csv')
Скрипт читає текст з файлів електронних листів, передає його до Claude API для аналізу, отримує відповідь у форматі JSON та записує витягнуті дані у CSV файл. Модель claude-3-opus-20240229 забезпечує високу точність вилучення інформації.
Типові помилки
- Неправильний ключ API: Скрипт не працюватиме, якщо не встановлено правильний ключ API. Переконайтеся, що змінна середовища CLAUDE_API_KEY налаштована правильно.
- Помилка декодування JSON: Claude може повернути недійсний JSON у випадку непередбачуваних даних у електронному листі. Обробка помилок JSONDecodeError дозволяє скрипту продовжувати роботу.
- Обмеження токенів: Claude має обмеження на кількість токенів у запиті. Занадто довгий текст електронного листа може призвести до обрізання або помилки. Розбивайте великі листи на частини, якщо це необхідно.
Результат
Після автоматизації, час на обробку 100 електронних листів зменшився з 2 годин до 5 хвилин, що дозволяє звільнити 1 годину 45 хвилин на тиждень. Запустіть скрипт зараз, замінивши `email_files` на список ваших файлів, щоб автоматизувати обробку даних.