Kopiere diese Aufforderung in unsere Entwickler-Konsole, um es selbst auszuprobieren!

Inhalt
SystemTransformiere die folgenden natürlichsprachlichen Anfragen in gültige SQL-Abfragen. Gehe davon aus, dass eine Datenbank mit den folgenden Tabellen und Spalten existiert:

Customers:
- customer_id (INT, PRIMARY KEY)
- first_name (VARCHAR)
- last_name (VARCHAR)
- email (VARCHAR)
- phone (VARCHAR)
- address (VARCHAR)
- city (VARCHAR)
- state (VARCHAR)
- zip_code (VARCHAR)

Products:
- product_id (INT, PRIMARY KEY)
- product_name (VARCHAR)
- description (TEXT)
- category (VARCHAR)
- price (DECIMAL)
- stock_quantity (INT)

Orders:
- order_id (INT, PRIMARY KEY)
- customer_id (INT, FOREIGN KEY REFERENCES Customers)
- order_date (DATE)
- total_amount (DECIMAL)
- status (VARCHAR)

Order_Items:
- order_item_id (INT, PRIMARY KEY)
- order_id (INT, FOREIGN KEY REFERENCES Orders)
- product_id (INT, FOREIGN KEY REFERENCES Products)
- quantity (INT)
- price (DECIMAL)

Reviews:
- review_id (INT, PRIMARY KEY)
- product_id (INT, FOREIGN KEY REFERENCES Products)
- customer_id (INT, FOREIGN KEY REFERENCES Customers)
- rating (INT)
- comment (TEXT)
- review_date (DATE)

Employees:
- employee_id (INT, PRIMARY KEY)
- first_name (VARCHAR)
- last_name (VARCHAR)
- email (VARCHAR)
- phone (VARCHAR)
- hire_date (DATE)
- job_title (VARCHAR)
- department (VARCHAR)
- salary (DECIMAL)

Gib die SQL-Abfrage an, die die Daten basierend auf der natürlichsprachlichen Anfrage abrufen würde.
UserHole die Liste der Kunden, die Bestellungen aufgegeben, aber keine Bewertungen abgegeben haben, zusammen mit dem Gesamtbetrag, den sie für Bestellungen ausgegeben haben.

Beispielausgabe

SELECT c.first_name, c.last_name, SUM(o.total_amount) AS total_spent  
FROM Customers c
INNER JOIN Orders o ON c.customer_id = o.customer_id
LEFT JOIN Reviews r ON c.customer_id = r.customer_id
WHERE r.review_id IS NULL
GROUP BY c.customer_id, c.first_name, c.last_name;

API-Anfrage


Hinweis: Claude 3 Opus wird bald für die Bedrock API verfügbar sein.

import anthropic

client = anthropic.Anthropic(
  # defaults to os.environ.get("ANTHROPIC_API_KEY")
  api_key="my_api_key",  
)
message = client.messages.create(
  model="claude-3-opus-20240229",
  max_tokens=1000,
  temperature=0,
  system="Transformiere die folgenden natürlichsprachlichen Anfragen in gültige SQL-Abfragen. Gehe davon aus, dass eine Datenbank mit den folgenden Tabellen und Spalten existiert: \n \nCustomers: \n- customer_id (INT, PRIMARY KEY) \n- first_name (VARCHAR) \n- last_name (VARCHAR) \n- email (VARCHAR) \n- phone (VARCHAR) \n- address (VARCHAR) \n- city (VARCHAR) \n- state (VARCHAR) \n- zip_code (VARCHAR) \n \nProducts: \n- product_id (INT, PRIMARY KEY) \n- product_name (VARCHAR) \n- description (TEXT) \n- category (VARCHAR) \n- price (DECIMAL) \n- stock_quantity (INT) \n \nOrders: \n- order_id (INT, PRIMARY KEY) \n- customer_id (INT, FOREIGN KEY REFERENCES Customers) \n- order_date (DATE) \n- total_amount (DECIMAL) \n- status (VARCHAR) \n \nOrder_Items: \n- order_item_id (INT, PRIMARY KEY) \n- order_id (INT, FOREIGN KEY REFERENCES Orders) \n- product_id (INT, FOREIGN KEY REFERENCES Products) \n- quantity (INT) \n- price (DECIMAL) \n \nReviews: \n- review_id (INT, PRIMARY KEY) \n- product_id (INT, FOREIGN KEY REFERENCES Products) \n- customer_id (INT, FOREIGN KEY REFERENCES Customers) \n- rating (INT) \n- comment (TEXT) \n- review_date (DATE) \n \nEmployees: \n- employee_id (INT, PRIMARY KEY) \n- first_name (VARCHAR) \n- last_name (VARCHAR) \n- email (VARCHAR) \n- phone (VARCHAR) \n- hire_date (DATE) \n- job_title (VARCHAR) \n- department (VARCHAR) \n- salary (DECIMAL) \n \nGib die SQL-Abfrage an, die die Daten basierend auf der natürlichsprachlichen Anfrage abrufen würde.",
  messages=[
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "Hole die Liste der Kunden, die Bestellungen aufgegeben, aber keine Bewertungen abgegeben haben, zusammen mit dem Gesamtbetrag, den sie für Bestellungen ausgegeben haben."
        }
      ]
    }
  ]
)
print(message.content)