重构了一下 rag的方法, 使用 goframe的框架, 还有redis连接部分
This commit is contained in:
@@ -2,8 +2,9 @@ package ragflow
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/gogf/gf/v2/errors/gerror"
|
||||
)
|
||||
|
||||
// 数据集内文件管理
|
||||
@@ -70,7 +71,7 @@ type DeleteDocumentsReq struct {
|
||||
|
||||
// ListDocuments 列出文档
|
||||
func (c *Client) ListDocuments(ctx context.Context, datasetId string, req *ListDocumentsReq) (*ListDocumentsRes, error) {
|
||||
path := fmt.Sprintf("/api/v1/datasets/%s/documents", datasetId)
|
||||
path := "/api/v1/datasets/" + datasetId + "/documents"
|
||||
params := map[string]interface{}{}
|
||||
if req.Page > 0 {
|
||||
params["page"] = req.Page
|
||||
@@ -111,16 +112,14 @@ func (c *Client) ListDocuments(ctx context.Context, datasetId string, req *ListD
|
||||
|
||||
// 处理数组参数:suffix(文件后缀过滤)
|
||||
// API 要求多个值时重复参数名,如:suffix=pdf&suffix=txt
|
||||
// 这里使用 fmt.Sprintf 来构造每个参数值
|
||||
for _, suffix := range req.Suffix {
|
||||
queryParts = append(queryParts, fmt.Sprintf("suffix=%s", suffix))
|
||||
queryParts = append(queryParts, "suffix="+suffix)
|
||||
}
|
||||
|
||||
// 处理数组参数:run(处理状态过滤)
|
||||
// 支持数字格式("0"-"4")或文本格式("UNSTART", "RUNNING", "CANCEL", "DONE", "FAIL")
|
||||
// 这里使用 fmt.Sprintf 来构造每个参数值
|
||||
for _, run := range req.Run {
|
||||
queryParts = append(queryParts, fmt.Sprintf("run=%s", run))
|
||||
queryParts = append(queryParts, "run="+run)
|
||||
}
|
||||
|
||||
// 构造最终请求路径
|
||||
@@ -134,7 +133,7 @@ func (c *Client) ListDocuments(ctx context.Context, datasetId string, req *ListD
|
||||
return nil, err
|
||||
}
|
||||
if res.Code != 0 {
|
||||
return nil, fmt.Errorf("list documents failed: code=%d", res.Code)
|
||||
return nil, gerror.Newf("list documents failed: code=%d", res.Code)
|
||||
}
|
||||
return &res, nil
|
||||
}
|
||||
@@ -142,23 +141,21 @@ func (c *Client) ListDocuments(ctx context.Context, datasetId string, req *ListD
|
||||
// UploadDocument 上传文档
|
||||
// 注意:此方法需要特殊处理 multipart/form-data,目前的 request 方法可能不支持
|
||||
// 我们需要扩展 request 方法或在此处单独实现
|
||||
func (c *Client) UploadDocument(ctx context.Context, datasetId string, filePaths []string) error {
|
||||
func (c *Client) UploadDocument(ctx context.Context, datasetId string, filePaths []string) (err error) {
|
||||
// TODO: 实现文件上传逻辑,需要使用 gclient 的 UploadFile 功能
|
||||
// 由于 request 方法封装了 JSON 处理,这里可能需要绕过 request 方法直接使用 c.Client
|
||||
// 暂时留空或仅做简单提示,待完善 Client 封装以支持文件上传
|
||||
return fmt.Errorf("upload document not implemented yet")
|
||||
return gerror.New("upload document not implemented yet")
|
||||
}
|
||||
|
||||
// DeleteDocument 删除文档
|
||||
func (c *Client) DeleteDocument(ctx context.Context, datasetId string, ids []string) error {
|
||||
func (c *Client) DeleteDocument(ctx context.Context, datasetId string, ids []string) (err error) {
|
||||
req := DeleteDocumentsReq{Ids: ids}
|
||||
var res CommonResponse
|
||||
path := fmt.Sprintf("/api/v1/datasets/%s/documents", datasetId)
|
||||
if err := c.request(ctx, "DELETE", path, req, &res); err != nil {
|
||||
return err
|
||||
path := "/api/v1/datasets/" + datasetId + "/documents"
|
||||
if err = c.request(ctx, "DELETE", path, req, &res); err != nil {
|
||||
return
|
||||
}
|
||||
if !res.IsSuccess() {
|
||||
return fmt.Errorf("delete document failed: %s", res.Message)
|
||||
return gerror.Newf("delete document failed: %s", res.Message)
|
||||
}
|
||||
return nil
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user