Skip to main content
System prompts define how the model should behave, respond, and what role it should assume.

Basic Usage

val options = LLMGenerationOptions(
    maxTokens = 200,
    systemPrompt = """
        You are a senior Kotlin developer.
        Answer questions with code examples.
        Use modern Kotlin conventions and coroutines.
    """.trimIndent()
)

val result = RunAnywhere.generate(
    prompt = "How do I make an HTTP request?",
    options = options
)

Example: Code Assistant

val codeAssistant = LLMGenerationOptions(
    maxTokens = 500,
    temperature = 0.3f,  // Lower for more precise code
    systemPrompt = """
        You are an expert Android developer assistant.
        - Always provide working Kotlin code examples
        - Use Jetpack libraries when appropriate
        - Follow Material Design guidelines for UI code
        - Include error handling in your examples
        - Keep explanations concise
    """.trimIndent()
)

val result = RunAnywhere.generate(
    prompt = "How do I implement a RecyclerView with DiffUtil?",
    options = codeAssistant
)

Example: Customer Support Bot

val supportBot = LLMGenerationOptions(
    maxTokens = 300,
    temperature = 0.7f,
    systemPrompt = """
        You are a friendly customer support assistant for TechCorp.

        Guidelines:
        - Be helpful, patient, and empathetic
        - Keep responses under 3 paragraphs
        - If you don't know something, say so
        - Never make up product features
        - End with asking if there's anything else you can help with
    """.trimIndent()
)

Example: Creative Writer

val creativeWriter = LLMGenerationOptions(
    maxTokens = 1000,
    temperature = 1.2f,  // Higher for creativity
    topP = 0.95f,
    systemPrompt = """
        You are a creative fiction writer with a vivid imagination.
        Write engaging stories with:
        - Rich character development
        - Descriptive settings
        - Unexpected plot twists
        - Emotional depth
    """.trimIndent()
)

Example: JSON Output

val jsonFormatter = LLMGenerationOptions(
    maxTokens = 500,
    temperature = 0.1f,  // Very low for consistent structure
    systemPrompt = """
        You are a data extraction assistant.
        Always respond with valid JSON only.
        Do not include any text outside the JSON object.
        Use this schema: {"name": string, "category": string, "confidence": number}
    """.trimIndent()
)

val result = RunAnywhere.generate(
    prompt = "Extract product info: 'iPhone 15 Pro Max 256GB Space Black'",
    options = jsonFormatter
)
// Result: {"name": "iPhone 15 Pro Max", "category": "smartphone", "confidence": 0.95}

Best Practices

Keep system prompts focused and specific: - Define the role clearly - Set boundaries on what the model should/shouldn’t do - Specify output format if needed - Include examples for complex tasks
GoalTemperatureSystem Prompt Style
Code generation0.1-0.4Precise, technical instructions
Creative writing0.9-1.3Open-ended, encourage creativity
Factual Q&A0.2-0.5Focus on accuracy, cite limitations
Conversation0.6-0.8Personality traits, response guidelines