feat: add dockerfile
Some checks failed
Sphinx: Render docs / build (push) Has been cancelled
Python Linting / lint (push) Has been cancelled
Run Tests with Pytest / test (push) Has been cancelled

This commit is contained in:
2025-12-15 22:31:13 +08:00
parent 9b88cec77b
commit ba0968b2da
8 changed files with 784 additions and 9 deletions

77
examples/test_server.py Normal file
View File

@@ -0,0 +1,77 @@
#!/usr/bin/env python3
"""
Example client script to test the TexTeller server API.
"""
import requests
import base64
import sys
from pathlib import Path
def test_base64_request(image_path: str, server_url: str = "http://localhost:8001/predict"):
"""Test the server with a base64-encoded image."""
# Read and encode the image
with open(image_path, "rb") as f:
image_data = f.read()
image_base64 = base64.b64encode(image_data).decode()
# Send request
response = requests.post(server_url, json={"image_base64": image_base64}, headers={"Content-Type": "application/json"})
# Print result
if response.status_code == 200:
result = response.json()
print(f"✓ Success!")
print(f"Result: {result.get('result', 'N/A')}")
return result
else:
print(f"✗ Error: {response.status_code}")
print(f"Response: {response.text}")
return None
def test_url_request(image_url: str, server_url: str = "http://localhost:8001/predict"):
"""Test the server with an image URL."""
# Send request
response = requests.post(server_url, json={"image_url": image_url}, headers={"Content-Type": "application/json"})
# Print result
if response.status_code == 200:
result = response.json()
print(f"✓ Success!")
print(f"Result: {result.get('result', 'N/A')}")
return result
else:
print(f"✗ Error: {response.status_code}")
print(f"Response: {response.text}")
return None
if __name__ == "__main__":
print("=" * 50)
print("TexTeller Server API Test")
print("=" * 50)
# Test with local image if provided
if len(sys.argv) > 1:
image_path = sys.argv[1]
if Path(image_path).exists():
print(f"\nTest 1: Base64 request with local image")
print(f"Image: {image_path}")
test_base64_request(image_path)
else:
print(f"Error: Image file not found: {image_path}")
# Test with URL if provided
if len(sys.argv) > 2:
image_url = sys.argv[2]
print(f"\nTest 2: URL request")
print(f"URL: {image_url}")
test_url_request(image_url)
if len(sys.argv) == 1:
print("\nUsage:")
print(f" python {sys.argv[0]} <image_path> [image_url]")
print("\nExamples:")
print(f" python {sys.argv[0]} equation.png")
print(f" python {sys.argv[0]} equation.png https://example.com/formula.png")