兼容新的mongo方法格式,并且修复client的apitoken覆盖问题
This commit is contained in:
@@ -4,6 +4,7 @@ import (
|
||||
"context"
|
||||
|
||||
"github.com/gogf/gf/v2/errors/gerror"
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
)
|
||||
|
||||
// 数据集管理
|
||||
@@ -82,17 +83,38 @@ type DeleteDatasetsReq struct {
|
||||
|
||||
// CreateDataset 创建数据集
|
||||
func (c *Client) CreateDataset(ctx context.Context, req *CreateDatasetReq) (*Dataset, error) {
|
||||
g.Log().Infof(ctx, "CreateDataset请求: name=%s, description=%s, embedding_model=%s", req.Name, req.Description, req.EmbeddingModel)
|
||||
|
||||
var res struct {
|
||||
Code int `json:"code"`
|
||||
Data *Dataset `json:"data"`
|
||||
Msg string `json:"message"`
|
||||
}
|
||||
if err := c.request(ctx, "POST", "/api/v1/datasets", req, &res); err != nil {
|
||||
g.Log().Errorf(ctx, "CreateDataset请求失败: %v", err)
|
||||
return nil, err
|
||||
}
|
||||
if res.Code != 0 {
|
||||
return nil, gerror.Newf("create dataset failed: %s", res.Msg)
|
||||
|
||||
g.Log().Infof(ctx, "CreateDataset响应: code=%d, msg=%s, data_is_nil=%v", res.Code, res.Msg, res.Data == nil)
|
||||
|
||||
// code=101表示dataset名称已存在(正常业务场景,不是错误)
|
||||
// 调用方应该通过ListDatasets查找已有dataset并复用
|
||||
if res.Code == 101 {
|
||||
return nil, gerror.Newf("Dataset名称已存在: %s", res.Msg)
|
||||
}
|
||||
|
||||
// 其他非0的code表示真正的错误
|
||||
if res.Code != 0 {
|
||||
return nil, gerror.Newf("创建知识库失败(code=%d): %s", res.Code, res.Msg)
|
||||
}
|
||||
|
||||
// code=0但data=null,表示创建异常(可能是RAGFlow配置问题,如embedding模型不可用、权限不足等)
|
||||
// 这不是正常状态,应该返回错误而不是(nil, nil)
|
||||
if res.Data == nil {
|
||||
return nil, gerror.Newf("创建知识库返回空数据(code=0,data=null),可能是RAGFlow配置问题: %s", res.Msg)
|
||||
}
|
||||
|
||||
g.Log().Infof(ctx, "CreateDataset成功: id=%s, name=%s", res.Data.Id, res.Data.Name)
|
||||
return res.Data, nil
|
||||
}
|
||||
|
||||
@@ -134,6 +156,10 @@ func (c *Client) ListDatasets(ctx context.Context, req *ListDatasetsReq) (*ListD
|
||||
if err := c.request(ctx, "GET", path, nil, &res); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// 添加调试日志
|
||||
g.Log().Infof(ctx, "ListDatasets原始响应: code=%d, total=%d, data_len=%d", res.Code, res.Total, len(res.Data))
|
||||
|
||||
if res.Code != 0 {
|
||||
return nil, gerror.Newf("list datasets failed: code=%d", res.Code)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user