MCPcopy
hub / github.com/the-open-agent/openagent / QueryCarrierText

Function QueryCarrierText

controllers/message_carrier.go:158–207  ·  view source on GitHub ↗
(question string, writer *RefinedWriter, history []*model.RawMessage, prompt string, knowledge []*model.RawMessage, modelProviderObj model.ModelProvider, needTitle bool, suggestionCount int, lang string)

Source from the content-addressed store, hash-verified

156}
157
158func QueryCarrierText(question string, writer *RefinedWriter, history []*model.RawMessage, prompt string, knowledge []*model.RawMessage, modelProviderObj model.ModelProvider, needTitle bool, suggestionCount int, lang string) (*model.ModelResult, error) {
159 var (
160 wg sync.WaitGroup
161 mainErr error
162 carrierErr error
163 )
164
165 var modelResult *model.ModelResult
166
167 wg.Add(1)
168 go func() {
169 defer wg.Done()
170 var err error
171 modelResult, err = modelProviderObj.QueryText(question, writer, history, prompt, knowledge, nil, lang)
172 if err != nil {
173 mainErr = err
174 }
175 }()
176
177 CarrierWriter := &CarrierWriter{*NewCleaner(6), []byte{}}
178 var carrierResult *model.ModelResult
179
180 wg.Add(1)
181 go func() {
182 defer wg.Done()
183 var err error
184 carrierResult, err = getResultWithSuggestionsAndTitle(CarrierWriter, question, modelProviderObj, needTitle, suggestionCount, lang)
185 if err != nil {
186 carrierErr = err
187 }
188 }()
189
190 wg.Wait()
191
192 if mainErr != nil {
193 return nil, mainErr
194 }
195 if carrierErr != nil {
196 return nil, carrierErr
197 }
198
199 modelResult.PromptTokenCount += carrierResult.PromptTokenCount
200 modelResult.ResponseTokenCount += carrierResult.ResponseTokenCount
201 modelResult.TotalPrice += carrierResult.TotalPrice
202 modelResult.TotalTokenCount += carrierResult.TotalTokenCount
203
204 writer.Write(CarrierWriter.messageBuf)
205
206 return modelResult, nil
207}

Callers 1

generateMessageAnswerFunction · 0.85

Calls 4

NewCleanerFunction · 0.85
QueryTextMethod · 0.65
WriteMethod · 0.45

Tested by

no test coverage detected