Add AGENTS.md documentation for AI agent guidance

This commit is contained in:
2026-02-23 09:59:52 -05:00
commit 2e2b817435
21 changed files with 2513 additions and 0 deletions

87
tests/test_basic.py Normal file
View File

@@ -0,0 +1,87 @@
"""Basic tests for watsonx-openai-proxy."""
import pytest
from fastapi.testclient import TestClient
from app.main import app
client = TestClient(app)
def test_health_check():
"""Test the health check endpoint."""
response = client.get("/health")
assert response.status_code == 200
data = response.json()
assert data["status"] == "healthy"
assert "cluster" in data
def test_root_endpoint():
"""Test the root endpoint."""
response = client.get("/")
assert response.status_code == 200
data = response.json()
assert data["service"] == "watsonx-openai-proxy"
assert "endpoints" in data
def test_list_models():
"""Test listing available models."""
response = client.get("/v1/models")
assert response.status_code == 200
data = response.json()
assert data["object"] == "list"
assert len(data["data"]) > 0
assert all(model["object"] == "model" for model in data["data"])
def test_retrieve_model():
"""Test retrieving a specific model."""
response = client.get("/v1/models/ibm/granite-3-8b-instruct")
assert response.status_code == 200
data = response.json()
assert data["id"] == "ibm/granite-3-8b-instruct"
assert data["object"] == "model"
def test_retrieve_nonexistent_model():
"""Test retrieving a model that doesn't exist."""
response = client.get("/v1/models/nonexistent-model")
assert response.status_code == 404
# Note: The following tests require valid IBM Cloud credentials
# and should be run with pytest markers or in integration tests
@pytest.mark.skip(reason="Requires valid IBM Cloud credentials")
def test_chat_completion():
"""Test chat completion endpoint."""
response = client.post(
"/v1/chat/completions",
json={
"model": "ibm/granite-3-8b-instruct",
"messages": [
{"role": "user", "content": "Hello!"}
],
},
)
assert response.status_code == 200
data = response.json()
assert "choices" in data
assert len(data["choices"]) > 0
@pytest.mark.skip(reason="Requires valid IBM Cloud credentials")
def test_embeddings():
"""Test embeddings endpoint."""
response = client.post(
"/v1/embeddings",
json={
"model": "ibm/slate-125m-english-rtrvr",
"input": "Test text",
},
)
assert response.status_code == 200
data = response.json()
assert "data" in data
assert len(data["data"]) > 0