知识库调用
This commit is contained in:
@@ -5,11 +5,11 @@ package ragflow
|
|||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"context"
|
"context"
|
||||||
|
"mime/multipart"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/gogf/gf/v2/encoding/gjson"
|
"github.com/gogf/gf/v2/encoding/gjson"
|
||||||
"github.com/gogf/gf/v2/errors/gerror"
|
"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
|
||||||
url := c.BaseURL + "/api/v1/datasets/" + datasetId + "/documents"
|
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 := c.HTTPClient.Clone()
|
||||||
client.SetHeader("Authorization", "Bearer "+c.APIKey)
|
client.SetHeader("Authorization", "Bearer "+c.APIKey)
|
||||||
|
client.SetHeader("Content-Type", writer.FormDataContentType())
|
||||||
|
|
||||||
// 使用ContentType方法上传multipart表单
|
resp, err := client.Post(ctx, url, body.Bytes())
|
||||||
resp, err := client.Post(ctx, url, g.Map{
|
|
||||||
"file": bytes.NewReader([]byte(content)),
|
|
||||||
})
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", gerror.Wrap(err, "上传文档请求失败")
|
||||||
}
|
}
|
||||||
defer resp.Close()
|
defer resp.Close()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user