|
|
|
|
|
""" |
|
|
Example usage of the v0.dev OpenAI Compatible API |
|
|
""" |
|
|
|
|
|
import openai |
|
|
import requests |
|
|
|
|
|
|
|
|
BASE_URL = "http://localhost:8000/v1" |
|
|
API_KEY = "dummy" |
|
|
|
|
|
|
|
|
client = openai.OpenAI( |
|
|
base_url=BASE_URL, |
|
|
api_key=API_KEY |
|
|
) |
|
|
|
|
|
def basic_chat(): |
|
|
"""Basic chat completion example""" |
|
|
print("=== Basic Chat Example ===") |
|
|
|
|
|
response = client.chat.completions.create( |
|
|
model="v0-gpt-5", |
|
|
messages=[ |
|
|
{"role": "system", "content": "You are an expert React developer"}, |
|
|
{"role": "user", "content": "Create a simple todo list component in React"} |
|
|
], |
|
|
max_tokens=1000, |
|
|
temperature=0.7 |
|
|
) |
|
|
|
|
|
print("Response:") |
|
|
print(response.choices[0].message.content) |
|
|
print() |
|
|
|
|
|
def streaming_chat(): |
|
|
"""Streaming chat completion example""" |
|
|
print("=== Streaming Chat Example ===") |
|
|
|
|
|
stream = client.chat.completions.create( |
|
|
model="v0-gpt-5", |
|
|
messages=[ |
|
|
{"role": "user", "content": "Explain React hooks in simple terms"} |
|
|
], |
|
|
stream=True |
|
|
) |
|
|
|
|
|
print("Response (streaming):") |
|
|
for chunk in stream: |
|
|
if chunk.choices[0].delta.content is not None: |
|
|
print(chunk.choices[0].delta.content, end="") |
|
|
print() |
|
|
|
|
|
def list_models(): |
|
|
"""List available models""" |
|
|
print("=== Available Models ===") |
|
|
|
|
|
models = client.models.list() |
|
|
for model in models.data: |
|
|
print(f"- {model.id} (owned by {model.owned_by})") |
|
|
print() |
|
|
|
|
|
def main(): |
|
|
"""Run all examples""" |
|
|
try: |
|
|
|
|
|
health = requests.get("http://localhost:8000/health") |
|
|
if health.status_code != 200: |
|
|
print("Server is not running. Please start the server first:") |
|
|
print("python main.py") |
|
|
return |
|
|
|
|
|
|
|
|
list_models() |
|
|
basic_chat() |
|
|
streaming_chat() |
|
|
|
|
|
except Exception as e: |
|
|
print(f"Error: {e}") |
|
|
print("Make sure the server is running: python main.py") |
|
|
|
|
|
if __name__ == "__main__": |
|
|
main() |