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()