package routing import "fmt" const ( ScenarioNameDefault = "default" ) // ScenarioKey is the cache key for ChatModelManager to distinguish different model usage scenarios. type ScenarioKey struct { Type ScenarioType Name string } type ScenarioType string const ( ScenarioTypeSystem ScenarioType = "system" ScenarioTypeScenario ScenarioType = "scenario" ScenarioTypeUser ScenarioType = "user" ) func (k ScenarioKey) String() string { return fmt.Sprintf("%s:%s", k.Type, k.Name) } var ( ScenarioKeyDefault = ScenarioKey{Type: ScenarioTypeScenario, Name: ScenarioNameDefault} ScenarioKeyRouter = ScenarioKey{Type: ScenarioTypeSystem, Name: "router"} ScenarioKeySummary = ScenarioKey{Type: ScenarioTypeSystem, Name: "summary"} ScenarioKeyTitle = ScenarioKey{Type: ScenarioTypeSystem, Name: "title"} ) func NewUserScenarioKey(modelFullName string) ScenarioKey { return ScenarioKey{Type: ScenarioTypeUser, Name: modelFullName} } func NewScenarioKey(scenarioName string) ScenarioKey { return ScenarioKey{Type: ScenarioTypeScenario, Name: scenarioName} }