Files
fastgpt-python-sdk/docs/examples/basic_usage.md
2026-01-08 17:35:21 +08:00

5.0 KiB

Basic Usage Example

A complete example demonstrating basic usage of the FastGPT Python SDK.

Setup

First, install the SDK and create a .env file:

pip install fastgpt-client python-dotenv
# .env
API_KEY=fastgpt-xxxxx
BASE_URL=http://localhost:3000

Complete Example

"""Basic usage example for FastGPT Python SDK."""

from fastgpt_client import ChatClient
from dotenv import load_dotenv
import os

load_dotenv()

# Configure your API key and base URL
API_KEY = os.getenv("API_KEY")
BASE_URL = os.getenv("BASE_URL")


def simple_chat():
    """Simple chat completion example."""
    with ChatClient(api_key=API_KEY, base_url=BASE_URL) as client:
        response = client.create_chat_completion(
            messages=[{"role": "user", "content": "Hello! What's AI?"}],
            stream=False
        )
        response.raise_for_status()
        result = response.json()

        print("Response:", result['choices'][0]['message']['content'])


def chat_with_history():
    """Chat with message history example."""
    with ChatClient(api_key=API_KEY, base_url=BASE_URL) as client:
        response = client.create_chat_completion(
            messages=[
                {"role": "system", "content": "You are a helpful assistant."},
                {"role": "user", "content": "Hello!"},
                {"role": "assistant", "content": "Hi there! How can I help you?"},
                {"role": "user", "content": "What's the capital of France?"}
            ],
            stream=False
        )
        response.raise_for_status()
        result = response.json()

        print("Response:", result['choices'][0]['message']['content'])


def multi_turn_conversation():
    """Multi-turn conversation example."""
    with ChatClient(api_key=API_KEY, base_url=BASE_URL) as client:
        conversation = [
            {"role": "user", "content": "What's Python?"}
        ]

        # First turn
        response = client.create_chat_completion(
            messages=conversation,
            stream=False
        )
        response.raise_for_status()
        result = response.json()
        assistant_message = result['choices'][0]['message']['content']
        print(f"AI: {assistant_message}")

        # Add assistant response to conversation
        conversation.append({"role": "assistant", "content": assistant_message})

        # Second turn
        conversation.append({"role": "user", "content": "Give me an example"})
        response = client.create_chat_completion(
            messages=conversation,
            stream=False
        )
        response.raise_for_status()
        result = response.json()
        assistant_message = result['choices'][0]['message']['content']
        print(f"AI: {assistant_message}")


if __name__ == "__main__":
    print("=== Simple Chat ===")
    try:
        simple_chat()
    except Exception as e:
        print(f"Error: {e}")

    print("\n=== Chat with History ===")
    try:
        chat_with_history()
    except Exception as e:
        print(f"Error: {e}")

    print("\n=== Multi-turn Conversation ===")
    try:
        multi_turn_conversation()
    except Exception as e:
        print(f"Error: {e}")

Running the Example

python basic_usage.py

Expected Output

=== Simple Chat ===
Response: AI (Artificial Intelligence) is a branch of computer science...

=== Chat with History ===
Response: The capital of France is Paris.

=== Multi-turn Conversation ===
AI: Python is a high-level programming language...
AI: Here's a simple example: print("Hello, World!")

Key Concepts

Messages Array

The messages parameter is an array of message objects:

messages = [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "Hello!"},
    {"role": "assistant", "content": "Hi there!"},
    {"role": "user", "content": "How are you?"}
]

Response Structure

The response follows OpenAI's format:

{
    "id": "chatcmpl-xxx",
    "object": "chat.completion",
    "created": 1234567890,
    "model": "gpt-3.5-turbo",
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "Response text here..."
            },
            "finish_reason": "stop"
        }
    ],
    "usage": {
        "prompt_tokens": 20,
        "completion_tokens": 15,
        "total_tokens": 35
    }
}

Error Handling

Always handle potential errors:

from fastgpt_client import ChatClient
from fastgpt_client.exceptions import APIError, AuthenticationError

try:
    with ChatClient(api_key=API_KEY) as client:
        response = client.create_chat_completion(...)
        response.raise_for_status()
        result = response.json()
except AuthenticationError:
    print("Invalid API key")
except APIError as e:
    print(f"API error: {e}")

See Also