@@ -483,30 +483,50 @@ func GetUploadDocUrl() (string, error) {
return endpoint, nil
}
func UploadDocs(modelName string, form api.LLMChatUploadForm) (*map[string]interface{}, error) {
log.Info("######### received by resty\n")
func writeDocs(fileHeader *multipart.FileHeader, writer *multipart.Writer) error {
filename := fileHeader.Filename
file, err := fileHeader.Open()
if err != nil {
log.Error(err.Error())
return err
}
defer file.Close()
part, err := writer.CreateFormFile("files", filename)
if err != nil {
log.Error("Error creating form file:", err)
return err
}
_, err = io.Copy(part, file)
return nil
}
var requestBody bytes.Buffer
writer := multipart.NewWriter(&requestBody)
writer.WriteField("knowledge_base_name", form.KnowledgeBaseName)
func writeBody(requestBody *bytes.Buffer, form api.LLMChatUploadForm) (string, error) {
writer := multipart.NewWriter(requestBody)
defer writer.Close()
err := writer.WriteField("knowledge_base_name", form.KnowledgeBaseName)
if err != nil {
log.Error("failed to create upload_doc() writer")
return "", err
}
for _, fileHeader := range form.Files {
filename := fileHeader.Filename
file, err := fileHeader.Open()
err = writeDocs(fileHeader, writer)
if err != nil {
log.Info(err.Error())
return nil, err
log.Error("Error getting doc content: %s", err )
return "" , err
}
defer file.Close()
part, err := writer.CreateFormFile("files", filename)
if err != nil {
log.Info("Error creating form file:", err)
return nil, err
}
_, err = io.Copy(part, file)
log.Info("########## Added to writer: %s\n", filename)
}
writer.Close()
//fmt.Printf("################ whole request body: %s\n", requestBody.String())
return writer.FormDataContentType(), nil
}
func UploadDocs(modelName string, form api.LLMChatUploadForm) (*map[string]interface{}, error) {
log.Info("######### received by resty\n")
var requestBody bytes.Buffer
headerValue, err := writeBody(&requestBody, form)
if err != nil {
log.Error("upload docs write body failed.")
return nil, err
}
endpoint := GetEndpoint(modelName)
req, err := http.NewRequest("POST", endpoint+urlKnowledgeBaseUploadDoc, &requestBody)
@@ -515,7 +535,7 @@ func UploadDocs(modelName string, form api.LLMChatUploadForm) (*map[string]inter
return nil, err
}
req.Header.Set("Content-Type", writer.FormDataContentType() )
req.Header.Set("Content-Type", headerValue )
client := &http.Client{}
resp, err := client.Do(req)