MCPcopy Create free account
hub / github.com/coder/coder / generateConversation

Function generateConversation

aibridge/provider/openai_internal_test.go:92–129  ·  view source on GitHub ↗
(provider providerStrategy, targetSize int, numMessages int)

Source from the content-addressed store, hash-verified

90}
91
92func generateConversation(provider providerStrategy, targetSize int, numMessages int) []any {
93 if targetSize <= 0 {
94 return nil
95 }
96 if numMessages < 1 {
97 numMessages = 1
98 }
99
100 roles := []string{"user", "assistant"}
101 messages := make([]message, numMessages)
102 for i := range messages {
103 messages[i].Role = roles[i%2]
104 }
105 // Ensure last message is from user (required for LLM APIs).
106 if messages[len(messages)-1].Role != "user" {
107 messages[len(messages)-1].Role = "user"
108 }
109
110 overhead := measureJSONSize(provider.formatMessages(messages))
111
112 bytesPerMessage := targetSize - overhead
113 if bytesPerMessage < 0 {
114 bytesPerMessage = 0
115 }
116
117 perMessage := bytesPerMessage / len(messages)
118 remainder := bytesPerMessage % len(messages)
119
120 for i := range messages {
121 size := perMessage
122 if i == len(messages)-1 {
123 size += remainder
124 }
125 messages[i].Content = strings.Repeat("x", size)
126 }
127
128 return provider.formatMessages(messages)
129}
130
131func measureJSONSize(v any) int {
132 data, err := json.Marshal(v)

Callers 2

generateResponsesPayloadFunction · 0.70

Calls 2

measureJSONSizeFunction · 0.70
formatMessagesMethod · 0.65

Tested by

no test coverage detected