Heim >Backend-Entwicklung >Python-Tutorial >Erstellen von Stripe-Testdaten in Python

Erstellen von Stripe-Testdaten in Python

Patricia Arquette
Patricia ArquetteOriginal
2024-12-28 10:37:10718Durchsuche

Wir haben an einem neuen KI-Datenkurs gearbeitet, um zu zeigen, wie Sie einen KI-Chatbot erstellen können, indem Sie E-Commerce-Daten von Stripe in PGVector verschieben, das auf Supabase läuft, über den Airbyte PGVector-Connector, um OpenAI-Einbettungen zu erstellen, und dabei OpenAI-Clientbibliotheken verwenden um einer App Unterstützung für natürliche Sprache hinzuzufügen. Dies ist ein ziemlich verbreitetes App-Muster für „intelligente Datenstapel“, das viele unserer Kunden implementieren. Quelle und Ziel können sich ändern, aber das Muster (Datenquelle > Daten verschieben und Einbettungen erstellen > vektorfähiger Datenspeicher > Web-App mit OpenAI) bleibt gleich.

Creating Stripe Test Data in Python

Da wir an einem Kurs arbeiten, der für die praktische Nutzung gedacht ist, wollten wir die Einrichtung so einfach wie möglich gestalten. Ein großer Teil davon bestand darin, ausreichend Testdaten in Stripe zu erstellen, damit ein sinnvoller Datensatz für die Interaktion des Chatbots vorhanden war. Wenn Sie Stripe schon einmal verwendet haben, wissen Sie, dass es eine großartige Sandbox gibt, mit der Sie experimentieren können. Das einzige Problem besteht darin, dass keine Beispieldaten vorinstalliert sind.

Es gibt einige Beispieldatensätze, die Sie über den CLI-Befehl Fixtures laden können. Aber für unseren Gebrauch entsprachen diese nicht den Anforderungen. Wir wollten einen größeren Datensatz, und da dieses Material online und in Workshops verwendet wird, eröffnet die Aufforderung an die Lernenden, etwas wie die CLI auf ihren lokalen Computern zu installieren, eine ganze Reihe komplexer Handhabungen. Sie wissen nie, welche Betriebssystemversion der Benutzer verwendet, ob er über die richtigen Berechtigungen zum Installieren von Dingen verfügt und vieles mehr. Ich habe mich zu oft verbrannt, um diesen Weg zu gehen.

Zum Glück verfügt Stripe auch über fantastische APIs und einen großartigen Python-Client, was bedeutet, dass wir schnell ein Kollaborationsnotizbuch erstellen konnten, damit die Lernenden die gewünschten Daten ausführen und einfügen können.

Nachdem wir die Stripe-Bibliothek über !pip install stripe installiert und einen Testschlüssel mithilfe von Google Collab-Geheimnissen übergeben hatten, mussten wir einige zufällige Namen für Kunden und Produkte einrichten. Ziel war es, eine zufällige Sammlung von Kunden, Produkten mit unterschiedlichen Preisen und Käufen einzufügen. Auf diese Weise stellen wir dem Chatbot Fragen wie „Wer hat den günstigsten Kauf getätigt? Wie viel hat er bezahlt und was hat er gekauft?“ Es gab genügend Daten.

import stripe
import random
from google.colab import userdata


stripe.api_key = userdata.get('STRIPE_TEST_KEY')


# Sample data for generating random names
first_names = ["Alice", "Bob", "Charlie", "Diana", "Eve", "Frank", "Grace", "Hank", "Ivy", "Jack", "Quinton", "Akriti", "Justin", "Marcos"]
last_names = ["Smith", "Johnson", "Williams", "Jones", "Brown", "Davis", "Miller", "Wilson", "Moore", "Taylor", "Wall", "Chau", "Keswani", "Marx"]
# Sample clothing product names
clothing_names = [
    "T-Shirt", "Jeans", "Jacket", "Sweater", "Hoodie",
    "Shorts", "Dress", "Blouse", "Skirt", "Pants",
    "Shoes", "Sandals", "Sneakers", "Socks", "Hat",
    "Scarf", "Gloves", "Coat", "Belt", "Tie",
    "Tank Top", "Cardigan", "Overalls", "Tracksuit", "Polo Shirt",
    "Cargo Pants", "Capris", "Dungarees", "Boots", "Cufflinks",
    "Raincoat", "Peacoat", "Blazer", "Slippers", "Underwear",
    "Leggings", "Windbreaker", "Tracksuit Bottoms", "Beanie", "Bikini"
]
# List of random colors
colors = [
    "Red", "Blue", "Green", "Yellow", "Black", "White", "Gray",
    "Pink", "Purple", "Orange", "Brown", "Teal", "Navy", "Maroon",
    "Gold", "Silver", "Beige", "Lavender", "Turquoise", "Coral"
]

