Prompt Parameters Reference - ChatBotRPG

Purpose: Comprehensive reference for all LLM inference parameters Source: Extracted from actual make_inference() calls throughout codebase Usage: Quick lookup for parameter configurations


Parameter Overview

ChatBotRPG uses consistent parameter patterns across different use cases. Parameters are passed to make_inference() function which handles all LLM API calls.

Core Parameters

ParameterTypePurposeDefault
contextList[Dict]Message array (role + content)Required
user_messageStringLast user message (for logging)Required
character_nameStringCharacter name (metadata)Required
url_typeStringModel identifierFrom config
max_tokensIntegerOutput length limit8192
temperatureFloatCreativity (0.0-1.0)0.7
is_utility_callBooleanSuppress verbose loggingFalse
seedIntegerRandom seed (optional)None
allow_summarization_retryBooleanAuto-summarize on overflowTrue

Temperature Strategies

By Use Case

Use CaseTemperatureReasoningSource Location
Character Narration0.7Balance creativity/consistencychatBotRPG.py:684
Actor Generation0.7Creative but coherentgenerate_actor.py:180
Equipment Generation0.7Creative within structuregenerate_actor.py:180
Setting Generation0.7Evocative but groundedgenerate_setting.py:234
Random List Meta0.7Creative table designgenerate_random_list.py:66
NPC Note Generation0.7Brief but personalcharacter_inference.py:1295
Context Summarization0.3Factual accuracymake_inference.py:26
Follower Summary0.2Very factualsummaries.py:36
Intent Analysis0.1Classification accuracyagent_chat.py:258
Scribe AI Main0.7Helpful/creativeagent_chat.py:124
Rule CoT AnalysisVariablePer-rule configcharacter_inference.py:382

Temperature Ranges

0.1 ████ Very Low (Intent Classification)
0.2 ████ Low (Follower Summary)
0.3 ████ Medium-Low (Context Summarization)
0.7 ████████████ Standard (Most Creative Tasks)
0.9+ ███████████████ High (Not used in production)

Pattern Discovery: ChatBotRPG never exceeds 0.7 temperature in production code. Higher temperatures avoided for consistency.


Token Limits

By Use Case

Use CaseMax TokensReasoningSource Location
Character NarrationDynamicSettings-based (often 170)chatBotRPG.py:153
NPC Note Generation100Very brief notes onlycharacter_inference.py:1294
Actor Name256Short name outputgenerate_actor.py:179
Actor Description256Single paragraphgenerate_actor.py:179
Actor Personality25615-25 traitsgenerate_actor.py:179
Actor Appearance25615-25 traitsgenerate_actor.py:179
Actor Goals256Brief goalsgenerate_actor.py:179
Actor Story256Short backstorygenerate_actor.py:179
Actor Equipment512JSON with 16+ slotsgenerate_actor.py:179
Setting Name4001-4 wordsgenerate_setting.py:232
Setting Description8001-2 sentencesgenerate_setting.py:232
Setting Connections400JSON pathsgenerate_setting.py:232
Setting Inventory400JSON array 3-7 itemsgenerate_setting.py:232
Intent Analysis500JSON classificationagent_chat.py:256
Follower Summary512Concise memorysummaries.py:35
Context Summarization1536Detailed compressionmake_inference.py:19
Random List Meta4000Full generator JSONgenerate_random_list.py:65
Scribe AI Main4000Detailed assistanceagent_chat.py:122
Rule CoT50Brief classificationcharacter_inference.py:382

Token Strategy Patterns

  1. Very Brief (50-100): Rule classifications, NPC notes
  2. Short (256-512): Character generation fields, summaries
  3. Medium (800-1536): Setting descriptions, context compression
  4. Long (4000): Meta-generation, development assistance

Model Selection

Configuration Hierarchy

# 1. Rule-specific model (highest priority)
if rule_has_model:
    model = rule.get('model')
 
# 2. Character-specific model switch
elif action_type == 'Switch Model':
    model = action_obj.get('value')
 
# 3. Settings model
else:
    model = tab_data['settings'].get('model', get_default_model())

Model Types

Model TypeConfig KeyUse CaseLocation
Default Modeldefault_modelMain narrationconfig.py:74
CoT Modeldefault_cot_modelRule evaluationconfig.py:77
Utility Modeldefault_utility_modelGeneration, summariesconfig.py:81
Search ModelHardcodedScribe AI searchagent_chat.py:24

Default Configuration

Location: config.py:14-17

DEFAULT_CONFIG = {
    "default_model": "google/gemini-2.5-flash-lite-preview-06-17",
    "default_cot_model": "google/gemini-2.5-flash-lite-preview-06-17",
    "default_utility_model": "google/gemini-2.5-flash-lite-preview-06-17",
}

Note: All default to same model, but can be configured independently.

Fallback Models

Location: chatBotRPG.py:36-38

FALLBACK_MODEL_1 = "cognitivecomputations/dolphin-mistral-24b-venice-edition:free"
FALLBACK_MODEL_2 = "thedrummer/anubis-70b-v1.1"
FALLBACK_MODEL_3 = "google/gemini-2.5-flash-lite-preview-06-17"

Usage: Automatic retry on character inference failure.


Context Construction Patterns

Pattern 1: System + User (Simple)

Used By: Generation prompts

context = [
    {"role": "user", "content": prompt}
]

Characteristics:

  • No system message
  • Single user prompt
  • No conversation history

Pattern 2: System + User (Utility)

Used By: Summarization, intent analysis

