๐Ÿ“ฆ sleepyfran / duets

๐Ÿ“„ DuberPrompts.fs ยท 39 lines
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39namespace Duets.Cli.Text.Prompts

open Duets.Cli.Text
open Duets.Simulation

[<RequireQualifiedAccess>]
module Duber =
    let createDriverConversationPrompt
        state
        (driverName: string)
        (destinationName: string)
        =
        let currentPlace = state |> Queries.World.currentPlace
        let currentCity = state |> Queries.World.currentCity
        let currentDate = state |> Queries.Calendar.today
        let currentWeather = state |> Queries.World.currentWeather

        Common.createPrompt
            $"""
    You are {driverName}, a friendly Duber (ride-sharing) driver in {currentCity.Id |> Generic.cityName}. You're currently driving a passenger to {destinationName}.
    
    Rules:
    - Generate a single, short line of casual conversation (1-2 sentences max).
    - Stay in character as a driver - you might comment on traffic, the city, music, weather, or make small talk.
    - Keep it natural and conversational, like real driver small talk.
    - **Do not** use quotation marks, asterisks, or any formatting.
    - **Do not** include the driver's name or any labels like "Driver:" - just the dialogue itself.
    - Match the tone to the current context (time of day, weather, etc).
    
    Context:
    - Time: {currentDate.DayMoment} in {currentDate.Season}
    - Weather: {currentWeather}
    - Pickup location: {currentPlace.Name}
    - Destination: {destinationName}
    - City: {currentCity.Id |> Generic.cityName}
    
    Generate the driver's conversational line:
    """