Chat Parameters ExampleΒΆ

Using custom chat parameters:

  1#!/usr/bin/env python
  2"""
  312 Chat Parameters - Control Response Behavior
  4
  5Learn how to use parameters to control the AI's responses:
  6- temperature: Controls randomness/creativity (0.0 to 2.0)
  7- max_tokens: Limits response length
  8- stop: Stops generation at specified sequences
  9
 10Level: Core Feature
 11"""
 12
 13from config_loader import get_chat_config, parse_args
 14
 15from lexilux import Chat, ChatParams
 16
 17
 18def main():
 19    """Demonstrate chat parameter usage."""
 20    args = parse_args()
 21    try:
 22        config = get_chat_config(config_path=args.config)
 23    except (FileNotFoundError, KeyError) as e:
 24        print(f"Configuration error: {e}")
 25        print("\nUsing placeholder values. Please configure test_endpoints.json")
 26        config = {
 27            "base_url": "https://api.example.com/v1",
 28            "api_key": "your-api-key",
 29            "model": "gpt-4",
 30        }
 31
 32    chat = Chat(**config)
 33
 34    # Example 1: Temperature (creativity control)
 35    print("=" * 50)
 36    print("Example 1: Temperature Comparison")
 37    print("=" * 50)
 38
 39    prompt = "Write a short creative opening for a sci-fi story."
 40
 41    print("\nTemperature = 0.0 (focused, deterministic):")
 42    result = chat(prompt, temperature=0.0)
 43    print(f"{result.text}\n")
 44
 45    print("Temperature = 1.0 (balanced):")
 46    result = chat(prompt, temperature=1.0)
 47    print(f"{result.text}\n")
 48
 49    print("Temperature = 1.8 (creative, random):")
 50    result = chat(prompt, temperature=1.8)
 51    print(f"{result.text}\n")
 52
 53    # Example 2: Max tokens (length control)
 54    print("=" * 50)
 55    print("Example 2: Max Tokens Control")
 56    print("=" * 50)
 57
 58    print("Max tokens = 20 (very short):")
 59    result = chat("What is Python?", max_tokens=20)
 60    print(f"{result.text}")
 61    print(f"Tokens used: {result.usage.output_tokens}")
 62    print(f"Finish reason: {result.finish_reason}\n")
 63
 64    print("Max tokens = 100 (longer):")
 65    result = chat("What is Python?", max_tokens=100)
 66    print(f"{result.text}")
 67    print(f"Tokens used: {result.usage.output_tokens}")
 68    print(f"Finish reason: {result.finish_reason}\n")
 69
 70    # Example 3: Stop sequences
 71    print("=" * 50)
 72    print("Example 3: Stop Sequences")
 73    print("=" * 50)
 74
 75    print("Stop at '---' or 'END':")
 76    result = chat(
 77        "List 5 programming languages. Separate each with '---'",
 78        stop=["---", "END"],
 79    )
 80    print(f"{result.text}")
 81    print(f"Finish reason: {result.finish_reason}\n")
 82
 83    # Example 4: Using ChatParams for reusable configuration
 84    print("=" * 50)
 85    print("Example 4: ChatParams (Reusable Configuration)")
 86    print("=" * 50)
 87
 88    # Create a params object for consistent behavior
 89    creative_params = ChatParams(
 90        temperature=1.5,
 91        max_tokens=50,
 92        stop=["\n\n"],  # Stop at double newline
 93    )
 94
 95    print("Using ChatParams for creative, short responses:")
 96    for i in range(3):
 97        result = chat("Tell me a fun fact", params=creative_params)
 98        print(f"{i + 1}. {result.text.strip()}")
 99
100
101if __name__ == "__main__":
102    main()