gproxy_transform/transform/common/
roles.rs1#[derive(Debug, Clone, Copy, PartialEq, Eq)]
3pub enum RoleFamily {
4 Instruction,
5 User,
6 Assistant,
7 Tool,
8}
9
10pub fn openai_role_family(role: &str) -> Option<RoleFamily> {
11 match role {
12 "system" | "developer" => Some(RoleFamily::Instruction),
13 "user" => Some(RoleFamily::User),
14 "assistant" => Some(RoleFamily::Assistant),
15 "tool" | "function" => Some(RoleFamily::Tool),
16 _ => None,
17 }
18}
19
20pub fn claude_role_family(role: &str) -> Option<RoleFamily> {
21 match role {
22 "user" => Some(RoleFamily::User),
23 "assistant" => Some(RoleFamily::Assistant),
24 _ => None,
25 }
26}
27
28pub fn gemini_role_family(role: &str) -> Option<RoleFamily> {
29 match role {
30 "user" => Some(RoleFamily::User),
31 "model" => Some(RoleFamily::Assistant),
32 "function" => Some(RoleFamily::Tool),
33 _ => None,
34 }
35}