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:
"""