Spaces:
Paused
Paused
| # What this tests ? | |
| ## Tests /chat/completions by generating a key and then making a chat completions request | |
| import pytest | |
| import asyncio | |
| import aiohttp, openai | |
| from openai import OpenAI, AsyncOpenAI | |
| from typing import Optional, List, Union | |
| BASE_URL = "http://localhost:4000" # Replace with your actual base URL | |
| API_KEY = "sk-1234" # Replace with your actual API key | |
| async def test_file_operations(): | |
| openai_client = AsyncOpenAI(api_key=API_KEY, base_url=BASE_URL) | |
| file_content = b'{"prompt": "Hello", "completion": "Hi"}' | |
| uploaded_file = await openai_client.files.create( | |
| purpose="fine-tune", | |
| file=file_content, | |
| ) | |
| list_files = await openai_client.files.list() | |
| print("list_files=", list_files) | |
| get_file = await openai_client.files.retrieve(file_id=uploaded_file.id) | |
| print("get_file=", get_file) | |
| get_file_content = await openai_client.files.content(file_id=uploaded_file.id) | |
| print("get_file_content=", get_file_content.content) | |
| assert get_file_content.content == file_content | |
| # try get_file_content.write_to_file | |
| get_file_content.write_to_file("get_file_content.jsonl") | |
| delete_file = await openai_client.files.delete(file_id=uploaded_file.id) | |
| print("delete_file=", delete_file) | |
| async def upload_file(session, purpose="fine-tune"): | |
| url = f"{BASE_URL}/v1/files" | |
| headers = {"Authorization": f"Bearer {API_KEY}"} | |
| data = aiohttp.FormData() | |
| data.add_field("purpose", purpose) | |
| data.add_field( | |
| "file", b'{"prompt": "Hello", "completion": "Hi"}', filename="mydata.jsonl" | |
| ) | |
| async with session.post(url, headers=headers, data=data) as response: | |
| assert response.status == 200 | |
| result = await response.json() | |
| assert "id" in result | |
| print(f"File upload successful. File ID: {result['id']}") | |
| return result["id"] | |
| async def list_files(session): | |
| url = f"{BASE_URL}/v1/files" | |
| headers = {"Authorization": f"Bearer {API_KEY}"} | |
| async with session.get(url, headers=headers) as response: | |
| assert response.status == 200 | |
| result = await response.json() | |
| assert "data" in result | |
| print("List files successful") | |
| async def get_file(session, file_id): | |
| url = f"{BASE_URL}/v1/files/{file_id}" | |
| headers = {"Authorization": f"Bearer {API_KEY}"} | |
| async with session.get(url, headers=headers) as response: | |
| assert response.status == 200 | |
| result = await response.json() | |
| assert result["id"] == file_id | |
| assert result["object"] == "file" | |
| assert "bytes" in result | |
| assert "created_at" in result | |
| assert "filename" in result | |
| assert result["purpose"] == "fine-tune" | |
| print(f"Get file successful for file ID: {file_id}") | |
| async def get_file_content(session, file_id): | |
| url = f"{BASE_URL}/v1/files/{file_id}/content" | |
| headers = {"Authorization": f"Bearer {API_KEY}"} | |
| async with session.get(url, headers=headers) as response: | |
| assert response.status == 200 | |
| content = await response.text() | |
| print("content from /files/{file_id}/content=", content) | |
| assert content # Check if content is not empty | |
| print(f"Get file content successful for file ID: {file_id}") | |
| async def delete_file(session, file_id): | |
| url = f"{BASE_URL}/v1/files/{file_id}" | |
| headers = {"Authorization": f"Bearer {API_KEY}"} | |
| async with session.delete(url, headers=headers) as response: | |
| assert response.status == 200 | |
| result = await response.json() | |
| assert "deleted" in result | |
| assert result["id"] == file_id | |
| print(f"Delete file successful for file ID: {file_id}") | |