278 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			278 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			Go
		
	
	
	
| /*
 | |
|  * Copyright 2025 coze-dev Authors
 | |
|  *
 | |
|  * Licensed under the Apache License, Version 2.0 (the "License");
 | |
|  * you may not use this file except in compliance with the License.
 | |
|  * You may obtain a copy of the License at
 | |
|  *
 | |
|  *     http://www.apache.org/licenses/LICENSE-2.0
 | |
|  *
 | |
|  * Unless required by applicable law or agreed to in writing, software
 | |
|  * distributed under the License is distributed on an "AS IS" BASIS,
 | |
|  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | |
|  * See the License for the specific language governing permissions and
 | |
|  * limitations under the License.
 | |
|  */
 | |
| 
 | |
| // Code generated by hertz generator.
 | |
| 
 | |
| package coze
 | |
| 
 | |
| import (
 | |
| 	"context"
 | |
| 
 | |
| 	"github.com/cloudwego/hertz/pkg/app"
 | |
| 	"github.com/cloudwego/hertz/pkg/protocol/consts"
 | |
| 
 | |
| 	"github.com/coze-dev/coze-studio/backend/api/model/knowledge/document"
 | |
| 	"github.com/coze-dev/coze-studio/backend/api/model/kvmemory"
 | |
| 	"github.com/coze-dev/coze-studio/backend/api/model/project_memory"
 | |
| 	table "github.com/coze-dev/coze-studio/backend/api/model/table"
 | |
| 	appApplication "github.com/coze-dev/coze-studio/backend/application/app"
 | |
| 	"github.com/coze-dev/coze-studio/backend/application/knowledge"
 | |
| 	"github.com/coze-dev/coze-studio/backend/application/memory"
 | |
| 	"github.com/coze-dev/coze-studio/backend/pkg/lang/conv"
 | |
| )
 | |
| 
 | |
| // GetSysVariableConf .
 | |
| // @router /api/memory/sys_variable_conf [GET]
 | |
