知识库调用
This commit is contained in:
@@ -5,11 +5,11 @@ package ragflow
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"mime/multipart"
|
||||
"strings"
|
||||
|
||||
"github.com/gogf/gf/v2/encoding/gjson"
|
||||
"github.com/gogf/gf/v2/errors/gerror"
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
)
|
||||
|
||||
// 数据集内文件管理
|
||||
@@ -158,16 +158,34 @@ func (c *Client) UploadDocumentFromText(ctx context.Context, datasetId, content,
|
||||
// 构造URL
|
||||
url := c.BaseURL + "/api/v1/datasets/" + datasetId + "/documents"
|
||||
|
||||
// 使用gclient上传文本作为文件
|
||||
// 创建multipart writer
|
||||
body := &bytes.Buffer{}
|
||||
writer := multipart.NewWriter(body)
|
||||
|
||||
// 添加文件字段
|
||||
part, err := writer.CreateFormFile("file", filename)
|
||||
if err != nil {
|
||||
return "", gerror.Wrap(err, "创建form file失败")
|
||||
}
|
||||
|
||||
// 写入内容
|
||||
if _, err = part.Write([]byte(content)); err != nil {
|
||||
return "", gerror.Wrap(err, "写入文件内容失败")
|
||||
}
|
||||
|
||||
// 关闭multipart writer
|
||||
if err = writer.Close(); err != nil {
|
||||
return "", gerror.Wrap(err, "关闭multipart writer失败")
|
||||
}
|
||||
|
||||
// 发送请求
|
||||
client := c.HTTPClient.Clone()
|
||||
client.SetHeader("Authorization", "Bearer "+c.APIKey)
|
||||
client.SetHeader("Content-Type", writer.FormDataContentType())
|
||||
|
||||
// 使用ContentType方法上传multipart表单
|
||||
resp, err := client.Post(ctx, url, g.Map{
|
||||
"file": bytes.NewReader([]byte(content)),
|
||||
})
|
||||
resp, err := client.Post(ctx, url, body.Bytes())
|
||||
if err != nil {
|
||||
return "", err
|
||||
return "", gerror.Wrap(err, "上传文档请求失败")
|
||||
}
|
||||
defer resp.Close()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user