| 153 | } |
| 154 | |
| 155 | func printMessage(idx int, m *schema.Message) { |
| 156 | switch m.Role { |
| 157 | case schema.Assistant: |
| 158 | if len(m.ToolCalls) > 0 { |
| 159 | for _, tc := range m.ToolCalls { |
| 160 | fmt.Printf("[Stream %d] role=%s tool_call=%s args=%s\n", idx, m.Role, tc.Function.Name, truncate(tc.Function.Arguments, 60)) |
| 161 | } |
| 162 | } else { |
| 163 | fmt.Printf("[Stream %d] role=%s content=%s\n", idx, m.Role, truncate(m.Content, 80)) |
| 164 | } |
| 165 | case schema.Tool: |
| 166 | fmt.Printf("[Stream %d] role=%s tool=%s result=%s\n", idx, m.Role, m.ToolName, truncate(m.Content, 80)) |
| 167 | default: |
| 168 | fmt.Printf("[Stream %d] role=%s content=%s\n", idx, m.Role, truncate(m.Content, 80)) |
| 169 | } |
| 170 | } |
| 171 | |
| 172 | func verifyGobRoundTrip() { |
| 173 | msgs := []*schema.Message{ |