70 lines
1.9 KiB
Python
70 lines
1.9 KiB
Python
"""Test script for run_config guide examples.
|
||
|
||
Tests the code examples from docs/howtos/customizations/run_config.md
|
||
"""
|
||
|
||
from dotenv import load_dotenv
|
||
|
||
load_dotenv()
|
||
|
||
|
||
def test_openai_client_configuration():
|
||
"""Test OpenAI client with timeout and retries."""
|
||
from openai import AsyncOpenAI
|
||
|
||
from ragas.llms import llm_factory
|
||
from ragas.metrics.collections import Faithfulness
|
||
|
||
# Configure timeout and retries on the client
|
||
client = AsyncOpenAI(
|
||
timeout=60.0, # 60 second timeout
|
||
max_retries=5, # Retry up to 5 times on failures
|
||
)
|
||
|
||
llm = llm_factory("gpt-4o-mini", client=client)
|
||
|
||
# Use with metrics
|
||
scorer = Faithfulness(llm=llm)
|
||
result = scorer.score(
|
||
user_input="When was the first super bowl?",
|
||
response="The first superbowl was held on Jan 15, 1967",
|
||
retrieved_contexts=[
|
||
"The First AFL–NFL World Championship Game was an American football game played on January 15, 1967, at the Los Angeles Memorial Coliseum in Los Angeles."
|
||
],
|
||
)
|
||
|
||
assert result.value is not None
|
||
print(f"✓ Faithfulness Score: {result.value}")
|
||
|
||
|
||
def test_fine_grained_timeout_control():
|
||
"""Test httpx.Timeout for fine-grained control."""
|
||
import httpx
|
||
from openai import AsyncOpenAI
|
||
|
||
from ragas.llms import llm_factory
|
||
|
||
client = AsyncOpenAI(
|
||
timeout=httpx.Timeout(
|
||
60.0, # Total timeout
|
||
connect=5.0, # Connection timeout
|
||
read=30.0, # Read timeout
|
||
write=10.0, # Write timeout
|
||
),
|
||
max_retries=3,
|
||
)
|
||
|
||
llm = llm_factory("gpt-4o-mini", client=client)
|
||
assert llm is not None
|
||
print(f"✓ LLM with httpx timeout created: {llm}")
|
||
|
||
|
||
if __name__ == "__main__":
|
||
print("Test 1: OpenAI Client Configuration")
|
||
test_openai_client_configuration()
|
||
|
||
print("\nTest 2: Fine-Grained Timeout Control")
|
||
test_fine_grained_timeout_control()
|
||
|
||
print("\n✅ All tests passed!")
|