Als nächstes war es an der Zeit, Funktionen für jeden der Datentypen in Stripe hinzuzufügen, die wir brauchten.

# Function to create sample customers with random names
def create_customers(count=5):
    customers = []
    for _ in range(count):
        first_name = random.choice(first_names)
        last_name = random.choice(last_names)
        name = f"{first_name} {last_name}"
        email = f"{first_name.lower()}.{last_name.lower()}@example.com"

        customer = stripe.Customer.create(
            name=name,
            email=email,
            description="Sample customer for testing"
        )
        customers.append(customer)
        print(f"Created Customer: {customer['name']} (ID: {customer['id']})")
    return customers

# Function to create sample products with random clothing names and colors
def create_products(count=3):
    products = []
    for _ in range(count):
        color = random.choice(colors)
        product_name = random.choice(clothing_names)
        full_name = f"{color} {product_name}"
        product = stripe.Product.create(
            name=full_name,
            description=f"This is a {color.lower()} {product_name.lower()}"
        )
        products.append(product)
        print(f"Created Product: {product['name']} (ID: {product['id']})")
    return products

# Function to create prices for the products with random unit_amount
def create_prices(products, min_price=500, max_price=5000):
    prices = []
    for product in products:
        unit_amount = random.randint(min_price, max_price)  # Random amount in cents
        price = stripe.Price.create(
            unit_amount=unit_amount,
            currency="usd",
            product=product['id']
        )
        prices.append(price)
        print(f"Created Price: ${unit_amount / 100:.2f} for Product {product['name']} (ID: {price['id']})")
    return prices

# Function to create random purchases for each customer
def create_purchases(customers, prices, max_purchases_per_customer=5):
    purchases = []
    for customer in customers:
        num_purchases = random.randint(1, max_purchases_per_customer)  # Random number of purchases per customer
        for _ in range(num_purchases):
            price = random.choice(prices)  # Randomly select a product's price
            purchase = stripe.PaymentIntent.create(
                amount=price['unit_amount'],  # Amount in cents
                currency=price['currency'],
                customer=customer['id'],
                payment_method_types=["card"],  # Simulate card payment
                description=f"Purchase of {price['product']} by {customer['name']}"
            )
            purchases.append(purchase)
            print(f"Created Purchase for Customer {customer['name']} (Amount: ${price['unit_amount'] / 100:.2f})")
    return purchases

Jetzt müssen wir nur noch das Skript ausführen und angeben, wie viele Daten wir benötigen.

# Main function to create sample data
def main():
    print("Creating sample customers with random names...")
    customers = create_customers(count=20)

    print("\nCreating sample products with random clothing names and colors...")
    products = create_products(count=30)

    print("\nCreating prices for products with random amounts...")
    prices = create_prices(products, min_price=500, max_price=5000)

    print("\nCreating random purchases for each customer...")
    purchases = create_purchases(customers, prices, max_purchases_per_customer=10)

    print("\nSample data creation complete!")
    print(f"Created {len(customers)} customers, {len(products)} products, and {len(purchases)} purchases.")

if __name__ == "__main__":
    main()

Nachdem die Daten in unsere Stripe Sandbox geladen waren, dauerte die Anbindung an Airbyte nur wenige Minuten, indem der Connector Builder verwendet wurde, um die API-Endpunkte den Streams für jeden Datentyp zuzuordnen und einen Synchronisierungsauftrag einzurichten.

Creating Stripe Test Data in Python

Problem gelöst! Mit unserem Collab-Python-Skript können Lernende ganz einfach Testdaten in Stripe einfügen. Ich hoffe, es ist hilfreich für jemand anderen, der ähnliche Tests durchführt.

Das obige ist der detaillierte Inhalt vonErstellen von Stripe-Testdaten in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn