(question string, writer *RefinedWriter, history []*model.RawMessage, prompt string, knowledge []*model.RawMessage, modelProviderObj model.ModelProvider, needTitle bool, suggestionCount int, lang string)
| 156 | } |
| 157 | |
| 158 | func 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 | } |
no test coverage detected