context = [
    {"role": "system", "content": system_prompt},
    {"role": "user", "content": user_prompt}
]

Characteristics:

  • System message defines role
  • Single user prompt
  • No history

Pattern 3: Multi-Stage Assembly (Complex)

Used By: Character inference, Scribe AI

context = []
context.append({"role": "system", "content": base_system})
# ... add character sheet
# ... add memories
# ... add setting
# ... add keyword context
# ... add history
context.append({"role": "user", "content": turn_instruction})

Characteristics:

  • Incremental building
  • Multiple information sources
  • Conversation history included
  • Dynamic system modifications

Pattern 4: System + History + User (Conversational)

Used By: Scribe AI

messages = [{"role": "system", "content": SYSTEM_PROMPT}]
if self.context:
    messages.extend(self.context)
messages.append({"role": "user", "content": self.user_message})

Characteristics:

  • Persistent system prompt
  • Full conversation history
  • New user message

API Call Patterns

Standard Call

Location: make_inference.py:98-99

final_data = {
    "model": url_type,
    "temperature": temperature,
    "max_tokens": max_tokens,
    "top_p": 0.95,                    # Fixed
    "messages": context
}

Fixed Parameters:

  • top_p: Always 0.95 (no configuration option)

Headers (OpenRouter)

Location: make_inference.py:101-104

if current_service == "openrouter":
    headers["Authorization"] = f"Bearer {api_key}"
    headers["HTTP-Referer"] = "https://github.com/your-repo/your-project"
    headers["X-Title"] = "ChatBot RPG"

Timeout

Location: make_inference.py:110

final_response = requests.post(base_url, headers=headers, json=final_data, timeout=180)

Value: 180 seconds (3 minutes) for all requests


Retry Strategies

Strategy 1: Automatic Summarization Retry

Trigger: Context too long error Location: make_inference.py:128-223

if "maximum context length" in error_details.lower():
    # Split conversation
    # Summarize each half
    # Reconstruct context
    # Retry once

Parameters for Summarization:

  • Temperature: 0.3
  • Max tokens: 1536
  • Model: Utility model
  • Attempts: 1 (no further retry)

Strategy 2: Generation Field Retry

Trigger: Empty or invalid response Location: generate_actor.py:72-223

retry_count = 0
max_retries = 5
while not success and retry_count < max_retries:
    # Generate
    if retry_count > 0:
        prompt += f"\n\nThis is retry #{retry_count}. Please ensure..."
    # Validate
    if valid:
        success = True
    else:
        retry_count += 1

Escalation: Adds increasingly stern instructions


Strategy 3: Model Fallback Retry

Trigger: Failure response patterns (“I’m”, “sorry”, “ext”) Location: character_inference.py:774-876

for fallback_model in [FALLBACK_MODEL_1, FALLBACK_MODEL_2, FALLBACK_MODEL_3]:
    # Retry with fallback model
    if still_fails:
        continue  # Try next
    else:
        break  # Success

Parameters: Same context, same temp, different model


Parameter Validation

Required Parameters

Location: make_inference.py:79-88

if not api_key and current_service != "local":
    return f"Sorry, API error: {service_name} API key not configured."

Checks:

  1. API key exists (unless local)
  2. Base URL configured
  3. Model identifier valid

Optional Parameters

if seed is not None:
    random.seed(seed)
    seed = random.randint(-1, 100000)

Note: Seed is randomized even when provided (for variation).


Performance Considerations

Token Budget Strategy

Discovery: ChatBotRPG uses dynamic token limits based on use case, not fixed limits.

PriorityToken BudgetUse Cases
Critical100-512NPC notes, classifications
Standard256-800Generation, descriptions
Extended1536-4000Summarization, assistance
DynamicSettings-basedMain narration (170 common)

Temperature vs Token Tradeoff

Pattern: Lower temperature often paired with lower tokens

High Temperature + High Tokens = Expensive + Risky
Low Temperature + Low Tokens = Cheap + Consistent ✓
Low Temperature + High Tokens = Factual + Detailed ✓
High Temperature + Low Tokens = Creative + Brief ✓

ChatBotRPG Strategy: Match temperature to purpose, tokens to output needs.


Cross-References

Validates Discord Claims

170-token sweet spot - Confirmed as common narration limit ✅ Temperature 0.7 standard - Most creative tasks use this ✅ Dynamic token limits - Different limits per use case ✅ Low temperature for facts - 0.2-0.3 for summarization


Quick Reference Table

Complete Parameter Matrix

Use CaseTempTokensModelRetryContext Type
Character Narration0.7DynamicSettingsFallbackMulti-stage
NPC Notes0.7100CoTNoSystem+User
Actor Name0.7256Utility5xUser only
Actor Desc0.7256Utility5xUser only
Actor Personality0.7256Utility5xUser only
Actor Appearance0.7256Utility5xUser only
Actor Goals0.7256Utility5xUser only
Actor Story0.7256Utility5xUser only
Actor Equipment0.7512Utility5xUser only
Setting Desc0.7800Utility3xUser only
Setting Name0.7400Utility3xUser only
Setting Connect0.7400Utility3xUser only
Setting Inventory0.7400Utility3xUser only
Random List Meta0.74000UtilityNoSystem+User
Intent Analysis0.1500UtilityNoSystem+User
Context Summary0.31536UtilityNoSystem+User
Follower Summary0.2512DefaultNoSystem+User
Scribe AI Main0.74000DefaultNoSystem+History+User
Rule CoTVaries50Per-ruleNoSystem+User

Tags

chatbotrpg parameters temperature tokens model-selection configuration reference performance