知识库调用

This commit is contained in:
Cold
2025-12-22 20:05:01 +08:00
committed by 张斌
parent f319332751
commit b6409898a6

View File

@@ -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()