| func GetSysVariableConf(ctx context.Context, c *app.RequestContext) {
 | |
| 	var err error
 | |
| 	var req kvmemory.GetSysVariableConfRequest
 | |
| 	err = c.BindAndValidate(&req)
 | |
| 	if err != nil {
 | |
| 		c.String(consts.StatusBadRequest, err.Error())
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	resp, err := memory.VariableApplicationSVC.GetSysVariableConf(ctx, &req)
 | |
| 	if err != nil {
 | |
| 		internalServerErrorResponse(ctx, c, err)
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	c.JSON(consts.StatusOK, resp)
 | |
| }
 | |
| 
 | |
| // GetProjectVariableList .
 | |
| // @router /api/memory/project/variable/meta_list [GET]
 | |
| func GetProjectVariableList(ctx context.Context, c *app.RequestContext) {
 | |
| 	var err error
 | |
| 	var req project_memory.GetProjectVariableListReq
 | |
| 	err = c.BindAndValidate(&req)
 | |
| 	if err != nil {
 | |
| 		c.String(consts.StatusBadRequest, err.Error())
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	if req.ProjectID == "" {
 | |
| 		invalidParamRequestResponse(c, "project_id is empty")
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	pID, err := conv.StrToInt64(req.ProjectID)
 | |
| 	if err != nil {
 | |
| 		invalidParamRequestResponse(c, "project_id is not int")
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	pInfo, err := appApplication.APPApplicationSVC.DomainSVC.GetDraftAPP(ctx, pID)
 | |
| 	if err != nil {
 | |
| 		internalServerErrorResponse(ctx, c, err)
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	resp, err := memory.VariableApplicationSVC.GetProjectVariablesMeta(ctx, pInfo.OwnerID, &req)
 | |
| 	if err != nil {
 | |
| 		invalidParamRequestResponse(c, err.Error())
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	c.JSON(consts.StatusOK, resp)
 | |
| }
 | |
| 
 | |
| // UpdateProjectVariable .
 | |
| // @router /api/memory/project/variable/meta_update [POST]
 | |
| func UpdateProjectVariable(ctx context.Context, c *app.RequestContext) {
 | |
| 	var err error
 | |
| 	var req project_memory.UpdateProjectVariableReq
 | |
| 	err = c.BindAndValidate(&req)
 | |
| 	if err != nil {
 | |
| 		c.String(consts.StatusBadRequest, err.Error())
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	if req.ProjectID == "" {
 | |
| 		invalidParamRequestResponse(c, "project_id is empty")
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	key2Var := make(map[string]*project_memory.Variable)
 | |
| 	for _, v := range req.VariableList {
 | |
| 		if v.Keyword == "" {
 | |
| 			invalidParamRequestResponse(c, "variable name is empty")
 | |
| 			return
 | |
| 		}
 | |
| 
 | |
| 		if key2Var[v.Keyword] != nil {
 | |
| 			invalidParamRequestResponse(c, "variable keyword is duplicate")
 | |
| 			return
 | |
| 		}
 | |
| 
 | |
| 		key2Var[v.Keyword] = v
 | |
| 	}
 | |
| 
 | |
| 	resp, err := memory.VariableApplicationSVC.UpdateProjectVariable(ctx, req)
 | |
| 	if err != nil {
 | |
| 		internalServerErrorResponse(ctx, c, err)
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	c.JSON(consts.StatusOK, resp)
 | |
| }
 | |
| 
 | |
| // SetKvMemory .
 | |
| // @router /api/memory/variable/upsert [POST]
 | |
| func SetKvMemory(ctx context.Context, c *app.RequestContext) {
 | |
| 	var err error
 | |
| 	var req kvmemory.SetKvMemoryReq
 | |
| 	err = c.BindAndValidate(&req)
 | |
| 	if err != nil {
 | |
| 		c.String(consts.StatusBadRequest, err.Error())
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	if req.BotID == 0 && req.GetProjectID() == "" {
 | |
| 		invalidParamRequestResponse(c, "bot_id and project_id are both empty")
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	if len(req.Data) == 0 {
 | |
| 		invalidParamRequestResponse(c, "data is empty")
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	resp, err := memory.VariableApplicationSVC.SetVariableInstance(ctx, &req)
 | |
| 	if err != nil {
 | |
| 		internalServerErrorResponse(ctx, c, err)
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	c.JSON(consts.StatusOK, resp)
 | |
| }
 | |
| 
 | |
| // GetMemoryVariableMeta .
 | |
| // @router /api/memory/variable/get_meta [POST]
 | |
| func GetMemoryVariableMeta(ctx context.Context, c *app.RequestContext) {
 | |
| 	var err error
 | |
| 	var req project_memory.GetMemoryVariableMetaReq
 | |
| 	err = c.BindAndValidate(&req)
 | |
| 	if err != nil {
 | |
| 		c.String(consts.StatusBadRequest, err.Error())
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	resp, err := memory.VariableApplicationSVC.GetVariableMeta(ctx, &req)
 | |
| 	if err != nil {
 | |
| 		internalServerErrorResponse(ctx, c, err)
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	c.JSON(consts.StatusOK, resp)
 | |
| }
 | |
| 
 | |
| // DelProfileMemory .
 | |
| // @router /api/memory/variable/delete [POST]
 | |
| func DelProfileMemory(ctx context.Context, c *app.RequestContext) {
 | |
| 	var err error
 | |
| 	var req kvmemory.DelProfileMemoryRequest
 | |
| 	err = c.BindAndValidate(&req)
 | |
| 	if err != nil {
 | |
| 		c.String(consts.StatusBadRequest, err.Error())
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	if req.BotID == 0 && req.GetProjectID() == "" {
 | |
| 		invalidParamRequestResponse(c, "bot_id and project_id are both empty")
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	resp, err := memory.VariableApplicationSVC.DeleteVariableInstance(ctx, &req)
 | |
| 	if err != nil {
 | |
| 		internalServerErrorResponse(ctx, c, err)
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	c.JSON(consts.StatusOK, resp)
 | |
| }
 | |
| 
 | |
| // GetPlayGroundMemory .
 | |
| // @router /api/memory/variable/get [POST]
 | |
| func GetPlayGroundMemory(ctx context.Context, c *app.RequestContext) {
 | |
| 	var err error
 | |
| 	var req kvmemory.GetProfileMemoryRequest
 | |
| 	err = c.BindAndValidate(&req)
 | |
| 	if err != nil {
 | |
| 		c.String(consts.StatusBadRequest, err.Error())
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	if req.BotID == 0 && req.GetProjectID() == "" {
 | |
| 		invalidParamRequestResponse(c, "bot_id and project_id are both empty")
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	resp, err := memory.VariableApplicationSVC.GetPlayGroundMemory(ctx, &req)
 | |
| 	if err != nil {
 | |
| 		internalServerErrorResponse(ctx, c, err)
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	c.JSON(consts.StatusOK, resp)
 | |
| }
 | |
| 
 | |
| // GetDocumentTableInfo .
 | |
| // @router /api/memory/doc_table_info [GET]
 | |
| func GetDocumentTableInfo(ctx context.Context, c *app.RequestContext) {
 | |
| 	var err error
 | |
| 	var req document.GetDocumentTableInfoRequest
 | |
| 	err = c.BindAndValidate(&req)
 | |
| 	if err != nil {
 | |
| 		c.String(consts.StatusBadRequest, err.Error())
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	resp := new(document.GetDocumentTableInfoResponse)
 | |
| 	resp, err = knowledge.KnowledgeSVC.GetDocumentTableInfo(ctx, &req)
 | |
| 	if err != nil {
 | |
| 		internalServerErrorResponse(ctx, c, err)
 | |
| 		return
 | |
| 	}
 | |
| 	c.JSON(consts.StatusOK, resp)
 | |
| }
 | |
| 
 | |
| // GetModeConfig .
 | |
| // @router /api/memory/table_mode_config [GET]
 | |
| func GetModeConfig(ctx context.Context, c *app.RequestContext) {
 | |
| 	var err error
 | |
| 	var req table.GetModeConfigRequest
 | |
| 	err = c.BindAndValidate(&req)
 | |
| 	if err != nil {
 | |
| 		c.String(consts.StatusBadRequest, err.Error())
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	if req.BotID == 0 {
 | |
| 		invalidParamRequestResponse(c, "bot_id is zero")
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	resp, err := memory.DatabaseApplicationSVC.GetModeConfig(ctx, &req)
 | |
| 	if err != nil {
 | |
| 		internalServerErrorResponse(ctx, c, err)
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	c.JSON(consts.StatusOK, resp)
 | |
| }
 |