| |
| """ |
| Simple usage example for the AI Backend Service |
| Demonstrates how to interact with the OpenAI-compatible API |
| """ |
|
|
| import requests |
| import json |
|
|
| |
| BASE_URL = "http://localhost:8000" |
|
|
| def test_simple_chat(): |
| """Simple chat completion example""" |
| print("π€ Simple Chat Example") |
| print("-" * 30) |
| |
| response = requests.post(f"{BASE_URL}/v1/chat/completions", json={ |
| "model": "microsoft/DialoGPT-medium", |
| "messages": [ |
| {"role": "system", "content": "You are a helpful assistant."}, |
| {"role": "user", "content": "What is the capital of France?"} |
| ], |
| "max_tokens": 100, |
| "temperature": 0.7 |
| }) |
| |
| if response.status_code == 200: |
| data = response.json() |
| message = data["choices"][0]["message"]["content"] |
| print(f"Assistant: {message}") |
| else: |
| print(f"Error: {response.status_code} - {response.text}") |
| print() |
|
|
| def test_streaming_chat(): |
| """Streaming chat completion example""" |
| print("π Streaming Chat Example") |
| print("-" * 30) |
| |
| response = requests.post(f"{BASE_URL}/v1/chat/completions", json={ |
| "model": "microsoft/DialoGPT-medium", |
| "messages": [ |
| {"role": "user", "content": "Tell me a fun fact about space"} |
| ], |
| "max_tokens": 150, |
| "temperature": 0.8, |
| "stream": True |
| }, stream=True) |
| |
| if response.status_code == 200: |
| print("Assistant: ", end="", flush=True) |
| for line in response.iter_lines(): |
| if line: |
| line_str = line.decode('utf-8') |
| if line_str.startswith('data: '): |
| data_part = line_str[6:] |
| if data_part == '[DONE]': |
| break |
| try: |
| chunk = json.loads(data_part) |
| if 'choices' in chunk and chunk['choices']: |
| delta = chunk['choices'][0].get('delta', {}) |
| if 'content' in delta: |
| print(delta['content'], end='', flush=True) |
| except json.JSONDecodeError: |
| pass |
| print("\n") |
| else: |
| print(f"Error: {response.status_code} - {response.text}") |
| print() |
|
|
| def test_text_completion(): |
| """Text completion example""" |
| print("π Text Completion Example") |
| print("-" * 30) |
| |
| response = requests.post(f"{BASE_URL}/v1/completions", json={ |
| "prompt": "The best programming language for beginners is", |
| "max_tokens": 80, |
| "temperature": 0.6 |
| }) |
| |
| if response.status_code == 200: |
| data = response.json() |
| completion = data["choices"][0]["text"] |
| print(f"Completion: {completion}") |
| else: |
| print(f"Error: {response.status_code} - {response.text}") |
| print() |
|
|
| def test_service_info(): |
| """Get service information""" |
| print("βΉοΈ Service Information") |
| print("-" * 30) |
| |
| |
| health = requests.get(f"{BASE_URL}/health") |
| if health.status_code == 200: |
| print(f"Service Status: {health.json()['status']}") |
| print(f"Model: {health.json()['model']}") |
| |
| |
| models = requests.get(f"{BASE_URL}/v1/models") |
| if models.status_code == 200: |
| model_list = models.json()["data"] |
| print(f"Available Models: {len(model_list)}") |
| for model in model_list: |
| print(f" - {model['id']}") |
| print() |
|
|
| if __name__ == "__main__": |
| print("π AI Backend Service - Usage Examples") |
| print("=" * 50) |
| |
| try: |
| test_service_info() |
| test_simple_chat() |
| test_text_completion() |
| test_streaming_chat() |
| |
| print("β
All examples completed successfully!") |
| |
| except requests.exceptions.ConnectionError: |
| print("β Could not connect to the service.") |
| print("Make sure the backend service is running on http://localhost:8000") |
| print("Start it with: python backend_service.py --port 8000") |
| except Exception as e: |
| print(f"β Error: {e}") |
|
|