58 lines
1.7 KiB
Python
58 lines
1.7 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Verify local embedding service using the native TEI /embed endpoint.
|
|
This uses pure HTTP requests without the OpenAI client.
|
|
"""
|
|
|
|
import sys
|
|
import requests
|
|
import json
|
|
import time
|
|
|
|
def test_native_endpoint():
|
|
url = "http://localhost:11434/embed"
|
|
headers = {"Content-Type": "application/json"}
|
|
|
|
print(f"Testing Native TEI Endpoint: {url}")
|
|
print("-" * 50)
|
|
|
|
test_inputs = [
|
|
"This is a test using the native /embed endpoint.",
|
|
"It should be slightly faster than the OpenAI-compatible one."
|
|
]
|
|
|
|
payload = {"inputs": test_inputs}
|
|
|
|
try:
|
|
start_time = time.time()
|
|
response = requests.post(url, headers=headers, json=payload)
|
|
response.raise_for_status()
|
|
duration = time.time() - start_time
|
|
|
|
embeddings = response.json()
|
|
|
|
print("✅ SUCCESS!")
|
|
print(f"Time taken: {duration:.4f}s")
|
|
print(f"Received {len(embeddings)} embeddings")
|
|
print(f"Dimensions: {len(embeddings[0])}")
|
|
print(f"First 5 values: {embeddings[0][:5]}")
|
|
print("-" * 50)
|
|
return True
|
|
|
|
except requests.exceptions.ConnectionError:
|
|
print("❌ FAILED: Connection refused.")
|
|
print("Make sure the container is running: ./startEmbedding.sh")
|
|
return False
|
|
except Exception as e:
|
|
print(f"❌ FAILED: {str(e)}")
|
|
if hasattr(e, 'response') and e.response:
|
|
print(f"Status: {e.response.status_code}")
|
|
print(f"Response: {e.response.text}")
|
|
return False
|
|
|
|
if __name__ == "__main__":
|
|
if test_native_endpoint():
|
|
sys.exit(0)
|
|
else:
|
|
sys.exit(1)
|