From ff7433f60ead08c9af466391b41332fd9f6a5a8c Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Mon, 22 Dec 2025 15:48:48 +0800 Subject: [PATCH 01/58] [feat][prompt] add no render --- .../loop/prompt/domain/prompt/k-prompt.go | 53 +++++++++++ .../coze/loop/prompt/domain/prompt/prompt.go | 92 +++++++++++++++++-- .../prompt/domain/entity/prompt_detail.go | 73 ++++++++++++--- .../coze/loop/prompt/domain/prompt.thrift | 1 + 4 files changed, 198 insertions(+), 21 deletions(-) diff --git a/backend/kitex_gen/coze/loop/prompt/domain/prompt/k-prompt.go b/backend/kitex_gen/coze/loop/prompt/domain/prompt/k-prompt.go index 74ee8d3dd..662b91384 100644 --- a/backend/kitex_gen/coze/loop/prompt/domain/prompt/k-prompt.go +++ b/backend/kitex_gen/coze/loop/prompt/domain/prompt/k-prompt.go @@ -4811,6 +4811,20 @@ func (p *Message) FastRead(buf []byte) (int, error) { goto SkipFieldError } } + case 7: + if fieldTypeId == thrift.BOOL { + l, err = p.FastReadField7(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } case 100: if fieldTypeId == thrift.MAP { l, err = p.FastReadField100(buf[offset:]) @@ -4949,6 +4963,20 @@ func (p *Message) FastReadField6(buf []byte) (int, error) { return offset, nil } +func (p *Message) FastReadField7(buf []byte) (int, error) { + offset := 0 + + var _field *bool + if v, l, err := thrift.Binary.ReadBool(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.NoRender = _field + return offset, nil +} + func (p *Message) FastReadField100(buf []byte) (int, error) { offset := 0 @@ -4988,6 +5016,7 @@ func (p *Message) FastWrite(buf []byte) int { func (p *Message) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { + offset += p.fastWriteField7(buf[offset:], w) offset += p.fastWriteField1(buf[offset:], w) offset += p.fastWriteField2(buf[offset:], w) offset += p.fastWriteField3(buf[offset:], w) @@ -5009,6 +5038,7 @@ func (p *Message) BLength() int { l += p.field4Length() l += p.field5Length() l += p.field6Length() + l += p.field7Length() l += p.field100Length() } l += thrift.Binary.FieldStopLength() @@ -5083,6 +5113,15 @@ func (p *Message) fastWriteField6(buf []byte, w thrift.NocopyWriter) int { return offset } +func (p *Message) fastWriteField7(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetNoRender() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.BOOL, 7) + offset += thrift.Binary.WriteBool(buf[offset:], *p.NoRender) + } + return offset +} + func (p *Message) fastWriteField100(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetMetadata() { @@ -5162,6 +5201,15 @@ func (p *Message) field6Length() int { return l } +func (p *Message) field7Length() int { + l := 0 + if p.IsSetNoRender() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.BoolLength() + } + return l +} + func (p *Message) field100Length() int { l := 0 if p.IsSetMetadata() { @@ -5242,6 +5290,11 @@ func (p *Message) DeepCopy(s interface{}) error { } } + if src.NoRender != nil { + tmp := *src.NoRender + p.NoRender = &tmp + } + if src.Metadata != nil { p.Metadata = make(map[string]string, len(src.Metadata)) for key, val := range src.Metadata { diff --git a/backend/kitex_gen/coze/loop/prompt/domain/prompt/prompt.go b/backend/kitex_gen/coze/loop/prompt/domain/prompt/prompt.go index d9c658430..5928b4972 100644 --- a/backend/kitex_gen/coze/loop/prompt/domain/prompt/prompt.go +++ b/backend/kitex_gen/coze/loop/prompt/domain/prompt/prompt.go @@ -6649,13 +6649,15 @@ func (p *ParamOption) Field2DeepEqual(src *string) bool { } type Message struct { - Role *Role `thrift:"role,1,optional" frugal:"1,optional,string" form:"role" json:"role,omitempty" query:"role"` - ReasoningContent *string `thrift:"reasoning_content,2,optional" frugal:"2,optional,string" form:"reasoning_content" json:"reasoning_content,omitempty" query:"reasoning_content"` - Content *string `thrift:"content,3,optional" frugal:"3,optional,string" form:"content" json:"content,omitempty" query:"content"` - Parts []*ContentPart `thrift:"parts,4,optional" frugal:"4,optional,list" form:"parts" json:"parts,omitempty" query:"parts"` - ToolCallID *string `thrift:"tool_call_id,5,optional" frugal:"5,optional,string" form:"tool_call_id" json:"tool_call_id,omitempty" query:"tool_call_id"` - ToolCalls []*ToolCall `thrift:"tool_calls,6,optional" frugal:"6,optional,list" form:"tool_calls" json:"tool_calls,omitempty" query:"tool_calls"` - Metadata map[string]string `thrift:"metadata,100,optional" frugal:"100,optional,map" form:"metadata" json:"metadata,omitempty" query:"metadata"` + Role *Role `thrift:"role,1,optional" frugal:"1,optional,string" form:"role" json:"role,omitempty" query:"role"` + ReasoningContent *string `thrift:"reasoning_content,2,optional" frugal:"2,optional,string" form:"reasoning_content" json:"reasoning_content,omitempty" query:"reasoning_content"` + Content *string `thrift:"content,3,optional" frugal:"3,optional,string" form:"content" json:"content,omitempty" query:"content"` + Parts []*ContentPart `thrift:"parts,4,optional" frugal:"4,optional,list" form:"parts" json:"parts,omitempty" query:"parts"` + ToolCallID *string `thrift:"tool_call_id,5,optional" frugal:"5,optional,string" form:"tool_call_id" json:"tool_call_id,omitempty" query:"tool_call_id"` + ToolCalls []*ToolCall `thrift:"tool_calls,6,optional" frugal:"6,optional,list" form:"tool_calls" json:"tool_calls,omitempty" query:"tool_calls"` + // 是否不需要渲染 + NoRender *bool `thrift:"no_render,7,optional" frugal:"7,optional,bool" form:"no_render" json:"no_render,omitempty" query:"no_render"` + Metadata map[string]string `thrift:"metadata,100,optional" frugal:"100,optional,map" form:"metadata" json:"metadata,omitempty" query:"metadata"` } func NewMessage() *Message { @@ -6737,6 +6739,18 @@ func (p *Message) GetToolCalls() (v []*ToolCall) { return p.ToolCalls } +var Message_NoRender_DEFAULT bool + +func (p *Message) GetNoRender() (v bool) { + if p == nil { + return + } + if !p.IsSetNoRender() { + return Message_NoRender_DEFAULT + } + return *p.NoRender +} + var Message_Metadata_DEFAULT map[string]string func (p *Message) GetMetadata() (v map[string]string) { @@ -6766,6 +6780,9 @@ func (p *Message) SetToolCallID(val *string) { func (p *Message) SetToolCalls(val []*ToolCall) { p.ToolCalls = val } +func (p *Message) SetNoRender(val *bool) { + p.NoRender = val +} func (p *Message) SetMetadata(val map[string]string) { p.Metadata = val } @@ -6777,6 +6794,7 @@ var fieldIDToName_Message = map[int16]string{ 4: "parts", 5: "tool_call_id", 6: "tool_calls", + 7: "no_render", 100: "metadata", } @@ -6804,6 +6822,10 @@ func (p *Message) IsSetToolCalls() bool { return p.ToolCalls != nil } +func (p *Message) IsSetNoRender() bool { + return p.NoRender != nil +} + func (p *Message) IsSetMetadata() bool { return p.Metadata != nil } @@ -6874,6 +6896,14 @@ func (p *Message) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 7: + if fieldTypeId == thrift.BOOL { + if err = p.ReadField7(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } case 100: if fieldTypeId == thrift.MAP { if err = p.ReadField100(iprot); err != nil { @@ -7001,6 +7031,17 @@ func (p *Message) ReadField6(iprot thrift.TProtocol) error { p.ToolCalls = _field return nil } +func (p *Message) ReadField7(iprot thrift.TProtocol) error { + + var _field *bool + if v, err := iprot.ReadBool(); err != nil { + return err + } else { + _field = &v + } + p.NoRender = _field + return nil +} func (p *Message) ReadField100(iprot thrift.TProtocol) error { _, _, size, err := iprot.ReadMapBegin() if err != nil { @@ -7061,6 +7102,10 @@ func (p *Message) Write(oprot thrift.TProtocol) (err error) { fieldId = 6 goto WriteFieldError } + if err = p.writeField7(oprot); err != nil { + fieldId = 7 + goto WriteFieldError + } if err = p.writeField100(oprot); err != nil { fieldId = 100 goto WriteFieldError @@ -7207,6 +7252,24 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) } +func (p *Message) writeField7(oprot thrift.TProtocol) (err error) { + if p.IsSetNoRender() { + if err = oprot.WriteFieldBegin("no_render", thrift.BOOL, 7); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteBool(*p.NoRender); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 7 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) +} func (p *Message) writeField100(oprot thrift.TProtocol) (err error) { if p.IsSetMetadata() { if err = oprot.WriteFieldBegin("metadata", thrift.MAP, 100); err != nil { @@ -7269,6 +7332,9 @@ func (p *Message) DeepEqual(ano *Message) bool { if !p.Field6DeepEqual(ano.ToolCalls) { return false } + if !p.Field7DeepEqual(ano.NoRender) { + return false + } if !p.Field100DeepEqual(ano.Metadata) { return false } @@ -7349,6 +7415,18 @@ func (p *Message) Field6DeepEqual(src []*ToolCall) bool { } return true } +func (p *Message) Field7DeepEqual(src *bool) bool { + + if p.NoRender == src { + return true + } else if p.NoRender == nil || src == nil { + return false + } + if *p.NoRender != *src { + return false + } + return true +} func (p *Message) Field100DeepEqual(src map[string]string) bool { if len(p.Metadata) != len(src) { diff --git a/backend/modules/prompt/domain/entity/prompt_detail.go b/backend/modules/prompt/domain/entity/prompt_detail.go index 0bc663bff..b4c9ecb26 100644 --- a/backend/modules/prompt/domain/entity/prompt_detail.go +++ b/backend/modules/prompt/domain/entity/prompt_detail.go @@ -59,6 +59,7 @@ type Message struct { Parts []*ContentPart `json:"parts,omitempty"` ToolCallID *string `json:"tool_call_id,omitempty"` ToolCalls []*ToolCall `json:"tool_calls,omitempty"` + NoRender *bool `json:"no_render,omitempty"` Metadata map[string]string `json:"metadata,omitempty"` } @@ -246,36 +247,80 @@ func (pt *PromptTemplate) formatMessages(messages []*Message, variableVals []*Va formattedMessages = append(formattedMessages, placeholderMessage) } } - default: - if templateStr := ptr.From(message.Content); templateStr != "" { - formattedStr, err := formatText(pt.TemplateType, templateStr, defMap, valMap) - if err != nil { + + case RoleTool: + // Tool:不渲染 + formattedMessages = append(formattedMessages, message) + + case RoleSystem, RoleUser: + // System/User:渲染,除非 NoRender=true + if message.NoRender == nil || !ptr.From(message.NoRender) { + // 需要渲染 + if err := pt.renderMessage(message, defMap, valMap); err != nil { return nil, err } - message.Content = ptr.Of(formattedStr) } - for _, part := range message.Parts { - if part.Type == ContentTypeText && ptr.From(part.Text) != "" { - formattedStr, err := formatText(pt.TemplateType, ptr.From(part.Text), defMap, valMap) - if err != nil { - return nil, err - } - part.Text = ptr.Of(formattedStr) + formattedMessages = append(formattedMessages, message) + + case RoleAssistant: + // Assistant:仅当 NoRender=false(显式标记,通常来自原始 prompt)才渲染;nil 或 true 均不渲染 + if message.NoRender != nil && !ptr.From(message.NoRender) { + // NoRender=false,需要渲染 + if err := pt.renderMessage(message, defMap, valMap); err != nil { + return nil, err } } - message.Parts = formatMultiPart(message.Parts, defMap, valMap) + formattedMessages = append(formattedMessages, message) + + default: + // 其他角色默认不渲染 formattedMessages = append(formattedMessages, message) } } return formattedMessages, nil } +func (pt *PromptTemplate) renderMessage(message *Message, defMap map[string]*VariableDef, valMap map[string]*VariableVal) error { + // 渲染消息内容 + if templateStr := ptr.From(message.Content); templateStr != "" { + formattedStr, err := formatText(pt.TemplateType, templateStr, defMap, valMap) + if err != nil { + return err + } + message.Content = ptr.Of(formattedStr) + } + + // 渲染消息部分 + for _, part := range message.Parts { + if part.Type == ContentTypeText && ptr.From(part.Text) != "" { + formattedStr, err := formatText(pt.TemplateType, ptr.From(part.Text), defMap, valMap) + if err != nil { + return err + } + part.Text = ptr.Of(formattedStr) + } + } + + // 格式化多部分内容 + message.Parts = formatMultiPart(message.Parts, defMap, valMap) + return nil +} + func (pt *PromptTemplate) getTemplateMessages(messages []*Message) []*Message { if pt == nil { return nil } var messagesToFormat []*Message - messagesToFormat = append(messagesToFormat, pt.Messages...) + + // 对于来自pt的messages(原始托管的message),统一设置no_render为false,表示一定要渲染 + for _, msg := range pt.Messages { + if msg != nil { + msg.NoRender = ptr.Of(false) + messagesToFormat = append(messagesToFormat, msg) + } + } + + // 入参的messages的no_render不需要改变,保持原状 messagesToFormat = append(messagesToFormat, messages...) return messagesToFormat } diff --git a/idl/thrift/coze/loop/prompt/domain/prompt.thrift b/idl/thrift/coze/loop/prompt/domain/prompt.thrift index 6bca090a4..07802b2ff 100644 --- a/idl/thrift/coze/loop/prompt/domain/prompt.thrift +++ b/idl/thrift/coze/loop/prompt/domain/prompt.thrift @@ -140,6 +140,7 @@ struct Message { 4: optional list parts 5: optional string tool_call_id 6: optional list tool_calls + 7: optional bool no_render // 是否不需要渲染 100: optional map metadata } From 51ef5cf3f252eff3cc6f14960ce0587e2d2598d8 Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Mon, 22 Dec 2025 16:56:02 +0800 Subject: [PATCH 02/58] [feat][prompt] openapi add no render --- .../openapi/coze.loop.prompt.openapi.go | 78 +++++++++++++++++++ .../openapi/k-coze.loop.prompt.openapi.go | 53 +++++++++++++ .../prompt/application/convertor/openapi.go | 2 + .../prompt/coze.loop.prompt.openapi.thrift | 1 + 4 files changed, 134 insertions(+) diff --git a/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi.go b/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi.go index f6888a966..8011c8b8d 100644 --- a/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi.go +++ b/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi.go @@ -5455,6 +5455,8 @@ type Message struct { ToolCallID *string `thrift:"tool_call_id,5,optional" frugal:"5,optional,string" form:"tool_call_id" json:"tool_call_id,omitempty" query:"tool_call_id"` // tool调用(role为assistant时有效) ToolCalls []*ToolCall `thrift:"tool_calls,6,optional" frugal:"6,optional,list" form:"tool_calls" json:"tool_calls,omitempty" query:"tool_calls"` + // 是否不需要渲染 + NoRender *bool `thrift:"no_render,7,optional" frugal:"7,optional,bool" form:"no_render" json:"no_render,omitempty" query:"no_render"` // 消息元信息 Metadata map[string]string `thrift:"metadata,100,optional" frugal:"100,optional,map" form:"metadata" json:"metadata,omitempty" query:"metadata"` } @@ -5538,6 +5540,18 @@ func (p *Message) GetToolCalls() (v []*ToolCall) { return p.ToolCalls } +var Message_NoRender_DEFAULT bool + +func (p *Message) GetNoRender() (v bool) { + if p == nil { + return + } + if !p.IsSetNoRender() { + return Message_NoRender_DEFAULT + } + return *p.NoRender +} + var Message_Metadata_DEFAULT map[string]string func (p *Message) GetMetadata() (v map[string]string) { @@ -5567,6 +5581,9 @@ func (p *Message) SetToolCallID(val *string) { func (p *Message) SetToolCalls(val []*ToolCall) { p.ToolCalls = val } +func (p *Message) SetNoRender(val *bool) { + p.NoRender = val +} func (p *Message) SetMetadata(val map[string]string) { p.Metadata = val } @@ -5578,6 +5595,7 @@ var fieldIDToName_Message = map[int16]string{ 4: "reasoning_content", 5: "tool_call_id", 6: "tool_calls", + 7: "no_render", 100: "metadata", } @@ -5605,6 +5623,10 @@ func (p *Message) IsSetToolCalls() bool { return p.ToolCalls != nil } +func (p *Message) IsSetNoRender() bool { + return p.NoRender != nil +} + func (p *Message) IsSetMetadata() bool { return p.Metadata != nil } @@ -5675,6 +5697,14 @@ func (p *Message) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 7: + if fieldTypeId == thrift.BOOL { + if err = p.ReadField7(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } case 100: if fieldTypeId == thrift.MAP { if err = p.ReadField100(iprot); err != nil { @@ -5802,6 +5832,17 @@ func (p *Message) ReadField6(iprot thrift.TProtocol) error { p.ToolCalls = _field return nil } +func (p *Message) ReadField7(iprot thrift.TProtocol) error { + + var _field *bool + if v, err := iprot.ReadBool(); err != nil { + return err + } else { + _field = &v + } + p.NoRender = _field + return nil +} func (p *Message) ReadField100(iprot thrift.TProtocol) error { _, _, size, err := iprot.ReadMapBegin() if err != nil { @@ -5862,6 +5903,10 @@ func (p *Message) Write(oprot thrift.TProtocol) (err error) { fieldId = 6 goto WriteFieldError } + if err = p.writeField7(oprot); err != nil { + fieldId = 7 + goto WriteFieldError + } if err = p.writeField100(oprot); err != nil { fieldId = 100 goto WriteFieldError @@ -6008,6 +6053,24 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) } +func (p *Message) writeField7(oprot thrift.TProtocol) (err error) { + if p.IsSetNoRender() { + if err = oprot.WriteFieldBegin("no_render", thrift.BOOL, 7); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteBool(*p.NoRender); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 7 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) +} func (p *Message) writeField100(oprot thrift.TProtocol) (err error) { if p.IsSetMetadata() { if err = oprot.WriteFieldBegin("metadata", thrift.MAP, 100); err != nil { @@ -6070,6 +6133,9 @@ func (p *Message) DeepEqual(ano *Message) bool { if !p.Field6DeepEqual(ano.ToolCalls) { return false } + if !p.Field7DeepEqual(ano.NoRender) { + return false + } if !p.Field100DeepEqual(ano.Metadata) { return false } @@ -6150,6 +6216,18 @@ func (p *Message) Field6DeepEqual(src []*ToolCall) bool { } return true } +func (p *Message) Field7DeepEqual(src *bool) bool { + + if p.NoRender == src { + return true + } else if p.NoRender == nil || src == nil { + return false + } + if *p.NoRender != *src { + return false + } + return true +} func (p *Message) Field100DeepEqual(src map[string]string) bool { if len(p.Metadata) != len(src) { diff --git a/backend/kitex_gen/coze/loop/prompt/openapi/k-coze.loop.prompt.openapi.go b/backend/kitex_gen/coze/loop/prompt/openapi/k-coze.loop.prompt.openapi.go index 485c86299..ea62a8a66 100644 --- a/backend/kitex_gen/coze/loop/prompt/openapi/k-coze.loop.prompt.openapi.go +++ b/backend/kitex_gen/coze/loop/prompt/openapi/k-coze.loop.prompt.openapi.go @@ -4021,6 +4021,20 @@ func (p *Message) FastRead(buf []byte) (int, error) { goto SkipFieldError } } + case 7: + if fieldTypeId == thrift.BOOL { + l, err = p.FastReadField7(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } case 100: if fieldTypeId == thrift.MAP { l, err = p.FastReadField100(buf[offset:]) @@ -4159,6 +4173,20 @@ func (p *Message) FastReadField6(buf []byte) (int, error) { return offset, nil } +func (p *Message) FastReadField7(buf []byte) (int, error) { + offset := 0 + + var _field *bool + if v, l, err := thrift.Binary.ReadBool(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.NoRender = _field + return offset, nil +} + func (p *Message) FastReadField100(buf []byte) (int, error) { offset := 0 @@ -4198,6 +4226,7 @@ func (p *Message) FastWrite(buf []byte) int { func (p *Message) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { + offset += p.fastWriteField7(buf[offset:], w) offset += p.fastWriteField1(buf[offset:], w) offset += p.fastWriteField2(buf[offset:], w) offset += p.fastWriteField3(buf[offset:], w) @@ -4219,6 +4248,7 @@ func (p *Message) BLength() int { l += p.field4Length() l += p.field5Length() l += p.field6Length() + l += p.field7Length() l += p.field100Length() } l += thrift.Binary.FieldStopLength() @@ -4293,6 +4323,15 @@ func (p *Message) fastWriteField6(buf []byte, w thrift.NocopyWriter) int { return offset } +func (p *Message) fastWriteField7(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetNoRender() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.BOOL, 7) + offset += thrift.Binary.WriteBool(buf[offset:], *p.NoRender) + } + return offset +} + func (p *Message) fastWriteField100(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetMetadata() { @@ -4372,6 +4411,15 @@ func (p *Message) field6Length() int { return l } +func (p *Message) field7Length() int { + l := 0 + if p.IsSetNoRender() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.BoolLength() + } + return l +} + func (p *Message) field100Length() int { l := 0 if p.IsSetMetadata() { @@ -4452,6 +4500,11 @@ func (p *Message) DeepCopy(s interface{}) error { } } + if src.NoRender != nil { + tmp := *src.NoRender + p.NoRender = &tmp + } + if src.Metadata != nil { p.Metadata = make(map[string]string, len(src.Metadata)) for key, val := range src.Metadata { diff --git a/backend/modules/prompt/application/convertor/openapi.go b/backend/modules/prompt/application/convertor/openapi.go index c9acf5416..08e4971be 100644 --- a/backend/modules/prompt/application/convertor/openapi.go +++ b/backend/modules/prompt/application/convertor/openapi.go @@ -72,6 +72,7 @@ func OpenAPIMessageDO2DTO(do *entity.Message) *openapi.Message { Parts: OpenAPIBatchContentPartDO2DTO(do.Parts), ToolCallID: do.ToolCallID, ToolCalls: OpenAPIBatchToolCallDO2DTO(do.ToolCalls), + NoRender: do.NoRender, Metadata: do.Metadata, } } @@ -257,6 +258,7 @@ func OpenAPIMessageDTO2DO(dto *openapi.Message) *entity.Message { Parts: OpenAPIBatchContentPartDTO2DO(dto.Parts), ToolCallID: dto.ToolCallID, ToolCalls: OpenAPIBatchToolCallDTO2DO(dto.ToolCalls), + NoRender: dto.NoRender, Metadata: dto.Metadata, } } diff --git a/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift b/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift index fc6164aad..09dc0cadd 100644 --- a/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift +++ b/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift @@ -128,6 +128,7 @@ struct Message { 4: optional string reasoning_content // 推理思考内容 5: optional string tool_call_id // tool调用ID(role为tool时有效) 6: optional list tool_calls // tool调用(role为assistant时有效) + 7: optional bool no_render // 是否不需要渲染 100: optional map metadata // 消息元信息 } From 3d06b54a1e8f4cb65a472505a5eeda960f7767c6 Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Tue, 23 Dec 2025 20:54:20 +0800 Subject: [PATCH 03/58] [feat][prompt] noRender -> skipRender --- .../loop/prompt/domain/prompt/k-prompt.go | 14 +++---- .../coze/loop/prompt/domain/prompt/prompt.go | 42 +++++++++---------- .../openapi/coze.loop.prompt.openapi.go | 40 +++++++++--------- .../openapi/k-coze.loop.prompt.openapi.go | 14 +++---- .../prompt/application/convertor/openapi.go | 4 +- .../prompt/domain/entity/prompt_detail.go | 18 ++++---- .../prompt/coze.loop.prompt.openapi.thrift | 2 +- .../coze/loop/prompt/domain/prompt.thrift | 2 +- 8 files changed, 68 insertions(+), 68 deletions(-) diff --git a/backend/kitex_gen/coze/loop/prompt/domain/prompt/k-prompt.go b/backend/kitex_gen/coze/loop/prompt/domain/prompt/k-prompt.go index 662b91384..75b86e633 100644 --- a/backend/kitex_gen/coze/loop/prompt/domain/prompt/k-prompt.go +++ b/backend/kitex_gen/coze/loop/prompt/domain/prompt/k-prompt.go @@ -4973,7 +4973,7 @@ func (p *Message) FastReadField7(buf []byte) (int, error) { offset += l _field = &v } - p.NoRender = _field + p.SkipRender = _field return offset, nil } @@ -5115,9 +5115,9 @@ func (p *Message) fastWriteField6(buf []byte, w thrift.NocopyWriter) int { func (p *Message) fastWriteField7(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetNoRender() { + if p.IsSetSkipRender() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.BOOL, 7) - offset += thrift.Binary.WriteBool(buf[offset:], *p.NoRender) + offset += thrift.Binary.WriteBool(buf[offset:], *p.SkipRender) } return offset } @@ -5203,7 +5203,7 @@ func (p *Message) field6Length() int { func (p *Message) field7Length() int { l := 0 - if p.IsSetNoRender() { + if p.IsSetSkipRender() { l += thrift.Binary.FieldBeginLength() l += thrift.Binary.BoolLength() } @@ -5290,9 +5290,9 @@ func (p *Message) DeepCopy(s interface{}) error { } } - if src.NoRender != nil { - tmp := *src.NoRender - p.NoRender = &tmp + if src.SkipRender != nil { + tmp := *src.SkipRender + p.SkipRender = &tmp } if src.Metadata != nil { diff --git a/backend/kitex_gen/coze/loop/prompt/domain/prompt/prompt.go b/backend/kitex_gen/coze/loop/prompt/domain/prompt/prompt.go index 5928b4972..ffeda0c22 100644 --- a/backend/kitex_gen/coze/loop/prompt/domain/prompt/prompt.go +++ b/backend/kitex_gen/coze/loop/prompt/domain/prompt/prompt.go @@ -6655,9 +6655,9 @@ type Message struct { Parts []*ContentPart `thrift:"parts,4,optional" frugal:"4,optional,list" form:"parts" json:"parts,omitempty" query:"parts"` ToolCallID *string `thrift:"tool_call_id,5,optional" frugal:"5,optional,string" form:"tool_call_id" json:"tool_call_id,omitempty" query:"tool_call_id"` ToolCalls []*ToolCall `thrift:"tool_calls,6,optional" frugal:"6,optional,list" form:"tool_calls" json:"tool_calls,omitempty" query:"tool_calls"` - // 是否不需要渲染 - NoRender *bool `thrift:"no_render,7,optional" frugal:"7,optional,bool" form:"no_render" json:"no_render,omitempty" query:"no_render"` - Metadata map[string]string `thrift:"metadata,100,optional" frugal:"100,optional,map" form:"metadata" json:"metadata,omitempty" query:"metadata"` + // 是否跳过渲染 + SkipRender *bool `thrift:"skip_render,7,optional" frugal:"7,optional,bool" form:"skip_render" json:"skip_render,omitempty" query:"skip_render"` + Metadata map[string]string `thrift:"metadata,100,optional" frugal:"100,optional,map" form:"metadata" json:"metadata,omitempty" query:"metadata"` } func NewMessage() *Message { @@ -6739,16 +6739,16 @@ func (p *Message) GetToolCalls() (v []*ToolCall) { return p.ToolCalls } -var Message_NoRender_DEFAULT bool +var Message_SkipRender_DEFAULT bool -func (p *Message) GetNoRender() (v bool) { +func (p *Message) GetSkipRender() (v bool) { if p == nil { return } - if !p.IsSetNoRender() { - return Message_NoRender_DEFAULT + if !p.IsSetSkipRender() { + return Message_SkipRender_DEFAULT } - return *p.NoRender + return *p.SkipRender } var Message_Metadata_DEFAULT map[string]string @@ -6780,8 +6780,8 @@ func (p *Message) SetToolCallID(val *string) { func (p *Message) SetToolCalls(val []*ToolCall) { p.ToolCalls = val } -func (p *Message) SetNoRender(val *bool) { - p.NoRender = val +func (p *Message) SetSkipRender(val *bool) { + p.SkipRender = val } func (p *Message) SetMetadata(val map[string]string) { p.Metadata = val @@ -6794,7 +6794,7 @@ var fieldIDToName_Message = map[int16]string{ 4: "parts", 5: "tool_call_id", 6: "tool_calls", - 7: "no_render", + 7: "skip_render", 100: "metadata", } @@ -6822,8 +6822,8 @@ func (p *Message) IsSetToolCalls() bool { return p.ToolCalls != nil } -func (p *Message) IsSetNoRender() bool { - return p.NoRender != nil +func (p *Message) IsSetSkipRender() bool { + return p.SkipRender != nil } func (p *Message) IsSetMetadata() bool { @@ -7039,7 +7039,7 @@ func (p *Message) ReadField7(iprot thrift.TProtocol) error { } else { _field = &v } - p.NoRender = _field + p.SkipRender = _field return nil } func (p *Message) ReadField100(iprot thrift.TProtocol) error { @@ -7253,11 +7253,11 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) } func (p *Message) writeField7(oprot thrift.TProtocol) (err error) { - if p.IsSetNoRender() { - if err = oprot.WriteFieldBegin("no_render", thrift.BOOL, 7); err != nil { + if p.IsSetSkipRender() { + if err = oprot.WriteFieldBegin("skip_render", thrift.BOOL, 7); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteBool(*p.NoRender); err != nil { + if err := oprot.WriteBool(*p.SkipRender); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -7332,7 +7332,7 @@ func (p *Message) DeepEqual(ano *Message) bool { if !p.Field6DeepEqual(ano.ToolCalls) { return false } - if !p.Field7DeepEqual(ano.NoRender) { + if !p.Field7DeepEqual(ano.SkipRender) { return false } if !p.Field100DeepEqual(ano.Metadata) { @@ -7417,12 +7417,12 @@ func (p *Message) Field6DeepEqual(src []*ToolCall) bool { } func (p *Message) Field7DeepEqual(src *bool) bool { - if p.NoRender == src { + if p.SkipRender == src { return true - } else if p.NoRender == nil || src == nil { + } else if p.SkipRender == nil || src == nil { return false } - if *p.NoRender != *src { + if *p.SkipRender != *src { return false } return true diff --git a/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi.go b/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi.go index 8011c8b8d..2bb11f522 100644 --- a/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi.go +++ b/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi.go @@ -5455,8 +5455,8 @@ type Message struct { ToolCallID *string `thrift:"tool_call_id,5,optional" frugal:"5,optional,string" form:"tool_call_id" json:"tool_call_id,omitempty" query:"tool_call_id"` // tool调用(role为assistant时有效) ToolCalls []*ToolCall `thrift:"tool_calls,6,optional" frugal:"6,optional,list" form:"tool_calls" json:"tool_calls,omitempty" query:"tool_calls"` - // 是否不需要渲染 - NoRender *bool `thrift:"no_render,7,optional" frugal:"7,optional,bool" form:"no_render" json:"no_render,omitempty" query:"no_render"` + // 是否跳过需要渲染 + SkipRender *bool `thrift:"skip_render,7,optional" frugal:"7,optional,bool" form:"skip_render" json:"skip_render,omitempty" query:"skip_render"` // 消息元信息 Metadata map[string]string `thrift:"metadata,100,optional" frugal:"100,optional,map" form:"metadata" json:"metadata,omitempty" query:"metadata"` } @@ -5540,16 +5540,16 @@ func (p *Message) GetToolCalls() (v []*ToolCall) { return p.ToolCalls } -var Message_NoRender_DEFAULT bool +var Message_SkipRender_DEFAULT bool -func (p *Message) GetNoRender() (v bool) { +func (p *Message) GetSkipRender() (v bool) { if p == nil { return } - if !p.IsSetNoRender() { - return Message_NoRender_DEFAULT + if !p.IsSetSkipRender() { + return Message_SkipRender_DEFAULT } - return *p.NoRender + return *p.SkipRender } var Message_Metadata_DEFAULT map[string]string @@ -5581,8 +5581,8 @@ func (p *Message) SetToolCallID(val *string) { func (p *Message) SetToolCalls(val []*ToolCall) { p.ToolCalls = val } -func (p *Message) SetNoRender(val *bool) { - p.NoRender = val +func (p *Message) SetSkipRender(val *bool) { + p.SkipRender = val } func (p *Message) SetMetadata(val map[string]string) { p.Metadata = val @@ -5595,7 +5595,7 @@ var fieldIDToName_Message = map[int16]string{ 4: "reasoning_content", 5: "tool_call_id", 6: "tool_calls", - 7: "no_render", + 7: "skip_render", 100: "metadata", } @@ -5623,8 +5623,8 @@ func (p *Message) IsSetToolCalls() bool { return p.ToolCalls != nil } -func (p *Message) IsSetNoRender() bool { - return p.NoRender != nil +func (p *Message) IsSetSkipRender() bool { + return p.SkipRender != nil } func (p *Message) IsSetMetadata() bool { @@ -5840,7 +5840,7 @@ func (p *Message) ReadField7(iprot thrift.TProtocol) error { } else { _field = &v } - p.NoRender = _field + p.SkipRender = _field return nil } func (p *Message) ReadField100(iprot thrift.TProtocol) error { @@ -6054,11 +6054,11 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) } func (p *Message) writeField7(oprot thrift.TProtocol) (err error) { - if p.IsSetNoRender() { - if err = oprot.WriteFieldBegin("no_render", thrift.BOOL, 7); err != nil { + if p.IsSetSkipRender() { + if err = oprot.WriteFieldBegin("skip_render", thrift.BOOL, 7); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteBool(*p.NoRender); err != nil { + if err := oprot.WriteBool(*p.SkipRender); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -6133,7 +6133,7 @@ func (p *Message) DeepEqual(ano *Message) bool { if !p.Field6DeepEqual(ano.ToolCalls) { return false } - if !p.Field7DeepEqual(ano.NoRender) { + if !p.Field7DeepEqual(ano.SkipRender) { return false } if !p.Field100DeepEqual(ano.Metadata) { @@ -6218,12 +6218,12 @@ func (p *Message) Field6DeepEqual(src []*ToolCall) bool { } func (p *Message) Field7DeepEqual(src *bool) bool { - if p.NoRender == src { + if p.SkipRender == src { return true - } else if p.NoRender == nil || src == nil { + } else if p.SkipRender == nil || src == nil { return false } - if *p.NoRender != *src { + if *p.SkipRender != *src { return false } return true diff --git a/backend/kitex_gen/coze/loop/prompt/openapi/k-coze.loop.prompt.openapi.go b/backend/kitex_gen/coze/loop/prompt/openapi/k-coze.loop.prompt.openapi.go index ea62a8a66..51fc56c4a 100644 --- a/backend/kitex_gen/coze/loop/prompt/openapi/k-coze.loop.prompt.openapi.go +++ b/backend/kitex_gen/coze/loop/prompt/openapi/k-coze.loop.prompt.openapi.go @@ -4183,7 +4183,7 @@ func (p *Message) FastReadField7(buf []byte) (int, error) { offset += l _field = &v } - p.NoRender = _field + p.SkipRender = _field return offset, nil } @@ -4325,9 +4325,9 @@ func (p *Message) fastWriteField6(buf []byte, w thrift.NocopyWriter) int { func (p *Message) fastWriteField7(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetNoRender() { + if p.IsSetSkipRender() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.BOOL, 7) - offset += thrift.Binary.WriteBool(buf[offset:], *p.NoRender) + offset += thrift.Binary.WriteBool(buf[offset:], *p.SkipRender) } return offset } @@ -4413,7 +4413,7 @@ func (p *Message) field6Length() int { func (p *Message) field7Length() int { l := 0 - if p.IsSetNoRender() { + if p.IsSetSkipRender() { l += thrift.Binary.FieldBeginLength() l += thrift.Binary.BoolLength() } @@ -4500,9 +4500,9 @@ func (p *Message) DeepCopy(s interface{}) error { } } - if src.NoRender != nil { - tmp := *src.NoRender - p.NoRender = &tmp + if src.SkipRender != nil { + tmp := *src.SkipRender + p.SkipRender = &tmp } if src.Metadata != nil { diff --git a/backend/modules/prompt/application/convertor/openapi.go b/backend/modules/prompt/application/convertor/openapi.go index 08e4971be..646252fb8 100644 --- a/backend/modules/prompt/application/convertor/openapi.go +++ b/backend/modules/prompt/application/convertor/openapi.go @@ -72,7 +72,7 @@ func OpenAPIMessageDO2DTO(do *entity.Message) *openapi.Message { Parts: OpenAPIBatchContentPartDO2DTO(do.Parts), ToolCallID: do.ToolCallID, ToolCalls: OpenAPIBatchToolCallDO2DTO(do.ToolCalls), - NoRender: do.NoRender, + SkipRender: do.SkipRender, Metadata: do.Metadata, } } @@ -258,7 +258,7 @@ func OpenAPIMessageDTO2DO(dto *openapi.Message) *entity.Message { Parts: OpenAPIBatchContentPartDTO2DO(dto.Parts), ToolCallID: dto.ToolCallID, ToolCalls: OpenAPIBatchToolCallDTO2DO(dto.ToolCalls), - NoRender: dto.NoRender, + SkipRender: dto.SkipRender, Metadata: dto.Metadata, } } diff --git a/backend/modules/prompt/domain/entity/prompt_detail.go b/backend/modules/prompt/domain/entity/prompt_detail.go index b4c9ecb26..8f0b07d6c 100644 --- a/backend/modules/prompt/domain/entity/prompt_detail.go +++ b/backend/modules/prompt/domain/entity/prompt_detail.go @@ -59,7 +59,7 @@ type Message struct { Parts []*ContentPart `json:"parts,omitempty"` ToolCallID *string `json:"tool_call_id,omitempty"` ToolCalls []*ToolCall `json:"tool_calls,omitempty"` - NoRender *bool `json:"no_render,omitempty"` + SkipRender *bool `json:"skip_render,omitempty"` Metadata map[string]string `json:"metadata,omitempty"` } @@ -253,8 +253,8 @@ func (pt *PromptTemplate) formatMessages(messages []*Message, variableVals []*Va formattedMessages = append(formattedMessages, message) case RoleSystem, RoleUser: - // System/User:渲染,除非 NoRender=true - if message.NoRender == nil || !ptr.From(message.NoRender) { + // System/User:渲染,除非 SkipRender=true + if message.SkipRender == nil || !ptr.From(message.SkipRender) { // 需要渲染 if err := pt.renderMessage(message, defMap, valMap); err != nil { return nil, err @@ -263,9 +263,9 @@ func (pt *PromptTemplate) formatMessages(messages []*Message, variableVals []*Va formattedMessages = append(formattedMessages, message) case RoleAssistant: - // Assistant:仅当 NoRender=false(显式标记,通常来自原始 prompt)才渲染;nil 或 true 均不渲染 - if message.NoRender != nil && !ptr.From(message.NoRender) { - // NoRender=false,需要渲染 + // Assistant:仅当 SkipRender=false(显式标记,通常来自原始 prompt)才渲染;nil 或 true 均不渲染 + if message.SkipRender != nil && !ptr.From(message.SkipRender) { + // SkipRender=false,需要渲染 if err := pt.renderMessage(message, defMap, valMap); err != nil { return nil, err } @@ -312,15 +312,15 @@ func (pt *PromptTemplate) getTemplateMessages(messages []*Message) []*Message { } var messagesToFormat []*Message - // 对于来自pt的messages(原始托管的message),统一设置no_render为false,表示一定要渲染 + // 对于来自pt的messages(原始托管的message),统一设置skip_render为false,表示一定要渲染 for _, msg := range pt.Messages { if msg != nil { - msg.NoRender = ptr.Of(false) + msg.SkipRender = ptr.Of(false) messagesToFormat = append(messagesToFormat, msg) } } - // 入参的messages的no_render不需要改变,保持原状 + // 入参的messages的skip_render不需要改变,保持原状 messagesToFormat = append(messagesToFormat, messages...) return messagesToFormat } diff --git a/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift b/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift index 09dc0cadd..f93ffc660 100644 --- a/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift +++ b/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift @@ -128,7 +128,7 @@ struct Message { 4: optional string reasoning_content // 推理思考内容 5: optional string tool_call_id // tool调用ID(role为tool时有效) 6: optional list tool_calls // tool调用(role为assistant时有效) - 7: optional bool no_render // 是否不需要渲染 + 7: optional bool skip_render // 是否跳过需要渲染 100: optional map metadata // 消息元信息 } diff --git a/idl/thrift/coze/loop/prompt/domain/prompt.thrift b/idl/thrift/coze/loop/prompt/domain/prompt.thrift index 07802b2ff..55904338b 100644 --- a/idl/thrift/coze/loop/prompt/domain/prompt.thrift +++ b/idl/thrift/coze/loop/prompt/domain/prompt.thrift @@ -140,7 +140,7 @@ struct Message { 4: optional list parts 5: optional string tool_call_id 6: optional list tool_calls - 7: optional bool no_render // 是否不需要渲染 + 7: optional bool skip_render // 是否跳过渲染 100: optional map metadata } From 637a369c224e1b2cfbf79f7df2239e2d012ebf3d Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Thu, 25 Dec 2025 17:36:23 +0800 Subject: [PATCH 04/58] [feat][prompt]: add custom tool & model config --- .../openapi/coze.loop.prompt.openapi.go | 242 +++++++++++++++++- .../coze.loop.prompt.openapi_validator.go | 10 + .../openapi/k-coze.loop.prompt.openapi.go | 195 ++++++++++++++ .../prompt/application/convertor/openapi.go | 120 +++++++++ backend/modules/prompt/application/openapi.go | 81 ++++++ .../prompt/coze.loop.prompt.openapi.thrift | 4 + 6 files changed, 651 insertions(+), 1 deletion(-) diff --git a/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi.go b/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi.go index 2bb11f522..e2569df93 100644 --- a/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi.go +++ b/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi.go @@ -8,6 +8,7 @@ import ( "github.com/apache/thrift/lib/go/thrift" "github.com/cloudwego/kitex/pkg/streaming" "github.com/coze-dev/coze-loop/backend/kitex_gen/base" + "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/prompt/domain/prompt" "strings" ) @@ -1042,7 +1043,13 @@ type ExecuteRequest struct { VariableVals []*VariableVal `thrift:"variable_vals,10,optional" frugal:"10,optional,list" form:"variable_vals" json:"variable_vals,omitempty"` // 消息 Messages []*Message `thrift:"messages,11,optional" frugal:"11,optional,list" form:"messages" json:"messages,omitempty"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` + // 自定义工具 + CustomTools []*Tool `thrift:"custom_tools,20,optional" frugal:"20,optional,list" form:"custom_tools" json:"custom_tools,omitempty"` + // 自定义工具调用配置 + CustomToolCallConfig *ToolCallConfig `thrift:"custom_tool_call_config,21,optional" frugal:"21,optional,ToolCallConfig" form:"custom_tool_call_config" json:"custom_tool_call_config,omitempty"` + // 自定义模型配置 + CustomModelConfig *prompt.ModelConfig `thrift:"custom_model_config,22,optional" frugal:"22,optional,prompt.ModelConfig" form:"custom_model_config" json:"custom_model_config,omitempty"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } func NewExecuteRequest() *ExecuteRequest { @@ -1100,6 +1107,42 @@ func (p *ExecuteRequest) GetMessages() (v []*Message) { return p.Messages } +var ExecuteRequest_CustomTools_DEFAULT []*Tool + +func (p *ExecuteRequest) GetCustomTools() (v []*Tool) { + if p == nil { + return + } + if !p.IsSetCustomTools() { + return ExecuteRequest_CustomTools_DEFAULT + } + return p.CustomTools +} + +var ExecuteRequest_CustomToolCallConfig_DEFAULT *ToolCallConfig + +func (p *ExecuteRequest) GetCustomToolCallConfig() (v *ToolCallConfig) { + if p == nil { + return + } + if !p.IsSetCustomToolCallConfig() { + return ExecuteRequest_CustomToolCallConfig_DEFAULT + } + return p.CustomToolCallConfig +} + +var ExecuteRequest_CustomModelConfig_DEFAULT *prompt.ModelConfig + +func (p *ExecuteRequest) GetCustomModelConfig() (v *prompt.ModelConfig) { + if p == nil { + return + } + if !p.IsSetCustomModelConfig() { + return ExecuteRequest_CustomModelConfig_DEFAULT + } + return p.CustomModelConfig +} + var ExecuteRequest_Base_DEFAULT *base.Base func (p *ExecuteRequest) GetBase() (v *base.Base) { @@ -1123,6 +1166,15 @@ func (p *ExecuteRequest) SetVariableVals(val []*VariableVal) { func (p *ExecuteRequest) SetMessages(val []*Message) { p.Messages = val } +func (p *ExecuteRequest) SetCustomTools(val []*Tool) { + p.CustomTools = val +} +func (p *ExecuteRequest) SetCustomToolCallConfig(val *ToolCallConfig) { + p.CustomToolCallConfig = val +} +func (p *ExecuteRequest) SetCustomModelConfig(val *prompt.ModelConfig) { + p.CustomModelConfig = val +} func (p *ExecuteRequest) SetBase(val *base.Base) { p.Base = val } @@ -1132,6 +1184,9 @@ var fieldIDToName_ExecuteRequest = map[int16]string{ 2: "prompt_identifier", 10: "variable_vals", 11: "messages", + 20: "custom_tools", + 21: "custom_tool_call_config", + 22: "custom_model_config", 255: "Base", } @@ -1151,6 +1206,18 @@ func (p *ExecuteRequest) IsSetMessages() bool { return p.Messages != nil } +func (p *ExecuteRequest) IsSetCustomTools() bool { + return p.CustomTools != nil +} + +func (p *ExecuteRequest) IsSetCustomToolCallConfig() bool { + return p.CustomToolCallConfig != nil +} + +func (p *ExecuteRequest) IsSetCustomModelConfig() bool { + return p.CustomModelConfig != nil +} + func (p *ExecuteRequest) IsSetBase() bool { return p.Base != nil } @@ -1205,6 +1272,30 @@ func (p *ExecuteRequest) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 20: + if fieldTypeId == thrift.LIST { + if err = p.ReadField20(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 21: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField21(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 22: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField22(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } case 255: if fieldTypeId == thrift.STRUCT { if err = p.ReadField255(iprot); err != nil { @@ -1307,6 +1398,45 @@ func (p *ExecuteRequest) ReadField11(iprot thrift.TProtocol) error { p.Messages = _field return nil } +func (p *ExecuteRequest) ReadField20(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*Tool, 0, size) + values := make([]Tool, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + + if err := _elem.Read(iprot); err != nil { + return err + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { + return err + } + p.CustomTools = _field + return nil +} +func (p *ExecuteRequest) ReadField21(iprot thrift.TProtocol) error { + _field := NewToolCallConfig() + if err := _field.Read(iprot); err != nil { + return err + } + p.CustomToolCallConfig = _field + return nil +} +func (p *ExecuteRequest) ReadField22(iprot thrift.TProtocol) error { + _field := prompt.NewModelConfig() + if err := _field.Read(iprot); err != nil { + return err + } + p.CustomModelConfig = _field + return nil +} func (p *ExecuteRequest) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBase() if err := _field.Read(iprot); err != nil { @@ -1338,6 +1468,18 @@ func (p *ExecuteRequest) Write(oprot thrift.TProtocol) (err error) { fieldId = 11 goto WriteFieldError } + if err = p.writeField20(oprot); err != nil { + fieldId = 20 + goto WriteFieldError + } + if err = p.writeField21(oprot); err != nil { + fieldId = 21 + goto WriteFieldError + } + if err = p.writeField22(oprot); err != nil { + fieldId = 22 + goto WriteFieldError + } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -1448,6 +1590,68 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 11 end error: ", p), err) } +func (p *ExecuteRequest) writeField20(oprot thrift.TProtocol) (err error) { + if p.IsSetCustomTools() { + if err = oprot.WriteFieldBegin("custom_tools", thrift.LIST, 20); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.CustomTools)); err != nil { + return err + } + for _, v := range p.CustomTools { + if err := v.Write(oprot); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 20 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 20 end error: ", p), err) +} +func (p *ExecuteRequest) writeField21(oprot thrift.TProtocol) (err error) { + if p.IsSetCustomToolCallConfig() { + if err = oprot.WriteFieldBegin("custom_tool_call_config", thrift.STRUCT, 21); err != nil { + goto WriteFieldBeginError + } + if err := p.CustomToolCallConfig.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 21 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 21 end error: ", p), err) +} +func (p *ExecuteRequest) writeField22(oprot thrift.TProtocol) (err error) { + if p.IsSetCustomModelConfig() { + if err = oprot.WriteFieldBegin("custom_model_config", thrift.STRUCT, 22); err != nil { + goto WriteFieldBeginError + } + if err := p.CustomModelConfig.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 22 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 22 end error: ", p), err) +} func (p *ExecuteRequest) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBase() { if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { @@ -1493,6 +1697,15 @@ func (p *ExecuteRequest) DeepEqual(ano *ExecuteRequest) bool { if !p.Field11DeepEqual(ano.Messages) { return false } + if !p.Field20DeepEqual(ano.CustomTools) { + return false + } + if !p.Field21DeepEqual(ano.CustomToolCallConfig) { + return false + } + if !p.Field22DeepEqual(ano.CustomModelConfig) { + return false + } if !p.Field255DeepEqual(ano.Base) { return false } @@ -1544,6 +1757,33 @@ func (p *ExecuteRequest) Field11DeepEqual(src []*Message) bool { } return true } +func (p *ExecuteRequest) Field20DeepEqual(src []*Tool) bool { + + if len(p.CustomTools) != len(src) { + return false + } + for i, v := range p.CustomTools { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } + return true +} +func (p *ExecuteRequest) Field21DeepEqual(src *ToolCallConfig) bool { + + if !p.CustomToolCallConfig.DeepEqual(src) { + return false + } + return true +} +func (p *ExecuteRequest) Field22DeepEqual(src *prompt.ModelConfig) bool { + + if !p.CustomModelConfig.DeepEqual(src) { + return false + } + return true +} func (p *ExecuteRequest) Field255DeepEqual(src *base.Base) bool { if !p.Base.DeepEqual(src) { diff --git a/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi_validator.go b/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi_validator.go index a2fb6fb98..79df2df87 100644 --- a/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi_validator.go +++ b/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi_validator.go @@ -51,6 +51,16 @@ func (p *ExecuteRequest) IsValid() error { return fmt.Errorf("field PromptIdentifier not valid, %w", err) } } + if p.CustomToolCallConfig != nil { + if err := p.CustomToolCallConfig.IsValid(); err != nil { + return fmt.Errorf("field CustomToolCallConfig not valid, %w", err) + } + } + if p.CustomModelConfig != nil { + if err := p.CustomModelConfig.IsValid(); err != nil { + return fmt.Errorf("field CustomModelConfig not valid, %w", err) + } + } if p.Base != nil { if err := p.Base.IsValid(); err != nil { return fmt.Errorf("field Base not valid, %w", err) diff --git a/backend/kitex_gen/coze/loop/prompt/openapi/k-coze.loop.prompt.openapi.go b/backend/kitex_gen/coze/loop/prompt/openapi/k-coze.loop.prompt.openapi.go index 51fc56c4a..72970ead0 100644 --- a/backend/kitex_gen/coze/loop/prompt/openapi/k-coze.loop.prompt.openapi.go +++ b/backend/kitex_gen/coze/loop/prompt/openapi/k-coze.loop.prompt.openapi.go @@ -791,6 +791,48 @@ func (p *ExecuteRequest) FastRead(buf []byte) (int, error) { goto SkipFieldError } } + case 20: + if fieldTypeId == thrift.LIST { + l, err = p.FastReadField20(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 21: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField21(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 22: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField22(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } case 255: if fieldTypeId == thrift.STRUCT { l, err = p.FastReadField255(buf[offset:]) @@ -899,6 +941,55 @@ func (p *ExecuteRequest) FastReadField11(buf []byte) (int, error) { return offset, nil } +func (p *ExecuteRequest) FastReadField20(buf []byte) (int, error) { + offset := 0 + + _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make([]*Tool, 0, size) + values := make([]Tool, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + if l, err := _elem.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + + _field = append(_field, _elem) + } + p.CustomTools = _field + return offset, nil +} + +func (p *ExecuteRequest) FastReadField21(buf []byte) (int, error) { + offset := 0 + _field := NewToolCallConfig() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.CustomToolCallConfig = _field + return offset, nil +} + +func (p *ExecuteRequest) FastReadField22(buf []byte) (int, error) { + offset := 0 + _field := prompt.NewModelConfig() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.CustomModelConfig = _field + return offset, nil +} + func (p *ExecuteRequest) FastReadField255(buf []byte) (int, error) { offset := 0 _field := base.NewBase() @@ -922,6 +1013,9 @@ func (p *ExecuteRequest) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int offset += p.fastWriteField2(buf[offset:], w) offset += p.fastWriteField10(buf[offset:], w) offset += p.fastWriteField11(buf[offset:], w) + offset += p.fastWriteField20(buf[offset:], w) + offset += p.fastWriteField21(buf[offset:], w) + offset += p.fastWriteField22(buf[offset:], w) offset += p.fastWriteField255(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) @@ -935,6 +1029,9 @@ func (p *ExecuteRequest) BLength() int { l += p.field2Length() l += p.field10Length() l += p.field11Length() + l += p.field20Length() + l += p.field21Length() + l += p.field22Length() l += p.field255Length() } l += thrift.Binary.FieldStopLength() @@ -991,6 +1088,40 @@ func (p *ExecuteRequest) fastWriteField11(buf []byte, w thrift.NocopyWriter) int return offset } +func (p *ExecuteRequest) fastWriteField20(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetCustomTools() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 20) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.CustomTools { + length++ + offset += v.FastWriteNocopy(buf[offset:], w) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) + } + return offset +} + +func (p *ExecuteRequest) fastWriteField21(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetCustomToolCallConfig() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 21) + offset += p.CustomToolCallConfig.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *ExecuteRequest) fastWriteField22(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetCustomModelConfig() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 22) + offset += p.CustomModelConfig.FastWriteNocopy(buf[offset:], w) + } + return offset +} + func (p *ExecuteRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetBase() { @@ -1044,6 +1175,37 @@ func (p *ExecuteRequest) field11Length() int { return l } +func (p *ExecuteRequest) field20Length() int { + l := 0 + if p.IsSetCustomTools() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + for _, v := range p.CustomTools { + _ = v + l += v.BLength() + } + } + return l +} + +func (p *ExecuteRequest) field21Length() int { + l := 0 + if p.IsSetCustomToolCallConfig() { + l += thrift.Binary.FieldBeginLength() + l += p.CustomToolCallConfig.BLength() + } + return l +} + +func (p *ExecuteRequest) field22Length() int { + l := 0 + if p.IsSetCustomModelConfig() { + l += thrift.Binary.FieldBeginLength() + l += p.CustomModelConfig.BLength() + } + return l +} + func (p *ExecuteRequest) field255Length() int { l := 0 if p.IsSetBase() { @@ -1103,6 +1265,39 @@ func (p *ExecuteRequest) DeepCopy(s interface{}) error { } } + if src.CustomTools != nil { + p.CustomTools = make([]*Tool, 0, len(src.CustomTools)) + for _, elem := range src.CustomTools { + var _elem *Tool + if elem != nil { + _elem = &Tool{} + if err := _elem.DeepCopy(elem); err != nil { + return err + } + } + + p.CustomTools = append(p.CustomTools, _elem) + } + } + + var _customToolCallConfig *ToolCallConfig + if src.CustomToolCallConfig != nil { + _customToolCallConfig = &ToolCallConfig{} + if err := _customToolCallConfig.DeepCopy(src.CustomToolCallConfig); err != nil { + return err + } + } + p.CustomToolCallConfig = _customToolCallConfig + + var _customModelConfig *prompt.ModelConfig + if src.CustomModelConfig != nil { + _customModelConfig = &prompt.ModelConfig{} + if err := _customModelConfig.DeepCopy(src.CustomModelConfig); err != nil { + return err + } + } + p.CustomModelConfig = _customModelConfig + var _base *base.Base if src.Base != nil { _base = &base.Base{} diff --git a/backend/modules/prompt/application/convertor/openapi.go b/backend/modules/prompt/application/convertor/openapi.go index 646252fb8..615c73fb7 100644 --- a/backend/modules/prompt/application/convertor/openapi.go +++ b/backend/modules/prompt/application/convertor/openapi.go @@ -495,3 +495,123 @@ func OpenAPIPromptBasicDO2DTO(do *entity.Prompt) *openapi.PromptBasic { }(), } } + +// OpenAPIBatchToolDTO2DO 将openapi Tool转换为entity Tool +func OpenAPIBatchToolDTO2DO(dtos []*openapi.Tool) []*entity.Tool { + if dtos == nil { + return nil + } + var tools []*entity.Tool + for _, dto := range dtos { + if dto != nil { + tools = append(tools, OpenAPIToolDTO2DO(dto)) + } + } + return tools +} + +// OpenAPIToolDTO2DO 将openapi Tool转换为entity Tool +func OpenAPIToolDTO2DO(dto *openapi.Tool) *entity.Tool { + if dto == nil { + return nil + } + return &entity.Tool{ + Type: OpenAPIToolTypeDTO2DO(dto.GetType()), + Function: OpenAPIFunctionDTO2DO(dto.Function), + } +} + +// OpenAPIFunctionDTO2DO 将openapi Function转换为entity Function +func OpenAPIFunctionDTO2DO(dto *openapi.Function) *entity.Function { + if dto == nil { + return nil + } + return &entity.Function{ + Name: dto.GetName(), + Description: dto.GetDescription(), + Parameters: dto.GetParameters(), + } +} + +// OpenAPIToolCallConfigDTO2DO 将openapi ToolCallConfig转换为entity ToolCallConfig +func OpenAPIToolCallConfigDTO2DO(dto *openapi.ToolCallConfig) *entity.ToolCallConfig { + if dto == nil { + return nil + } + return &entity.ToolCallConfig{ + ToolChoice: OpenAPIToolChoiceTypeDTO2DO(dto.GetToolChoice()), + ToolChoiceSpecification: OpenAPIToolChoiceSpecificationDTO2DO(dto.ToolChoiceSpecification), + } +} + +// OpenAPIToolChoiceTypeDTO2DO 将openapi ToolChoiceType转换为entity ToolChoiceType +func OpenAPIToolChoiceTypeDTO2DO(dto openapi.ToolChoiceType) entity.ToolChoiceType { + return entity.ToolChoiceType(dto) +} + +// OpenAPIToolChoiceSpecificationDTO2DO 将openapi ToolChoiceSpecification转换为entity ToolChoiceSpecification +func OpenAPIToolChoiceSpecificationDTO2DO(dto *openapi.ToolChoiceSpecification) *entity.ToolChoiceSpecification { + if dto == nil { + return nil + } + return &entity.ToolChoiceSpecification{ + Type: OpenAPIToolTypeDTO2DO(dto.GetType()), + Name: dto.GetName(), + } +} + +// OpenAPIModelConfigDTO2DO 将domain prompt ModelConfig转换为entity ModelConfig +func OpenAPIModelConfigDTO2DO(dto *prompt.ModelConfig) *entity.ModelConfig { + if dto == nil { + return nil + } + return &entity.ModelConfig{ + ModelID: dto.GetModelID(), + MaxTokens: dto.MaxTokens, + Temperature: dto.Temperature, + TopK: dto.TopK, + TopP: dto.TopP, + PresencePenalty: dto.PresencePenalty, + FrequencyPenalty: dto.FrequencyPenalty, + JSONMode: dto.JSONMode, + Extra: dto.Extra, + ParamConfigValues: OpenAPIBatchParamConfigValueDTO2DO(dto.ParamConfigValues), + } +} + +// OpenAPIBatchParamConfigValueDTO2DO 将domain prompt ParamConfigValue转换为entity ParamConfigValue +func OpenAPIBatchParamConfigValueDTO2DO(dtos []*prompt.ParamConfigValue) []*entity.ParamConfigValue { + if dtos == nil { + return nil + } + var params []*entity.ParamConfigValue + for _, dto := range dtos { + if dto != nil { + params = append(params, OpenAPIParamConfigValueDTO2DO(dto)) + } + } + return params +} + +// OpenAPIParamConfigValueDTO2DO 将domain prompt ParamConfigValue转换为entity ParamConfigValue +func OpenAPIParamConfigValueDTO2DO(dto *prompt.ParamConfigValue) *entity.ParamConfigValue { + if dto == nil { + return nil + } + return &entity.ParamConfigValue{ + Name: dto.GetName(), + Label: dto.GetLabel(), + Value: OpenAPIParamOptionDTO2DO(dto.Value), + } +} + +// OpenAPIParamOptionDTO2DO 将domain prompt ParamOption转换为entity ParamOption +func OpenAPIParamOptionDTO2DO(dto *prompt.ParamOption) *entity.ParamOption { + if dto == nil { + return nil + } + return &entity.ParamOption{ + Value: dto.GetValue(), + Label: dto.GetLabel(), + } +} diff --git a/backend/modules/prompt/application/openapi.go b/backend/modules/prompt/application/openapi.go index d71acc5b4..3aefea3cf 100644 --- a/backend/modules/prompt/application/openapi.go +++ b/backend/modules/prompt/application/openapi.go @@ -21,6 +21,7 @@ import ( "github.com/coze-dev/coze-loop/backend/infra/limiter" "github.com/coze-dev/coze-loop/backend/infra/looptracer" + "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/prompt/domain/prompt" "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/prompt/openapi" "github.com/coze-dev/coze-loop/backend/modules/prompt/application/convertor" "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/component/conf" @@ -397,6 +398,12 @@ func (p *PromptOpenAPIApplicationImpl) doExecute(ctx context.Context, req *opena return promptDO, nil, err } + // 应用自定义覆盖参数(深拷贝以避免缓存污染) + promptDO, err = p.applyCustomOverrides(promptDO, req) + if err != nil { + return promptDO, nil, err + } + // 执行权限检查 if err = p.auth.MCheckPromptPermissionForOpenAPI(ctx, req.GetWorkspaceID(), []int64{promptDO.ID}, consts.ActionLoopPromptExecute); err != nil { return promptDO, nil, err @@ -498,6 +505,12 @@ func (p *PromptOpenAPIApplicationImpl) doExecuteStreaming(ctx context.Context, r return promptDO, nil, err } + // 应用自定义覆盖参数(深拷贝以避免缓存污染) + promptDO, err = p.applyCustomOverrides(promptDO, req) + if err != nil { + return promptDO, nil, err + } + // 执行权限检查 if err = p.auth.MCheckPromptPermissionForOpenAPI(ctx, req.GetWorkspaceID(), []int64{promptDO.ID}, consts.ActionLoopPromptExecute); err != nil { return promptDO, nil, err @@ -779,3 +792,71 @@ func validateExecuteRequest(req *openapi.ExecuteRequest) error { } return nil } + +// applyCustomOverrides 应用自定义覆盖参数到prompt(深拷贝避免缓存污染) +func (p *PromptOpenAPIApplicationImpl) applyCustomOverrides(promptDO *entity.Prompt, req *openapi.ExecuteRequest) (*entity.Prompt, error) { + if promptDO == nil || req == nil { + return promptDO, nil + } + + // 检查是否需要应用任何自定义覆盖 + needsOverride := req.CustomTools != nil || req.CustomToolCallConfig != nil || req.CustomModelConfig != nil + if !needsOverride { + return promptDO, nil + } + + // 确保PromptCommit存在 + if promptDO.PromptCommit == nil { + return promptDO, nil + } + + // 确保PromptDetail存在 + if promptDO.PromptCommit.PromptDetail == nil { + return promptDO, nil + } + + // 深拷贝以避免缓存污染 + clonedPrompt := promptDO.Clone() + if clonedPrompt == nil { + return nil, errors.New("failed to clone prompt") + } + + // 覆盖自定义工具 + if req.CustomTools != nil { + customTools := convertor.OpenAPIBatchToolDTO2DO(req.CustomTools) + clonedPrompt.PromptCommit.PromptDetail.Tools = customTools + } + + // 覆盖自定义工具调用配置 + if req.CustomToolCallConfig != nil { + customToolCallConfig := convertor.OpenAPIToolCallConfigDTO2DO(req.CustomToolCallConfig) + clonedPrompt.PromptCommit.PromptDetail.ToolCallConfig = customToolCallConfig + } + + // 覆盖自定义模型配置(带验证) + if req.CustomModelConfig != nil { + err := p.validateAndApplyCustomModelConfig(clonedPrompt, req.CustomModelConfig) + if err != nil { + return nil, err + } + } + + return clonedPrompt, nil +} + +// validateAndApplyCustomModelConfig 验证并应用自定义模型配置(全量覆盖) +func (p *PromptOpenAPIApplicationImpl) validateAndApplyCustomModelConfig(promptDO *entity.Prompt, customModelConfig *prompt.ModelConfig) error { + if customModelConfig == nil { + return nil + } + + // 如果没有提供ModelID,当作用户没传自定义模型配置,直接返回 + if !customModelConfig.IsSetModelID() || customModelConfig.GetModelID() == 0 { + return nil + } + + // 全量替换模型配置 + customModelConfigDO := convertor.OpenAPIModelConfigDTO2DO(customModelConfig) + promptDO.PromptCommit.PromptDetail.ModelConfig = customModelConfigDO + return nil +} diff --git a/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift b/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift index f93ffc660..48fc38d77 100644 --- a/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift +++ b/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift @@ -36,6 +36,10 @@ struct ExecuteRequest { 10: optional list variable_vals (api.body="variable_vals") // 变量值 11: optional list messages (api.body="messages") // 消息 + 20: optional list custom_tools (api.body="custom_tools") // 自定义工具 + 21: optional ToolCallConfig custom_tool_call_config (api.body="custom_tool_call_config") // 自定义工具调用配置 + 22: optional prompt.ModelConfig custom_model_config (api.body="custom_model_config") // 自定义模型配置 + 255: optional base.Base Base } From 34f12b45e74921bfae2d71e34f61efa086123900 Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Mon, 29 Dec 2025 20:51:04 +0800 Subject: [PATCH 05/58] [feat][prompt]: add thinking config --- .../coze/loop/prompt/domain/prompt/prompt.go | 509 ++++++++++++++++++ .../prompt/domain/prompt/prompt_validator.go | 8 + .../prompt/application/convertor/openapi.go | 31 ++ .../prompt/domain/entity/prompt_detail.go | 27 + .../coze/loop/prompt/domain/prompt.thrift | 20 + 5 files changed, 595 insertions(+) diff --git a/backend/kitex_gen/coze/loop/prompt/domain/prompt/prompt.go b/backend/kitex_gen/coze/loop/prompt/domain/prompt/prompt.go index ffeda0c22..65a3ce932 100644 --- a/backend/kitex_gen/coze/loop/prompt/domain/prompt/prompt.go +++ b/backend/kitex_gen/coze/loop/prompt/domain/prompt/prompt.go @@ -3,6 +3,8 @@ package prompt import ( + "database/sql" + "database/sql/driver" "fmt" "github.com/apache/thrift/lib/go/thrift" "strings" @@ -78,6 +80,105 @@ const ( ScenarioEvalTarget = "eval_target" ) +type ReasoningEffort int64 + +const ( + ReasoningEffort_Minimal ReasoningEffort = 1 + ReasoningEffort_Low ReasoningEffort = 2 + ReasoningEffort_Medium ReasoningEffort = 3 + ReasoningEffort_High ReasoningEffort = 4 +) + +func (p ReasoningEffort) String() string { + switch p { + case ReasoningEffort_Minimal: + return "Minimal" + case ReasoningEffort_Low: + return "Low" + case ReasoningEffort_Medium: + return "Medium" + case ReasoningEffort_High: + return "High" + } + return "" +} + +func ReasoningEffortFromString(s string) (ReasoningEffort, error) { + switch s { + case "Minimal": + return ReasoningEffort_Minimal, nil + case "Low": + return ReasoningEffort_Low, nil + case "Medium": + return ReasoningEffort_Medium, nil + case "High": + return ReasoningEffort_High, nil + } + return ReasoningEffort(0), fmt.Errorf("not a valid ReasoningEffort string") +} + +func ReasoningEffortPtr(v ReasoningEffort) *ReasoningEffort { return &v } +func (p *ReasoningEffort) Scan(value interface{}) (err error) { + var result sql.NullInt64 + err = result.Scan(value) + *p = ReasoningEffort(result.Int64) + return +} + +func (p *ReasoningEffort) Value() (driver.Value, error) { + if p == nil { + return nil, nil + } + return int64(*p), nil +} + +type ThinkingOption int64 + +const ( + ThinkingOption_Disabled ThinkingOption = 1 + ThinkingOption_Enabled ThinkingOption = 2 + ThinkingOption_Auto ThinkingOption = 3 +) + +func (p ThinkingOption) String() string { + switch p { + case ThinkingOption_Disabled: + return "Disabled" + case ThinkingOption_Enabled: + return "Enabled" + case ThinkingOption_Auto: + return "Auto" + } + return "" +} + +func ThinkingOptionFromString(s string) (ThinkingOption, error) { + switch s { + case "Disabled": + return ThinkingOption_Disabled, nil + case "Enabled": + return ThinkingOption_Enabled, nil + case "Auto": + return ThinkingOption_Auto, nil + } + return ThinkingOption(0), fmt.Errorf("not a valid ThinkingOption string") +} + +func ThinkingOptionPtr(v ThinkingOption) *ThinkingOption { return &v } +func (p *ThinkingOption) Scan(value interface{}) (err error) { + var result sql.NullInt64 + err = result.Scan(value) + *p = ThinkingOption(result.Int64) + return +} + +func (p *ThinkingOption) Value() (driver.Value, error) { + if p == nil { + return nil, nil + } + return int64(*p), nil +} + type PromptType = string type TemplateType = string @@ -5173,6 +5274,7 @@ type ModelConfig struct { FrequencyPenalty *float64 `thrift:"frequency_penalty,7,optional" frugal:"7,optional,double" form:"frequency_penalty" json:"frequency_penalty,omitempty" query:"frequency_penalty"` JSONMode *bool `thrift:"json_mode,8,optional" frugal:"8,optional,bool" form:"json_mode" json:"json_mode,omitempty" query:"json_mode"` Extra *string `thrift:"extra,9,optional" frugal:"9,optional,string" form:"extra" json:"extra,omitempty" query:"extra"` + Thinking *ThinkingConfig `thrift:"thinking,10,optional" frugal:"10,optional,ThinkingConfig" form:"thinking" json:"thinking,omitempty" query:"thinking"` ParamConfigValues []*ParamConfigValue `thrift:"param_config_values,100,optional" frugal:"100,optional,list" form:"param_config_values" json:"param_config_values,omitempty" query:"param_config_values"` } @@ -5291,6 +5393,18 @@ func (p *ModelConfig) GetExtra() (v string) { return *p.Extra } +var ModelConfig_Thinking_DEFAULT *ThinkingConfig + +func (p *ModelConfig) GetThinking() (v *ThinkingConfig) { + if p == nil { + return + } + if !p.IsSetThinking() { + return ModelConfig_Thinking_DEFAULT + } + return p.Thinking +} + var ModelConfig_ParamConfigValues_DEFAULT []*ParamConfigValue func (p *ModelConfig) GetParamConfigValues() (v []*ParamConfigValue) { @@ -5329,6 +5443,9 @@ func (p *ModelConfig) SetJSONMode(val *bool) { func (p *ModelConfig) SetExtra(val *string) { p.Extra = val } +func (p *ModelConfig) SetThinking(val *ThinkingConfig) { + p.Thinking = val +} func (p *ModelConfig) SetParamConfigValues(val []*ParamConfigValue) { p.ParamConfigValues = val } @@ -5343,6 +5460,7 @@ var fieldIDToName_ModelConfig = map[int16]string{ 7: "frequency_penalty", 8: "json_mode", 9: "extra", + 10: "thinking", 100: "param_config_values", } @@ -5382,6 +5500,10 @@ func (p *ModelConfig) IsSetExtra() bool { return p.Extra != nil } +func (p *ModelConfig) IsSetThinking() bool { + return p.Thinking != nil +} + func (p *ModelConfig) IsSetParamConfigValues() bool { return p.ParamConfigValues != nil } @@ -5476,6 +5598,14 @@ func (p *ModelConfig) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 10: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField10(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } case 100: if fieldTypeId == thrift.LIST { if err = p.ReadField100(iprot); err != nil { @@ -5612,6 +5742,14 @@ func (p *ModelConfig) ReadField9(iprot thrift.TProtocol) error { p.Extra = _field return nil } +func (p *ModelConfig) ReadField10(iprot thrift.TProtocol) error { + _field := NewThinkingConfig() + if err := _field.Read(iprot); err != nil { + return err + } + p.Thinking = _field + return nil +} func (p *ModelConfig) ReadField100(iprot thrift.TProtocol) error { _, size, err := iprot.ReadListBegin() if err != nil { @@ -5678,6 +5816,10 @@ func (p *ModelConfig) Write(oprot thrift.TProtocol) (err error) { fieldId = 9 goto WriteFieldError } + if err = p.writeField10(oprot); err != nil { + fieldId = 10 + goto WriteFieldError + } if err = p.writeField100(oprot); err != nil { fieldId = 100 goto WriteFieldError @@ -5862,6 +6004,24 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 9 end error: ", p), err) } +func (p *ModelConfig) writeField10(oprot thrift.TProtocol) (err error) { + if p.IsSetThinking() { + if err = oprot.WriteFieldBegin("thinking", thrift.STRUCT, 10); err != nil { + goto WriteFieldBeginError + } + if err := p.Thinking.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 10 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 10 end error: ", p), err) +} func (p *ModelConfig) writeField100(oprot thrift.TProtocol) (err error) { if p.IsSetParamConfigValues() { if err = oprot.WriteFieldBegin("param_config_values", thrift.LIST, 100); err != nil { @@ -5930,6 +6090,9 @@ func (p *ModelConfig) DeepEqual(ano *ModelConfig) bool { if !p.Field9DeepEqual(ano.Extra) { return false } + if !p.Field10DeepEqual(ano.Thinking) { + return false + } if !p.Field100DeepEqual(ano.ParamConfigValues) { return false } @@ -6044,6 +6207,13 @@ func (p *ModelConfig) Field9DeepEqual(src *string) bool { } return true } +func (p *ModelConfig) Field10DeepEqual(src *ThinkingConfig) bool { + + if !p.Thinking.DeepEqual(src) { + return false + } + return true +} func (p *ModelConfig) Field100DeepEqual(src []*ParamConfigValue) bool { if len(p.ParamConfigValues) != len(src) { @@ -6058,6 +6228,345 @@ func (p *ModelConfig) Field100DeepEqual(src []*ParamConfigValue) bool { return true } +type ThinkingConfig struct { + // thinking内容的最大输出token + BudgetTokens *int64 `thrift:"budget_tokens,1,optional" frugal:"1,optional,i64" form:"budget_tokens" json:"budget_tokens,omitempty" query:"budget_tokens"` + ThinkingOption *ThinkingOption `thrift:"thinking_option,2,optional" frugal:"2,optional,ThinkingOption" form:"thinking_option" json:"thinking_option,omitempty" query:"thinking_option"` + // 思考长度 + ReasoningEffort *ReasoningEffort `thrift:"reasoning_effort,3,optional" frugal:"3,optional,ReasoningEffort" form:"reasoning_effort" json:"reasoning_effort,omitempty" query:"reasoning_effort"` +} + +func NewThinkingConfig() *ThinkingConfig { + return &ThinkingConfig{} +} + +func (p *ThinkingConfig) InitDefault() { +} + +var ThinkingConfig_BudgetTokens_DEFAULT int64 + +func (p *ThinkingConfig) GetBudgetTokens() (v int64) { + if p == nil { + return + } + if !p.IsSetBudgetTokens() { + return ThinkingConfig_BudgetTokens_DEFAULT + } + return *p.BudgetTokens +} + +var ThinkingConfig_ThinkingOption_DEFAULT ThinkingOption + +func (p *ThinkingConfig) GetThinkingOption() (v ThinkingOption) { + if p == nil { + return + } + if !p.IsSetThinkingOption() { + return ThinkingConfig_ThinkingOption_DEFAULT + } + return *p.ThinkingOption +} + +var ThinkingConfig_ReasoningEffort_DEFAULT ReasoningEffort + +func (p *ThinkingConfig) GetReasoningEffort() (v ReasoningEffort) { + if p == nil { + return + } + if !p.IsSetReasoningEffort() { + return ThinkingConfig_ReasoningEffort_DEFAULT + } + return *p.ReasoningEffort +} +func (p *ThinkingConfig) SetBudgetTokens(val *int64) { + p.BudgetTokens = val +} +func (p *ThinkingConfig) SetThinkingOption(val *ThinkingOption) { + p.ThinkingOption = val +} +func (p *ThinkingConfig) SetReasoningEffort(val *ReasoningEffort) { + p.ReasoningEffort = val +} + +var fieldIDToName_ThinkingConfig = map[int16]string{ + 1: "budget_tokens", + 2: "thinking_option", + 3: "reasoning_effort", +} + +func (p *ThinkingConfig) IsSetBudgetTokens() bool { + return p.BudgetTokens != nil +} + +func (p *ThinkingConfig) IsSetThinkingOption() bool { + return p.ThinkingOption != nil +} + +func (p *ThinkingConfig) IsSetReasoningEffort() bool { + return p.ReasoningEffort != nil +} + +func (p *ThinkingConfig) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.I64 { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.I32 { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.I32 { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ThinkingConfig[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *ThinkingConfig) ReadField1(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.BudgetTokens = _field + return nil +} +func (p *ThinkingConfig) ReadField2(iprot thrift.TProtocol) error { + + var _field *ThinkingOption + if v, err := iprot.ReadI32(); err != nil { + return err + } else { + tmp := ThinkingOption(v) + _field = &tmp + } + p.ThinkingOption = _field + return nil +} +func (p *ThinkingConfig) ReadField3(iprot thrift.TProtocol) error { + + var _field *ReasoningEffort + if v, err := iprot.ReadI32(); err != nil { + return err + } else { + tmp := ReasoningEffort(v) + _field = &tmp + } + p.ReasoningEffort = _field + return nil +} + +func (p *ThinkingConfig) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("ThinkingConfig"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *ThinkingConfig) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetBudgetTokens() { + if err = oprot.WriteFieldBegin("budget_tokens", thrift.I64, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.BudgetTokens); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *ThinkingConfig) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetThinkingOption() { + if err = oprot.WriteFieldBegin("thinking_option", thrift.I32, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(int32(*p.ThinkingOption)); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} +func (p *ThinkingConfig) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetReasoningEffort() { + if err = oprot.WriteFieldBegin("reasoning_effort", thrift.I32, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(int32(*p.ReasoningEffort)); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) +} + +func (p *ThinkingConfig) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("ThinkingConfig(%+v)", *p) + +} + +func (p *ThinkingConfig) DeepEqual(ano *ThinkingConfig) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.BudgetTokens) { + return false + } + if !p.Field2DeepEqual(ano.ThinkingOption) { + return false + } + if !p.Field3DeepEqual(ano.ReasoningEffort) { + return false + } + return true +} + +func (p *ThinkingConfig) Field1DeepEqual(src *int64) bool { + + if p.BudgetTokens == src { + return true + } else if p.BudgetTokens == nil || src == nil { + return false + } + if *p.BudgetTokens != *src { + return false + } + return true +} +func (p *ThinkingConfig) Field2DeepEqual(src *ThinkingOption) bool { + + if p.ThinkingOption == src { + return true + } else if p.ThinkingOption == nil || src == nil { + return false + } + if *p.ThinkingOption != *src { + return false + } + return true +} +func (p *ThinkingConfig) Field3DeepEqual(src *ReasoningEffort) bool { + + if p.ReasoningEffort == src { + return true + } else if p.ReasoningEffort == nil || src == nil { + return false + } + if *p.ReasoningEffort != *src { + return false + } + return true +} + type ParamConfigValue struct { // 传给下游模型的key,与ParamSchema.name对齐 Name *string `thrift:"name,1,optional" frugal:"1,optional,string" form:"name" json:"name,omitempty" query:"name"` diff --git a/backend/kitex_gen/coze/loop/prompt/domain/prompt/prompt_validator.go b/backend/kitex_gen/coze/loop/prompt/domain/prompt/prompt_validator.go index 91e0413cc..63d8b0a62 100644 --- a/backend/kitex_gen/coze/loop/prompt/domain/prompt/prompt_validator.go +++ b/backend/kitex_gen/coze/loop/prompt/domain/prompt/prompt_validator.go @@ -118,6 +118,14 @@ func (p *ToolChoiceSpecification) IsValid() error { return nil } func (p *ModelConfig) IsValid() error { + if p.Thinking != nil { + if err := p.Thinking.IsValid(); err != nil { + return fmt.Errorf("field Thinking not valid, %w", err) + } + } + return nil +} +func (p *ThinkingConfig) IsValid() error { return nil } func (p *ParamConfigValue) IsValid() error { diff --git a/backend/modules/prompt/application/convertor/openapi.go b/backend/modules/prompt/application/convertor/openapi.go index 615c73fb7..2853d6190 100644 --- a/backend/modules/prompt/application/convertor/openapi.go +++ b/backend/modules/prompt/application/convertor/openapi.go @@ -575,10 +575,41 @@ func OpenAPIModelConfigDTO2DO(dto *prompt.ModelConfig) *entity.ModelConfig { FrequencyPenalty: dto.FrequencyPenalty, JSONMode: dto.JSONMode, Extra: dto.Extra, + Thinking: OpenAPIThinkingConfigDTO2DO(dto.Thinking), ParamConfigValues: OpenAPIBatchParamConfigValueDTO2DO(dto.ParamConfigValues), } } +// OpenAPIThinkingConfigDTO2DO 将domain prompt ThinkingConfig转换为entity ThinkingConfig +func OpenAPIThinkingConfigDTO2DO(dto *prompt.ThinkingConfig) *entity.ThinkingConfig { + if dto == nil { + return nil + } + return &entity.ThinkingConfig{ + BudgetTokens: dto.BudgetTokens, + ThinkingOption: OpenAPIThinkingOptionDTO2DO(dto.ThinkingOption), + ReasoningEffort: OpenAPIReasoningEffortDTO2DO(dto.ReasoningEffort), + } +} + +// OpenAPIThinkingOptionDTO2DO 将domain prompt ThinkingOption转换为entity ThinkingOption +func OpenAPIThinkingOptionDTO2DO(dto *prompt.ThinkingOption) *entity.ThinkingOption { + if dto == nil { + return nil + } + result := entity.ThinkingOption(*dto) + return &result +} + +// OpenAPIReasoningEffortDTO2DO 将domain prompt ReasoningEffort转换为entity ReasoningEffort +func OpenAPIReasoningEffortDTO2DO(dto *prompt.ReasoningEffort) *entity.ReasoningEffort { + if dto == nil { + return nil + } + result := entity.ReasoningEffort(*dto) + return &result +} + // OpenAPIBatchParamConfigValueDTO2DO 将domain prompt ParamConfigValue转换为entity ParamConfigValue func OpenAPIBatchParamConfigValueDTO2DO(dtos []*prompt.ParamConfigValue) []*entity.ParamConfigValue { if dtos == nil { diff --git a/backend/modules/prompt/domain/entity/prompt_detail.go b/backend/modules/prompt/domain/entity/prompt_detail.go index 8f0b07d6c..037f4b012 100644 --- a/backend/modules/prompt/domain/entity/prompt_detail.go +++ b/backend/modules/prompt/domain/entity/prompt_detail.go @@ -196,9 +196,36 @@ type ModelConfig struct { FrequencyPenalty *float64 `json:"frequency_penalty,omitempty"` JSONMode *bool `json:"json_mode,omitempty"` Extra *string `json:"extra,omitempty"` + Thinking *ThinkingConfig `json:"thinking,omitempty"` ParamConfigValues []*ParamConfigValue `json:"param_config_values,omitempty"` } +// ThinkingConfig 配置thinking/reasoning相关参数 +type ThinkingConfig struct { + BudgetTokens *int64 `json:"budget_tokens,omitempty"` // thinking内容的最大输出token + ThinkingOption *ThinkingOption `json:"thinking_option,omitempty"` // thinking开关选项 + ReasoningEffort *ReasoningEffort `json:"reasoning_effort,omitempty"` // 思考长度 +} + +// ThinkingOption thinking开关选项 +type ThinkingOption int64 + +const ( + ThinkingOptionDisabled ThinkingOption = 1 + ThinkingOptionEnabled ThinkingOption = 2 + ThinkingOptionAuto ThinkingOption = 3 +) + +// ReasoningEffort 思考长度 +type ReasoningEffort int64 + +const ( + ReasoningEffortMinimal ReasoningEffort = 1 + ReasoningEffortLow ReasoningEffort = 2 + ReasoningEffortMedium ReasoningEffort = 3 + ReasoningEffortHigh ReasoningEffort = 4 +) + type ParamConfigValue struct { Name string `json:"name"` Label string `json:"label"` diff --git a/idl/thrift/coze/loop/prompt/domain/prompt.thrift b/idl/thrift/coze/loop/prompt/domain/prompt.thrift index 55904338b..7674b19f3 100644 --- a/idl/thrift/coze/loop/prompt/domain/prompt.thrift +++ b/idl/thrift/coze/loop/prompt/domain/prompt.thrift @@ -118,10 +118,30 @@ struct ModelConfig { 7: optional double frequency_penalty 8: optional bool json_mode 9: optional string extra + 10: optional ThinkingConfig thinking 100: optional list param_config_values } +struct ThinkingConfig { + 1: optional i64 budget_tokens (agw.key="budget_tokens") // thinking内容的最大输出token + 2: optional ThinkingOption thinking_option (agw.key="thinking_option") + 3: optional ReasoningEffort reasoning_effort (agw.key="reasoning_effort") // 思考长度 +} + +enum ReasoningEffort { + Minimal = 1 + Low = 2 + Medium = 3 + High = 4 +} + +enum ThinkingOption { + Disabled = 1 + Enabled = 2 + Auto = 3 +} + struct ParamConfigValue { 1: optional string name // 传给下游模型的key,与ParamSchema.name对齐 2: optional string label // 展示名称 From 8e0e0a72196ad56239dd190fe9ddb04686e65b9f Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Mon, 29 Dec 2025 20:51:14 +0800 Subject: [PATCH 06/58] [feat][prompt]: add thinking config --- .../loop/prompt/domain/prompt/k-prompt.go | 282 ++++++++++++++++++ 1 file changed, 282 insertions(+) diff --git a/backend/kitex_gen/coze/loop/prompt/domain/prompt/k-prompt.go b/backend/kitex_gen/coze/loop/prompt/domain/prompt/k-prompt.go index 75b86e633..3ee05ac68 100644 --- a/backend/kitex_gen/coze/loop/prompt/domain/prompt/k-prompt.go +++ b/backend/kitex_gen/coze/loop/prompt/domain/prompt/k-prompt.go @@ -3817,6 +3817,20 @@ func (p *ModelConfig) FastRead(buf []byte) (int, error) { goto SkipFieldError } } + case 10: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField10(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } case 100: if fieldTypeId == thrift.LIST { l, err = p.FastReadField100(buf[offset:]) @@ -3975,6 +3989,18 @@ func (p *ModelConfig) FastReadField9(buf []byte) (int, error) { return offset, nil } +func (p *ModelConfig) FastReadField10(buf []byte) (int, error) { + offset := 0 + _field := NewThinkingConfig() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Thinking = _field + return offset, nil +} + func (p *ModelConfig) FastReadField100(buf []byte) (int, error) { offset := 0 @@ -4016,6 +4042,7 @@ func (p *ModelConfig) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset += p.fastWriteField7(buf[offset:], w) offset += p.fastWriteField8(buf[offset:], w) offset += p.fastWriteField9(buf[offset:], w) + offset += p.fastWriteField10(buf[offset:], w) offset += p.fastWriteField100(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) @@ -4034,6 +4061,7 @@ func (p *ModelConfig) BLength() int { l += p.field7Length() l += p.field8Length() l += p.field9Length() + l += p.field10Length() l += p.field100Length() } l += thrift.Binary.FieldStopLength() @@ -4121,6 +4149,15 @@ func (p *ModelConfig) fastWriteField9(buf []byte, w thrift.NocopyWriter) int { return offset } +func (p *ModelConfig) fastWriteField10(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetThinking() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 10) + offset += p.Thinking.FastWriteNocopy(buf[offset:], w) + } + return offset +} + func (p *ModelConfig) fastWriteField100(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetParamConfigValues() { @@ -4218,6 +4255,15 @@ func (p *ModelConfig) field9Length() int { return l } +func (p *ModelConfig) field10Length() int { + l := 0 + if p.IsSetThinking() { + l += thrift.Binary.FieldBeginLength() + l += p.Thinking.BLength() + } + return l +} + func (p *ModelConfig) field100Length() int { l := 0 if p.IsSetParamConfigValues() { @@ -4285,6 +4331,15 @@ func (p *ModelConfig) DeepCopy(s interface{}) error { p.Extra = &tmp } + var _thinking *ThinkingConfig + if src.Thinking != nil { + _thinking = &ThinkingConfig{} + if err := _thinking.DeepCopy(src.Thinking); err != nil { + return err + } + } + p.Thinking = _thinking + if src.ParamConfigValues != nil { p.ParamConfigValues = make([]*ParamConfigValue, 0, len(src.ParamConfigValues)) for _, elem := range src.ParamConfigValues { @@ -4303,6 +4358,233 @@ func (p *ModelConfig) DeepCopy(s interface{}) error { return nil } +func (p *ThinkingConfig) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.I32 { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 3: + if fieldTypeId == thrift.I32 { + l, err = p.FastReadField3(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ThinkingConfig[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *ThinkingConfig) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field *int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.BudgetTokens = _field + return offset, nil +} + +func (p *ThinkingConfig) FastReadField2(buf []byte) (int, error) { + offset := 0 + + var _field *ThinkingOption + if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + + tmp := ThinkingOption(v) + _field = &tmp + } + p.ThinkingOption = _field + return offset, nil +} + +func (p *ThinkingConfig) FastReadField3(buf []byte) (int, error) { + offset := 0 + + var _field *ReasoningEffort + if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + + tmp := ReasoningEffort(v) + _field = &tmp + } + p.ReasoningEffort = _field + return offset, nil +} + +func (p *ThinkingConfig) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ThinkingConfig) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + offset += p.fastWriteField3(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *ThinkingConfig) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *ThinkingConfig) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetBudgetTokens() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 1) + offset += thrift.Binary.WriteI64(buf[offset:], *p.BudgetTokens) + } + return offset +} + +func (p *ThinkingConfig) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetThinkingOption() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 2) + offset += thrift.Binary.WriteI32(buf[offset:], int32(*p.ThinkingOption)) + } + return offset +} + +func (p *ThinkingConfig) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetReasoningEffort() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 3) + offset += thrift.Binary.WriteI32(buf[offset:], int32(*p.ReasoningEffort)) + } + return offset +} + +func (p *ThinkingConfig) field1Length() int { + l := 0 + if p.IsSetBudgetTokens() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *ThinkingConfig) field2Length() int { + l := 0 + if p.IsSetThinkingOption() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I32Length() + } + return l +} + +func (p *ThinkingConfig) field3Length() int { + l := 0 + if p.IsSetReasoningEffort() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I32Length() + } + return l +} + +func (p *ThinkingConfig) DeepCopy(s interface{}) error { + src, ok := s.(*ThinkingConfig) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.BudgetTokens != nil { + tmp := *src.BudgetTokens + p.BudgetTokens = &tmp + } + + if src.ThinkingOption != nil { + tmp := *src.ThinkingOption + p.ThinkingOption = &tmp + } + + if src.ReasoningEffort != nil { + tmp := *src.ReasoningEffort + p.ReasoningEffort = &tmp + } + + return nil +} + func (p *ParamConfigValue) FastRead(buf []byte) (int, error) { var err error From 888b87dd20a4047b72cb995dfc70b22961c899e8 Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Sun, 4 Jan 2026 16:14:41 +0800 Subject: [PATCH 07/58] [feat][prompt]: add batch get new field --- .../prompt/coze.loop.prompt.openapi.thrift | 94 ++++++++++++++++++- 1 file changed, 93 insertions(+), 1 deletion(-) diff --git a/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift b/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift index 48fc38d77..8b5876ebe 100644 --- a/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift +++ b/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift @@ -38,7 +38,7 @@ struct ExecuteRequest { 20: optional list custom_tools (api.body="custom_tools") // 自定义工具 21: optional ToolCallConfig custom_tool_call_config (api.body="custom_tool_call_config") // 自定义工具调用配置 - 22: optional prompt.ModelConfig custom_model_config (api.body="custom_model_config") // 自定义模型配置 + 22: optional ModelConfig custom_model_config (api.body="custom_model_config") // 自定义模型配置 255: optional base.Base Base } @@ -93,8 +93,22 @@ struct Prompt { 5: optional list tools // tool定义 6: optional ToolCallConfig tool_call_config // tool调用配置 7: optional LLMConfig llm_config // 模型配置 + 8: optional i64 id (api.js_conv='true', go.tag='json:"id"') // promptId + 9: optional string display_name // Prompt名称 + 10: optional string description // Prompt描述 + 11: optional PromptType prompt_type // Prompt类型 + 12: optional string created_by + 14: optional i64 created_at (api.js_conv="true", go.tag='json:"created_at"') + 15: optional i64 updated_at (api.js_conv="true", go.tag='json:"updated_at"') + 16: optional PublishStatus status // 发布状态 + 17: optional PromptPublishInfo PublishInfo // 发布信息 + 18: optional SecurityLevel security_level // 密级标签 } +typedef string PromptType (ts.enum="true") +const PromptType PromptType_Normal = "normal" +const PromptType PromptType_Snippet = "snippet" + struct PromptTemplate { 1: optional TemplateType template_type // 模板类型 2: optional list messages // 只支持message list形式托管 @@ -133,6 +147,7 @@ struct Message { 5: optional string tool_call_id // tool调用ID(role为tool时有效) 6: optional list tool_calls // tool调用(role为assistant时有效) 7: optional bool skip_render // 是否跳过需要渲染 + 8: optional string signature // gemini的签名 100: optional map metadata // 消息元信息 } @@ -144,10 +159,14 @@ struct ContentPart { 4: optional string base64_data 5: optional string video_url 6: optional MediaConfig config + 7: optional string signature + 8: optional string image_uri + 9: optional string video_uri } struct MediaConfig { 1: optional double fps (vt.ge="0.2", vt.le="5") + 2: optional string image_resolution } typedef string ContentType (ts.enum="true") @@ -187,6 +206,7 @@ const Role Role_Placeholder = "placeholder" struct Tool { 1: optional ToolType type 2: optional Function function + 3: optional bool disable // 时候禁用 } typedef string ToolType (ts.enum="true") @@ -204,6 +224,8 @@ struct ToolCall { 2: optional string id 3: optional ToolType type 4: optional FunctionCall function_call + 5: optional string output_id + 6: optional string signature } struct FunctionCall { @@ -219,6 +241,10 @@ struct LLMConfig { 5: optional double presence_penalty 6: optional double frequency_penalty 7: optional bool json_mode + 8: optional i64 id (api.js_conv='true', go.tag='json:"id"') + 9: optional string name + 10: optional ThinkingConfig thinking + 11: optional string extra } struct VariableVal { @@ -239,6 +265,7 @@ struct ListPromptBasicRequest { 3: optional i32 page_size (api.body="page_size", vt.gt = "0", vt.le = "200") 4: optional string key_word (api.body="key_word") // name/key前缀匹配 5: optional string creator (api.body="creator") // 创建人 + 6: optional map extra (api.body="extra") // 额外查询条件 255: optional base.Base Base } @@ -269,3 +296,68 @@ struct ListPromptBasicData { 1: optional list prompts // Prompt列表 2: optional i32 total } + +struct PromptPublishInfo { + 1: string publisher // 发布者 + 2: string publish_description // 发布描述 + 3: optional i64 publish_at // 发布时间 +} + +enum PublishStatus { + Undefined = 0 + UnPublish // 未发布 + Published // 已发布 +} + +enum SecurityLevel { + Undefined = 0 + L1 = 1 + L2 = 2 + L3 = 3 + L4 = 4 +} + +struct ThinkingConfig { + 1: optional i64 budget_tokens (agw.key="budget_tokens") // thinking内容的最大输出token + 2: optional ThinkingOption thinking_option (agw.key="thinking_option") + 3: optional ReasoningEffort reasoning_effort (agw.key="reasoning_effort") // 思考长度 +} + +enum ReasoningEffort { + Minimal = 1 + Low = 2 + Medium = 3 + High = 4 +} + +enum ThinkingOption { + Disabled = 1 + Enabled = 2 + Auto = 3 +} + +struct ModelConfig { + 1: optional i64 model_id (api.js_conv="true", go.tag='json:"model_id"') + 2: optional i32 max_tokens + 3: optional double temperature + 4: optional i32 top_k + 5: optional double top_p + 6: optional double presence_penalty + 7: optional double frequency_penalty + 8: optional bool json_mode + 9: optional string extra + 10: optional ThinkingConfig thinking + + 100: optional list param_config_values +} + +struct ParamConfigValue { + 1: optional string name // 传给下游模型的key,与ParamSchema.name对齐 + 2: optional string label // 展示名称 + 3: optional ParamOption value // 传给下游模型的value,与ParamSchema.options对齐 +} + +struct ParamOption { + 1: optional string value // 实际值 + 2: optional string label // 展示值 +} \ No newline at end of file From 34fd001d379d19076dbe6c8b3996d12249c43e18 Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Mon, 5 Jan 2026 14:34:55 +0800 Subject: [PATCH 08/58] [feat][prompt]: add mcp config field --- .../infra/repo/mysql/gorm_gen/model/prompt_commit.gen.go | 1 + .../repo/mysql/gorm_gen/model/prompt_user_draft.gen.go | 1 + .../infra/repo/mysql/gorm_gen/query/prompt_commit.gen.go | 6 +++++- .../repo/mysql/gorm_gen/query/prompt_user_draft.gen.go | 6 +++++- .../bootstrap/mysql-init/init-sql/prompt_commit.sql | 1 + .../bootstrap/mysql-init/init-sql/prompt_user_draft.sql | 1 + .../bootstrap/mysql-init/patch-sql/prompt_commit_alter.sql | 3 ++- .../mysql-init/patch-sql/prompt_user_draft_alter.sql | 3 ++- 8 files changed, 18 insertions(+), 4 deletions(-) diff --git a/backend/modules/prompt/infra/repo/mysql/gorm_gen/model/prompt_commit.gen.go b/backend/modules/prompt/infra/repo/mysql/gorm_gen/model/prompt_commit.gen.go index 65d5c5a00..518af502c 100644 --- a/backend/modules/prompt/infra/repo/mysql/gorm_gen/model/prompt_commit.gen.go +++ b/backend/modules/prompt/infra/repo/mysql/gorm_gen/model/prompt_commit.gen.go @@ -23,6 +23,7 @@ type PromptCommit struct { Tools *string `gorm:"column:tools;type:longtext;comment:tools" json:"tools"` // tools ToolCallConfig *string `gorm:"column:tool_call_config;type:text;comment:tool调用配置" json:"tool_call_config"` // tool调用配置 Metadata *string `gorm:"column:metadata;type:text;comment:模板元信息" json:"metadata"` // 模板元信息 + McpConfig *string `gorm:"column:mcp_config;type:text;comment:mcp config info" json:"mcp_config"` // mcp config info Version string `gorm:"column:version;type:varchar(128);not null;uniqueIndex:uniq_prompt_id_version,priority:2;index:idx_prompt_key_version,priority:2;comment:版本" json:"version"` // 版本 BaseVersion string `gorm:"column:base_version;type:varchar(128);not null;comment:来源版本" json:"base_version"` // 来源版本 CommittedBy string `gorm:"column:committed_by;type:varchar(128);not null;comment:提交人" json:"committed_by"` // 提交人 diff --git a/backend/modules/prompt/infra/repo/mysql/gorm_gen/model/prompt_user_draft.gen.go b/backend/modules/prompt/infra/repo/mysql/gorm_gen/model/prompt_user_draft.gen.go index 9ca4211ec..5da4d102e 100644 --- a/backend/modules/prompt/infra/repo/mysql/gorm_gen/model/prompt_user_draft.gen.go +++ b/backend/modules/prompt/infra/repo/mysql/gorm_gen/model/prompt_user_draft.gen.go @@ -25,6 +25,7 @@ type PromptUserDraft struct { Tools *string `gorm:"column:tools;type:longtext;comment:tools" json:"tools"` // tools ToolCallConfig *string `gorm:"column:tool_call_config;type:text;comment:tool调用配置" json:"tool_call_config"` // tool调用配置 Metadata *string `gorm:"column:metadata;type:text;comment:模板元信息" json:"metadata"` // 模板元信息 + McpConfig *string `gorm:"column:mcp_config;type:text;comment:mcp config info" json:"mcp_config"` // mcp config info BaseVersion string `gorm:"column:base_version;type:varchar(128);not null;comment:草稿关联版本" json:"base_version"` // 草稿关联版本 IsDraftEdited int32 `gorm:"column:is_draft_edited;type:tinyint(4);not null;comment:草稿内容是否基于BaseVersion有变更" json:"is_draft_edited"` // 草稿内容是否基于BaseVersion有变更 ExtInfo *string `gorm:"column:ext_info;type:text;comment:扩展字段" json:"ext_info"` // 扩展字段 diff --git a/backend/modules/prompt/infra/repo/mysql/gorm_gen/query/prompt_commit.gen.go b/backend/modules/prompt/infra/repo/mysql/gorm_gen/query/prompt_commit.gen.go index bac1f4823..33de37829 100644 --- a/backend/modules/prompt/infra/repo/mysql/gorm_gen/query/prompt_commit.gen.go +++ b/backend/modules/prompt/infra/repo/mysql/gorm_gen/query/prompt_commit.gen.go @@ -38,6 +38,7 @@ func newPromptCommit(db *gorm.DB, opts ...gen.DOOption) promptCommit { _promptCommit.Tools = field.NewString(tableName, "tools") _promptCommit.ToolCallConfig = field.NewString(tableName, "tool_call_config") _promptCommit.Metadata = field.NewString(tableName, "metadata") + _promptCommit.McpConfig = field.NewString(tableName, "mcp_config") _promptCommit.Version = field.NewString(tableName, "version") _promptCommit.BaseVersion = field.NewString(tableName, "base_version") _promptCommit.CommittedBy = field.NewString(tableName, "committed_by") @@ -68,6 +69,7 @@ type promptCommit struct { Tools field.String // tools ToolCallConfig field.String // tool调用配置 Metadata field.String // 模板元信息 + McpConfig field.String // mcp config info Version field.String // 版本 BaseVersion field.String // 来源版本 CommittedBy field.String // 提交人 @@ -103,6 +105,7 @@ func (p *promptCommit) updateTableName(table string) *promptCommit { p.Tools = field.NewString(table, "tools") p.ToolCallConfig = field.NewString(table, "tool_call_config") p.Metadata = field.NewString(table, "metadata") + p.McpConfig = field.NewString(table, "mcp_config") p.Version = field.NewString(table, "version") p.BaseVersion = field.NewString(table, "base_version") p.CommittedBy = field.NewString(table, "committed_by") @@ -139,7 +142,7 @@ func (p *promptCommit) GetFieldByName(fieldName string) (field.OrderExpr, bool) } func (p *promptCommit) fillFieldMap() { - p.fieldMap = make(map[string]field.Expr, 19) + p.fieldMap = make(map[string]field.Expr, 20) p.fieldMap["id"] = p.ID p.fieldMap["space_id"] = p.SpaceID p.fieldMap["prompt_id"] = p.PromptID @@ -151,6 +154,7 @@ func (p *promptCommit) fillFieldMap() { p.fieldMap["tools"] = p.Tools p.fieldMap["tool_call_config"] = p.ToolCallConfig p.fieldMap["metadata"] = p.Metadata + p.fieldMap["mcp_config"] = p.McpConfig p.fieldMap["version"] = p.Version p.fieldMap["base_version"] = p.BaseVersion p.fieldMap["committed_by"] = p.CommittedBy diff --git a/backend/modules/prompt/infra/repo/mysql/gorm_gen/query/prompt_user_draft.gen.go b/backend/modules/prompt/infra/repo/mysql/gorm_gen/query/prompt_user_draft.gen.go index 5d8d9fbb6..ddc543753 100644 --- a/backend/modules/prompt/infra/repo/mysql/gorm_gen/query/prompt_user_draft.gen.go +++ b/backend/modules/prompt/infra/repo/mysql/gorm_gen/query/prompt_user_draft.gen.go @@ -38,6 +38,7 @@ func newPromptUserDraft(db *gorm.DB, opts ...gen.DOOption) promptUserDraft { _promptUserDraft.Tools = field.NewString(tableName, "tools") _promptUserDraft.ToolCallConfig = field.NewString(tableName, "tool_call_config") _promptUserDraft.Metadata = field.NewString(tableName, "metadata") + _promptUserDraft.McpConfig = field.NewString(tableName, "mcp_config") _promptUserDraft.BaseVersion = field.NewString(tableName, "base_version") _promptUserDraft.IsDraftEdited = field.NewInt32(tableName, "is_draft_edited") _promptUserDraft.ExtInfo = field.NewString(tableName, "ext_info") @@ -67,6 +68,7 @@ type promptUserDraft struct { Tools field.String // tools ToolCallConfig field.String // tool调用配置 Metadata field.String // 模板元信息 + McpConfig field.String // mcp config info BaseVersion field.String // 草稿关联版本 IsDraftEdited field.Int32 // 草稿内容是否基于BaseVersion有变更 ExtInfo field.String // 扩展字段 @@ -101,6 +103,7 @@ func (p *promptUserDraft) updateTableName(table string) *promptUserDraft { p.Tools = field.NewString(table, "tools") p.ToolCallConfig = field.NewString(table, "tool_call_config") p.Metadata = field.NewString(table, "metadata") + p.McpConfig = field.NewString(table, "mcp_config") p.BaseVersion = field.NewString(table, "base_version") p.IsDraftEdited = field.NewInt32(table, "is_draft_edited") p.ExtInfo = field.NewString(table, "ext_info") @@ -136,7 +139,7 @@ func (p *promptUserDraft) GetFieldByName(fieldName string) (field.OrderExpr, boo } func (p *promptUserDraft) fillFieldMap() { - p.fieldMap = make(map[string]field.Expr, 18) + p.fieldMap = make(map[string]field.Expr, 19) p.fieldMap["id"] = p.ID p.fieldMap["space_id"] = p.SpaceID p.fieldMap["prompt_id"] = p.PromptID @@ -148,6 +151,7 @@ func (p *promptUserDraft) fillFieldMap() { p.fieldMap["tools"] = p.Tools p.fieldMap["tool_call_config"] = p.ToolCallConfig p.fieldMap["metadata"] = p.Metadata + p.fieldMap["mcp_config"] = p.McpConfig p.fieldMap["base_version"] = p.BaseVersion p.fieldMap["is_draft_edited"] = p.IsDraftEdited p.fieldMap["ext_info"] = p.ExtInfo diff --git a/release/deployment/docker-compose/bootstrap/mysql-init/init-sql/prompt_commit.sql b/release/deployment/docker-compose/bootstrap/mysql-init/init-sql/prompt_commit.sql index 22046c5e8..0ef0feeed 100644 --- a/release/deployment/docker-compose/bootstrap/mysql-init/init-sql/prompt_commit.sql +++ b/release/deployment/docker-compose/bootstrap/mysql-init/init-sql/prompt_commit.sql @@ -11,6 +11,7 @@ CREATE TABLE IF NOT EXISTS `prompt_commit` `tools` longtext COLLATE utf8mb4_general_ci COMMENT 'tools', `tool_call_config` text COLLATE utf8mb4_general_ci COMMENT 'tool调用配置', `metadata` text COLLATE utf8mb4_general_ci COMMENT '模板元信息', + `mcp_config` text COLLATE utf8mb4_general_ci COMMENT 'mcp config info', `version` varchar(128) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '版本', `base_version` varchar(128) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '来源版本', `committed_by` varchar(128) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '提交人', diff --git a/release/deployment/docker-compose/bootstrap/mysql-init/init-sql/prompt_user_draft.sql b/release/deployment/docker-compose/bootstrap/mysql-init/init-sql/prompt_user_draft.sql index cf9d1ed7f..a85aeff79 100644 --- a/release/deployment/docker-compose/bootstrap/mysql-init/init-sql/prompt_user_draft.sql +++ b/release/deployment/docker-compose/bootstrap/mysql-init/init-sql/prompt_user_draft.sql @@ -11,6 +11,7 @@ CREATE TABLE IF NOT EXISTS `prompt_user_draft` `tools` longtext COLLATE utf8mb4_general_ci COMMENT 'tools', `tool_call_config` text COLLATE utf8mb4_general_ci COMMENT 'tool调用配置', `metadata` text COLLATE utf8mb4_general_ci COMMENT '模板元信息', + `mcp_config` text COLLATE utf8mb4_general_ci COMMENT 'mcp config info', `base_version` varchar(128) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '草稿关联版本', `is_draft_edited` tinyint NOT NULL DEFAULT '0' COMMENT '草稿内容是否基于BaseVersion有变更', `ext_info` text COLLATE utf8mb4_general_ci COMMENT '扩展字段', diff --git a/release/deployment/docker-compose/bootstrap/mysql-init/patch-sql/prompt_commit_alter.sql b/release/deployment/docker-compose/bootstrap/mysql-init/patch-sql/prompt_commit_alter.sql index d4919bfee..924cec27e 100644 --- a/release/deployment/docker-compose/bootstrap/mysql-init/patch-sql/prompt_commit_alter.sql +++ b/release/deployment/docker-compose/bootstrap/mysql-init/patch-sql/prompt_commit_alter.sql @@ -1,3 +1,4 @@ ALTER TABLE `prompt_commit` ADD COLUMN `ext_info` text COLLATE utf8mb4_general_ci COMMENT 'Extended information field'; ALTER TABLE `prompt_commit` ADD COLUMN `metadata` text COLLATE utf8mb4_general_ci COMMENT 'Template metadata field'; -ALTER TABLE `prompt_commit` ADD COLUMN `has_snippets` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否包含prompt片段'; \ No newline at end of file +ALTER TABLE `prompt_commit` ADD COLUMN `has_snippets` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否包含prompt片段'; +ALTER TABLE `prompt_commit` ADD COLUMN `mcp_config` text COLLATE utf8mb4_general_ci COMMENT 'mcp config info'; \ No newline at end of file diff --git a/release/deployment/docker-compose/bootstrap/mysql-init/patch-sql/prompt_user_draft_alter.sql b/release/deployment/docker-compose/bootstrap/mysql-init/patch-sql/prompt_user_draft_alter.sql index 8ecb3d12e..bd897e3c7 100644 --- a/release/deployment/docker-compose/bootstrap/mysql-init/patch-sql/prompt_user_draft_alter.sql +++ b/release/deployment/docker-compose/bootstrap/mysql-init/patch-sql/prompt_user_draft_alter.sql @@ -1,3 +1,4 @@ ALTER TABLE `prompt_user_draft` ADD COLUMN `ext_info` text COLLATE utf8mb4_general_ci COMMENT 'Extended information field'; ALTER TABLE `prompt_user_draft` ADD COLUMN `metadata` text COLLATE utf8mb4_general_ci COMMENT 'Template metadata field'; -ALTER TABLE `prompt_user_draft` ADD COLUMN `has_snippets` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否包含prompt片段'; \ No newline at end of file +ALTER TABLE `prompt_user_draft` ADD COLUMN `has_snippets` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否包含prompt片段'; +ALTER TABLE `prompt_user_draft` ADD COLUMN `mcp_config` text COLLATE utf8mb4_general_ci COMMENT 'mcp config info'; \ No newline at end of file From 8ebebb64db11cc3dc492c3f17d1e58d6303745cb Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Mon, 5 Jan 2026 15:03:12 +0800 Subject: [PATCH 09/58] [feat][prompt]: add mcp config crud dao --- .../prompt/domain/entity/prompt_detail.go | 14 ++++++++++++++ .../prompt/infra/repo/mysql/convertor/manage.go | 17 +++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/backend/modules/prompt/domain/entity/prompt_detail.go b/backend/modules/prompt/domain/entity/prompt_detail.go index 037f4b012..b91982ee3 100644 --- a/backend/modules/prompt/domain/entity/prompt_detail.go +++ b/backend/modules/prompt/domain/entity/prompt_detail.go @@ -30,6 +30,7 @@ type PromptDetail struct { Tools []*Tool `json:"tools,omitempty"` ToolCallConfig *ToolCallConfig `json:"tool_call_config,omitempty"` ModelConfig *ModelConfig `json:"model_config,omitempty"` + McpConfig *McpConfig `json:"mcp_config,omitempty"` ExtInfos map[string]string `json:"ext_infos,omitempty"` } @@ -237,6 +238,19 @@ type ParamOption struct { Label string `json:"label"` } +type McpConfig struct { + IsMcpCallAutoRetry *bool `json:"is_mcp_call_auto_retry,omitempty"` + McpServers []*McpServerCombine `json:"mcp_servers,omitempty"` +} + +type McpServerCombine struct { + McpServerID *int64 `json:"mcp_server_id,omitempty"` + AccessPointID *int64 `json:"access_point_id,omitempty"` + DisabledTools []string `json:"disabled_tools,omitempty"` + EnabledTools []string `json:"enabled_tools,omitempty"` + IsEnabledTools *bool `json:"is_enabled_tools,omitempty"` +} + func (pt *PromptTemplate) formatMessages(messages []*Message, variableVals []*VariableVal) ([]*Message, error) { if pt == nil { return nil, nil diff --git a/backend/modules/prompt/infra/repo/mysql/convertor/manage.go b/backend/modules/prompt/infra/repo/mysql/convertor/manage.go index 988a969e9..9882eee56 100644 --- a/backend/modules/prompt/infra/repo/mysql/convertor/manage.go +++ b/backend/modules/prompt/infra/repo/mysql/convertor/manage.go @@ -182,6 +182,9 @@ func PromptDO2CommitPO(do *entity.Prompt) *model.PromptCommit { if do.PromptCommit.PromptDetail.ToolCallConfig != nil { po.ToolCallConfig = ptr.Of(json.Jsonify(do.PromptCommit.PromptDetail.ToolCallConfig)) } + if do.PromptCommit.PromptDetail.McpConfig != nil { + po.McpConfig = ptr.Of(json.Jsonify(do.PromptCommit.PromptDetail.McpConfig)) + } if do.PromptCommit.PromptDetail.PromptTemplate != nil { po.TemplateType = ptr.Of(string(do.PromptCommit.PromptDetail.PromptTemplate.TemplateType)) if do.PromptCommit.PromptDetail.PromptTemplate.Messages != nil { @@ -240,6 +243,9 @@ func PromptDO2DraftPO(promptDO *entity.Prompt) *model.PromptUserDraft { if detailDO.ToolCallConfig != nil { po.ToolCallConfig = ptr.Of(json.Jsonify(detailDO.ToolCallConfig)) } + if detailDO.McpConfig != nil { + po.McpConfig = ptr.Of(json.Jsonify(detailDO.McpConfig)) + } // 序列化ExtInfos到ExtInfo字段 if detailDO.ExtInfos != nil { po.ExtInfo = ptr.Of(json.Jsonify(detailDO.ExtInfos)) @@ -286,6 +292,7 @@ func PromptUserDraftPO2PromptDetailDO(draftPO *model.PromptUserDraft) *entity.Pr Tools: UnmarshalToolDOs(draftPO.Tools), ToolCallConfig: UnmarshalToolCallConfig(draftPO.ToolCallConfig), ModelConfig: UnmarshalModelConfig(draftPO.ModelConfig), + McpConfig: UnmarshalMcpConfig(draftPO.McpConfig), ExtInfos: UnmarshalExtInfos(draftPO.ExtInfo), } } @@ -305,6 +312,7 @@ func PromptCommitPO2PromptDetailDO(commitPO *model.PromptCommit) *entity.PromptD Tools: UnmarshalToolDOs(commitPO.Tools), ToolCallConfig: UnmarshalToolCallConfig(commitPO.ToolCallConfig), ModelConfig: UnmarshalModelConfig(commitPO.ModelConfig), + McpConfig: UnmarshalMcpConfig(commitPO.McpConfig), ExtInfos: UnmarshalExtInfos(commitPO.ExtInfo), } } @@ -379,6 +387,15 @@ func UnmarshalExtInfos(text *string) map[string]string { return extInfos } +func UnmarshalMcpConfig(text *string) *entity.McpConfig { + if text == nil { + return nil + } + mcpConfig := &entity.McpConfig{} + _ = json.Unmarshal([]byte(*text), &mcpConfig) + return mcpConfig +} + func UnmarshalBool(val int32) bool { return val != 0 } From 2615e69ef2035d604f6a790d5e36961902faf058 Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Mon, 5 Jan 2026 17:29:57 +0800 Subject: [PATCH 10/58] [feat][prompt]: abstract tool list and tool call --- backend/modules/prompt/application/wire.go | 2 + .../modules/prompt/application/wire_gen.go | 18 +++-- .../domain/service/context_reorganizer.go | 63 ++++++++++++++++ .../modules/prompt/domain/service/execute.go | 72 ++++++------------- .../modules/prompt/domain/service/service.go | 46 ++++++------ .../prompt/domain/service/tool_config.go | 49 +++++++++++++ 6 files changed, 173 insertions(+), 77 deletions(-) create mode 100644 backend/modules/prompt/domain/service/context_reorganizer.go create mode 100644 backend/modules/prompt/domain/service/tool_config.go diff --git a/backend/modules/prompt/application/wire.go b/backend/modules/prompt/application/wire.go index bc3584c24..5236aef7d 100644 --- a/backend/modules/prompt/application/wire.go +++ b/backend/modules/prompt/application/wire.go @@ -37,6 +37,8 @@ import ( var ( promptDomainSet = wire.NewSet( service.NewPromptFormatter, + service.NewToolConfigProvider, + service.NewContextReorganizer, service.NewPromptService, repo.NewManageRepo, repo.NewLabelRepo, diff --git a/backend/modules/prompt/application/wire_gen.go b/backend/modules/prompt/application/wire_gen.go index acd15bcee..54f516ee4 100644 --- a/backend/modules/prompt/application/wire_gen.go +++ b/backend/modules/prompt/application/wire_gen.go @@ -52,6 +52,8 @@ func InitPromptManageApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, red iPromptLabelVersionDAO := redis2.NewPromptLabelVersionDAO(redisCli, iConfigProvider) iLabelRepo := repo.NewLabelRepo(db2, idgen2, meter, iLabelDAO, iCommitLabelMappingDAO, iPromptBasicDAO, iPromptLabelVersionDAO) iPromptFormatter := service.NewPromptFormatter() + iToolConfigProvider := service.NewToolConfigProvider() + iContextReorganizer := service.NewContextReorganizer() iDebugLogDAO := mysql.NewDebugLogDAO(db2) iDebugLogRepo := repo.NewDebugLogRepo(idgen2, iDebugLogDAO) iDebugContextDAO := mysql.NewDebugContextDAO(db2) @@ -59,7 +61,7 @@ func InitPromptManageApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, red illmProvider := rpc.NewLLMRPCProvider(llmClient) iFileProvider := rpc.NewFileRPCProvider(fileClient) snippetParser := service.NewCozeLoopSnippetParser() - iPromptService := service.NewPromptService(iPromptFormatter, idgen2, iDebugLogRepo, iDebugContextRepo, iManageRepo, iLabelRepo, iConfigProvider, illmProvider, iFileProvider, snippetParser) + iPromptService := service.NewPromptService(iPromptFormatter, iToolConfigProvider, iContextReorganizer, idgen2, iDebugLogRepo, iDebugContextRepo, iManageRepo, iLabelRepo, iConfigProvider, illmProvider, iFileProvider, snippetParser) iAuthProvider := rpc.NewAuthRPCProvider(authClient) iUserProvider := rpc.NewUserRPCProvider(userClient) iAuditProvider := rpc.NewAuditRPCProvider(auditClient) @@ -73,6 +75,8 @@ func InitPromptDebugApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, redi iDebugContextDAO := mysql.NewDebugContextDAO(db2) iDebugContextRepo := repo.NewDebugContextRepo(idgen2, iDebugContextDAO) iPromptFormatter := service.NewPromptFormatter() + iToolConfigProvider := service.NewToolConfigProvider() + iContextReorganizer := service.NewContextReorganizer() iPromptBasicDAO := mysql.NewPromptBasicDAO(db2, redisCli) iPromptCommitDAO := mysql.NewPromptCommitDAO(db2, redisCli) iPromptUserDraftDAO := mysql.NewPromptUserDraftDAO(db2, redisCli) @@ -91,7 +95,7 @@ func InitPromptDebugApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, redi illmProvider := rpc.NewLLMRPCProvider(llmClient) iFileProvider := rpc.NewFileRPCProvider(fileClient) snippetParser := service.NewCozeLoopSnippetParser() - iPromptService := service.NewPromptService(iPromptFormatter, idgen2, iDebugLogRepo, iDebugContextRepo, iManageRepo, iLabelRepo, iConfigProvider, illmProvider, iFileProvider, snippetParser) + iPromptService := service.NewPromptService(iPromptFormatter, iToolConfigProvider, iContextReorganizer, idgen2, iDebugLogRepo, iDebugContextRepo, iManageRepo, iLabelRepo, iConfigProvider, illmProvider, iFileProvider, snippetParser) iAuthProvider := rpc.NewAuthRPCProvider(authClient) promptDebugService := NewPromptDebugApplication(iDebugLogRepo, iDebugContextRepo, iPromptService, benefitSvc, iAuthProvider, iFileProvider) return promptDebugService, nil @@ -99,6 +103,8 @@ func InitPromptDebugApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, redi func InitPromptExecuteApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, redisCli redis.Cmdable, meter metrics.Meter, configFactory conf.IConfigLoaderFactory, llmClient llmruntimeservice.Client, fileClient fileservice.Client) (execute.PromptExecuteService, error) { iPromptFormatter := service.NewPromptFormatter() + iToolConfigProvider := service.NewToolConfigProvider() + iContextReorganizer := service.NewContextReorganizer() iDebugLogDAO := mysql.NewDebugLogDAO(db2) iDebugLogRepo := repo.NewDebugLogRepo(idgen2, iDebugLogDAO) iDebugContextDAO := mysql.NewDebugContextDAO(db2) @@ -121,13 +127,15 @@ func InitPromptExecuteApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, re illmProvider := rpc.NewLLMRPCProvider(llmClient) iFileProvider := rpc.NewFileRPCProvider(fileClient) snippetParser := service.NewCozeLoopSnippetParser() - iPromptService := service.NewPromptService(iPromptFormatter, idgen2, iDebugLogRepo, iDebugContextRepo, iManageRepo, iLabelRepo, iConfigProvider, illmProvider, iFileProvider, snippetParser) + iPromptService := service.NewPromptService(iPromptFormatter, iToolConfigProvider, iContextReorganizer, idgen2, iDebugLogRepo, iDebugContextRepo, iManageRepo, iLabelRepo, iConfigProvider, illmProvider, iFileProvider, snippetParser) promptExecuteService := NewPromptExecuteApplication(iPromptService, iManageRepo) return promptExecuteService, nil } func InitPromptOpenAPIApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, redisCli redis.Cmdable, meter metrics.Meter, configFactory conf.IConfigLoaderFactory, limiterFactory limiter.IRateLimiterFactory, llmClient llmruntimeservice.Client, authClient authservice.Client, fileClient fileservice.Client) (openapi.PromptOpenAPIService, error) { iPromptFormatter := service.NewPromptFormatter() + iToolConfigProvider := service.NewToolConfigProvider() + iContextReorganizer := service.NewContextReorganizer() iDebugLogDAO := mysql.NewDebugLogDAO(db2) iDebugLogRepo := repo.NewDebugLogRepo(idgen2, iDebugLogDAO) iDebugContextDAO := mysql.NewDebugContextDAO(db2) @@ -150,7 +158,7 @@ func InitPromptOpenAPIApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, re illmProvider := rpc.NewLLMRPCProvider(llmClient) iFileProvider := rpc.NewFileRPCProvider(fileClient) snippetParser := service.NewCozeLoopSnippetParser() - iPromptService := service.NewPromptService(iPromptFormatter, idgen2, iDebugLogRepo, iDebugContextRepo, iManageRepo, iLabelRepo, iConfigProvider, illmProvider, iFileProvider, snippetParser) + iPromptService := service.NewPromptService(iPromptFormatter, iToolConfigProvider, iContextReorganizer, idgen2, iDebugLogRepo, iDebugContextRepo, iManageRepo, iLabelRepo, iConfigProvider, illmProvider, iFileProvider, snippetParser) iAuthProvider := rpc.NewAuthRPCProvider(authClient) iCollectorProvider := collector.NewEventCollectorProvider() promptOpenAPIService, err := NewPromptOpenAPIApplication(iPromptService, iManageRepo, iConfigProvider, iAuthProvider, limiterFactory, iCollectorProvider) @@ -163,7 +171,7 @@ func InitPromptOpenAPIApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, re // wire.go: var ( - promptDomainSet = wire.NewSet(service.NewPromptFormatter, service.NewPromptService, repo.NewManageRepo, repo.NewLabelRepo, repo.NewDebugLogRepo, repo.NewDebugContextRepo, mysql.NewPromptBasicDAO, mysql.NewPromptCommitDAO, mysql.NewPromptUserDraftDAO, mysql.NewPromptRelationDAO, mysql.NewLabelDAO, mysql.NewCommitLabelMappingDAO, mysql.NewDebugLogDAO, mysql.NewDebugContextDAO, redis2.NewPromptBasicDAO, redis2.NewPromptDAO, redis2.NewPromptLabelVersionDAO, conf2.NewPromptConfigProvider, rpc.NewLLMRPCProvider, rpc.NewAuthRPCProvider, rpc.NewFileRPCProvider, rpc.NewUserRPCProvider, rpc.NewAuditRPCProvider, collector.NewEventCollectorProvider, service.NewCozeLoopSnippetParser) + promptDomainSet = wire.NewSet(service.NewPromptFormatter, service.NewToolConfigProvider, service.NewContextReorganizer, service.NewPromptService, repo.NewManageRepo, repo.NewLabelRepo, repo.NewDebugLogRepo, repo.NewDebugContextRepo, mysql.NewPromptBasicDAO, mysql.NewPromptCommitDAO, mysql.NewPromptUserDraftDAO, mysql.NewPromptRelationDAO, mysql.NewLabelDAO, mysql.NewCommitLabelMappingDAO, mysql.NewDebugLogDAO, mysql.NewDebugContextDAO, redis2.NewPromptBasicDAO, redis2.NewPromptDAO, redis2.NewPromptLabelVersionDAO, conf2.NewPromptConfigProvider, rpc.NewLLMRPCProvider, rpc.NewAuthRPCProvider, rpc.NewFileRPCProvider, rpc.NewUserRPCProvider, rpc.NewAuditRPCProvider, collector.NewEventCollectorProvider, service.NewCozeLoopSnippetParser) manageSet = wire.NewSet( NewPromptManageApplication, promptDomainSet, diff --git a/backend/modules/prompt/domain/service/context_reorganizer.go b/backend/modules/prompt/domain/service/context_reorganizer.go new file mode 100644 index 000000000..1858f534d --- /dev/null +++ b/backend/modules/prompt/domain/service/context_reorganizer.go @@ -0,0 +1,63 @@ +// Copyright (c) 2025 coze-dev Authors +// SPDX-License-Identifier: Apache-2.0 + +package service + +import ( + "context" + "slices" + + "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/entity" + "github.com/coze-dev/coze-loop/backend/pkg/lang/ptr" + loopslices "github.com/coze-dev/coze-loop/backend/pkg/lang/slices" +) + +// ReorganizeContextParam defines the parameters for reorganizing contexts +type ReorganizeContextParam struct { + Prompt *entity.Prompt + Messages []*entity.Message + MockTools []*entity.MockTool + Reply *entity.Reply + ResultStream chan<- *entity.Reply // only used in streaming mode +} + +// IContextReorganizer defines the interface for reorganizing contexts after each iteration +type IContextReorganizer interface { + ReorganizeContexts(ctx context.Context, param ReorganizeContextParam) ([]*entity.Message, error) +} + +// ContextReorganizer provides the default implementation of IContextReorganizer +type ContextReorganizer struct{} + +// NewContextReorganizer creates a new instance of ContextReorganizer +func NewContextReorganizer() IContextReorganizer { + return &ContextReorganizer{} +} + +// ReorganizeContexts implements the IContextReorganizer interface +func (c *ContextReorganizer) ReorganizeContexts(ctx context.Context, param ReorganizeContextParam) ([]*entity.Message, error) { + newContexts := slices.Clone(param.Messages) + if param.Reply == nil || param.Reply.Item == nil || param.Reply.Item.Message == nil { + return newContexts, nil + } + newContexts = append(newContexts, param.Reply.Item.Message) + if len(param.Reply.Item.Message.ToolCalls) > 0 { + // 如果有工具调用,则需要mock response + mockToolResponseMap := loopslices.ToMap(param.MockTools, func(m *entity.MockTool) (string, string) { + if m == nil { + return "", "" + } + return m.Name, m.MockResponse + }) + for _, toolCall := range param.Reply.Item.Message.ToolCalls { + if toolCall.FunctionCall != nil { + newContexts = append(newContexts, &entity.Message{ + Role: entity.RoleTool, + ToolCallID: ptr.Of(toolCall.ID), + Content: ptr.Of(mockToolResponseMap[toolCall.FunctionCall.Name]), + }) + } + } + } + return newContexts, nil +} diff --git a/backend/modules/prompt/domain/service/execute.go b/backend/modules/prompt/domain/service/execute.go index 18cfc04c2..b09e72dbf 100644 --- a/backend/modules/prompt/domain/service/execute.go +++ b/backend/modules/prompt/domain/service/execute.go @@ -6,7 +6,6 @@ package service import ( "context" "errors" - "slices" "strconv" "time" @@ -31,8 +30,8 @@ import ( ) const ( - maxIterations = 8 - maxDuration = 8 * time.Minute + maxIterations = 50 + maxDuration = 30 * time.Minute ) type ExecuteParam struct { @@ -100,7 +99,13 @@ func (p *PromptServiceImpl) ExecuteStreaming(ctx context.Context, param ExecuteS } debugStep++ // 多轮执行需要重新编排上下文 - param.Messages, err = reorganizeContexts(param.Messages, param.MockTools, aggregatedReply) + param.Messages, err = p.contextReorganizer.ReorganizeContexts(ctx, ReorganizeContextParam{ + Prompt: param.Prompt, + Messages: param.Messages, + MockTools: param.MockTools, + Reply: aggregatedReply, + ResultStream: param.ResultStream, + }) if err != nil { return nil, err } @@ -144,7 +149,12 @@ func (p *PromptServiceImpl) Execute(ctx context.Context, param ExecuteParam) (re } debugStep++ // 多轮执行需要重新编排上下文 - param.Messages, err = reorganizeContexts(param.Messages, param.MockTools, reply) + param.Messages, err = p.contextReorganizer.ReorganizeContexts(ctx, ReorganizeContextParam{ + Prompt: param.Prompt, + Messages: param.Messages, + MockTools: param.MockTools, + Reply: reply, + }) if err != nil { return nil, err } @@ -309,33 +319,6 @@ func (p *PromptServiceImpl) reportToolSpan(ctx context.Context, prompt *entity.P } } -func reorganizeContexts(contexts []*entity.Message, mockTools []*entity.MockTool, reply *entity.Reply) ([]*entity.Message, error) { - newContexts := slices.Clone(contexts) - if reply == nil || reply.Item == nil || reply.Item.Message == nil { - return newContexts, nil - } - newContexts = append(newContexts, reply.Item.Message) - if len(reply.Item.Message.ToolCalls) > 0 { - // 如果有工具调用,则需要mock response - mockToolResponseMap := loopslices.ToMap(mockTools, func(m *entity.MockTool) (string, string) { - if m == nil { - return "", "" - } - return m.Name, m.MockResponse - }) - for _, toolCall := range reply.Item.Message.ToolCalls { - if toolCall.FunctionCall != nil { - newContexts = append(newContexts, &entity.Message{ - Role: entity.RoleTool, - ToolCallID: ptr.Of(toolCall.ID), - Content: ptr.Of(mockToolResponseMap[toolCall.FunctionCall.Name]), - }) - } - } - } - return newContexts, nil -} - func (p *PromptServiceImpl) startSequenceSpan(ctx context.Context, prompt *entity.Prompt, messages []*entity.Message, variableVals []*entity.VariableVal) (context.Context, cozeloop.Span) { if prompt == nil { return ctx, nil @@ -384,28 +367,13 @@ func (p *PromptServiceImpl) prepareLLMCallParam(ctx context.Context, param Execu if err != nil { return rpc.LLMCallParam{}, err } - // call llm - promptDetail := param.Prompt.GetPromptDetail() - var tools []*entity.Tool - var toolCallConfig *entity.ToolCallConfig - if promptDetail != nil { - if promptDetail.ToolCallConfig != nil && promptDetail.ToolCallConfig.ToolChoice != entity.ToolChoiceTypeNone { - tools = promptDetail.Tools - toolCallConfig = promptDetail.ToolCallConfig - } - } - // Validate tool choice specification - if toolCallConfig != nil && toolCallConfig.ToolChoice == entity.ToolChoiceTypeSpecific { - // When tool choice is specific, must be in single step mode - if !param.SingleStep { - return rpc.LLMCallParam{}, errorx.New("tool choice specific must be used with single step mode to avoid infinite loops") - } - // ToolChoiceSpecification must not be empty - if toolCallConfig.ToolChoiceSpecification == nil { - return rpc.LLMCallParam{}, errorx.New("tool_choice_specification must not be empty when tool choice is specific") - } + // get tool configuration using the tool config provider interface + tools, toolCallConfig, err := p.toolConfigProvider.GetToolConfig(ctx, param.Prompt, param.SingleStep) + if err != nil { + return rpc.LLMCallParam{}, err } var modelConfig *entity.ModelConfig + promptDetail := param.Prompt.GetPromptDetail() if promptDetail != nil { modelConfig = promptDetail.ModelConfig } diff --git a/backend/modules/prompt/domain/service/service.go b/backend/modules/prompt/domain/service/service.go index a8026206a..1a2a11b97 100644 --- a/backend/modules/prompt/domain/service/service.go +++ b/backend/modules/prompt/domain/service/service.go @@ -75,16 +75,18 @@ type PromptLabelQuery struct { } type PromptServiceImpl struct { - formatter IPromptFormatter - idgen idgen.IIDGenerator - debugLogRepo repo.IDebugLogRepo - debugContextRepo repo.IDebugContextRepo - manageRepo repo.IManageRepo - labelRepo repo.ILabelRepo - configProvider conf.IConfigProvider - llm rpc.ILLMProvider - file rpc.IFileProvider - snippetParser SnippetParser + formatter IPromptFormatter + toolConfigProvider IToolConfigProvider + contextReorganizer IContextReorganizer + idgen idgen.IIDGenerator + debugLogRepo repo.IDebugLogRepo + debugContextRepo repo.IDebugContextRepo + manageRepo repo.IManageRepo + labelRepo repo.ILabelRepo + configProvider conf.IConfigProvider + llm rpc.ILLMProvider + file rpc.IFileProvider + snippetParser SnippetParser } type GetPromptParam struct { @@ -100,6 +102,8 @@ type GetPromptParam struct { func NewPromptService( formatter IPromptFormatter, + toolConfigProvider IToolConfigProvider, + contextReorganizer IContextReorganizer, idgen idgen.IIDGenerator, debugLogRepo repo.IDebugLogRepo, debugContextRepo repo.IDebugContextRepo, @@ -111,15 +115,17 @@ func NewPromptService( snippetParser SnippetParser, ) IPromptService { return &PromptServiceImpl{ - formatter: formatter, - idgen: idgen, - debugLogRepo: debugLogRepo, - debugContextRepo: debugContextRepo, - manageRepo: promptManageRepo, - labelRepo: labelRepo, - configProvider: configProvider, - llm: llm, - file: file, - snippetParser: snippetParser, + formatter: formatter, + toolConfigProvider: toolConfigProvider, + contextReorganizer: contextReorganizer, + idgen: idgen, + debugLogRepo: debugLogRepo, + debugContextRepo: debugContextRepo, + manageRepo: promptManageRepo, + labelRepo: labelRepo, + configProvider: configProvider, + llm: llm, + file: file, + snippetParser: snippetParser, } } diff --git a/backend/modules/prompt/domain/service/tool_config.go b/backend/modules/prompt/domain/service/tool_config.go new file mode 100644 index 000000000..c2f149b2b --- /dev/null +++ b/backend/modules/prompt/domain/service/tool_config.go @@ -0,0 +1,49 @@ +// Copyright (c) 2025 coze-dev Authors +// SPDX-License-Identifier: Apache-2.0 + +package service + +import ( + "context" + + "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/entity" + "github.com/coze-dev/coze-loop/backend/pkg/errorx" +) + +// IToolConfigProvider defines the interface for extracting tool definitions and configuration +type IToolConfigProvider interface { + GetToolConfig(ctx context.Context, prompt *entity.Prompt, singleStep bool) (tools []*entity.Tool, toolCallConfig *entity.ToolCallConfig, err error) +} + +// ToolConfigProvider provides the default implementation of IToolConfigProvider +type ToolConfigProvider struct{} + +// NewToolConfigProvider creates a new instance of ToolConfigProvider +func NewToolConfigProvider() IToolConfigProvider { + return &ToolConfigProvider{} +} + +// GetToolConfig implements the IToolConfigProvider interface +func (t *ToolConfigProvider) GetToolConfig(ctx context.Context, prompt *entity.Prompt, singleStep bool) (tools []*entity.Tool, toolCallConfig *entity.ToolCallConfig, err error) { + promptDetail := prompt.GetPromptDetail() + if promptDetail != nil { + if promptDetail.ToolCallConfig != nil && promptDetail.ToolCallConfig.ToolChoice != entity.ToolChoiceTypeNone { + tools = promptDetail.Tools + toolCallConfig = promptDetail.ToolCallConfig + } + } + + // Validate tool choice specification + if toolCallConfig != nil && toolCallConfig.ToolChoice == entity.ToolChoiceTypeSpecific { + // When tool choice is specific, must be in single step mode + if !singleStep { + return nil, nil, errorx.New("tool choice specific must be used with single step mode to avoid infinite loops") + } + // ToolChoiceSpecification must not be empty + if toolCallConfig.ToolChoiceSpecification == nil { + return nil, nil, errorx.New("tool_choice_specification must not be empty when tool choice is specific") + } + } + + return tools, toolCallConfig, nil +} From eb035cd0a99f74f095eb2c05fa6c5c12dd9e7432 Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Tue, 6 Jan 2026 15:33:28 +0800 Subject: [PATCH 11/58] [feat][prompt]: typo --- backend/modules/prompt/application/convertor/prompt.go | 2 +- backend/modules/prompt/application/convertor/prompt_test.go | 4 ++-- backend/modules/prompt/domain/entity/prompt_detail.go | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/backend/modules/prompt/application/convertor/prompt.go b/backend/modules/prompt/application/convertor/prompt.go index 4ecdd5063..4fb567a24 100644 --- a/backend/modules/prompt/application/convertor/prompt.go +++ b/backend/modules/prompt/application/convertor/prompt.go @@ -142,7 +142,7 @@ func TemplateTypeDTO2DO(dto prompt.TemplateType) entity.TemplateType { case prompt.TemplateTypeGoTemplate: return entity.TemplateTypeGoTemplate case prompt.TemplateTypeCustomTemplateM: - return entity.TemplateTYpeCustomTemplateM + return entity.TemplateTypeCustomTemplateM default: return entity.TemplateTypeNormal } diff --git a/backend/modules/prompt/application/convertor/prompt_test.go b/backend/modules/prompt/application/convertor/prompt_test.go index ed7ba5886..16b5756e7 100644 --- a/backend/modules/prompt/application/convertor/prompt_test.go +++ b/backend/modules/prompt/application/convertor/prompt_test.go @@ -853,7 +853,7 @@ func TestTemplateTypeDTO2DO(t *testing.T) { { name: "custom template m type", dto: prompt.TemplateTypeCustomTemplateM, - want: entity.TemplateTYpeCustomTemplateM, + want: entity.TemplateTypeCustomTemplateM, }, { name: "unknown template type defaults to normal", @@ -954,7 +954,7 @@ func TestPromptTemplateWithDifferentTypes(t *testing.T) { }, }, want: &entity.PromptTemplate{ - TemplateType: entity.TemplateTYpeCustomTemplateM, + TemplateType: entity.TemplateTypeCustomTemplateM, Messages: []*entity.Message{ { Role: entity.RoleUser, diff --git a/backend/modules/prompt/domain/entity/prompt_detail.go b/backend/modules/prompt/domain/entity/prompt_detail.go index b91982ee3..e0a2aa3a4 100644 --- a/backend/modules/prompt/domain/entity/prompt_detail.go +++ b/backend/modules/prompt/domain/entity/prompt_detail.go @@ -50,7 +50,7 @@ const ( TemplateTypeNormal TemplateType = "normal" TemplateTypeJinja2 TemplateType = "jinja2" TemplateTypeGoTemplate TemplateType = "go_template" - TemplateTYpeCustomTemplateM TemplateType = "custom_template_m" + TemplateTypeCustomTemplateM TemplateType = "custom_template_m" ) type Message struct { From 690e4ca0adbec83fb71eab26dab8a5ce144c0061 Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Tue, 6 Jan 2026 16:19:50 +0800 Subject: [PATCH 12/58] [feat][prompt]: add mcp config convert --- .../loop/prompt/domain/prompt/k-prompt.go | 640 +++ .../coze/loop/prompt/domain/prompt/prompt.go | 879 +++ .../prompt/domain/prompt/prompt_validator.go | 11 + .../openapi/coze.loop.prompt.openapi.go | 4860 +++++++++++++++-- .../coze.loop.prompt.openapi_validator.go | 35 + .../openapi/k-coze.loop.prompt.openapi.go | 2896 +++++++++- .../prompt/application/convertor/prompt.go | 38 + .../coze/loop/prompt/domain/prompt.thrift | 14 + 8 files changed, 9018 insertions(+), 355 deletions(-) diff --git a/backend/kitex_gen/coze/loop/prompt/domain/prompt/k-prompt.go b/backend/kitex_gen/coze/loop/prompt/domain/prompt/k-prompt.go index 3ee05ac68..d42f86893 100644 --- a/backend/kitex_gen/coze/loop/prompt/domain/prompt/k-prompt.go +++ b/backend/kitex_gen/coze/loop/prompt/domain/prompt/k-prompt.go @@ -2065,6 +2065,20 @@ func (p *PromptDetail) FastRead(buf []byte) (int, error) { goto SkipFieldError } } + case 5: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField5(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } case 255: if fieldTypeId == thrift.MAP { l, err = p.FastReadField255(buf[offset:]) @@ -2158,6 +2172,18 @@ func (p *PromptDetail) FastReadField4(buf []byte) (int, error) { return offset, nil } +func (p *PromptDetail) FastReadField5(buf []byte) (int, error) { + offset := 0 + _field := NewMcpConfig() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.McpConfig = _field + return offset, nil +} + func (p *PromptDetail) FastReadField255(buf []byte) (int, error) { offset := 0 @@ -2201,6 +2227,7 @@ func (p *PromptDetail) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset += p.fastWriteField2(buf[offset:], w) offset += p.fastWriteField3(buf[offset:], w) offset += p.fastWriteField4(buf[offset:], w) + offset += p.fastWriteField5(buf[offset:], w) offset += p.fastWriteField255(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) @@ -2214,6 +2241,7 @@ func (p *PromptDetail) BLength() int { l += p.field2Length() l += p.field3Length() l += p.field4Length() + l += p.field5Length() l += p.field255Length() } l += thrift.Binary.FieldStopLength() @@ -2263,6 +2291,15 @@ func (p *PromptDetail) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { return offset } +func (p *PromptDetail) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetMcpConfig() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 5) + offset += p.McpConfig.FastWriteNocopy(buf[offset:], w) + } + return offset +} + func (p *PromptDetail) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetExtInfos() { @@ -2320,6 +2357,15 @@ func (p *PromptDetail) field4Length() int { return l } +func (p *PromptDetail) field5Length() int { + l := 0 + if p.IsSetMcpConfig() { + l += thrift.Binary.FieldBeginLength() + l += p.McpConfig.BLength() + } + return l +} + func (p *PromptDetail) field255Length() int { l := 0 if p.IsSetExtInfos() { @@ -2383,6 +2429,15 @@ func (p *PromptDetail) DeepCopy(s interface{}) error { } p.ModelConfig = _modelConfig + var _mcpConfig *McpConfig + if src.McpConfig != nil { + _mcpConfig = &McpConfig{} + if err := _mcpConfig.DeepCopy(src.McpConfig); err != nil { + return err + } + } + p.McpConfig = _mcpConfig + if src.ExtInfos != nil { p.ExtInfos = make(map[string]string, len(src.ExtInfos)) for key, val := range src.ExtInfos { @@ -2403,6 +2458,591 @@ func (p *PromptDetail) DeepCopy(s interface{}) error { return nil } +func (p *McpConfig) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.BOOL { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.LIST { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_McpConfig[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *McpConfig) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field *bool + if v, l, err := thrift.Binary.ReadBool(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.IsMcpCallAutoRetry = _field + return offset, nil +} + +func (p *McpConfig) FastReadField2(buf []byte) (int, error) { + offset := 0 + + _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make([]*McpServerCombine, 0, size) + values := make([]McpServerCombine, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + if l, err := _elem.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + + _field = append(_field, _elem) + } + p.McpServers = _field + return offset, nil +} + +func (p *McpConfig) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *McpConfig) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *McpConfig) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *McpConfig) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetIsMcpCallAutoRetry() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.BOOL, 1) + offset += thrift.Binary.WriteBool(buf[offset:], *p.IsMcpCallAutoRetry) + } + return offset +} + +func (p *McpConfig) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetMcpServers() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 2) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.McpServers { + length++ + offset += v.FastWriteNocopy(buf[offset:], w) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) + } + return offset +} + +func (p *McpConfig) field1Length() int { + l := 0 + if p.IsSetIsMcpCallAutoRetry() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.BoolLength() + } + return l +} + +func (p *McpConfig) field2Length() int { + l := 0 + if p.IsSetMcpServers() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + for _, v := range p.McpServers { + _ = v + l += v.BLength() + } + } + return l +} + +func (p *McpConfig) DeepCopy(s interface{}) error { + src, ok := s.(*McpConfig) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.IsMcpCallAutoRetry != nil { + tmp := *src.IsMcpCallAutoRetry + p.IsMcpCallAutoRetry = &tmp + } + + if src.McpServers != nil { + p.McpServers = make([]*McpServerCombine, 0, len(src.McpServers)) + for _, elem := range src.McpServers { + var _elem *McpServerCombine + if elem != nil { + _elem = &McpServerCombine{} + if err := _elem.DeepCopy(elem); err != nil { + return err + } + } + + p.McpServers = append(p.McpServers, _elem) + } + } + + return nil +} + +func (p *McpServerCombine) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 3: + if fieldTypeId == thrift.LIST { + l, err = p.FastReadField3(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 4: + if fieldTypeId == thrift.LIST { + l, err = p.FastReadField4(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 5: + if fieldTypeId == thrift.BOOL { + l, err = p.FastReadField5(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_McpServerCombine[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *McpServerCombine) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field *int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.McpServerID = _field + return offset, nil +} + +func (p *McpServerCombine) FastReadField2(buf []byte) (int, error) { + offset := 0 + + var _field *int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.AccessPointID = _field + return offset, nil +} + +func (p *McpServerCombine) FastReadField3(buf []byte) (int, error) { + offset := 0 + + _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make([]string, 0, size) + for i := 0; i < size; i++ { + var _elem string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _elem = v + } + + _field = append(_field, _elem) + } + p.DisabledTools = _field + return offset, nil +} + +func (p *McpServerCombine) FastReadField4(buf []byte) (int, error) { + offset := 0 + + _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make([]string, 0, size) + for i := 0; i < size; i++ { + var _elem string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _elem = v + } + + _field = append(_field, _elem) + } + p.EnabledTools = _field + return offset, nil +} + +func (p *McpServerCombine) FastReadField5(buf []byte) (int, error) { + offset := 0 + + var _field *bool + if v, l, err := thrift.Binary.ReadBool(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.IsEnabledTools = _field + return offset, nil +} + +func (p *McpServerCombine) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *McpServerCombine) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + offset += p.fastWriteField5(buf[offset:], w) + offset += p.fastWriteField3(buf[offset:], w) + offset += p.fastWriteField4(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *McpServerCombine) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() + l += p.field4Length() + l += p.field5Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *McpServerCombine) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetMcpServerID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 1) + offset += thrift.Binary.WriteI64(buf[offset:], *p.McpServerID) + } + return offset +} + +func (p *McpServerCombine) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetAccessPointID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 2) + offset += thrift.Binary.WriteI64(buf[offset:], *p.AccessPointID) + } + return offset +} + +func (p *McpServerCombine) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetDisabledTools() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 3) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.DisabledTools { + length++ + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, v) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRING, length) + } + return offset +} + +func (p *McpServerCombine) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetEnabledTools() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 4) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.EnabledTools { + length++ + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, v) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRING, length) + } + return offset +} + +func (p *McpServerCombine) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetIsEnabledTools() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.BOOL, 5) + offset += thrift.Binary.WriteBool(buf[offset:], *p.IsEnabledTools) + } + return offset +} + +func (p *McpServerCombine) field1Length() int { + l := 0 + if p.IsSetMcpServerID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *McpServerCombine) field2Length() int { + l := 0 + if p.IsSetAccessPointID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *McpServerCombine) field3Length() int { + l := 0 + if p.IsSetDisabledTools() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + for _, v := range p.DisabledTools { + _ = v + l += thrift.Binary.StringLengthNocopy(v) + } + } + return l +} + +func (p *McpServerCombine) field4Length() int { + l := 0 + if p.IsSetEnabledTools() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + for _, v := range p.EnabledTools { + _ = v + l += thrift.Binary.StringLengthNocopy(v) + } + } + return l +} + +func (p *McpServerCombine) field5Length() int { + l := 0 + if p.IsSetIsEnabledTools() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.BoolLength() + } + return l +} + +func (p *McpServerCombine) DeepCopy(s interface{}) error { + src, ok := s.(*McpServerCombine) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.McpServerID != nil { + tmp := *src.McpServerID + p.McpServerID = &tmp + } + + if src.AccessPointID != nil { + tmp := *src.AccessPointID + p.AccessPointID = &tmp + } + + if src.DisabledTools != nil { + p.DisabledTools = make([]string, 0, len(src.DisabledTools)) + for _, elem := range src.DisabledTools { + var _elem string + if elem != "" { + _elem = kutils.StringDeepCopy(elem) + } + p.DisabledTools = append(p.DisabledTools, _elem) + } + } + + if src.EnabledTools != nil { + p.EnabledTools = make([]string, 0, len(src.EnabledTools)) + for _, elem := range src.EnabledTools { + var _elem string + if elem != "" { + _elem = kutils.StringDeepCopy(elem) + } + p.EnabledTools = append(p.EnabledTools, _elem) + } + } + + if src.IsEnabledTools != nil { + tmp := *src.IsEnabledTools + p.IsEnabledTools = &tmp + } + + return nil +} + func (p *PromptTemplate) FastRead(buf []byte) (int, error) { var err error diff --git a/backend/kitex_gen/coze/loop/prompt/domain/prompt/prompt.go b/backend/kitex_gen/coze/loop/prompt/domain/prompt/prompt.go index 65a3ce932..47f60d426 100644 --- a/backend/kitex_gen/coze/loop/prompt/domain/prompt/prompt.go +++ b/backend/kitex_gen/coze/loop/prompt/domain/prompt/prompt.go @@ -3001,6 +3001,7 @@ type PromptDetail struct { Tools []*Tool `thrift:"tools,2,optional" frugal:"2,optional,list" form:"tools" json:"tools,omitempty" query:"tools"` ToolCallConfig *ToolCallConfig `thrift:"tool_call_config,3,optional" frugal:"3,optional,ToolCallConfig" form:"tool_call_config" json:"tool_call_config,omitempty" query:"tool_call_config"` ModelConfig *ModelConfig `thrift:"model_config,4,optional" frugal:"4,optional,ModelConfig" form:"model_config" json:"model_config,omitempty" query:"model_config"` + McpConfig *McpConfig `thrift:"mcp_config,5,optional" frugal:"5,optional,McpConfig" form:"mcp_config" json:"mcp_config,omitempty" query:"mcp_config"` ExtInfos map[string]string `thrift:"ext_infos,255,optional" frugal:"255,optional,map" form:"ext_infos" json:"ext_infos,omitempty" query:"ext_infos"` } @@ -3059,6 +3060,18 @@ func (p *PromptDetail) GetModelConfig() (v *ModelConfig) { return p.ModelConfig } +var PromptDetail_McpConfig_DEFAULT *McpConfig + +func (p *PromptDetail) GetMcpConfig() (v *McpConfig) { + if p == nil { + return + } + if !p.IsSetMcpConfig() { + return PromptDetail_McpConfig_DEFAULT + } + return p.McpConfig +} + var PromptDetail_ExtInfos_DEFAULT map[string]string func (p *PromptDetail) GetExtInfos() (v map[string]string) { @@ -3082,6 +3095,9 @@ func (p *PromptDetail) SetToolCallConfig(val *ToolCallConfig) { func (p *PromptDetail) SetModelConfig(val *ModelConfig) { p.ModelConfig = val } +func (p *PromptDetail) SetMcpConfig(val *McpConfig) { + p.McpConfig = val +} func (p *PromptDetail) SetExtInfos(val map[string]string) { p.ExtInfos = val } @@ -3091,6 +3107,7 @@ var fieldIDToName_PromptDetail = map[int16]string{ 2: "tools", 3: "tool_call_config", 4: "model_config", + 5: "mcp_config", 255: "ext_infos", } @@ -3110,6 +3127,10 @@ func (p *PromptDetail) IsSetModelConfig() bool { return p.ModelConfig != nil } +func (p *PromptDetail) IsSetMcpConfig() bool { + return p.McpConfig != nil +} + func (p *PromptDetail) IsSetExtInfos() bool { return p.ExtInfos != nil } @@ -3164,6 +3185,14 @@ func (p *PromptDetail) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 5: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField5(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } case 255: if fieldTypeId == thrift.MAP { if err = p.ReadField255(iprot); err != nil { @@ -3248,6 +3277,14 @@ func (p *PromptDetail) ReadField4(iprot thrift.TProtocol) error { p.ModelConfig = _field return nil } +func (p *PromptDetail) ReadField5(iprot thrift.TProtocol) error { + _field := NewMcpConfig() + if err := _field.Read(iprot); err != nil { + return err + } + p.McpConfig = _field + return nil +} func (p *PromptDetail) ReadField255(iprot thrift.TProtocol) error { _, _, size, err := iprot.ReadMapBegin() if err != nil { @@ -3300,6 +3337,10 @@ func (p *PromptDetail) Write(oprot thrift.TProtocol) (err error) { fieldId = 4 goto WriteFieldError } + if err = p.writeField5(oprot); err != nil { + fieldId = 5 + goto WriteFieldError + } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -3402,6 +3443,24 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) } +func (p *PromptDetail) writeField5(oprot thrift.TProtocol) (err error) { + if p.IsSetMcpConfig() { + if err = oprot.WriteFieldBegin("mcp_config", thrift.STRUCT, 5); err != nil { + goto WriteFieldBeginError + } + if err := p.McpConfig.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) +} func (p *PromptDetail) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetExtInfos() { if err = oprot.WriteFieldBegin("ext_infos", thrift.MAP, 255); err != nil { @@ -3458,6 +3517,9 @@ func (p *PromptDetail) DeepEqual(ano *PromptDetail) bool { if !p.Field4DeepEqual(ano.ModelConfig) { return false } + if !p.Field5DeepEqual(ano.McpConfig) { + return false + } if !p.Field255DeepEqual(ano.ExtInfos) { return false } @@ -3498,6 +3560,13 @@ func (p *PromptDetail) Field4DeepEqual(src *ModelConfig) bool { } return true } +func (p *PromptDetail) Field5DeepEqual(src *McpConfig) bool { + + if !p.McpConfig.DeepEqual(src) { + return false + } + return true +} func (p *PromptDetail) Field255DeepEqual(src map[string]string) bool { if len(p.ExtInfos) != len(src) { @@ -3512,6 +3581,816 @@ func (p *PromptDetail) Field255DeepEqual(src map[string]string) bool { return true } +type McpConfig struct { + IsMcpCallAutoRetry *bool `thrift:"is_mcp_call_auto_retry,1,optional" frugal:"1,optional,bool" form:"is_mcp_call_auto_retry" json:"is_mcp_call_auto_retry,omitempty" query:"is_mcp_call_auto_retry"` + McpServers []*McpServerCombine `thrift:"mcp_servers,2,optional" frugal:"2,optional,list" form:"mcp_servers" json:"mcp_servers,omitempty" query:"mcp_servers"` +} + +func NewMcpConfig() *McpConfig { + return &McpConfig{} +} + +func (p *McpConfig) InitDefault() { +} + +var McpConfig_IsMcpCallAutoRetry_DEFAULT bool + +func (p *McpConfig) GetIsMcpCallAutoRetry() (v bool) { + if p == nil { + return + } + if !p.IsSetIsMcpCallAutoRetry() { + return McpConfig_IsMcpCallAutoRetry_DEFAULT + } + return *p.IsMcpCallAutoRetry +} + +var McpConfig_McpServers_DEFAULT []*McpServerCombine + +func (p *McpConfig) GetMcpServers() (v []*McpServerCombine) { + if p == nil { + return + } + if !p.IsSetMcpServers() { + return McpConfig_McpServers_DEFAULT + } + return p.McpServers +} +func (p *McpConfig) SetIsMcpCallAutoRetry(val *bool) { + p.IsMcpCallAutoRetry = val +} +func (p *McpConfig) SetMcpServers(val []*McpServerCombine) { + p.McpServers = val +} + +var fieldIDToName_McpConfig = map[int16]string{ + 1: "is_mcp_call_auto_retry", + 2: "mcp_servers", +} + +func (p *McpConfig) IsSetIsMcpCallAutoRetry() bool { + return p.IsMcpCallAutoRetry != nil +} + +func (p *McpConfig) IsSetMcpServers() bool { + return p.McpServers != nil +} + +func (p *McpConfig) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.BOOL { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.LIST { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_McpConfig[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *McpConfig) ReadField1(iprot thrift.TProtocol) error { + + var _field *bool + if v, err := iprot.ReadBool(); err != nil { + return err + } else { + _field = &v + } + p.IsMcpCallAutoRetry = _field + return nil +} +func (p *McpConfig) ReadField2(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*McpServerCombine, 0, size) + values := make([]McpServerCombine, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + + if err := _elem.Read(iprot); err != nil { + return err + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { + return err + } + p.McpServers = _field + return nil +} + +func (p *McpConfig) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("McpConfig"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *McpConfig) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetIsMcpCallAutoRetry() { + if err = oprot.WriteFieldBegin("is_mcp_call_auto_retry", thrift.BOOL, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteBool(*p.IsMcpCallAutoRetry); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *McpConfig) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetMcpServers() { + if err = oprot.WriteFieldBegin("mcp_servers", thrift.LIST, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.McpServers)); err != nil { + return err + } + for _, v := range p.McpServers { + if err := v.Write(oprot); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} + +func (p *McpConfig) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("McpConfig(%+v)", *p) + +} + +func (p *McpConfig) DeepEqual(ano *McpConfig) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.IsMcpCallAutoRetry) { + return false + } + if !p.Field2DeepEqual(ano.McpServers) { + return false + } + return true +} + +func (p *McpConfig) Field1DeepEqual(src *bool) bool { + + if p.IsMcpCallAutoRetry == src { + return true + } else if p.IsMcpCallAutoRetry == nil || src == nil { + return false + } + if *p.IsMcpCallAutoRetry != *src { + return false + } + return true +} +func (p *McpConfig) Field2DeepEqual(src []*McpServerCombine) bool { + + if len(p.McpServers) != len(src) { + return false + } + for i, v := range p.McpServers { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } + return true +} + +type McpServerCombine struct { + McpServerID *int64 `thrift:"mcp_server_id,1,optional" frugal:"1,optional,i64" form:"mcp_server_id" json:"mcp_server_id,omitempty" query:"mcp_server_id"` + AccessPointID *int64 `thrift:"access_point_id,2,optional" frugal:"2,optional,i64" form:"access_point_id" json:"access_point_id,omitempty" query:"access_point_id"` + DisabledTools []string `thrift:"disabled_tools,3,optional" frugal:"3,optional,list" form:"disabled_tools" json:"disabled_tools,omitempty" query:"disabled_tools"` + EnabledTools []string `thrift:"enabled_tools,4,optional" frugal:"4,optional,list" form:"enabled_tools" json:"enabled_tools,omitempty" query:"enabled_tools"` + IsEnabledTools *bool `thrift:"is_enabled_tools,5,optional" frugal:"5,optional,bool" form:"is_enabled_tools" json:"is_enabled_tools,omitempty" query:"is_enabled_tools"` +} + +func NewMcpServerCombine() *McpServerCombine { + return &McpServerCombine{} +} + +func (p *McpServerCombine) InitDefault() { +} + +var McpServerCombine_McpServerID_DEFAULT int64 + +func (p *McpServerCombine) GetMcpServerID() (v int64) { + if p == nil { + return + } + if !p.IsSetMcpServerID() { + return McpServerCombine_McpServerID_DEFAULT + } + return *p.McpServerID +} + +var McpServerCombine_AccessPointID_DEFAULT int64 + +func (p *McpServerCombine) GetAccessPointID() (v int64) { + if p == nil { + return + } + if !p.IsSetAccessPointID() { + return McpServerCombine_AccessPointID_DEFAULT + } + return *p.AccessPointID +} + +var McpServerCombine_DisabledTools_DEFAULT []string + +func (p *McpServerCombine) GetDisabledTools() (v []string) { + if p == nil { + return + } + if !p.IsSetDisabledTools() { + return McpServerCombine_DisabledTools_DEFAULT + } + return p.DisabledTools +} + +var McpServerCombine_EnabledTools_DEFAULT []string + +func (p *McpServerCombine) GetEnabledTools() (v []string) { + if p == nil { + return + } + if !p.IsSetEnabledTools() { + return McpServerCombine_EnabledTools_DEFAULT + } + return p.EnabledTools +} + +var McpServerCombine_IsEnabledTools_DEFAULT bool + +func (p *McpServerCombine) GetIsEnabledTools() (v bool) { + if p == nil { + return + } + if !p.IsSetIsEnabledTools() { + return McpServerCombine_IsEnabledTools_DEFAULT + } + return *p.IsEnabledTools +} +func (p *McpServerCombine) SetMcpServerID(val *int64) { + p.McpServerID = val +} +func (p *McpServerCombine) SetAccessPointID(val *int64) { + p.AccessPointID = val +} +func (p *McpServerCombine) SetDisabledTools(val []string) { + p.DisabledTools = val +} +func (p *McpServerCombine) SetEnabledTools(val []string) { + p.EnabledTools = val +} +func (p *McpServerCombine) SetIsEnabledTools(val *bool) { + p.IsEnabledTools = val +} + +var fieldIDToName_McpServerCombine = map[int16]string{ + 1: "mcp_server_id", + 2: "access_point_id", + 3: "disabled_tools", + 4: "enabled_tools", + 5: "is_enabled_tools", +} + +func (p *McpServerCombine) IsSetMcpServerID() bool { + return p.McpServerID != nil +} + +func (p *McpServerCombine) IsSetAccessPointID() bool { + return p.AccessPointID != nil +} + +func (p *McpServerCombine) IsSetDisabledTools() bool { + return p.DisabledTools != nil +} + +func (p *McpServerCombine) IsSetEnabledTools() bool { + return p.EnabledTools != nil +} + +func (p *McpServerCombine) IsSetIsEnabledTools() bool { + return p.IsEnabledTools != nil +} + +func (p *McpServerCombine) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.I64 { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.I64 { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.LIST { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 4: + if fieldTypeId == thrift.LIST { + if err = p.ReadField4(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 5: + if fieldTypeId == thrift.BOOL { + if err = p.ReadField5(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_McpServerCombine[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *McpServerCombine) ReadField1(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.McpServerID = _field + return nil +} +func (p *McpServerCombine) ReadField2(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.AccessPointID = _field + return nil +} +func (p *McpServerCombine) ReadField3(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]string, 0, size) + for i := 0; i < size; i++ { + + var _elem string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _elem = v + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { + return err + } + p.DisabledTools = _field + return nil +} +func (p *McpServerCombine) ReadField4(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]string, 0, size) + for i := 0; i < size; i++ { + + var _elem string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _elem = v + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { + return err + } + p.EnabledTools = _field + return nil +} +func (p *McpServerCombine) ReadField5(iprot thrift.TProtocol) error { + + var _field *bool + if v, err := iprot.ReadBool(); err != nil { + return err + } else { + _field = &v + } + p.IsEnabledTools = _field + return nil +} + +func (p *McpServerCombine) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("McpServerCombine"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } + if err = p.writeField4(oprot); err != nil { + fieldId = 4 + goto WriteFieldError + } + if err = p.writeField5(oprot); err != nil { + fieldId = 5 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *McpServerCombine) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetMcpServerID() { + if err = oprot.WriteFieldBegin("mcp_server_id", thrift.I64, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.McpServerID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *McpServerCombine) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetAccessPointID() { + if err = oprot.WriteFieldBegin("access_point_id", thrift.I64, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.AccessPointID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} +func (p *McpServerCombine) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetDisabledTools() { + if err = oprot.WriteFieldBegin("disabled_tools", thrift.LIST, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRING, len(p.DisabledTools)); err != nil { + return err + } + for _, v := range p.DisabledTools { + if err := oprot.WriteString(v); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) +} +func (p *McpServerCombine) writeField4(oprot thrift.TProtocol) (err error) { + if p.IsSetEnabledTools() { + if err = oprot.WriteFieldBegin("enabled_tools", thrift.LIST, 4); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRING, len(p.EnabledTools)); err != nil { + return err + } + for _, v := range p.EnabledTools { + if err := oprot.WriteString(v); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) +} +func (p *McpServerCombine) writeField5(oprot thrift.TProtocol) (err error) { + if p.IsSetIsEnabledTools() { + if err = oprot.WriteFieldBegin("is_enabled_tools", thrift.BOOL, 5); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteBool(*p.IsEnabledTools); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) +} + +func (p *McpServerCombine) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("McpServerCombine(%+v)", *p) + +} + +func (p *McpServerCombine) DeepEqual(ano *McpServerCombine) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.McpServerID) { + return false + } + if !p.Field2DeepEqual(ano.AccessPointID) { + return false + } + if !p.Field3DeepEqual(ano.DisabledTools) { + return false + } + if !p.Field4DeepEqual(ano.EnabledTools) { + return false + } + if !p.Field5DeepEqual(ano.IsEnabledTools) { + return false + } + return true +} + +func (p *McpServerCombine) Field1DeepEqual(src *int64) bool { + + if p.McpServerID == src { + return true + } else if p.McpServerID == nil || src == nil { + return false + } + if *p.McpServerID != *src { + return false + } + return true +} +func (p *McpServerCombine) Field2DeepEqual(src *int64) bool { + + if p.AccessPointID == src { + return true + } else if p.AccessPointID == nil || src == nil { + return false + } + if *p.AccessPointID != *src { + return false + } + return true +} +func (p *McpServerCombine) Field3DeepEqual(src []string) bool { + + if len(p.DisabledTools) != len(src) { + return false + } + for i, v := range p.DisabledTools { + _src := src[i] + if strings.Compare(v, _src) != 0 { + return false + } + } + return true +} +func (p *McpServerCombine) Field4DeepEqual(src []string) bool { + + if len(p.EnabledTools) != len(src) { + return false + } + for i, v := range p.EnabledTools { + _src := src[i] + if strings.Compare(v, _src) != 0 { + return false + } + } + return true +} +func (p *McpServerCombine) Field5DeepEqual(src *bool) bool { + + if p.IsEnabledTools == src { + return true + } else if p.IsEnabledTools == nil || src == nil { + return false + } + if *p.IsEnabledTools != *src { + return false + } + return true +} + type PromptTemplate struct { TemplateType *TemplateType `thrift:"template_type,1,optional" frugal:"1,optional,string" form:"template_type" json:"template_type,omitempty" query:"template_type"` Messages []*Message `thrift:"messages,2,optional" frugal:"2,optional,list" form:"messages" json:"messages,omitempty" query:"messages"` diff --git a/backend/kitex_gen/coze/loop/prompt/domain/prompt/prompt_validator.go b/backend/kitex_gen/coze/loop/prompt/domain/prompt/prompt_validator.go index 63d8b0a62..d58e98ec6 100644 --- a/backend/kitex_gen/coze/loop/prompt/domain/prompt/prompt_validator.go +++ b/backend/kitex_gen/coze/loop/prompt/domain/prompt/prompt_validator.go @@ -90,6 +90,17 @@ func (p *PromptDetail) IsValid() error { return fmt.Errorf("field ModelConfig not valid, %w", err) } } + if p.McpConfig != nil { + if err := p.McpConfig.IsValid(); err != nil { + return fmt.Errorf("field McpConfig not valid, %w", err) + } + } + return nil +} +func (p *McpConfig) IsValid() error { + return nil +} +func (p *McpServerCombine) IsValid() error { return nil } func (p *PromptTemplate) IsValid() error { diff --git a/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi.go b/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi.go index e2569df93..bfefc52b5 100644 --- a/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi.go +++ b/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi.go @@ -4,15 +4,20 @@ package openapi import ( "context" + "database/sql" + "database/sql/driver" "fmt" "github.com/apache/thrift/lib/go/thrift" "github.com/cloudwego/kitex/pkg/streaming" "github.com/coze-dev/coze-loop/backend/kitex_gen/base" - "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/prompt/domain/prompt" "strings" ) const ( + PromptTypeNormal = "normal" + + PromptTypeSnippet = "snippet" + TemplateTypeNormal = "normal" TemplateTypeJinja2 = "jinja2" @@ -76,6 +81,213 @@ const ( ToolTypeGoogleSearch = "google_search" ) +type PublishStatus int64 + +const ( + PublishStatus_Undefined PublishStatus = 0 + // 未发布 + PublishStatus_UnPublish PublishStatus = 1 + // 已发布 + PublishStatus_Published PublishStatus = 2 +) + +func (p PublishStatus) String() string { + switch p { + case PublishStatus_Undefined: + return "Undefined" + case PublishStatus_UnPublish: + return "UnPublish" + case PublishStatus_Published: + return "Published" + } + return "" +} + +func PublishStatusFromString(s string) (PublishStatus, error) { + switch s { + case "Undefined": + return PublishStatus_Undefined, nil + case "UnPublish": + return PublishStatus_UnPublish, nil + case "Published": + return PublishStatus_Published, nil + } + return PublishStatus(0), fmt.Errorf("not a valid PublishStatus string") +} + +func PublishStatusPtr(v PublishStatus) *PublishStatus { return &v } +func (p *PublishStatus) Scan(value interface{}) (err error) { + var result sql.NullInt64 + err = result.Scan(value) + *p = PublishStatus(result.Int64) + return +} + +func (p *PublishStatus) Value() (driver.Value, error) { + if p == nil { + return nil, nil + } + return int64(*p), nil +} + +type SecurityLevel int64 + +const ( + SecurityLevel_Undefined SecurityLevel = 0 + SecurityLevel_L1 SecurityLevel = 1 + SecurityLevel_L2 SecurityLevel = 2 + SecurityLevel_L3 SecurityLevel = 3 + SecurityLevel_L4 SecurityLevel = 4 +) + +func (p SecurityLevel) String() string { + switch p { + case SecurityLevel_Undefined: + return "Undefined" + case SecurityLevel_L1: + return "L1" + case SecurityLevel_L2: + return "L2" + case SecurityLevel_L3: + return "L3" + case SecurityLevel_L4: + return "L4" + } + return "" +} + +func SecurityLevelFromString(s string) (SecurityLevel, error) { + switch s { + case "Undefined": + return SecurityLevel_Undefined, nil + case "L1": + return SecurityLevel_L1, nil + case "L2": + return SecurityLevel_L2, nil + case "L3": + return SecurityLevel_L3, nil + case "L4": + return SecurityLevel_L4, nil + } + return SecurityLevel(0), fmt.Errorf("not a valid SecurityLevel string") +} + +func SecurityLevelPtr(v SecurityLevel) *SecurityLevel { return &v } +func (p *SecurityLevel) Scan(value interface{}) (err error) { + var result sql.NullInt64 + err = result.Scan(value) + *p = SecurityLevel(result.Int64) + return +} + +func (p *SecurityLevel) Value() (driver.Value, error) { + if p == nil { + return nil, nil + } + return int64(*p), nil +} + +type ReasoningEffort int64 + +const ( + ReasoningEffort_Minimal ReasoningEffort = 1 + ReasoningEffort_Low ReasoningEffort = 2 + ReasoningEffort_Medium ReasoningEffort = 3 + ReasoningEffort_High ReasoningEffort = 4 +) + +func (p ReasoningEffort) String() string { + switch p { + case ReasoningEffort_Minimal: + return "Minimal" + case ReasoningEffort_Low: + return "Low" + case ReasoningEffort_Medium: + return "Medium" + case ReasoningEffort_High: + return "High" + } + return "" +} + +func ReasoningEffortFromString(s string) (ReasoningEffort, error) { + switch s { + case "Minimal": + return ReasoningEffort_Minimal, nil + case "Low": + return ReasoningEffort_Low, nil + case "Medium": + return ReasoningEffort_Medium, nil + case "High": + return ReasoningEffort_High, nil + } + return ReasoningEffort(0), fmt.Errorf("not a valid ReasoningEffort string") +} + +func ReasoningEffortPtr(v ReasoningEffort) *ReasoningEffort { return &v } +func (p *ReasoningEffort) Scan(value interface{}) (err error) { + var result sql.NullInt64 + err = result.Scan(value) + *p = ReasoningEffort(result.Int64) + return +} + +func (p *ReasoningEffort) Value() (driver.Value, error) { + if p == nil { + return nil, nil + } + return int64(*p), nil +} + +type ThinkingOption int64 + +const ( + ThinkingOption_Disabled ThinkingOption = 1 + ThinkingOption_Enabled ThinkingOption = 2 + ThinkingOption_Auto ThinkingOption = 3 +) + +func (p ThinkingOption) String() string { + switch p { + case ThinkingOption_Disabled: + return "Disabled" + case ThinkingOption_Enabled: + return "Enabled" + case ThinkingOption_Auto: + return "Auto" + } + return "" +} + +func ThinkingOptionFromString(s string) (ThinkingOption, error) { + switch s { + case "Disabled": + return ThinkingOption_Disabled, nil + case "Enabled": + return ThinkingOption_Enabled, nil + case "Auto": + return ThinkingOption_Auto, nil + } + return ThinkingOption(0), fmt.Errorf("not a valid ThinkingOption string") +} + +func ThinkingOptionPtr(v ThinkingOption) *ThinkingOption { return &v } +func (p *ThinkingOption) Scan(value interface{}) (err error) { + var result sql.NullInt64 + err = result.Scan(value) + *p = ThinkingOption(result.Int64) + return +} + +func (p *ThinkingOption) Value() (driver.Value, error) { + if p == nil { + return nil, nil + } + return int64(*p), nil +} + +type PromptType = string + type TemplateType = string type ToolChoiceType = string @@ -1048,8 +1260,8 @@ type ExecuteRequest struct { // 自定义工具调用配置 CustomToolCallConfig *ToolCallConfig `thrift:"custom_tool_call_config,21,optional" frugal:"21,optional,ToolCallConfig" form:"custom_tool_call_config" json:"custom_tool_call_config,omitempty"` // 自定义模型配置 - CustomModelConfig *prompt.ModelConfig `thrift:"custom_model_config,22,optional" frugal:"22,optional,prompt.ModelConfig" form:"custom_model_config" json:"custom_model_config,omitempty"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` + CustomModelConfig *ModelConfig `thrift:"custom_model_config,22,optional" frugal:"22,optional,ModelConfig" form:"custom_model_config" json:"custom_model_config,omitempty"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } func NewExecuteRequest() *ExecuteRequest { @@ -1131,9 +1343,9 @@ func (p *ExecuteRequest) GetCustomToolCallConfig() (v *ToolCallConfig) { return p.CustomToolCallConfig } -var ExecuteRequest_CustomModelConfig_DEFAULT *prompt.ModelConfig +var ExecuteRequest_CustomModelConfig_DEFAULT *ModelConfig -func (p *ExecuteRequest) GetCustomModelConfig() (v *prompt.ModelConfig) { +func (p *ExecuteRequest) GetCustomModelConfig() (v *ModelConfig) { if p == nil { return } @@ -1172,7 +1384,7 @@ func (p *ExecuteRequest) SetCustomTools(val []*Tool) { func (p *ExecuteRequest) SetCustomToolCallConfig(val *ToolCallConfig) { p.CustomToolCallConfig = val } -func (p *ExecuteRequest) SetCustomModelConfig(val *prompt.ModelConfig) { +func (p *ExecuteRequest) SetCustomModelConfig(val *ModelConfig) { p.CustomModelConfig = val } func (p *ExecuteRequest) SetBase(val *base.Base) { @@ -1430,7 +1642,7 @@ func (p *ExecuteRequest) ReadField21(iprot thrift.TProtocol) error { return nil } func (p *ExecuteRequest) ReadField22(iprot thrift.TProtocol) error { - _field := prompt.NewModelConfig() + _field := NewModelConfig() if err := _field.Read(iprot); err != nil { return err } @@ -1777,7 +1989,7 @@ func (p *ExecuteRequest) Field21DeepEqual(src *ToolCallConfig) bool { } return true } -func (p *ExecuteRequest) Field22DeepEqual(src *prompt.ModelConfig) bool { +func (p *ExecuteRequest) Field22DeepEqual(src *ModelConfig) bool { if !p.CustomModelConfig.DeepEqual(src) { return false @@ -4054,6 +4266,23 @@ type Prompt struct { ToolCallConfig *ToolCallConfig `thrift:"tool_call_config,6,optional" frugal:"6,optional,ToolCallConfig" form:"tool_call_config" json:"tool_call_config,omitempty" query:"tool_call_config"` // 模型配置 LlmConfig *LLMConfig `thrift:"llm_config,7,optional" frugal:"7,optional,LLMConfig" form:"llm_config" json:"llm_config,omitempty" query:"llm_config"` + // promptId + ID *int64 `thrift:"id,8,optional" frugal:"8,optional,i64" json:"id" form:"id" query:"id"` + // Prompt名称 + DisplayName *string `thrift:"display_name,9,optional" frugal:"9,optional,string" form:"display_name" json:"display_name,omitempty" query:"display_name"` + // Prompt描述 + Description *string `thrift:"description,10,optional" frugal:"10,optional,string" form:"description" json:"description,omitempty" query:"description"` + // Prompt类型 + PromptType *PromptType `thrift:"prompt_type,11,optional" frugal:"11,optional,string" form:"prompt_type" json:"prompt_type,omitempty" query:"prompt_type"` + CreatedBy *string `thrift:"created_by,12,optional" frugal:"12,optional,string" form:"created_by" json:"created_by,omitempty" query:"created_by"` + CreatedAt *int64 `thrift:"created_at,14,optional" frugal:"14,optional,i64" json:"created_at" form:"created_at" query:"created_at"` + UpdatedAt *int64 `thrift:"updated_at,15,optional" frugal:"15,optional,i64" json:"updated_at" form:"updated_at" query:"updated_at"` + // 发布状态 + Status *PublishStatus `thrift:"status,16,optional" frugal:"16,optional,PublishStatus" form:"status" json:"status,omitempty" query:"status"` + // 发布信息 + PublishInfo *PromptPublishInfo `thrift:"PublishInfo,17,optional" frugal:"17,optional,PromptPublishInfo" form:"PublishInfo" json:"PublishInfo,omitempty" query:"PublishInfo"` + // 密级标签 + SecurityLevel *SecurityLevel `thrift:"security_level,18,optional" frugal:"18,optional,SecurityLevel" form:"security_level" json:"security_level,omitempty" query:"security_level"` } func NewPrompt() *Prompt { @@ -4146,6 +4375,126 @@ func (p *Prompt) GetLlmConfig() (v *LLMConfig) { } return p.LlmConfig } + +var Prompt_ID_DEFAULT int64 + +func (p *Prompt) GetID() (v int64) { + if p == nil { + return + } + if !p.IsSetID() { + return Prompt_ID_DEFAULT + } + return *p.ID +} + +var Prompt_DisplayName_DEFAULT string + +func (p *Prompt) GetDisplayName() (v string) { + if p == nil { + return + } + if !p.IsSetDisplayName() { + return Prompt_DisplayName_DEFAULT + } + return *p.DisplayName +} + +var Prompt_Description_DEFAULT string + +func (p *Prompt) GetDescription() (v string) { + if p == nil { + return + } + if !p.IsSetDescription() { + return Prompt_Description_DEFAULT + } + return *p.Description +} + +var Prompt_PromptType_DEFAULT PromptType + +func (p *Prompt) GetPromptType() (v PromptType) { + if p == nil { + return + } + if !p.IsSetPromptType() { + return Prompt_PromptType_DEFAULT + } + return *p.PromptType +} + +var Prompt_CreatedBy_DEFAULT string + +func (p *Prompt) GetCreatedBy() (v string) { + if p == nil { + return + } + if !p.IsSetCreatedBy() { + return Prompt_CreatedBy_DEFAULT + } + return *p.CreatedBy +} + +var Prompt_CreatedAt_DEFAULT int64 + +func (p *Prompt) GetCreatedAt() (v int64) { + if p == nil { + return + } + if !p.IsSetCreatedAt() { + return Prompt_CreatedAt_DEFAULT + } + return *p.CreatedAt +} + +var Prompt_UpdatedAt_DEFAULT int64 + +func (p *Prompt) GetUpdatedAt() (v int64) { + if p == nil { + return + } + if !p.IsSetUpdatedAt() { + return Prompt_UpdatedAt_DEFAULT + } + return *p.UpdatedAt +} + +var Prompt_Status_DEFAULT PublishStatus + +func (p *Prompt) GetStatus() (v PublishStatus) { + if p == nil { + return + } + if !p.IsSetStatus() { + return Prompt_Status_DEFAULT + } + return *p.Status +} + +var Prompt_PublishInfo_DEFAULT *PromptPublishInfo + +func (p *Prompt) GetPublishInfo() (v *PromptPublishInfo) { + if p == nil { + return + } + if !p.IsSetPublishInfo() { + return Prompt_PublishInfo_DEFAULT + } + return p.PublishInfo +} + +var Prompt_SecurityLevel_DEFAULT SecurityLevel + +func (p *Prompt) GetSecurityLevel() (v SecurityLevel) { + if p == nil { + return + } + if !p.IsSetSecurityLevel() { + return Prompt_SecurityLevel_DEFAULT + } + return *p.SecurityLevel +} func (p *Prompt) SetWorkspaceID(val *int64) { p.WorkspaceID = val } @@ -4167,15 +4516,55 @@ func (p *Prompt) SetToolCallConfig(val *ToolCallConfig) { func (p *Prompt) SetLlmConfig(val *LLMConfig) { p.LlmConfig = val } +func (p *Prompt) SetID(val *int64) { + p.ID = val +} +func (p *Prompt) SetDisplayName(val *string) { + p.DisplayName = val +} +func (p *Prompt) SetDescription(val *string) { + p.Description = val +} +func (p *Prompt) SetPromptType(val *PromptType) { + p.PromptType = val +} +func (p *Prompt) SetCreatedBy(val *string) { + p.CreatedBy = val +} +func (p *Prompt) SetCreatedAt(val *int64) { + p.CreatedAt = val +} +func (p *Prompt) SetUpdatedAt(val *int64) { + p.UpdatedAt = val +} +func (p *Prompt) SetStatus(val *PublishStatus) { + p.Status = val +} +func (p *Prompt) SetPublishInfo(val *PromptPublishInfo) { + p.PublishInfo = val +} +func (p *Prompt) SetSecurityLevel(val *SecurityLevel) { + p.SecurityLevel = val +} var fieldIDToName_Prompt = map[int16]string{ - 1: "workspace_id", - 2: "prompt_key", - 3: "version", - 4: "prompt_template", - 5: "tools", - 6: "tool_call_config", - 7: "llm_config", + 1: "workspace_id", + 2: "prompt_key", + 3: "version", + 4: "prompt_template", + 5: "tools", + 6: "tool_call_config", + 7: "llm_config", + 8: "id", + 9: "display_name", + 10: "description", + 11: "prompt_type", + 12: "created_by", + 14: "created_at", + 15: "updated_at", + 16: "status", + 17: "PublishInfo", + 18: "security_level", } func (p *Prompt) IsSetWorkspaceID() bool { @@ -4206,6 +4595,46 @@ func (p *Prompt) IsSetLlmConfig() bool { return p.LlmConfig != nil } +func (p *Prompt) IsSetID() bool { + return p.ID != nil +} + +func (p *Prompt) IsSetDisplayName() bool { + return p.DisplayName != nil +} + +func (p *Prompt) IsSetDescription() bool { + return p.Description != nil +} + +func (p *Prompt) IsSetPromptType() bool { + return p.PromptType != nil +} + +func (p *Prompt) IsSetCreatedBy() bool { + return p.CreatedBy != nil +} + +func (p *Prompt) IsSetCreatedAt() bool { + return p.CreatedAt != nil +} + +func (p *Prompt) IsSetUpdatedAt() bool { + return p.UpdatedAt != nil +} + +func (p *Prompt) IsSetStatus() bool { + return p.Status != nil +} + +func (p *Prompt) IsSetPublishInfo() bool { + return p.PublishInfo != nil +} + +func (p *Prompt) IsSetSecurityLevel() bool { + return p.SecurityLevel != nil +} + func (p *Prompt) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -4280,6 +4709,86 @@ func (p *Prompt) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 8: + if fieldTypeId == thrift.I64 { + if err = p.ReadField8(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 9: + if fieldTypeId == thrift.STRING { + if err = p.ReadField9(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 10: + if fieldTypeId == thrift.STRING { + if err = p.ReadField10(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 11: + if fieldTypeId == thrift.STRING { + if err = p.ReadField11(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 12: + if fieldTypeId == thrift.STRING { + if err = p.ReadField12(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 14: + if fieldTypeId == thrift.I64 { + if err = p.ReadField14(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 15: + if fieldTypeId == thrift.I64 { + if err = p.ReadField15(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 16: + if fieldTypeId == thrift.I32 { + if err = p.ReadField16(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 17: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField17(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 18: + if fieldTypeId == thrift.I32 { + if err = p.ReadField18(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } default: if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError @@ -4389,10 +4898,119 @@ func (p *Prompt) ReadField7(iprot thrift.TProtocol) error { p.LlmConfig = _field return nil } +func (p *Prompt) ReadField8(iprot thrift.TProtocol) error { -func (p *Prompt) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("Prompt"); err != nil { + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.ID = _field + return nil +} +func (p *Prompt) ReadField9(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.DisplayName = _field + return nil +} +func (p *Prompt) ReadField10(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Description = _field + return nil +} +func (p *Prompt) ReadField11(iprot thrift.TProtocol) error { + + var _field *PromptType + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.PromptType = _field + return nil +} +func (p *Prompt) ReadField12(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.CreatedBy = _field + return nil +} +func (p *Prompt) ReadField14(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.CreatedAt = _field + return nil +} +func (p *Prompt) ReadField15(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.UpdatedAt = _field + return nil +} +func (p *Prompt) ReadField16(iprot thrift.TProtocol) error { + + var _field *PublishStatus + if v, err := iprot.ReadI32(); err != nil { + return err + } else { + tmp := PublishStatus(v) + _field = &tmp + } + p.Status = _field + return nil +} +func (p *Prompt) ReadField17(iprot thrift.TProtocol) error { + _field := NewPromptPublishInfo() + if err := _field.Read(iprot); err != nil { + return err + } + p.PublishInfo = _field + return nil +} +func (p *Prompt) ReadField18(iprot thrift.TProtocol) error { + + var _field *SecurityLevel + if v, err := iprot.ReadI32(); err != nil { + return err + } else { + tmp := SecurityLevel(v) + _field = &tmp + } + p.SecurityLevel = _field + return nil +} + +func (p *Prompt) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("Prompt"); err != nil { goto WriteStructBeginError } if p != nil { @@ -4424,6 +5042,46 @@ func (p *Prompt) Write(oprot thrift.TProtocol) (err error) { fieldId = 7 goto WriteFieldError } + if err = p.writeField8(oprot); err != nil { + fieldId = 8 + goto WriteFieldError + } + if err = p.writeField9(oprot); err != nil { + fieldId = 9 + goto WriteFieldError + } + if err = p.writeField10(oprot); err != nil { + fieldId = 10 + goto WriteFieldError + } + if err = p.writeField11(oprot); err != nil { + fieldId = 11 + goto WriteFieldError + } + if err = p.writeField12(oprot); err != nil { + fieldId = 12 + goto WriteFieldError + } + if err = p.writeField14(oprot); err != nil { + fieldId = 14 + goto WriteFieldError + } + if err = p.writeField15(oprot); err != nil { + fieldId = 15 + goto WriteFieldError + } + if err = p.writeField16(oprot); err != nil { + fieldId = 16 + goto WriteFieldError + } + if err = p.writeField17(oprot); err != nil { + fieldId = 17 + goto WriteFieldError + } + if err = p.writeField18(oprot); err != nil { + fieldId = 18 + goto WriteFieldError + } } if err = oprot.WriteFieldStop(); err != nil { goto WriteFieldStopError @@ -4576,87 +5234,297 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) } - -func (p *Prompt) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("Prompt(%+v)", *p) - -} - -func (p *Prompt) DeepEqual(ano *Prompt) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.WorkspaceID) { - return false - } - if !p.Field2DeepEqual(ano.PromptKey) { - return false - } - if !p.Field3DeepEqual(ano.Version) { - return false - } - if !p.Field4DeepEqual(ano.PromptTemplate) { - return false - } - if !p.Field5DeepEqual(ano.Tools) { - return false - } - if !p.Field6DeepEqual(ano.ToolCallConfig) { - return false - } - if !p.Field7DeepEqual(ano.LlmConfig) { - return false +func (p *Prompt) writeField8(oprot thrift.TProtocol) (err error) { + if p.IsSetID() { + if err = oprot.WriteFieldBegin("id", thrift.I64, 8); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.ID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } - return true + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 8 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 8 end error: ", p), err) } - -func (p *Prompt) Field1DeepEqual(src *int64) bool { - - if p.WorkspaceID == src { - return true - } else if p.WorkspaceID == nil || src == nil { - return false - } - if *p.WorkspaceID != *src { - return false +func (p *Prompt) writeField9(oprot thrift.TProtocol) (err error) { + if p.IsSetDisplayName() { + if err = oprot.WriteFieldBegin("display_name", thrift.STRING, 9); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.DisplayName); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } - return true + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 9 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 9 end error: ", p), err) } -func (p *Prompt) Field2DeepEqual(src *string) bool { - - if p.PromptKey == src { - return true - } else if p.PromptKey == nil || src == nil { - return false - } - if strings.Compare(*p.PromptKey, *src) != 0 { - return false +func (p *Prompt) writeField10(oprot thrift.TProtocol) (err error) { + if p.IsSetDescription() { + if err = oprot.WriteFieldBegin("description", thrift.STRING, 10); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Description); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } - return true + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 10 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 10 end error: ", p), err) } -func (p *Prompt) Field3DeepEqual(src *string) bool { - - if p.Version == src { - return true - } else if p.Version == nil || src == nil { - return false - } - if strings.Compare(*p.Version, *src) != 0 { - return false +func (p *Prompt) writeField11(oprot thrift.TProtocol) (err error) { + if p.IsSetPromptType() { + if err = oprot.WriteFieldBegin("prompt_type", thrift.STRING, 11); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.PromptType); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } - return true + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 11 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 11 end error: ", p), err) } -func (p *Prompt) Field4DeepEqual(src *PromptTemplate) bool { - - if !p.PromptTemplate.DeepEqual(src) { - return false +func (p *Prompt) writeField12(oprot thrift.TProtocol) (err error) { + if p.IsSetCreatedBy() { + if err = oprot.WriteFieldBegin("created_by", thrift.STRING, 12); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.CreatedBy); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } - return true + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 12 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 12 end error: ", p), err) +} +func (p *Prompt) writeField14(oprot thrift.TProtocol) (err error) { + if p.IsSetCreatedAt() { + if err = oprot.WriteFieldBegin("created_at", thrift.I64, 14); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.CreatedAt); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 14 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 14 end error: ", p), err) +} +func (p *Prompt) writeField15(oprot thrift.TProtocol) (err error) { + if p.IsSetUpdatedAt() { + if err = oprot.WriteFieldBegin("updated_at", thrift.I64, 15); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.UpdatedAt); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 15 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 15 end error: ", p), err) +} +func (p *Prompt) writeField16(oprot thrift.TProtocol) (err error) { + if p.IsSetStatus() { + if err = oprot.WriteFieldBegin("status", thrift.I32, 16); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(int32(*p.Status)); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 16 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 16 end error: ", p), err) +} +func (p *Prompt) writeField17(oprot thrift.TProtocol) (err error) { + if p.IsSetPublishInfo() { + if err = oprot.WriteFieldBegin("PublishInfo", thrift.STRUCT, 17); err != nil { + goto WriteFieldBeginError + } + if err := p.PublishInfo.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 17 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 17 end error: ", p), err) +} +func (p *Prompt) writeField18(oprot thrift.TProtocol) (err error) { + if p.IsSetSecurityLevel() { + if err = oprot.WriteFieldBegin("security_level", thrift.I32, 18); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(int32(*p.SecurityLevel)); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 18 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 18 end error: ", p), err) +} + +func (p *Prompt) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("Prompt(%+v)", *p) + +} + +func (p *Prompt) DeepEqual(ano *Prompt) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.WorkspaceID) { + return false + } + if !p.Field2DeepEqual(ano.PromptKey) { + return false + } + if !p.Field3DeepEqual(ano.Version) { + return false + } + if !p.Field4DeepEqual(ano.PromptTemplate) { + return false + } + if !p.Field5DeepEqual(ano.Tools) { + return false + } + if !p.Field6DeepEqual(ano.ToolCallConfig) { + return false + } + if !p.Field7DeepEqual(ano.LlmConfig) { + return false + } + if !p.Field8DeepEqual(ano.ID) { + return false + } + if !p.Field9DeepEqual(ano.DisplayName) { + return false + } + if !p.Field10DeepEqual(ano.Description) { + return false + } + if !p.Field11DeepEqual(ano.PromptType) { + return false + } + if !p.Field12DeepEqual(ano.CreatedBy) { + return false + } + if !p.Field14DeepEqual(ano.CreatedAt) { + return false + } + if !p.Field15DeepEqual(ano.UpdatedAt) { + return false + } + if !p.Field16DeepEqual(ano.Status) { + return false + } + if !p.Field17DeepEqual(ano.PublishInfo) { + return false + } + if !p.Field18DeepEqual(ano.SecurityLevel) { + return false + } + return true +} + +func (p *Prompt) Field1DeepEqual(src *int64) bool { + + if p.WorkspaceID == src { + return true + } else if p.WorkspaceID == nil || src == nil { + return false + } + if *p.WorkspaceID != *src { + return false + } + return true +} +func (p *Prompt) Field2DeepEqual(src *string) bool { + + if p.PromptKey == src { + return true + } else if p.PromptKey == nil || src == nil { + return false + } + if strings.Compare(*p.PromptKey, *src) != 0 { + return false + } + return true +} +func (p *Prompt) Field3DeepEqual(src *string) bool { + + if p.Version == src { + return true + } else if p.Version == nil || src == nil { + return false + } + if strings.Compare(*p.Version, *src) != 0 { + return false + } + return true +} +func (p *Prompt) Field4DeepEqual(src *PromptTemplate) bool { + + if !p.PromptTemplate.DeepEqual(src) { + return false + } + return true } func (p *Prompt) Field5DeepEqual(src []*Tool) bool { @@ -4685,73 +5553,188 @@ func (p *Prompt) Field7DeepEqual(src *LLMConfig) bool { } return true } +func (p *Prompt) Field8DeepEqual(src *int64) bool { -type PromptTemplate struct { - // 模板类型 - TemplateType *TemplateType `thrift:"template_type,1,optional" frugal:"1,optional,string" form:"template_type" json:"template_type,omitempty" query:"template_type"` - // 只支持message list形式托管 - Messages []*Message `thrift:"messages,2,optional" frugal:"2,optional,list" form:"messages" json:"messages,omitempty" query:"messages"` - // 变量定义 - VariableDefs []*VariableDef `thrift:"variable_defs,3,optional" frugal:"3,optional,list" form:"variable_defs" json:"variable_defs,omitempty" query:"variable_defs"` - // 模板级元信息 - Metadata map[string]string `thrift:"metadata,100,optional" frugal:"100,optional,map" form:"metadata" json:"metadata,omitempty" query:"metadata"` -} - -func NewPromptTemplate() *PromptTemplate { - return &PromptTemplate{} + if p.ID == src { + return true + } else if p.ID == nil || src == nil { + return false + } + if *p.ID != *src { + return false + } + return true } +func (p *Prompt) Field9DeepEqual(src *string) bool { -func (p *PromptTemplate) InitDefault() { + if p.DisplayName == src { + return true + } else if p.DisplayName == nil || src == nil { + return false + } + if strings.Compare(*p.DisplayName, *src) != 0 { + return false + } + return true } +func (p *Prompt) Field10DeepEqual(src *string) bool { -var PromptTemplate_TemplateType_DEFAULT TemplateType - -func (p *PromptTemplate) GetTemplateType() (v TemplateType) { - if p == nil { - return + if p.Description == src { + return true + } else if p.Description == nil || src == nil { + return false } - if !p.IsSetTemplateType() { - return PromptTemplate_TemplateType_DEFAULT + if strings.Compare(*p.Description, *src) != 0 { + return false } - return *p.TemplateType + return true } +func (p *Prompt) Field11DeepEqual(src *PromptType) bool { -var PromptTemplate_Messages_DEFAULT []*Message - -func (p *PromptTemplate) GetMessages() (v []*Message) { - if p == nil { - return + if p.PromptType == src { + return true + } else if p.PromptType == nil || src == nil { + return false } - if !p.IsSetMessages() { - return PromptTemplate_Messages_DEFAULT + if strings.Compare(*p.PromptType, *src) != 0 { + return false } - return p.Messages + return true } +func (p *Prompt) Field12DeepEqual(src *string) bool { -var PromptTemplate_VariableDefs_DEFAULT []*VariableDef - -func (p *PromptTemplate) GetVariableDefs() (v []*VariableDef) { - if p == nil { - return + if p.CreatedBy == src { + return true + } else if p.CreatedBy == nil || src == nil { + return false } - if !p.IsSetVariableDefs() { - return PromptTemplate_VariableDefs_DEFAULT + if strings.Compare(*p.CreatedBy, *src) != 0 { + return false } - return p.VariableDefs + return true } +func (p *Prompt) Field14DeepEqual(src *int64) bool { -var PromptTemplate_Metadata_DEFAULT map[string]string - -func (p *PromptTemplate) GetMetadata() (v map[string]string) { - if p == nil { - return + if p.CreatedAt == src { + return true + } else if p.CreatedAt == nil || src == nil { + return false } - if !p.IsSetMetadata() { - return PromptTemplate_Metadata_DEFAULT + if *p.CreatedAt != *src { + return false } - return p.Metadata + return true } -func (p *PromptTemplate) SetTemplateType(val *TemplateType) { +func (p *Prompt) Field15DeepEqual(src *int64) bool { + + if p.UpdatedAt == src { + return true + } else if p.UpdatedAt == nil || src == nil { + return false + } + if *p.UpdatedAt != *src { + return false + } + return true +} +func (p *Prompt) Field16DeepEqual(src *PublishStatus) bool { + + if p.Status == src { + return true + } else if p.Status == nil || src == nil { + return false + } + if *p.Status != *src { + return false + } + return true +} +func (p *Prompt) Field17DeepEqual(src *PromptPublishInfo) bool { + + if !p.PublishInfo.DeepEqual(src) { + return false + } + return true +} +func (p *Prompt) Field18DeepEqual(src *SecurityLevel) bool { + + if p.SecurityLevel == src { + return true + } else if p.SecurityLevel == nil || src == nil { + return false + } + if *p.SecurityLevel != *src { + return false + } + return true +} + +type PromptTemplate struct { + // 模板类型 + TemplateType *TemplateType `thrift:"template_type,1,optional" frugal:"1,optional,string" form:"template_type" json:"template_type,omitempty" query:"template_type"` + // 只支持message list形式托管 + Messages []*Message `thrift:"messages,2,optional" frugal:"2,optional,list" form:"messages" json:"messages,omitempty" query:"messages"` + // 变量定义 + VariableDefs []*VariableDef `thrift:"variable_defs,3,optional" frugal:"3,optional,list" form:"variable_defs" json:"variable_defs,omitempty" query:"variable_defs"` + // 模板级元信息 + Metadata map[string]string `thrift:"metadata,100,optional" frugal:"100,optional,map" form:"metadata" json:"metadata,omitempty" query:"metadata"` +} + +func NewPromptTemplate() *PromptTemplate { + return &PromptTemplate{} +} + +func (p *PromptTemplate) InitDefault() { +} + +var PromptTemplate_TemplateType_DEFAULT TemplateType + +func (p *PromptTemplate) GetTemplateType() (v TemplateType) { + if p == nil { + return + } + if !p.IsSetTemplateType() { + return PromptTemplate_TemplateType_DEFAULT + } + return *p.TemplateType +} + +var PromptTemplate_Messages_DEFAULT []*Message + +func (p *PromptTemplate) GetMessages() (v []*Message) { + if p == nil { + return + } + if !p.IsSetMessages() { + return PromptTemplate_Messages_DEFAULT + } + return p.Messages +} + +var PromptTemplate_VariableDefs_DEFAULT []*VariableDef + +func (p *PromptTemplate) GetVariableDefs() (v []*VariableDef) { + if p == nil { + return + } + if !p.IsSetVariableDefs() { + return PromptTemplate_VariableDefs_DEFAULT + } + return p.VariableDefs +} + +var PromptTemplate_Metadata_DEFAULT map[string]string + +func (p *PromptTemplate) GetMetadata() (v map[string]string) { + if p == nil { + return + } + if !p.IsSetMetadata() { + return PromptTemplate_Metadata_DEFAULT + } + return p.Metadata +} +func (p *PromptTemplate) SetTemplateType(val *TemplateType) { p.TemplateType = val } func (p *PromptTemplate) SetMessages(val []*Message) { @@ -5697,6 +6680,8 @@ type Message struct { ToolCalls []*ToolCall `thrift:"tool_calls,6,optional" frugal:"6,optional,list" form:"tool_calls" json:"tool_calls,omitempty" query:"tool_calls"` // 是否跳过需要渲染 SkipRender *bool `thrift:"skip_render,7,optional" frugal:"7,optional,bool" form:"skip_render" json:"skip_render,omitempty" query:"skip_render"` + // gemini的签名 + Signature *string `thrift:"signature,8,optional" frugal:"8,optional,string" form:"signature" json:"signature,omitempty" query:"signature"` // 消息元信息 Metadata map[string]string `thrift:"metadata,100,optional" frugal:"100,optional,map" form:"metadata" json:"metadata,omitempty" query:"metadata"` } @@ -5792,6 +6777,18 @@ func (p *Message) GetSkipRender() (v bool) { return *p.SkipRender } +var Message_Signature_DEFAULT string + +func (p *Message) GetSignature() (v string) { + if p == nil { + return + } + if !p.IsSetSignature() { + return Message_Signature_DEFAULT + } + return *p.Signature +} + var Message_Metadata_DEFAULT map[string]string func (p *Message) GetMetadata() (v map[string]string) { @@ -5824,6 +6821,9 @@ func (p *Message) SetToolCalls(val []*ToolCall) { func (p *Message) SetSkipRender(val *bool) { p.SkipRender = val } +func (p *Message) SetSignature(val *string) { + p.Signature = val +} func (p *Message) SetMetadata(val map[string]string) { p.Metadata = val } @@ -5836,6 +6836,7 @@ var fieldIDToName_Message = map[int16]string{ 5: "tool_call_id", 6: "tool_calls", 7: "skip_render", + 8: "signature", 100: "metadata", } @@ -5867,6 +6868,10 @@ func (p *Message) IsSetSkipRender() bool { return p.SkipRender != nil } +func (p *Message) IsSetSignature() bool { + return p.Signature != nil +} + func (p *Message) IsSetMetadata() bool { return p.Metadata != nil } @@ -5945,6 +6950,14 @@ func (p *Message) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 8: + if fieldTypeId == thrift.STRING { + if err = p.ReadField8(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } case 100: if fieldTypeId == thrift.MAP { if err = p.ReadField100(iprot); err != nil { @@ -6083,6 +7096,17 @@ func (p *Message) ReadField7(iprot thrift.TProtocol) error { p.SkipRender = _field return nil } +func (p *Message) ReadField8(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Signature = _field + return nil +} func (p *Message) ReadField100(iprot thrift.TProtocol) error { _, _, size, err := iprot.ReadMapBegin() if err != nil { @@ -6147,6 +7171,10 @@ func (p *Message) Write(oprot thrift.TProtocol) (err error) { fieldId = 7 goto WriteFieldError } + if err = p.writeField8(oprot); err != nil { + fieldId = 8 + goto WriteFieldError + } if err = p.writeField100(oprot); err != nil { fieldId = 100 goto WriteFieldError @@ -6311,6 +7339,24 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) } +func (p *Message) writeField8(oprot thrift.TProtocol) (err error) { + if p.IsSetSignature() { + if err = oprot.WriteFieldBegin("signature", thrift.STRING, 8); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Signature); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 8 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 8 end error: ", p), err) +} func (p *Message) writeField100(oprot thrift.TProtocol) (err error) { if p.IsSetMetadata() { if err = oprot.WriteFieldBegin("metadata", thrift.MAP, 100); err != nil { @@ -6376,6 +7422,9 @@ func (p *Message) DeepEqual(ano *Message) bool { if !p.Field7DeepEqual(ano.SkipRender) { return false } + if !p.Field8DeepEqual(ano.Signature) { + return false + } if !p.Field100DeepEqual(ano.Metadata) { return false } @@ -6468,6 +7517,18 @@ func (p *Message) Field7DeepEqual(src *bool) bool { } return true } +func (p *Message) Field8DeepEqual(src *string) bool { + + if p.Signature == src { + return true + } else if p.Signature == nil || src == nil { + return false + } + if strings.Compare(*p.Signature, *src) != 0 { + return false + } + return true +} func (p *Message) Field100DeepEqual(src map[string]string) bool { if len(p.Metadata) != len(src) { @@ -6489,6 +7550,9 @@ type ContentPart struct { Base64Data *string `thrift:"base64_data,4,optional" frugal:"4,optional,string" form:"base64_data" json:"base64_data,omitempty" query:"base64_data"` VideoURL *string `thrift:"video_url,5,optional" frugal:"5,optional,string" form:"video_url" json:"video_url,omitempty" query:"video_url"` Config *MediaConfig `thrift:"config,6,optional" frugal:"6,optional,MediaConfig" form:"config" json:"config,omitempty" query:"config"` + Signature *string `thrift:"signature,7,optional" frugal:"7,optional,string" form:"signature" json:"signature,omitempty" query:"signature"` + ImageURI *string `thrift:"image_uri,8,optional" frugal:"8,optional,string" form:"image_uri" json:"image_uri,omitempty" query:"image_uri"` + VideoURI *string `thrift:"video_uri,9,optional" frugal:"9,optional,string" form:"video_uri" json:"video_uri,omitempty" query:"video_uri"` } func NewContentPart() *ContentPart { @@ -6569,6 +7633,42 @@ func (p *ContentPart) GetConfig() (v *MediaConfig) { } return p.Config } + +var ContentPart_Signature_DEFAULT string + +func (p *ContentPart) GetSignature() (v string) { + if p == nil { + return + } + if !p.IsSetSignature() { + return ContentPart_Signature_DEFAULT + } + return *p.Signature +} + +var ContentPart_ImageURI_DEFAULT string + +func (p *ContentPart) GetImageURI() (v string) { + if p == nil { + return + } + if !p.IsSetImageURI() { + return ContentPart_ImageURI_DEFAULT + } + return *p.ImageURI +} + +var ContentPart_VideoURI_DEFAULT string + +func (p *ContentPart) GetVideoURI() (v string) { + if p == nil { + return + } + if !p.IsSetVideoURI() { + return ContentPart_VideoURI_DEFAULT + } + return *p.VideoURI +} func (p *ContentPart) SetType(val *ContentType) { p.Type = val } @@ -6587,6 +7687,15 @@ func (p *ContentPart) SetVideoURL(val *string) { func (p *ContentPart) SetConfig(val *MediaConfig) { p.Config = val } +func (p *ContentPart) SetSignature(val *string) { + p.Signature = val +} +func (p *ContentPart) SetImageURI(val *string) { + p.ImageURI = val +} +func (p *ContentPart) SetVideoURI(val *string) { + p.VideoURI = val +} var fieldIDToName_ContentPart = map[int16]string{ 1: "type", @@ -6595,6 +7704,9 @@ var fieldIDToName_ContentPart = map[int16]string{ 4: "base64_data", 5: "video_url", 6: "config", + 7: "signature", + 8: "image_uri", + 9: "video_uri", } func (p *ContentPart) IsSetType() bool { @@ -6621,6 +7733,18 @@ func (p *ContentPart) IsSetConfig() bool { return p.Config != nil } +func (p *ContentPart) IsSetSignature() bool { + return p.Signature != nil +} + +func (p *ContentPart) IsSetImageURI() bool { + return p.ImageURI != nil +} + +func (p *ContentPart) IsSetVideoURI() bool { + return p.VideoURI != nil +} + func (p *ContentPart) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -6687,6 +7811,30 @@ func (p *ContentPart) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 7: + if fieldTypeId == thrift.STRING { + if err = p.ReadField7(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 8: + if fieldTypeId == thrift.STRING { + if err = p.ReadField8(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 9: + if fieldTypeId == thrift.STRING { + if err = p.ReadField9(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } default: if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError @@ -6779,6 +7927,39 @@ func (p *ContentPart) ReadField6(iprot thrift.TProtocol) error { p.Config = _field return nil } +func (p *ContentPart) ReadField7(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Signature = _field + return nil +} +func (p *ContentPart) ReadField8(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.ImageURI = _field + return nil +} +func (p *ContentPart) ReadField9(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.VideoURI = _field + return nil +} func (p *ContentPart) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 @@ -6810,6 +7991,18 @@ func (p *ContentPart) Write(oprot thrift.TProtocol) (err error) { fieldId = 6 goto WriteFieldError } + if err = p.writeField7(oprot); err != nil { + fieldId = 7 + goto WriteFieldError + } + if err = p.writeField8(oprot); err != nil { + fieldId = 8 + goto WriteFieldError + } + if err = p.writeField9(oprot); err != nil { + fieldId = 9 + goto WriteFieldError + } } if err = oprot.WriteFieldStop(); err != nil { goto WriteFieldStopError @@ -6936,15 +8129,69 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) } - -func (p *ContentPart) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("ContentPart(%+v)", *p) - -} - +func (p *ContentPart) writeField7(oprot thrift.TProtocol) (err error) { + if p.IsSetSignature() { + if err = oprot.WriteFieldBegin("signature", thrift.STRING, 7); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Signature); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 7 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) +} +func (p *ContentPart) writeField8(oprot thrift.TProtocol) (err error) { + if p.IsSetImageURI() { + if err = oprot.WriteFieldBegin("image_uri", thrift.STRING, 8); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.ImageURI); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 8 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 8 end error: ", p), err) +} +func (p *ContentPart) writeField9(oprot thrift.TProtocol) (err error) { + if p.IsSetVideoURI() { + if err = oprot.WriteFieldBegin("video_uri", thrift.STRING, 9); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.VideoURI); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 9 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 9 end error: ", p), err) +} + +func (p *ContentPart) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("ContentPart(%+v)", *p) + +} + func (p *ContentPart) DeepEqual(ano *ContentPart) bool { if p == ano { return true @@ -6969,6 +8216,15 @@ func (p *ContentPart) DeepEqual(ano *ContentPart) bool { if !p.Field6DeepEqual(ano.Config) { return false } + if !p.Field7DeepEqual(ano.Signature) { + return false + } + if !p.Field8DeepEqual(ano.ImageURI) { + return false + } + if !p.Field9DeepEqual(ano.VideoURI) { + return false + } return true } @@ -7039,9 +8295,46 @@ func (p *ContentPart) Field6DeepEqual(src *MediaConfig) bool { } return true } +func (p *ContentPart) Field7DeepEqual(src *string) bool { + + if p.Signature == src { + return true + } else if p.Signature == nil || src == nil { + return false + } + if strings.Compare(*p.Signature, *src) != 0 { + return false + } + return true +} +func (p *ContentPart) Field8DeepEqual(src *string) bool { + + if p.ImageURI == src { + return true + } else if p.ImageURI == nil || src == nil { + return false + } + if strings.Compare(*p.ImageURI, *src) != 0 { + return false + } + return true +} +func (p *ContentPart) Field9DeepEqual(src *string) bool { + + if p.VideoURI == src { + return true + } else if p.VideoURI == nil || src == nil { + return false + } + if strings.Compare(*p.VideoURI, *src) != 0 { + return false + } + return true +} type MediaConfig struct { - Fps *float64 `thrift:"fps,1,optional" frugal:"1,optional,double" form:"fps" json:"fps,omitempty" query:"fps"` + Fps *float64 `thrift:"fps,1,optional" frugal:"1,optional,double" form:"fps" json:"fps,omitempty" query:"fps"` + ImageResolution *string `thrift:"image_resolution,2,optional" frugal:"2,optional,string" form:"image_resolution" json:"image_resolution,omitempty" query:"image_resolution"` } func NewMediaConfig() *MediaConfig { @@ -7062,18 +8355,38 @@ func (p *MediaConfig) GetFps() (v float64) { } return *p.Fps } + +var MediaConfig_ImageResolution_DEFAULT string + +func (p *MediaConfig) GetImageResolution() (v string) { + if p == nil { + return + } + if !p.IsSetImageResolution() { + return MediaConfig_ImageResolution_DEFAULT + } + return *p.ImageResolution +} func (p *MediaConfig) SetFps(val *float64) { p.Fps = val } +func (p *MediaConfig) SetImageResolution(val *string) { + p.ImageResolution = val +} var fieldIDToName_MediaConfig = map[int16]string{ 1: "fps", + 2: "image_resolution", } func (p *MediaConfig) IsSetFps() bool { return p.Fps != nil } +func (p *MediaConfig) IsSetImageResolution() bool { + return p.ImageResolution != nil +} + func (p *MediaConfig) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -7100,6 +8413,14 @@ func (p *MediaConfig) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 2: + if fieldTypeId == thrift.STRING { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } default: if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError @@ -7140,6 +8461,17 @@ func (p *MediaConfig) ReadField1(iprot thrift.TProtocol) error { p.Fps = _field return nil } +func (p *MediaConfig) ReadField2(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.ImageResolution = _field + return nil +} func (p *MediaConfig) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 @@ -7151,6 +8483,10 @@ func (p *MediaConfig) Write(oprot thrift.TProtocol) (err error) { fieldId = 1 goto WriteFieldError } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } } if err = oprot.WriteFieldStop(); err != nil { goto WriteFieldStopError @@ -7187,6 +8523,24 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } +func (p *MediaConfig) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetImageResolution() { + if err = oprot.WriteFieldBegin("image_resolution", thrift.STRING, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.ImageResolution); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} func (p *MediaConfig) String() string { if p == nil { @@ -7205,6 +8559,9 @@ func (p *MediaConfig) DeepEqual(ano *MediaConfig) bool { if !p.Field1DeepEqual(ano.Fps) { return false } + if !p.Field2DeepEqual(ano.ImageResolution) { + return false + } return true } @@ -7220,6 +8577,18 @@ func (p *MediaConfig) Field1DeepEqual(src *float64) bool { } return true } +func (p *MediaConfig) Field2DeepEqual(src *string) bool { + + if p.ImageResolution == src { + return true + } else if p.ImageResolution == nil || src == nil { + return false + } + if strings.Compare(*p.ImageResolution, *src) != 0 { + return false + } + return true +} type VariableDef struct { // 变量名字 @@ -7562,6 +8931,8 @@ func (p *VariableDef) Field3DeepEqual(src *VariableType) bool { type Tool struct { Type *ToolType `thrift:"type,1,optional" frugal:"1,optional,string" form:"type" json:"type,omitempty" query:"type"` Function *Function `thrift:"function,2,optional" frugal:"2,optional,Function" form:"function" json:"function,omitempty" query:"function"` + // 时候禁用 + Disable *bool `thrift:"disable,3,optional" frugal:"3,optional,bool" form:"disable" json:"disable,omitempty" query:"disable"` } func NewTool() *Tool { @@ -7594,16 +8965,32 @@ func (p *Tool) GetFunction() (v *Function) { } return p.Function } + +var Tool_Disable_DEFAULT bool + +func (p *Tool) GetDisable() (v bool) { + if p == nil { + return + } + if !p.IsSetDisable() { + return Tool_Disable_DEFAULT + } + return *p.Disable +} func (p *Tool) SetType(val *ToolType) { p.Type = val } func (p *Tool) SetFunction(val *Function) { p.Function = val } +func (p *Tool) SetDisable(val *bool) { + p.Disable = val +} var fieldIDToName_Tool = map[int16]string{ 1: "type", 2: "function", + 3: "disable", } func (p *Tool) IsSetType() bool { @@ -7614,6 +9001,10 @@ func (p *Tool) IsSetFunction() bool { return p.Function != nil } +func (p *Tool) IsSetDisable() bool { + return p.Disable != nil +} + func (p *Tool) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -7648,6 +9039,14 @@ func (p *Tool) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 3: + if fieldTypeId == thrift.BOOL { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } default: if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError @@ -7696,6 +9095,17 @@ func (p *Tool) ReadField2(iprot thrift.TProtocol) error { p.Function = _field return nil } +func (p *Tool) ReadField3(iprot thrift.TProtocol) error { + + var _field *bool + if v, err := iprot.ReadBool(); err != nil { + return err + } else { + _field = &v + } + p.Disable = _field + return nil +} func (p *Tool) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 @@ -7711,6 +9121,10 @@ func (p *Tool) Write(oprot thrift.TProtocol) (err error) { fieldId = 2 goto WriteFieldError } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } } if err = oprot.WriteFieldStop(); err != nil { goto WriteFieldStopError @@ -7765,6 +9179,24 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } +func (p *Tool) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetDisable() { + if err = oprot.WriteFieldBegin("disable", thrift.BOOL, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteBool(*p.Disable); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) +} func (p *Tool) String() string { if p == nil { @@ -7786,6 +9218,9 @@ func (p *Tool) DeepEqual(ano *Tool) bool { if !p.Field2DeepEqual(ano.Function) { return false } + if !p.Field3DeepEqual(ano.Disable) { + return false + } return true } @@ -7808,6 +9243,18 @@ func (p *Tool) Field2DeepEqual(src *Function) bool { } return true } +func (p *Tool) Field3DeepEqual(src *bool) bool { + + if p.Disable == src { + return true + } else if p.Disable == nil || src == nil { + return false + } + if *p.Disable != *src { + return false + } + return true +} type Function struct { Name *string `thrift:"name,1,optional" frugal:"1,optional,string" form:"name" json:"name,omitempty" query:"name"` @@ -8149,6 +9596,8 @@ type ToolCall struct { ID *string `thrift:"id,2,optional" frugal:"2,optional,string" form:"id" json:"id,omitempty" query:"id"` Type *ToolType `thrift:"type,3,optional" frugal:"3,optional,string" form:"type" json:"type,omitempty" query:"type"` FunctionCall *FunctionCall `thrift:"function_call,4,optional" frugal:"4,optional,FunctionCall" form:"function_call" json:"function_call,omitempty" query:"function_call"` + OutputID *string `thrift:"output_id,5,optional" frugal:"5,optional,string" form:"output_id" json:"output_id,omitempty" query:"output_id"` + Signature *string `thrift:"signature,6,optional" frugal:"6,optional,string" form:"signature" json:"signature,omitempty" query:"signature"` } func NewToolCall() *ToolCall { @@ -8205,6 +9654,30 @@ func (p *ToolCall) GetFunctionCall() (v *FunctionCall) { } return p.FunctionCall } + +var ToolCall_OutputID_DEFAULT string + +func (p *ToolCall) GetOutputID() (v string) { + if p == nil { + return + } + if !p.IsSetOutputID() { + return ToolCall_OutputID_DEFAULT + } + return *p.OutputID +} + +var ToolCall_Signature_DEFAULT string + +func (p *ToolCall) GetSignature() (v string) { + if p == nil { + return + } + if !p.IsSetSignature() { + return ToolCall_Signature_DEFAULT + } + return *p.Signature +} func (p *ToolCall) SetIndex(val *int32) { p.Index = val } @@ -8217,12 +9690,20 @@ func (p *ToolCall) SetType(val *ToolType) { func (p *ToolCall) SetFunctionCall(val *FunctionCall) { p.FunctionCall = val } +func (p *ToolCall) SetOutputID(val *string) { + p.OutputID = val +} +func (p *ToolCall) SetSignature(val *string) { + p.Signature = val +} var fieldIDToName_ToolCall = map[int16]string{ 1: "index", 2: "id", 3: "type", 4: "function_call", + 5: "output_id", + 6: "signature", } func (p *ToolCall) IsSetIndex() bool { @@ -8241,6 +9722,14 @@ func (p *ToolCall) IsSetFunctionCall() bool { return p.FunctionCall != nil } +func (p *ToolCall) IsSetOutputID() bool { + return p.OutputID != nil +} + +func (p *ToolCall) IsSetSignature() bool { + return p.Signature != nil +} + func (p *ToolCall) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -8291,6 +9780,22 @@ func (p *ToolCall) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 5: + if fieldTypeId == thrift.STRING { + if err = p.ReadField5(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 6: + if fieldTypeId == thrift.STRING { + if err = p.ReadField6(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } default: if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError @@ -8361,6 +9866,28 @@ func (p *ToolCall) ReadField4(iprot thrift.TProtocol) error { p.FunctionCall = _field return nil } +func (p *ToolCall) ReadField5(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.OutputID = _field + return nil +} +func (p *ToolCall) ReadField6(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Signature = _field + return nil +} func (p *ToolCall) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 @@ -8384,6 +9911,14 @@ func (p *ToolCall) Write(oprot thrift.TProtocol) (err error) { fieldId = 4 goto WriteFieldError } + if err = p.writeField5(oprot); err != nil { + fieldId = 5 + goto WriteFieldError + } + if err = p.writeField6(oprot); err != nil { + fieldId = 6 + goto WriteFieldError + } } if err = oprot.WriteFieldStop(); err != nil { goto WriteFieldStopError @@ -8474,9 +10009,45 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) } - -func (p *ToolCall) String() string { - if p == nil { +func (p *ToolCall) writeField5(oprot thrift.TProtocol) (err error) { + if p.IsSetOutputID() { + if err = oprot.WriteFieldBegin("output_id", thrift.STRING, 5); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.OutputID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) +} +func (p *ToolCall) writeField6(oprot thrift.TProtocol) (err error) { + if p.IsSetSignature() { + if err = oprot.WriteFieldBegin("signature", thrift.STRING, 6); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Signature); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) +} + +func (p *ToolCall) String() string { + if p == nil { return "" } return fmt.Sprintf("ToolCall(%+v)", *p) @@ -8501,6 +10072,12 @@ func (p *ToolCall) DeepEqual(ano *ToolCall) bool { if !p.Field4DeepEqual(ano.FunctionCall) { return false } + if !p.Field5DeepEqual(ano.OutputID) { + return false + } + if !p.Field6DeepEqual(ano.Signature) { + return false + } return true } @@ -8547,6 +10124,30 @@ func (p *ToolCall) Field4DeepEqual(src *FunctionCall) bool { } return true } +func (p *ToolCall) Field5DeepEqual(src *string) bool { + + if p.OutputID == src { + return true + } else if p.OutputID == nil || src == nil { + return false + } + if strings.Compare(*p.OutputID, *src) != 0 { + return false + } + return true +} +func (p *ToolCall) Field6DeepEqual(src *string) bool { + + if p.Signature == src { + return true + } else if p.Signature == nil || src == nil { + return false + } + if strings.Compare(*p.Signature, *src) != 0 { + return false + } + return true +} type FunctionCall struct { Name *string `thrift:"name,1,optional" frugal:"1,optional,string" form:"name" json:"name,omitempty" query:"name"` @@ -8807,13 +10408,17 @@ func (p *FunctionCall) Field2DeepEqual(src *string) bool { } type LLMConfig struct { - Temperature *float64 `thrift:"temperature,1,optional" frugal:"1,optional,double" form:"temperature" json:"temperature,omitempty" query:"temperature"` - MaxTokens *int32 `thrift:"max_tokens,2,optional" frugal:"2,optional,i32" form:"max_tokens" json:"max_tokens,omitempty" query:"max_tokens"` - TopK *int32 `thrift:"top_k,3,optional" frugal:"3,optional,i32" form:"top_k" json:"top_k,omitempty" query:"top_k"` - TopP *float64 `thrift:"top_p,4,optional" frugal:"4,optional,double" form:"top_p" json:"top_p,omitempty" query:"top_p"` - PresencePenalty *float64 `thrift:"presence_penalty,5,optional" frugal:"5,optional,double" form:"presence_penalty" json:"presence_penalty,omitempty" query:"presence_penalty"` - FrequencyPenalty *float64 `thrift:"frequency_penalty,6,optional" frugal:"6,optional,double" form:"frequency_penalty" json:"frequency_penalty,omitempty" query:"frequency_penalty"` - JSONMode *bool `thrift:"json_mode,7,optional" frugal:"7,optional,bool" form:"json_mode" json:"json_mode,omitempty" query:"json_mode"` + Temperature *float64 `thrift:"temperature,1,optional" frugal:"1,optional,double" form:"temperature" json:"temperature,omitempty" query:"temperature"` + MaxTokens *int32 `thrift:"max_tokens,2,optional" frugal:"2,optional,i32" form:"max_tokens" json:"max_tokens,omitempty" query:"max_tokens"` + TopK *int32 `thrift:"top_k,3,optional" frugal:"3,optional,i32" form:"top_k" json:"top_k,omitempty" query:"top_k"` + TopP *float64 `thrift:"top_p,4,optional" frugal:"4,optional,double" form:"top_p" json:"top_p,omitempty" query:"top_p"` + PresencePenalty *float64 `thrift:"presence_penalty,5,optional" frugal:"5,optional,double" form:"presence_penalty" json:"presence_penalty,omitempty" query:"presence_penalty"` + FrequencyPenalty *float64 `thrift:"frequency_penalty,6,optional" frugal:"6,optional,double" form:"frequency_penalty" json:"frequency_penalty,omitempty" query:"frequency_penalty"` + JSONMode *bool `thrift:"json_mode,7,optional" frugal:"7,optional,bool" form:"json_mode" json:"json_mode,omitempty" query:"json_mode"` + ID *int64 `thrift:"id,8,optional" frugal:"8,optional,i64" json:"id" form:"id" query:"id"` + Name *string `thrift:"name,9,optional" frugal:"9,optional,string" form:"name" json:"name,omitempty" query:"name"` + Thinking *ThinkingConfig `thrift:"thinking,10,optional" frugal:"10,optional,ThinkingConfig" form:"thinking" json:"thinking,omitempty" query:"thinking"` + Extra *string `thrift:"extra,11,optional" frugal:"11,optional,string" form:"extra" json:"extra,omitempty" query:"extra"` } func NewLLMConfig() *LLMConfig { @@ -8906,6 +10511,54 @@ func (p *LLMConfig) GetJSONMode() (v bool) { } return *p.JSONMode } + +var LLMConfig_ID_DEFAULT int64 + +func (p *LLMConfig) GetID() (v int64) { + if p == nil { + return + } + if !p.IsSetID() { + return LLMConfig_ID_DEFAULT + } + return *p.ID +} + +var LLMConfig_Name_DEFAULT string + +func (p *LLMConfig) GetName() (v string) { + if p == nil { + return + } + if !p.IsSetName() { + return LLMConfig_Name_DEFAULT + } + return *p.Name +} + +var LLMConfig_Thinking_DEFAULT *ThinkingConfig + +func (p *LLMConfig) GetThinking() (v *ThinkingConfig) { + if p == nil { + return + } + if !p.IsSetThinking() { + return LLMConfig_Thinking_DEFAULT + } + return p.Thinking +} + +var LLMConfig_Extra_DEFAULT string + +func (p *LLMConfig) GetExtra() (v string) { + if p == nil { + return + } + if !p.IsSetExtra() { + return LLMConfig_Extra_DEFAULT + } + return *p.Extra +} func (p *LLMConfig) SetTemperature(val *float64) { p.Temperature = val } @@ -8927,15 +10580,31 @@ func (p *LLMConfig) SetFrequencyPenalty(val *float64) { func (p *LLMConfig) SetJSONMode(val *bool) { p.JSONMode = val } +func (p *LLMConfig) SetID(val *int64) { + p.ID = val +} +func (p *LLMConfig) SetName(val *string) { + p.Name = val +} +func (p *LLMConfig) SetThinking(val *ThinkingConfig) { + p.Thinking = val +} +func (p *LLMConfig) SetExtra(val *string) { + p.Extra = val +} var fieldIDToName_LLMConfig = map[int16]string{ - 1: "temperature", - 2: "max_tokens", - 3: "top_k", - 4: "top_p", - 5: "presence_penalty", - 6: "frequency_penalty", - 7: "json_mode", + 1: "temperature", + 2: "max_tokens", + 3: "top_k", + 4: "top_p", + 5: "presence_penalty", + 6: "frequency_penalty", + 7: "json_mode", + 8: "id", + 9: "name", + 10: "thinking", + 11: "extra", } func (p *LLMConfig) IsSetTemperature() bool { @@ -8966,6 +10635,22 @@ func (p *LLMConfig) IsSetJSONMode() bool { return p.JSONMode != nil } +func (p *LLMConfig) IsSetID() bool { + return p.ID != nil +} + +func (p *LLMConfig) IsSetName() bool { + return p.Name != nil +} + +func (p *LLMConfig) IsSetThinking() bool { + return p.Thinking != nil +} + +func (p *LLMConfig) IsSetExtra() bool { + return p.Extra != nil +} + func (p *LLMConfig) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -9040,6 +10725,38 @@ func (p *LLMConfig) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 8: + if fieldTypeId == thrift.I64 { + if err = p.ReadField8(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 9: + if fieldTypeId == thrift.STRING { + if err = p.ReadField9(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 10: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField10(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 11: + if fieldTypeId == thrift.STRING { + if err = p.ReadField11(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } default: if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError @@ -9146,6 +10863,47 @@ func (p *LLMConfig) ReadField7(iprot thrift.TProtocol) error { p.JSONMode = _field return nil } +func (p *LLMConfig) ReadField8(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.ID = _field + return nil +} +func (p *LLMConfig) ReadField9(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Name = _field + return nil +} +func (p *LLMConfig) ReadField10(iprot thrift.TProtocol) error { + _field := NewThinkingConfig() + if err := _field.Read(iprot); err != nil { + return err + } + p.Thinking = _field + return nil +} +func (p *LLMConfig) ReadField11(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Extra = _field + return nil +} func (p *LLMConfig) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 @@ -9181,6 +10939,22 @@ func (p *LLMConfig) Write(oprot thrift.TProtocol) (err error) { fieldId = 7 goto WriteFieldError } + if err = p.writeField8(oprot); err != nil { + fieldId = 8 + goto WriteFieldError + } + if err = p.writeField9(oprot); err != nil { + fieldId = 9 + goto WriteFieldError + } + if err = p.writeField10(oprot); err != nil { + fieldId = 10 + goto WriteFieldError + } + if err = p.writeField11(oprot); err != nil { + fieldId = 11 + goto WriteFieldError + } } if err = oprot.WriteFieldStop(); err != nil { goto WriteFieldStopError @@ -9325,6 +11099,78 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) } +func (p *LLMConfig) writeField8(oprot thrift.TProtocol) (err error) { + if p.IsSetID() { + if err = oprot.WriteFieldBegin("id", thrift.I64, 8); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.ID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 8 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 8 end error: ", p), err) +} +func (p *LLMConfig) writeField9(oprot thrift.TProtocol) (err error) { + if p.IsSetName() { + if err = oprot.WriteFieldBegin("name", thrift.STRING, 9); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Name); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 9 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 9 end error: ", p), err) +} +func (p *LLMConfig) writeField10(oprot thrift.TProtocol) (err error) { + if p.IsSetThinking() { + if err = oprot.WriteFieldBegin("thinking", thrift.STRUCT, 10); err != nil { + goto WriteFieldBeginError + } + if err := p.Thinking.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 10 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 10 end error: ", p), err) +} +func (p *LLMConfig) writeField11(oprot thrift.TProtocol) (err error) { + if p.IsSetExtra() { + if err = oprot.WriteFieldBegin("extra", thrift.STRING, 11); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Extra); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 11 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 11 end error: ", p), err) +} func (p *LLMConfig) String() string { if p == nil { @@ -9361,6 +11207,18 @@ func (p *LLMConfig) DeepEqual(ano *LLMConfig) bool { if !p.Field7DeepEqual(ano.JSONMode) { return false } + if !p.Field8DeepEqual(ano.ID) { + return false + } + if !p.Field9DeepEqual(ano.Name) { + return false + } + if !p.Field10DeepEqual(ano.Thinking) { + return false + } + if !p.Field11DeepEqual(ano.Extra) { + return false + } return true } @@ -9448,14 +11306,57 @@ func (p *LLMConfig) Field7DeepEqual(src *bool) bool { } return true } +func (p *LLMConfig) Field8DeepEqual(src *int64) bool { -type VariableVal struct { - // 变量key - Key *string `thrift:"key,1,optional" frugal:"1,optional,string" form:"key" json:"key,omitempty" query:"key"` - // 普通变量值(非string类型,如boolean、integer、float、object等,序列化后传入) - Value *string `thrift:"value,2,optional" frugal:"2,optional,string" form:"value" json:"value,omitempty" query:"value"` - // placeholder变量值 - PlaceholderMessages []*Message `thrift:"placeholder_messages,3,optional" frugal:"3,optional,list" form:"placeholder_messages" json:"placeholder_messages,omitempty" query:"placeholder_messages"` + if p.ID == src { + return true + } else if p.ID == nil || src == nil { + return false + } + if *p.ID != *src { + return false + } + return true +} +func (p *LLMConfig) Field9DeepEqual(src *string) bool { + + if p.Name == src { + return true + } else if p.Name == nil || src == nil { + return false + } + if strings.Compare(*p.Name, *src) != 0 { + return false + } + return true +} +func (p *LLMConfig) Field10DeepEqual(src *ThinkingConfig) bool { + + if !p.Thinking.DeepEqual(src) { + return false + } + return true +} +func (p *LLMConfig) Field11DeepEqual(src *string) bool { + + if p.Extra == src { + return true + } else if p.Extra == nil || src == nil { + return false + } + if strings.Compare(*p.Extra, *src) != 0 { + return false + } + return true +} + +type VariableVal struct { + // 变量key + Key *string `thrift:"key,1,optional" frugal:"1,optional,string" form:"key" json:"key,omitempty" query:"key"` + // 普通变量值(非string类型,如boolean、integer、float、object等,序列化后传入) + Value *string `thrift:"value,2,optional" frugal:"2,optional,string" form:"value" json:"value,omitempty" query:"value"` + // placeholder变量值 + PlaceholderMessages []*Message `thrift:"placeholder_messages,3,optional" frugal:"3,optional,list" form:"placeholder_messages" json:"placeholder_messages,omitempty" query:"placeholder_messages"` // 多模态变量值 MultiPartValues []*ContentPart `thrift:"multi_part_values,4,optional" frugal:"4,optional,list" form:"multi_part_values" json:"multi_part_values,omitempty" query:"multi_part_values"` } @@ -10174,8 +12075,10 @@ type ListPromptBasicRequest struct { // name/key前缀匹配 KeyWord *string `thrift:"key_word,4,optional" frugal:"4,optional,string" form:"key_word" json:"key_word,omitempty"` // 创建人 - Creator *string `thrift:"creator,5,optional" frugal:"5,optional,string" form:"creator" json:"creator,omitempty"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` + Creator *string `thrift:"creator,5,optional" frugal:"5,optional,string" form:"creator" json:"creator,omitempty"` + // 额外查询条件 + Extra map[string]string `thrift:"extra,6,optional" frugal:"6,optional,map" form:"extra" json:"extra,omitempty"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } func NewListPromptBasicRequest() *ListPromptBasicRequest { @@ -10245,6 +12148,18 @@ func (p *ListPromptBasicRequest) GetCreator() (v string) { return *p.Creator } +var ListPromptBasicRequest_Extra_DEFAULT map[string]string + +func (p *ListPromptBasicRequest) GetExtra() (v map[string]string) { + if p == nil { + return + } + if !p.IsSetExtra() { + return ListPromptBasicRequest_Extra_DEFAULT + } + return p.Extra +} + var ListPromptBasicRequest_Base_DEFAULT *base.Base func (p *ListPromptBasicRequest) GetBase() (v *base.Base) { @@ -10271,6 +12186,9 @@ func (p *ListPromptBasicRequest) SetKeyWord(val *string) { func (p *ListPromptBasicRequest) SetCreator(val *string) { p.Creator = val } +func (p *ListPromptBasicRequest) SetExtra(val map[string]string) { + p.Extra = val +} func (p *ListPromptBasicRequest) SetBase(val *base.Base) { p.Base = val } @@ -10281,6 +12199,7 @@ var fieldIDToName_ListPromptBasicRequest = map[int16]string{ 3: "page_size", 4: "key_word", 5: "creator", + 6: "extra", 255: "Base", } @@ -10304,6 +12223,10 @@ func (p *ListPromptBasicRequest) IsSetCreator() bool { return p.Creator != nil } +func (p *ListPromptBasicRequest) IsSetExtra() bool { + return p.Extra != nil +} + func (p *ListPromptBasicRequest) IsSetBase() bool { return p.Base != nil } @@ -10366,6 +12289,14 @@ func (p *ListPromptBasicRequest) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 6: + if fieldTypeId == thrift.MAP { + if err = p.ReadField6(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } case 255: if fieldTypeId == thrift.STRUCT { if err = p.ReadField255(iprot); err != nil { @@ -10458,6 +12389,35 @@ func (p *ListPromptBasicRequest) ReadField5(iprot thrift.TProtocol) error { p.Creator = _field return nil } +func (p *ListPromptBasicRequest) ReadField6(iprot thrift.TProtocol) error { + _, _, size, err := iprot.ReadMapBegin() + if err != nil { + return err + } + _field := make(map[string]string, size) + for i := 0; i < size; i++ { + var _key string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _key = v + } + + var _val string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _val = v + } + + _field[_key] = _val + } + if err := iprot.ReadMapEnd(); err != nil { + return err + } + p.Extra = _field + return nil +} func (p *ListPromptBasicRequest) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBase() if err := _field.Read(iprot); err != nil { @@ -10493,6 +12453,10 @@ func (p *ListPromptBasicRequest) Write(oprot thrift.TProtocol) (err error) { fieldId = 5 goto WriteFieldError } + if err = p.writeField6(oprot); err != nil { + fieldId = 6 + goto WriteFieldError + } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -10605,6 +12569,35 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) } +func (p *ListPromptBasicRequest) writeField6(oprot thrift.TProtocol) (err error) { + if p.IsSetExtra() { + if err = oprot.WriteFieldBegin("extra", thrift.MAP, 6); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.Extra)); err != nil { + return err + } + for k, v := range p.Extra { + if err := oprot.WriteString(k); err != nil { + return err + } + if err := oprot.WriteString(v); err != nil { + return err + } + } + if err := oprot.WriteMapEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) +} func (p *ListPromptBasicRequest) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBase() { if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { @@ -10653,6 +12646,9 @@ func (p *ListPromptBasicRequest) DeepEqual(ano *ListPromptBasicRequest) bool { if !p.Field5DeepEqual(ano.Creator) { return false } + if !p.Field6DeepEqual(ano.Extra) { + return false + } if !p.Field255DeepEqual(ano.Base) { return false } @@ -10719,6 +12715,19 @@ func (p *ListPromptBasicRequest) Field5DeepEqual(src *string) bool { } return true } +func (p *ListPromptBasicRequest) Field6DeepEqual(src map[string]string) bool { + + if len(p.Extra) != len(src) { + return false + } + for k, v := range p.Extra { + _src := src[k] + if strings.Compare(v, _src) != 0 { + return false + } + } + return true +} func (p *ListPromptBasicRequest) Field255DeepEqual(src *base.Base) bool { if !p.Base.DeepEqual(src) { @@ -11974,174 +13983,2394 @@ func (p *PromptBasic) Field2DeepEqual(src *int64) bool { if *p.WorkspaceID != *src { return false } - return true -} -func (p *PromptBasic) Field3DeepEqual(src *string) bool { - - if p.PromptKey == src { - return true - } else if p.PromptKey == nil || src == nil { - return false + return true +} +func (p *PromptBasic) Field3DeepEqual(src *string) bool { + + if p.PromptKey == src { + return true + } else if p.PromptKey == nil || src == nil { + return false + } + if strings.Compare(*p.PromptKey, *src) != 0 { + return false + } + return true +} +func (p *PromptBasic) Field4DeepEqual(src *string) bool { + + if p.DisplayName == src { + return true + } else if p.DisplayName == nil || src == nil { + return false + } + if strings.Compare(*p.DisplayName, *src) != 0 { + return false + } + return true +} +func (p *PromptBasic) Field5DeepEqual(src *string) bool { + + if p.Description == src { + return true + } else if p.Description == nil || src == nil { + return false + } + if strings.Compare(*p.Description, *src) != 0 { + return false + } + return true +} +func (p *PromptBasic) Field6DeepEqual(src *string) bool { + + if p.LatestVersion == src { + return true + } else if p.LatestVersion == nil || src == nil { + return false + } + if strings.Compare(*p.LatestVersion, *src) != 0 { + return false + } + return true +} +func (p *PromptBasic) Field7DeepEqual(src *string) bool { + + if p.CreatedBy == src { + return true + } else if p.CreatedBy == nil || src == nil { + return false + } + if strings.Compare(*p.CreatedBy, *src) != 0 { + return false + } + return true +} +func (p *PromptBasic) Field8DeepEqual(src *string) bool { + + if p.UpdatedBy == src { + return true + } else if p.UpdatedBy == nil || src == nil { + return false + } + if strings.Compare(*p.UpdatedBy, *src) != 0 { + return false + } + return true +} +func (p *PromptBasic) Field9DeepEqual(src *int64) bool { + + if p.CreatedAt == src { + return true + } else if p.CreatedAt == nil || src == nil { + return false + } + if *p.CreatedAt != *src { + return false + } + return true +} +func (p *PromptBasic) Field10DeepEqual(src *int64) bool { + + if p.UpdatedAt == src { + return true + } else if p.UpdatedAt == nil || src == nil { + return false + } + if *p.UpdatedAt != *src { + return false + } + return true +} +func (p *PromptBasic) Field11DeepEqual(src *int64) bool { + + if p.LatestCommittedAt == src { + return true + } else if p.LatestCommittedAt == nil || src == nil { + return false + } + if *p.LatestCommittedAt != *src { + return false + } + return true +} + +type ListPromptBasicData struct { + // Prompt列表 + Prompts []*PromptBasic `thrift:"prompts,1,optional" frugal:"1,optional,list" form:"prompts" json:"prompts,omitempty" query:"prompts"` + Total *int32 `thrift:"total,2,optional" frugal:"2,optional,i32" form:"total" json:"total,omitempty" query:"total"` +} + +func NewListPromptBasicData() *ListPromptBasicData { + return &ListPromptBasicData{} +} + +func (p *ListPromptBasicData) InitDefault() { +} + +var ListPromptBasicData_Prompts_DEFAULT []*PromptBasic + +func (p *ListPromptBasicData) GetPrompts() (v []*PromptBasic) { + if p == nil { + return + } + if !p.IsSetPrompts() { + return ListPromptBasicData_Prompts_DEFAULT + } + return p.Prompts +} + +var ListPromptBasicData_Total_DEFAULT int32 + +func (p *ListPromptBasicData) GetTotal() (v int32) { + if p == nil { + return + } + if !p.IsSetTotal() { + return ListPromptBasicData_Total_DEFAULT + } + return *p.Total +} +func (p *ListPromptBasicData) SetPrompts(val []*PromptBasic) { + p.Prompts = val +} +func (p *ListPromptBasicData) SetTotal(val *int32) { + p.Total = val +} + +var fieldIDToName_ListPromptBasicData = map[int16]string{ + 1: "prompts", + 2: "total", +} + +func (p *ListPromptBasicData) IsSetPrompts() bool { + return p.Prompts != nil +} + +func (p *ListPromptBasicData) IsSetTotal() bool { + return p.Total != nil +} + +func (p *ListPromptBasicData) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.LIST { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.I32 { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListPromptBasicData[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *ListPromptBasicData) ReadField1(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*PromptBasic, 0, size) + values := make([]PromptBasic, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + + if err := _elem.Read(iprot); err != nil { + return err + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { + return err + } + p.Prompts = _field + return nil +} +func (p *ListPromptBasicData) ReadField2(iprot thrift.TProtocol) error { + + var _field *int32 + if v, err := iprot.ReadI32(); err != nil { + return err + } else { + _field = &v + } + p.Total = _field + return nil +} + +func (p *ListPromptBasicData) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("ListPromptBasicData"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *ListPromptBasicData) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetPrompts() { + if err = oprot.WriteFieldBegin("prompts", thrift.LIST, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Prompts)); err != nil { + return err + } + for _, v := range p.Prompts { + if err := v.Write(oprot); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *ListPromptBasicData) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetTotal() { + if err = oprot.WriteFieldBegin("total", thrift.I32, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(*p.Total); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} + +func (p *ListPromptBasicData) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("ListPromptBasicData(%+v)", *p) + +} + +func (p *ListPromptBasicData) DeepEqual(ano *ListPromptBasicData) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.Prompts) { + return false + } + if !p.Field2DeepEqual(ano.Total) { + return false + } + return true +} + +func (p *ListPromptBasicData) Field1DeepEqual(src []*PromptBasic) bool { + + if len(p.Prompts) != len(src) { + return false + } + for i, v := range p.Prompts { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } + return true +} +func (p *ListPromptBasicData) Field2DeepEqual(src *int32) bool { + + if p.Total == src { + return true + } else if p.Total == nil || src == nil { + return false + } + if *p.Total != *src { + return false + } + return true +} + +type PromptPublishInfo struct { + // 发布者 + Publisher string `thrift:"publisher,1" frugal:"1,default,string" form:"publisher" json:"publisher" query:"publisher"` + // 发布描述 + PublishDescription string `thrift:"publish_description,2" frugal:"2,default,string" form:"publish_description" json:"publish_description" query:"publish_description"` + // 发布时间 + PublishAt *int64 `thrift:"publish_at,3,optional" frugal:"3,optional,i64" form:"publish_at" json:"publish_at,omitempty" query:"publish_at"` +} + +func NewPromptPublishInfo() *PromptPublishInfo { + return &PromptPublishInfo{} +} + +func (p *PromptPublishInfo) InitDefault() { +} + +func (p *PromptPublishInfo) GetPublisher() (v string) { + if p != nil { + return p.Publisher + } + return +} + +func (p *PromptPublishInfo) GetPublishDescription() (v string) { + if p != nil { + return p.PublishDescription + } + return +} + +var PromptPublishInfo_PublishAt_DEFAULT int64 + +func (p *PromptPublishInfo) GetPublishAt() (v int64) { + if p == nil { + return + } + if !p.IsSetPublishAt() { + return PromptPublishInfo_PublishAt_DEFAULT + } + return *p.PublishAt +} +func (p *PromptPublishInfo) SetPublisher(val string) { + p.Publisher = val +} +func (p *PromptPublishInfo) SetPublishDescription(val string) { + p.PublishDescription = val +} +func (p *PromptPublishInfo) SetPublishAt(val *int64) { + p.PublishAt = val +} + +var fieldIDToName_PromptPublishInfo = map[int16]string{ + 1: "publisher", + 2: "publish_description", + 3: "publish_at", +} + +func (p *PromptPublishInfo) IsSetPublishAt() bool { + return p.PublishAt != nil +} + +func (p *PromptPublishInfo) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.STRING { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.I64 { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptPublishInfo[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *PromptPublishInfo) ReadField1(iprot thrift.TProtocol) error { + + var _field string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = v + } + p.Publisher = _field + return nil +} +func (p *PromptPublishInfo) ReadField2(iprot thrift.TProtocol) error { + + var _field string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = v + } + p.PublishDescription = _field + return nil +} +func (p *PromptPublishInfo) ReadField3(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.PublishAt = _field + return nil +} + +func (p *PromptPublishInfo) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("PromptPublishInfo"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *PromptPublishInfo) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("publisher", thrift.STRING, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(p.Publisher); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *PromptPublishInfo) writeField2(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("publish_description", thrift.STRING, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(p.PublishDescription); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} +func (p *PromptPublishInfo) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetPublishAt() { + if err = oprot.WriteFieldBegin("publish_at", thrift.I64, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.PublishAt); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) +} + +func (p *PromptPublishInfo) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("PromptPublishInfo(%+v)", *p) + +} + +func (p *PromptPublishInfo) DeepEqual(ano *PromptPublishInfo) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.Publisher) { + return false + } + if !p.Field2DeepEqual(ano.PublishDescription) { + return false + } + if !p.Field3DeepEqual(ano.PublishAt) { + return false + } + return true +} + +func (p *PromptPublishInfo) Field1DeepEqual(src string) bool { + + if strings.Compare(p.Publisher, src) != 0 { + return false + } + return true +} +func (p *PromptPublishInfo) Field2DeepEqual(src string) bool { + + if strings.Compare(p.PublishDescription, src) != 0 { + return false + } + return true +} +func (p *PromptPublishInfo) Field3DeepEqual(src *int64) bool { + + if p.PublishAt == src { + return true + } else if p.PublishAt == nil || src == nil { + return false + } + if *p.PublishAt != *src { + return false + } + return true +} + +type ThinkingConfig struct { + // thinking内容的最大输出token + BudgetTokens *int64 `thrift:"budget_tokens,1,optional" frugal:"1,optional,i64" form:"budget_tokens" json:"budget_tokens,omitempty" query:"budget_tokens"` + ThinkingOption *ThinkingOption `thrift:"thinking_option,2,optional" frugal:"2,optional,ThinkingOption" form:"thinking_option" json:"thinking_option,omitempty" query:"thinking_option"` + // 思考长度 + ReasoningEffort *ReasoningEffort `thrift:"reasoning_effort,3,optional" frugal:"3,optional,ReasoningEffort" form:"reasoning_effort" json:"reasoning_effort,omitempty" query:"reasoning_effort"` +} + +func NewThinkingConfig() *ThinkingConfig { + return &ThinkingConfig{} +} + +func (p *ThinkingConfig) InitDefault() { +} + +var ThinkingConfig_BudgetTokens_DEFAULT int64 + +func (p *ThinkingConfig) GetBudgetTokens() (v int64) { + if p == nil { + return + } + if !p.IsSetBudgetTokens() { + return ThinkingConfig_BudgetTokens_DEFAULT + } + return *p.BudgetTokens +} + +var ThinkingConfig_ThinkingOption_DEFAULT ThinkingOption + +func (p *ThinkingConfig) GetThinkingOption() (v ThinkingOption) { + if p == nil { + return + } + if !p.IsSetThinkingOption() { + return ThinkingConfig_ThinkingOption_DEFAULT + } + return *p.ThinkingOption +} + +var ThinkingConfig_ReasoningEffort_DEFAULT ReasoningEffort + +func (p *ThinkingConfig) GetReasoningEffort() (v ReasoningEffort) { + if p == nil { + return + } + if !p.IsSetReasoningEffort() { + return ThinkingConfig_ReasoningEffort_DEFAULT + } + return *p.ReasoningEffort +} +func (p *ThinkingConfig) SetBudgetTokens(val *int64) { + p.BudgetTokens = val +} +func (p *ThinkingConfig) SetThinkingOption(val *ThinkingOption) { + p.ThinkingOption = val +} +func (p *ThinkingConfig) SetReasoningEffort(val *ReasoningEffort) { + p.ReasoningEffort = val +} + +var fieldIDToName_ThinkingConfig = map[int16]string{ + 1: "budget_tokens", + 2: "thinking_option", + 3: "reasoning_effort", +} + +func (p *ThinkingConfig) IsSetBudgetTokens() bool { + return p.BudgetTokens != nil +} + +func (p *ThinkingConfig) IsSetThinkingOption() bool { + return p.ThinkingOption != nil +} + +func (p *ThinkingConfig) IsSetReasoningEffort() bool { + return p.ReasoningEffort != nil +} + +func (p *ThinkingConfig) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.I64 { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.I32 { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.I32 { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ThinkingConfig[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *ThinkingConfig) ReadField1(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.BudgetTokens = _field + return nil +} +func (p *ThinkingConfig) ReadField2(iprot thrift.TProtocol) error { + + var _field *ThinkingOption + if v, err := iprot.ReadI32(); err != nil { + return err + } else { + tmp := ThinkingOption(v) + _field = &tmp + } + p.ThinkingOption = _field + return nil +} +func (p *ThinkingConfig) ReadField3(iprot thrift.TProtocol) error { + + var _field *ReasoningEffort + if v, err := iprot.ReadI32(); err != nil { + return err + } else { + tmp := ReasoningEffort(v) + _field = &tmp + } + p.ReasoningEffort = _field + return nil +} + +func (p *ThinkingConfig) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("ThinkingConfig"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *ThinkingConfig) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetBudgetTokens() { + if err = oprot.WriteFieldBegin("budget_tokens", thrift.I64, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.BudgetTokens); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *ThinkingConfig) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetThinkingOption() { + if err = oprot.WriteFieldBegin("thinking_option", thrift.I32, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(int32(*p.ThinkingOption)); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} +func (p *ThinkingConfig) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetReasoningEffort() { + if err = oprot.WriteFieldBegin("reasoning_effort", thrift.I32, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(int32(*p.ReasoningEffort)); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) +} + +func (p *ThinkingConfig) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("ThinkingConfig(%+v)", *p) + +} + +func (p *ThinkingConfig) DeepEqual(ano *ThinkingConfig) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.BudgetTokens) { + return false + } + if !p.Field2DeepEqual(ano.ThinkingOption) { + return false + } + if !p.Field3DeepEqual(ano.ReasoningEffort) { + return false + } + return true +} + +func (p *ThinkingConfig) Field1DeepEqual(src *int64) bool { + + if p.BudgetTokens == src { + return true + } else if p.BudgetTokens == nil || src == nil { + return false + } + if *p.BudgetTokens != *src { + return false + } + return true +} +func (p *ThinkingConfig) Field2DeepEqual(src *ThinkingOption) bool { + + if p.ThinkingOption == src { + return true + } else if p.ThinkingOption == nil || src == nil { + return false + } + if *p.ThinkingOption != *src { + return false + } + return true +} +func (p *ThinkingConfig) Field3DeepEqual(src *ReasoningEffort) bool { + + if p.ReasoningEffort == src { + return true + } else if p.ReasoningEffort == nil || src == nil { + return false + } + if *p.ReasoningEffort != *src { + return false + } + return true +} + +type ModelConfig struct { + ModelID *int64 `thrift:"model_id,1,optional" frugal:"1,optional,i64" json:"model_id" form:"model_id" query:"model_id"` + MaxTokens *int32 `thrift:"max_tokens,2,optional" frugal:"2,optional,i32" form:"max_tokens" json:"max_tokens,omitempty" query:"max_tokens"` + Temperature *float64 `thrift:"temperature,3,optional" frugal:"3,optional,double" form:"temperature" json:"temperature,omitempty" query:"temperature"` + TopK *int32 `thrift:"top_k,4,optional" frugal:"4,optional,i32" form:"top_k" json:"top_k,omitempty" query:"top_k"` + TopP *float64 `thrift:"top_p,5,optional" frugal:"5,optional,double" form:"top_p" json:"top_p,omitempty" query:"top_p"` + PresencePenalty *float64 `thrift:"presence_penalty,6,optional" frugal:"6,optional,double" form:"presence_penalty" json:"presence_penalty,omitempty" query:"presence_penalty"` + FrequencyPenalty *float64 `thrift:"frequency_penalty,7,optional" frugal:"7,optional,double" form:"frequency_penalty" json:"frequency_penalty,omitempty" query:"frequency_penalty"` + JSONMode *bool `thrift:"json_mode,8,optional" frugal:"8,optional,bool" form:"json_mode" json:"json_mode,omitempty" query:"json_mode"` + Extra *string `thrift:"extra,9,optional" frugal:"9,optional,string" form:"extra" json:"extra,omitempty" query:"extra"` + Thinking *ThinkingConfig `thrift:"thinking,10,optional" frugal:"10,optional,ThinkingConfig" form:"thinking" json:"thinking,omitempty" query:"thinking"` + ParamConfigValues []*ParamConfigValue `thrift:"param_config_values,100,optional" frugal:"100,optional,list" form:"param_config_values" json:"param_config_values,omitempty" query:"param_config_values"` +} + +func NewModelConfig() *ModelConfig { + return &ModelConfig{} +} + +func (p *ModelConfig) InitDefault() { +} + +var ModelConfig_ModelID_DEFAULT int64 + +func (p *ModelConfig) GetModelID() (v int64) { + if p == nil { + return + } + if !p.IsSetModelID() { + return ModelConfig_ModelID_DEFAULT + } + return *p.ModelID +} + +var ModelConfig_MaxTokens_DEFAULT int32 + +func (p *ModelConfig) GetMaxTokens() (v int32) { + if p == nil { + return + } + if !p.IsSetMaxTokens() { + return ModelConfig_MaxTokens_DEFAULT + } + return *p.MaxTokens +} + +var ModelConfig_Temperature_DEFAULT float64 + +func (p *ModelConfig) GetTemperature() (v float64) { + if p == nil { + return + } + if !p.IsSetTemperature() { + return ModelConfig_Temperature_DEFAULT + } + return *p.Temperature +} + +var ModelConfig_TopK_DEFAULT int32 + +func (p *ModelConfig) GetTopK() (v int32) { + if p == nil { + return + } + if !p.IsSetTopK() { + return ModelConfig_TopK_DEFAULT + } + return *p.TopK +} + +var ModelConfig_TopP_DEFAULT float64 + +func (p *ModelConfig) GetTopP() (v float64) { + if p == nil { + return + } + if !p.IsSetTopP() { + return ModelConfig_TopP_DEFAULT + } + return *p.TopP +} + +var ModelConfig_PresencePenalty_DEFAULT float64 + +func (p *ModelConfig) GetPresencePenalty() (v float64) { + if p == nil { + return + } + if !p.IsSetPresencePenalty() { + return ModelConfig_PresencePenalty_DEFAULT + } + return *p.PresencePenalty +} + +var ModelConfig_FrequencyPenalty_DEFAULT float64 + +func (p *ModelConfig) GetFrequencyPenalty() (v float64) { + if p == nil { + return + } + if !p.IsSetFrequencyPenalty() { + return ModelConfig_FrequencyPenalty_DEFAULT + } + return *p.FrequencyPenalty +} + +var ModelConfig_JSONMode_DEFAULT bool + +func (p *ModelConfig) GetJSONMode() (v bool) { + if p == nil { + return + } + if !p.IsSetJSONMode() { + return ModelConfig_JSONMode_DEFAULT + } + return *p.JSONMode +} + +var ModelConfig_Extra_DEFAULT string + +func (p *ModelConfig) GetExtra() (v string) { + if p == nil { + return + } + if !p.IsSetExtra() { + return ModelConfig_Extra_DEFAULT + } + return *p.Extra +} + +var ModelConfig_Thinking_DEFAULT *ThinkingConfig + +func (p *ModelConfig) GetThinking() (v *ThinkingConfig) { + if p == nil { + return + } + if !p.IsSetThinking() { + return ModelConfig_Thinking_DEFAULT + } + return p.Thinking +} + +var ModelConfig_ParamConfigValues_DEFAULT []*ParamConfigValue + +func (p *ModelConfig) GetParamConfigValues() (v []*ParamConfigValue) { + if p == nil { + return + } + if !p.IsSetParamConfigValues() { + return ModelConfig_ParamConfigValues_DEFAULT + } + return p.ParamConfigValues +} +func (p *ModelConfig) SetModelID(val *int64) { + p.ModelID = val +} +func (p *ModelConfig) SetMaxTokens(val *int32) { + p.MaxTokens = val +} +func (p *ModelConfig) SetTemperature(val *float64) { + p.Temperature = val +} +func (p *ModelConfig) SetTopK(val *int32) { + p.TopK = val +} +func (p *ModelConfig) SetTopP(val *float64) { + p.TopP = val +} +func (p *ModelConfig) SetPresencePenalty(val *float64) { + p.PresencePenalty = val +} +func (p *ModelConfig) SetFrequencyPenalty(val *float64) { + p.FrequencyPenalty = val +} +func (p *ModelConfig) SetJSONMode(val *bool) { + p.JSONMode = val +} +func (p *ModelConfig) SetExtra(val *string) { + p.Extra = val +} +func (p *ModelConfig) SetThinking(val *ThinkingConfig) { + p.Thinking = val +} +func (p *ModelConfig) SetParamConfigValues(val []*ParamConfigValue) { + p.ParamConfigValues = val +} + +var fieldIDToName_ModelConfig = map[int16]string{ + 1: "model_id", + 2: "max_tokens", + 3: "temperature", + 4: "top_k", + 5: "top_p", + 6: "presence_penalty", + 7: "frequency_penalty", + 8: "json_mode", + 9: "extra", + 10: "thinking", + 100: "param_config_values", +} + +func (p *ModelConfig) IsSetModelID() bool { + return p.ModelID != nil +} + +func (p *ModelConfig) IsSetMaxTokens() bool { + return p.MaxTokens != nil +} + +func (p *ModelConfig) IsSetTemperature() bool { + return p.Temperature != nil +} + +func (p *ModelConfig) IsSetTopK() bool { + return p.TopK != nil +} + +func (p *ModelConfig) IsSetTopP() bool { + return p.TopP != nil +} + +func (p *ModelConfig) IsSetPresencePenalty() bool { + return p.PresencePenalty != nil +} + +func (p *ModelConfig) IsSetFrequencyPenalty() bool { + return p.FrequencyPenalty != nil +} + +func (p *ModelConfig) IsSetJSONMode() bool { + return p.JSONMode != nil +} + +func (p *ModelConfig) IsSetExtra() bool { + return p.Extra != nil +} + +func (p *ModelConfig) IsSetThinking() bool { + return p.Thinking != nil +} + +func (p *ModelConfig) IsSetParamConfigValues() bool { + return p.ParamConfigValues != nil +} + +func (p *ModelConfig) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.I64 { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.I32 { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.DOUBLE { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 4: + if fieldTypeId == thrift.I32 { + if err = p.ReadField4(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 5: + if fieldTypeId == thrift.DOUBLE { + if err = p.ReadField5(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 6: + if fieldTypeId == thrift.DOUBLE { + if err = p.ReadField6(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 7: + if fieldTypeId == thrift.DOUBLE { + if err = p.ReadField7(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 8: + if fieldTypeId == thrift.BOOL { + if err = p.ReadField8(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 9: + if fieldTypeId == thrift.STRING { + if err = p.ReadField9(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 10: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField10(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 100: + if fieldTypeId == thrift.LIST { + if err = p.ReadField100(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ModelConfig[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *ModelConfig) ReadField1(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.ModelID = _field + return nil +} +func (p *ModelConfig) ReadField2(iprot thrift.TProtocol) error { + + var _field *int32 + if v, err := iprot.ReadI32(); err != nil { + return err + } else { + _field = &v + } + p.MaxTokens = _field + return nil +} +func (p *ModelConfig) ReadField3(iprot thrift.TProtocol) error { + + var _field *float64 + if v, err := iprot.ReadDouble(); err != nil { + return err + } else { + _field = &v + } + p.Temperature = _field + return nil +} +func (p *ModelConfig) ReadField4(iprot thrift.TProtocol) error { + + var _field *int32 + if v, err := iprot.ReadI32(); err != nil { + return err + } else { + _field = &v + } + p.TopK = _field + return nil +} +func (p *ModelConfig) ReadField5(iprot thrift.TProtocol) error { + + var _field *float64 + if v, err := iprot.ReadDouble(); err != nil { + return err + } else { + _field = &v + } + p.TopP = _field + return nil +} +func (p *ModelConfig) ReadField6(iprot thrift.TProtocol) error { + + var _field *float64 + if v, err := iprot.ReadDouble(); err != nil { + return err + } else { + _field = &v + } + p.PresencePenalty = _field + return nil +} +func (p *ModelConfig) ReadField7(iprot thrift.TProtocol) error { + + var _field *float64 + if v, err := iprot.ReadDouble(); err != nil { + return err + } else { + _field = &v + } + p.FrequencyPenalty = _field + return nil +} +func (p *ModelConfig) ReadField8(iprot thrift.TProtocol) error { + + var _field *bool + if v, err := iprot.ReadBool(); err != nil { + return err + } else { + _field = &v + } + p.JSONMode = _field + return nil +} +func (p *ModelConfig) ReadField9(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Extra = _field + return nil +} +func (p *ModelConfig) ReadField10(iprot thrift.TProtocol) error { + _field := NewThinkingConfig() + if err := _field.Read(iprot); err != nil { + return err + } + p.Thinking = _field + return nil +} +func (p *ModelConfig) ReadField100(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*ParamConfigValue, 0, size) + values := make([]ParamConfigValue, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + + if err := _elem.Read(iprot); err != nil { + return err + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { + return err + } + p.ParamConfigValues = _field + return nil +} + +func (p *ModelConfig) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("ModelConfig"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } + if err = p.writeField4(oprot); err != nil { + fieldId = 4 + goto WriteFieldError + } + if err = p.writeField5(oprot); err != nil { + fieldId = 5 + goto WriteFieldError + } + if err = p.writeField6(oprot); err != nil { + fieldId = 6 + goto WriteFieldError + } + if err = p.writeField7(oprot); err != nil { + fieldId = 7 + goto WriteFieldError + } + if err = p.writeField8(oprot); err != nil { + fieldId = 8 + goto WriteFieldError + } + if err = p.writeField9(oprot); err != nil { + fieldId = 9 + goto WriteFieldError + } + if err = p.writeField10(oprot); err != nil { + fieldId = 10 + goto WriteFieldError + } + if err = p.writeField100(oprot); err != nil { + fieldId = 100 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *ModelConfig) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetModelID() { + if err = oprot.WriteFieldBegin("model_id", thrift.I64, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.ModelID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *ModelConfig) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetMaxTokens() { + if err = oprot.WriteFieldBegin("max_tokens", thrift.I32, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(*p.MaxTokens); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} +func (p *ModelConfig) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetTemperature() { + if err = oprot.WriteFieldBegin("temperature", thrift.DOUBLE, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteDouble(*p.Temperature); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) +} +func (p *ModelConfig) writeField4(oprot thrift.TProtocol) (err error) { + if p.IsSetTopK() { + if err = oprot.WriteFieldBegin("top_k", thrift.I32, 4); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(*p.TopK); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) +} +func (p *ModelConfig) writeField5(oprot thrift.TProtocol) (err error) { + if p.IsSetTopP() { + if err = oprot.WriteFieldBegin("top_p", thrift.DOUBLE, 5); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteDouble(*p.TopP); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) +} +func (p *ModelConfig) writeField6(oprot thrift.TProtocol) (err error) { + if p.IsSetPresencePenalty() { + if err = oprot.WriteFieldBegin("presence_penalty", thrift.DOUBLE, 6); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteDouble(*p.PresencePenalty); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) +} +func (p *ModelConfig) writeField7(oprot thrift.TProtocol) (err error) { + if p.IsSetFrequencyPenalty() { + if err = oprot.WriteFieldBegin("frequency_penalty", thrift.DOUBLE, 7); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteDouble(*p.FrequencyPenalty); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 7 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) +} +func (p *ModelConfig) writeField8(oprot thrift.TProtocol) (err error) { + if p.IsSetJSONMode() { + if err = oprot.WriteFieldBegin("json_mode", thrift.BOOL, 8); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteBool(*p.JSONMode); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 8 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 8 end error: ", p), err) +} +func (p *ModelConfig) writeField9(oprot thrift.TProtocol) (err error) { + if p.IsSetExtra() { + if err = oprot.WriteFieldBegin("extra", thrift.STRING, 9); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Extra); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 9 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 9 end error: ", p), err) +} +func (p *ModelConfig) writeField10(oprot thrift.TProtocol) (err error) { + if p.IsSetThinking() { + if err = oprot.WriteFieldBegin("thinking", thrift.STRUCT, 10); err != nil { + goto WriteFieldBeginError + } + if err := p.Thinking.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 10 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 10 end error: ", p), err) +} +func (p *ModelConfig) writeField100(oprot thrift.TProtocol) (err error) { + if p.IsSetParamConfigValues() { + if err = oprot.WriteFieldBegin("param_config_values", thrift.LIST, 100); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.ParamConfigValues)); err != nil { + return err + } + for _, v := range p.ParamConfigValues { + if err := v.Write(oprot); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 100 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 100 end error: ", p), err) +} + +func (p *ModelConfig) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("ModelConfig(%+v)", *p) + +} + +func (p *ModelConfig) DeepEqual(ano *ModelConfig) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.ModelID) { + return false + } + if !p.Field2DeepEqual(ano.MaxTokens) { + return false + } + if !p.Field3DeepEqual(ano.Temperature) { + return false + } + if !p.Field4DeepEqual(ano.TopK) { + return false + } + if !p.Field5DeepEqual(ano.TopP) { + return false + } + if !p.Field6DeepEqual(ano.PresencePenalty) { + return false + } + if !p.Field7DeepEqual(ano.FrequencyPenalty) { + return false + } + if !p.Field8DeepEqual(ano.JSONMode) { + return false + } + if !p.Field9DeepEqual(ano.Extra) { + return false + } + if !p.Field10DeepEqual(ano.Thinking) { + return false + } + if !p.Field100DeepEqual(ano.ParamConfigValues) { + return false + } + return true +} + +func (p *ModelConfig) Field1DeepEqual(src *int64) bool { + + if p.ModelID == src { + return true + } else if p.ModelID == nil || src == nil { + return false + } + if *p.ModelID != *src { + return false + } + return true +} +func (p *ModelConfig) Field2DeepEqual(src *int32) bool { + + if p.MaxTokens == src { + return true + } else if p.MaxTokens == nil || src == nil { + return false + } + if *p.MaxTokens != *src { + return false + } + return true +} +func (p *ModelConfig) Field3DeepEqual(src *float64) bool { + + if p.Temperature == src { + return true + } else if p.Temperature == nil || src == nil { + return false + } + if *p.Temperature != *src { + return false + } + return true +} +func (p *ModelConfig) Field4DeepEqual(src *int32) bool { + + if p.TopK == src { + return true + } else if p.TopK == nil || src == nil { + return false + } + if *p.TopK != *src { + return false + } + return true +} +func (p *ModelConfig) Field5DeepEqual(src *float64) bool { + + if p.TopP == src { + return true + } else if p.TopP == nil || src == nil { + return false + } + if *p.TopP != *src { + return false + } + return true +} +func (p *ModelConfig) Field6DeepEqual(src *float64) bool { + + if p.PresencePenalty == src { + return true + } else if p.PresencePenalty == nil || src == nil { + return false + } + if *p.PresencePenalty != *src { + return false + } + return true +} +func (p *ModelConfig) Field7DeepEqual(src *float64) bool { + + if p.FrequencyPenalty == src { + return true + } else if p.FrequencyPenalty == nil || src == nil { + return false + } + if *p.FrequencyPenalty != *src { + return false + } + return true +} +func (p *ModelConfig) Field8DeepEqual(src *bool) bool { + + if p.JSONMode == src { + return true + } else if p.JSONMode == nil || src == nil { + return false + } + if *p.JSONMode != *src { + return false + } + return true +} +func (p *ModelConfig) Field9DeepEqual(src *string) bool { + + if p.Extra == src { + return true + } else if p.Extra == nil || src == nil { + return false + } + if strings.Compare(*p.Extra, *src) != 0 { + return false + } + return true +} +func (p *ModelConfig) Field10DeepEqual(src *ThinkingConfig) bool { + + if !p.Thinking.DeepEqual(src) { + return false + } + return true +} +func (p *ModelConfig) Field100DeepEqual(src []*ParamConfigValue) bool { + + if len(p.ParamConfigValues) != len(src) { + return false + } + for i, v := range p.ParamConfigValues { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } + return true +} + +type ParamConfigValue struct { + // 传给下游模型的key,与ParamSchema.name对齐 + Name *string `thrift:"name,1,optional" frugal:"1,optional,string" form:"name" json:"name,omitempty" query:"name"` + // 展示名称 + Label *string `thrift:"label,2,optional" frugal:"2,optional,string" form:"label" json:"label,omitempty" query:"label"` + // 传给下游模型的value,与ParamSchema.options对齐 + Value *ParamOption `thrift:"value,3,optional" frugal:"3,optional,ParamOption" form:"value" json:"value,omitempty" query:"value"` +} + +func NewParamConfigValue() *ParamConfigValue { + return &ParamConfigValue{} +} + +func (p *ParamConfigValue) InitDefault() { +} + +var ParamConfigValue_Name_DEFAULT string + +func (p *ParamConfigValue) GetName() (v string) { + if p == nil { + return + } + if !p.IsSetName() { + return ParamConfigValue_Name_DEFAULT + } + return *p.Name +} + +var ParamConfigValue_Label_DEFAULT string + +func (p *ParamConfigValue) GetLabel() (v string) { + if p == nil { + return + } + if !p.IsSetLabel() { + return ParamConfigValue_Label_DEFAULT + } + return *p.Label +} + +var ParamConfigValue_Value_DEFAULT *ParamOption + +func (p *ParamConfigValue) GetValue() (v *ParamOption) { + if p == nil { + return + } + if !p.IsSetValue() { + return ParamConfigValue_Value_DEFAULT + } + return p.Value +} +func (p *ParamConfigValue) SetName(val *string) { + p.Name = val +} +func (p *ParamConfigValue) SetLabel(val *string) { + p.Label = val +} +func (p *ParamConfigValue) SetValue(val *ParamOption) { + p.Value = val +} + +var fieldIDToName_ParamConfigValue = map[int16]string{ + 1: "name", + 2: "label", + 3: "value", +} + +func (p *ParamConfigValue) IsSetName() bool { + return p.Name != nil +} + +func (p *ParamConfigValue) IsSetLabel() bool { + return p.Label != nil +} + +func (p *ParamConfigValue) IsSetValue() bool { + return p.Value != nil +} + +func (p *ParamConfigValue) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.STRING { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ParamConfigValue[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *ParamConfigValue) ReadField1(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Name = _field + return nil +} +func (p *ParamConfigValue) ReadField2(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Label = _field + return nil +} +func (p *ParamConfigValue) ReadField3(iprot thrift.TProtocol) error { + _field := NewParamOption() + if err := _field.Read(iprot); err != nil { + return err + } + p.Value = _field + return nil +} + +func (p *ParamConfigValue) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("ParamConfigValue"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError } - if strings.Compare(*p.PromptKey, *src) != 0 { - return false + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError } - return true + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *PromptBasic) Field4DeepEqual(src *string) bool { - if p.DisplayName == src { - return true - } else if p.DisplayName == nil || src == nil { - return false - } - if strings.Compare(*p.DisplayName, *src) != 0 { - return false +func (p *ParamConfigValue) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetName() { + if err = oprot.WriteFieldBegin("name", thrift.STRING, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Name); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } - return true + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *PromptBasic) Field5DeepEqual(src *string) bool { - - if p.Description == src { - return true - } else if p.Description == nil || src == nil { - return false +func (p *ParamConfigValue) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetLabel() { + if err = oprot.WriteFieldBegin("label", thrift.STRING, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Label); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } - if strings.Compare(*p.Description, *src) != 0 { - return false + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} +func (p *ParamConfigValue) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetValue() { + if err = oprot.WriteFieldBegin("value", thrift.STRUCT, 3); err != nil { + goto WriteFieldBeginError + } + if err := p.Value.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } - return true + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) } -func (p *PromptBasic) Field6DeepEqual(src *string) bool { - if p.LatestVersion == src { - return true - } else if p.LatestVersion == nil || src == nil { - return false - } - if strings.Compare(*p.LatestVersion, *src) != 0 { - return false +func (p *ParamConfigValue) String() string { + if p == nil { + return "" } - return true + return fmt.Sprintf("ParamConfigValue(%+v)", *p) + } -func (p *PromptBasic) Field7DeepEqual(src *string) bool { - if p.CreatedBy == src { +func (p *ParamConfigValue) DeepEqual(ano *ParamConfigValue) bool { + if p == ano { return true - } else if p.CreatedBy == nil || src == nil { + } else if p == nil || ano == nil { return false } - if strings.Compare(*p.CreatedBy, *src) != 0 { + if !p.Field1DeepEqual(ano.Name) { return false } - return true -} -func (p *PromptBasic) Field8DeepEqual(src *string) bool { - - if p.UpdatedBy == src { - return true - } else if p.UpdatedBy == nil || src == nil { + if !p.Field2DeepEqual(ano.Label) { return false } - if strings.Compare(*p.UpdatedBy, *src) != 0 { + if !p.Field3DeepEqual(ano.Value) { return false } return true } -func (p *PromptBasic) Field9DeepEqual(src *int64) bool { - if p.CreatedAt == src { +func (p *ParamConfigValue) Field1DeepEqual(src *string) bool { + + if p.Name == src { return true - } else if p.CreatedAt == nil || src == nil { + } else if p.Name == nil || src == nil { return false } - if *p.CreatedAt != *src { + if strings.Compare(*p.Name, *src) != 0 { return false } return true } -func (p *PromptBasic) Field10DeepEqual(src *int64) bool { +func (p *ParamConfigValue) Field2DeepEqual(src *string) bool { - if p.UpdatedAt == src { + if p.Label == src { return true - } else if p.UpdatedAt == nil || src == nil { + } else if p.Label == nil || src == nil { return false } - if *p.UpdatedAt != *src { + if strings.Compare(*p.Label, *src) != 0 { return false } return true } -func (p *PromptBasic) Field11DeepEqual(src *int64) bool { +func (p *ParamConfigValue) Field3DeepEqual(src *ParamOption) bool { - if p.LatestCommittedAt == src { - return true - } else if p.LatestCommittedAt == nil || src == nil { - return false - } - if *p.LatestCommittedAt != *src { + if !p.Value.DeepEqual(src) { return false } return true } -type ListPromptBasicData struct { - // Prompt列表 - Prompts []*PromptBasic `thrift:"prompts,1,optional" frugal:"1,optional,list" form:"prompts" json:"prompts,omitempty" query:"prompts"` - Total *int32 `thrift:"total,2,optional" frugal:"2,optional,i32" form:"total" json:"total,omitempty" query:"total"` +type ParamOption struct { + // 实际值 + Value *string `thrift:"value,1,optional" frugal:"1,optional,string" form:"value" json:"value,omitempty" query:"value"` + // 展示值 + Label *string `thrift:"label,2,optional" frugal:"2,optional,string" form:"label" json:"label,omitempty" query:"label"` } -func NewListPromptBasicData() *ListPromptBasicData { - return &ListPromptBasicData{} +func NewParamOption() *ParamOption { + return &ParamOption{} } -func (p *ListPromptBasicData) InitDefault() { +func (p *ParamOption) InitDefault() { } -var ListPromptBasicData_Prompts_DEFAULT []*PromptBasic +var ParamOption_Value_DEFAULT string -func (p *ListPromptBasicData) GetPrompts() (v []*PromptBasic) { +func (p *ParamOption) GetValue() (v string) { if p == nil { return } - if !p.IsSetPrompts() { - return ListPromptBasicData_Prompts_DEFAULT + if !p.IsSetValue() { + return ParamOption_Value_DEFAULT } - return p.Prompts + return *p.Value } -var ListPromptBasicData_Total_DEFAULT int32 +var ParamOption_Label_DEFAULT string -func (p *ListPromptBasicData) GetTotal() (v int32) { +func (p *ParamOption) GetLabel() (v string) { if p == nil { return } - if !p.IsSetTotal() { - return ListPromptBasicData_Total_DEFAULT + if !p.IsSetLabel() { + return ParamOption_Label_DEFAULT } - return *p.Total + return *p.Label } -func (p *ListPromptBasicData) SetPrompts(val []*PromptBasic) { - p.Prompts = val +func (p *ParamOption) SetValue(val *string) { + p.Value = val } -func (p *ListPromptBasicData) SetTotal(val *int32) { - p.Total = val +func (p *ParamOption) SetLabel(val *string) { + p.Label = val } -var fieldIDToName_ListPromptBasicData = map[int16]string{ - 1: "prompts", - 2: "total", +var fieldIDToName_ParamOption = map[int16]string{ + 1: "value", + 2: "label", } -func (p *ListPromptBasicData) IsSetPrompts() bool { - return p.Prompts != nil +func (p *ParamOption) IsSetValue() bool { + return p.Value != nil } -func (p *ListPromptBasicData) IsSetTotal() bool { - return p.Total != nil +func (p *ParamOption) IsSetLabel() bool { + return p.Label != nil } -func (p *ListPromptBasicData) Read(iprot thrift.TProtocol) (err error) { +func (p *ParamOption) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -12160,7 +16389,7 @@ func (p *ListPromptBasicData) Read(iprot thrift.TProtocol) (err error) { switch fieldId { case 1: - if fieldTypeId == thrift.LIST { + if fieldTypeId == thrift.STRING { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } @@ -12168,7 +16397,7 @@ func (p *ListPromptBasicData) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 2: - if fieldTypeId == thrift.I32 { + if fieldTypeId == thrift.STRING { if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } @@ -12194,7 +16423,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListPromptBasicData[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ParamOption[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -12204,44 +16433,32 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ListPromptBasicData) ReadField1(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { - return err - } - _field := make([]*PromptBasic, 0, size) - values := make([]PromptBasic, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - - if err := _elem.Read(iprot); err != nil { - return err - } +func (p *ParamOption) ReadField1(iprot thrift.TProtocol) error { - _field = append(_field, _elem) - } - if err := iprot.ReadListEnd(); err != nil { + var _field *string + if v, err := iprot.ReadString(); err != nil { return err + } else { + _field = &v } - p.Prompts = _field + p.Value = _field return nil } -func (p *ListPromptBasicData) ReadField2(iprot thrift.TProtocol) error { +func (p *ParamOption) ReadField2(iprot thrift.TProtocol) error { - var _field *int32 - if v, err := iprot.ReadI32(); err != nil { + var _field *string + if v, err := iprot.ReadString(); err != nil { return err } else { _field = &v } - p.Total = _field + p.Label = _field return nil } -func (p *ListPromptBasicData) Write(oprot thrift.TProtocol) (err error) { +func (p *ParamOption) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ListPromptBasicData"); err != nil { + if err = oprot.WriteStructBegin("ParamOption"); err != nil { goto WriteStructBeginError } if p != nil { @@ -12271,20 +16488,12 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ListPromptBasicData) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetPrompts() { - if err = oprot.WriteFieldBegin("prompts", thrift.LIST, 1); err != nil { +func (p *ParamOption) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetValue() { + if err = oprot.WriteFieldBegin("value", thrift.STRING, 1); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Prompts)); err != nil { - return err - } - for _, v := range p.Prompts { - if err := v.Write(oprot); err != nil { - return err - } - } - if err := oprot.WriteListEnd(); err != nil { + if err := oprot.WriteString(*p.Value); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -12297,12 +16506,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ListPromptBasicData) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetTotal() { - if err = oprot.WriteFieldBegin("total", thrift.I32, 2); err != nil { +func (p *ParamOption) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetLabel() { + if err = oprot.WriteFieldBegin("label", thrift.STRING, 2); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI32(*p.Total); err != nil { + if err := oprot.WriteString(*p.Label); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -12316,50 +16525,49 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *ListPromptBasicData) String() string { +func (p *ParamOption) String() string { if p == nil { return "" } - return fmt.Sprintf("ListPromptBasicData(%+v)", *p) + return fmt.Sprintf("ParamOption(%+v)", *p) } -func (p *ListPromptBasicData) DeepEqual(ano *ListPromptBasicData) bool { +func (p *ParamOption) DeepEqual(ano *ParamOption) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.Prompts) { + if !p.Field1DeepEqual(ano.Value) { return false } - if !p.Field2DeepEqual(ano.Total) { + if !p.Field2DeepEqual(ano.Label) { return false } return true } -func (p *ListPromptBasicData) Field1DeepEqual(src []*PromptBasic) bool { +func (p *ParamOption) Field1DeepEqual(src *string) bool { - if len(p.Prompts) != len(src) { + if p.Value == src { + return true + } else if p.Value == nil || src == nil { return false } - for i, v := range p.Prompts { - _src := src[i] - if !v.DeepEqual(_src) { - return false - } + if strings.Compare(*p.Value, *src) != 0 { + return false } return true } -func (p *ListPromptBasicData) Field2DeepEqual(src *int32) bool { +func (p *ParamOption) Field2DeepEqual(src *string) bool { - if p.Total == src { + if p.Label == src { return true - } else if p.Total == nil || src == nil { + } else if p.Label == nil || src == nil { return false } - if *p.Total != *src { + if strings.Compare(*p.Label, *src) != 0 { return false } return true diff --git a/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi_validator.go b/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi_validator.go index 79df2df87..d7de39f65 100644 --- a/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi_validator.go +++ b/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi_validator.go @@ -152,6 +152,11 @@ func (p *Prompt) IsValid() error { return fmt.Errorf("field LlmConfig not valid, %w", err) } } + if p.PublishInfo != nil { + if err := p.PublishInfo.IsValid(); err != nil { + return fmt.Errorf("field PublishInfo not valid, %w", err) + } + } return nil } func (p *PromptTemplate) IsValid() error { @@ -216,6 +221,11 @@ func (p *FunctionCall) IsValid() error { return nil } func (p *LLMConfig) IsValid() error { + if p.Thinking != nil { + if err := p.Thinking.IsValid(); err != nil { + return fmt.Errorf("field Thinking not valid, %w", err) + } + } return nil } func (p *VariableVal) IsValid() error { @@ -264,3 +274,28 @@ func (p *PromptBasic) IsValid() error { func (p *ListPromptBasicData) IsValid() error { return nil } +func (p *PromptPublishInfo) IsValid() error { + return nil +} +func (p *ThinkingConfig) IsValid() error { + return nil +} +func (p *ModelConfig) IsValid() error { + if p.Thinking != nil { + if err := p.Thinking.IsValid(); err != nil { + return fmt.Errorf("field Thinking not valid, %w", err) + } + } + return nil +} +func (p *ParamConfigValue) IsValid() error { + if p.Value != nil { + if err := p.Value.IsValid(); err != nil { + return fmt.Errorf("field Value not valid, %w", err) + } + } + return nil +} +func (p *ParamOption) IsValid() error { + return nil +} diff --git a/backend/kitex_gen/coze/loop/prompt/openapi/k-coze.loop.prompt.openapi.go b/backend/kitex_gen/coze/loop/prompt/openapi/k-coze.loop.prompt.openapi.go index 72970ead0..c890a16ec 100644 --- a/backend/kitex_gen/coze/loop/prompt/openapi/k-coze.loop.prompt.openapi.go +++ b/backend/kitex_gen/coze/loop/prompt/openapi/k-coze.loop.prompt.openapi.go @@ -980,7 +980,7 @@ func (p *ExecuteRequest) FastReadField21(buf []byte) (int, error) { func (p *ExecuteRequest) FastReadField22(buf []byte) (int, error) { offset := 0 - _field := prompt.NewModelConfig() + _field := NewModelConfig() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -1289,9 +1289,9 @@ func (p *ExecuteRequest) DeepCopy(s interface{}) error { } p.CustomToolCallConfig = _customToolCallConfig - var _customModelConfig *prompt.ModelConfig + var _customModelConfig *ModelConfig if src.CustomModelConfig != nil { - _customModelConfig = &prompt.ModelConfig{} + _customModelConfig = &ModelConfig{} if err := _customModelConfig.DeepCopy(src.CustomModelConfig); err != nil { return err } @@ -3022,6 +3022,146 @@ func (p *Prompt) FastRead(buf []byte) (int, error) { goto SkipFieldError } } + case 8: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField8(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 9: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField9(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 10: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField10(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 11: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField11(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 12: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField12(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 14: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField14(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 15: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField15(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 16: + if fieldTypeId == thrift.I32 { + l, err = p.FastReadField16(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 17: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField17(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 18: + if fieldTypeId == thrift.I32 { + l, err = p.FastReadField18(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } default: l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -3143,6 +3283,148 @@ func (p *Prompt) FastReadField7(buf []byte) (int, error) { return offset, nil } +func (p *Prompt) FastReadField8(buf []byte) (int, error) { + offset := 0 + + var _field *int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.ID = _field + return offset, nil +} + +func (p *Prompt) FastReadField9(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.DisplayName = _field + return offset, nil +} + +func (p *Prompt) FastReadField10(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Description = _field + return offset, nil +} + +func (p *Prompt) FastReadField11(buf []byte) (int, error) { + offset := 0 + + var _field *PromptType + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.PromptType = _field + return offset, nil +} + +func (p *Prompt) FastReadField12(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.CreatedBy = _field + return offset, nil +} + +func (p *Prompt) FastReadField14(buf []byte) (int, error) { + offset := 0 + + var _field *int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.CreatedAt = _field + return offset, nil +} + +func (p *Prompt) FastReadField15(buf []byte) (int, error) { + offset := 0 + + var _field *int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.UpdatedAt = _field + return offset, nil +} + +func (p *Prompt) FastReadField16(buf []byte) (int, error) { + offset := 0 + + var _field *PublishStatus + if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + + tmp := PublishStatus(v) + _field = &tmp + } + p.Status = _field + return offset, nil +} + +func (p *Prompt) FastReadField17(buf []byte) (int, error) { + offset := 0 + _field := NewPromptPublishInfo() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.PublishInfo = _field + return offset, nil +} + +func (p *Prompt) FastReadField18(buf []byte) (int, error) { + offset := 0 + + var _field *SecurityLevel + if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + + tmp := SecurityLevel(v) + _field = &tmp + } + p.SecurityLevel = _field + return offset, nil +} + func (p *Prompt) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } @@ -3151,12 +3433,22 @@ func (p *Prompt) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField8(buf[offset:], w) + offset += p.fastWriteField14(buf[offset:], w) + offset += p.fastWriteField15(buf[offset:], w) offset += p.fastWriteField2(buf[offset:], w) offset += p.fastWriteField3(buf[offset:], w) offset += p.fastWriteField4(buf[offset:], w) offset += p.fastWriteField5(buf[offset:], w) offset += p.fastWriteField6(buf[offset:], w) offset += p.fastWriteField7(buf[offset:], w) + offset += p.fastWriteField9(buf[offset:], w) + offset += p.fastWriteField10(buf[offset:], w) + offset += p.fastWriteField11(buf[offset:], w) + offset += p.fastWriteField12(buf[offset:], w) + offset += p.fastWriteField16(buf[offset:], w) + offset += p.fastWriteField17(buf[offset:], w) + offset += p.fastWriteField18(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) return offset @@ -3172,6 +3464,16 @@ func (p *Prompt) BLength() int { l += p.field5Length() l += p.field6Length() l += p.field7Length() + l += p.field8Length() + l += p.field9Length() + l += p.field10Length() + l += p.field11Length() + l += p.field12Length() + l += p.field14Length() + l += p.field15Length() + l += p.field16Length() + l += p.field17Length() + l += p.field18Length() } l += thrift.Binary.FieldStopLength() return l @@ -3247,6 +3549,96 @@ func (p *Prompt) fastWriteField7(buf []byte, w thrift.NocopyWriter) int { return offset } +func (p *Prompt) fastWriteField8(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 8) + offset += thrift.Binary.WriteI64(buf[offset:], *p.ID) + } + return offset +} + +func (p *Prompt) fastWriteField9(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetDisplayName() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 9) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.DisplayName) + } + return offset +} + +func (p *Prompt) fastWriteField10(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetDescription() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 10) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Description) + } + return offset +} + +func (p *Prompt) fastWriteField11(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetPromptType() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 11) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.PromptType) + } + return offset +} + +func (p *Prompt) fastWriteField12(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetCreatedBy() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 12) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.CreatedBy) + } + return offset +} + +func (p *Prompt) fastWriteField14(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetCreatedAt() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 14) + offset += thrift.Binary.WriteI64(buf[offset:], *p.CreatedAt) + } + return offset +} + +func (p *Prompt) fastWriteField15(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetUpdatedAt() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 15) + offset += thrift.Binary.WriteI64(buf[offset:], *p.UpdatedAt) + } + return offset +} + +func (p *Prompt) fastWriteField16(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetStatus() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 16) + offset += thrift.Binary.WriteI32(buf[offset:], int32(*p.Status)) + } + return offset +} + +func (p *Prompt) fastWriteField17(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetPublishInfo() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 17) + offset += p.PublishInfo.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *Prompt) fastWriteField18(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetSecurityLevel() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 18) + offset += thrift.Binary.WriteI32(buf[offset:], int32(*p.SecurityLevel)) + } + return offset +} + func (p *Prompt) field1Length() int { l := 0 if p.IsSetWorkspaceID() { @@ -3314,6 +3706,96 @@ func (p *Prompt) field7Length() int { return l } +func (p *Prompt) field8Length() int { + l := 0 + if p.IsSetID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *Prompt) field9Length() int { + l := 0 + if p.IsSetDisplayName() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.DisplayName) + } + return l +} + +func (p *Prompt) field10Length() int { + l := 0 + if p.IsSetDescription() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Description) + } + return l +} + +func (p *Prompt) field11Length() int { + l := 0 + if p.IsSetPromptType() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.PromptType) + } + return l +} + +func (p *Prompt) field12Length() int { + l := 0 + if p.IsSetCreatedBy() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.CreatedBy) + } + return l +} + +func (p *Prompt) field14Length() int { + l := 0 + if p.IsSetCreatedAt() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *Prompt) field15Length() int { + l := 0 + if p.IsSetUpdatedAt() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *Prompt) field16Length() int { + l := 0 + if p.IsSetStatus() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I32Length() + } + return l +} + +func (p *Prompt) field17Length() int { + l := 0 + if p.IsSetPublishInfo() { + l += thrift.Binary.FieldBeginLength() + l += p.PublishInfo.BLength() + } + return l +} + +func (p *Prompt) field18Length() int { + l := 0 + if p.IsSetSecurityLevel() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I32Length() + } + return l +} + func (p *Prompt) DeepCopy(s interface{}) error { src, ok := s.(*Prompt) if !ok { @@ -3383,6 +3865,69 @@ func (p *Prompt) DeepCopy(s interface{}) error { } p.LlmConfig = _llmConfig + if src.ID != nil { + tmp := *src.ID + p.ID = &tmp + } + + if src.DisplayName != nil { + var tmp string + if *src.DisplayName != "" { + tmp = kutils.StringDeepCopy(*src.DisplayName) + } + p.DisplayName = &tmp + } + + if src.Description != nil { + var tmp string + if *src.Description != "" { + tmp = kutils.StringDeepCopy(*src.Description) + } + p.Description = &tmp + } + + if src.PromptType != nil { + tmp := *src.PromptType + p.PromptType = &tmp + } + + if src.CreatedBy != nil { + var tmp string + if *src.CreatedBy != "" { + tmp = kutils.StringDeepCopy(*src.CreatedBy) + } + p.CreatedBy = &tmp + } + + if src.CreatedAt != nil { + tmp := *src.CreatedAt + p.CreatedAt = &tmp + } + + if src.UpdatedAt != nil { + tmp := *src.UpdatedAt + p.UpdatedAt = &tmp + } + + if src.Status != nil { + tmp := *src.Status + p.Status = &tmp + } + + var _publishInfo *PromptPublishInfo + if src.PublishInfo != nil { + _publishInfo = &PromptPublishInfo{} + if err := _publishInfo.DeepCopy(src.PublishInfo); err != nil { + return err + } + } + p.PublishInfo = _publishInfo + + if src.SecurityLevel != nil { + tmp := *src.SecurityLevel + p.SecurityLevel = &tmp + } + return nil } @@ -4230,6 +4775,20 @@ func (p *Message) FastRead(buf []byte) (int, error) { goto SkipFieldError } } + case 8: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField8(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } case 100: if fieldTypeId == thrift.MAP { l, err = p.FastReadField100(buf[offset:]) @@ -4382,6 +4941,20 @@ func (p *Message) FastReadField7(buf []byte) (int, error) { return offset, nil } +func (p *Message) FastReadField8(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Signature = _field + return offset, nil +} + func (p *Message) FastReadField100(buf []byte) (int, error) { offset := 0 @@ -4428,6 +5001,7 @@ func (p *Message) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset += p.fastWriteField4(buf[offset:], w) offset += p.fastWriteField5(buf[offset:], w) offset += p.fastWriteField6(buf[offset:], w) + offset += p.fastWriteField8(buf[offset:], w) offset += p.fastWriteField100(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) @@ -4444,6 +5018,7 @@ func (p *Message) BLength() int { l += p.field5Length() l += p.field6Length() l += p.field7Length() + l += p.field8Length() l += p.field100Length() } l += thrift.Binary.FieldStopLength() @@ -4527,6 +5102,15 @@ func (p *Message) fastWriteField7(buf []byte, w thrift.NocopyWriter) int { return offset } +func (p *Message) fastWriteField8(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetSignature() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 8) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Signature) + } + return offset +} + func (p *Message) fastWriteField100(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetMetadata() { @@ -4615,6 +5199,15 @@ func (p *Message) field7Length() int { return l } +func (p *Message) field8Length() int { + l := 0 + if p.IsSetSignature() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Signature) + } + return l +} + func (p *Message) field100Length() int { l := 0 if p.IsSetMetadata() { @@ -4700,6 +5293,14 @@ func (p *Message) DeepCopy(s interface{}) error { p.SkipRender = &tmp } + if src.Signature != nil { + var tmp string + if *src.Signature != "" { + tmp = kutils.StringDeepCopy(*src.Signature) + } + p.Signature = &tmp + } + if src.Metadata != nil { p.Metadata = make(map[string]string, len(src.Metadata)) for key, val := range src.Metadata { @@ -4821,21 +5422,63 @@ func (p *ContentPart) FastRead(buf []byte) (int, error) { goto SkipFieldError } } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError + case 7: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField7(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ContentPart[fieldId]), err) -SkipFieldError: + case 8: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField8(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 9: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField9(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ContentPart[fieldId]), err) +SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } @@ -4921,6 +5564,48 @@ func (p *ContentPart) FastReadField6(buf []byte) (int, error) { return offset, nil } +func (p *ContentPart) FastReadField7(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Signature = _field + return offset, nil +} + +func (p *ContentPart) FastReadField8(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.ImageURI = _field + return offset, nil +} + +func (p *ContentPart) FastReadField9(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.VideoURI = _field + return offset, nil +} + func (p *ContentPart) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } @@ -4934,6 +5619,9 @@ func (p *ContentPart) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset += p.fastWriteField4(buf[offset:], w) offset += p.fastWriteField5(buf[offset:], w) offset += p.fastWriteField6(buf[offset:], w) + offset += p.fastWriteField7(buf[offset:], w) + offset += p.fastWriteField8(buf[offset:], w) + offset += p.fastWriteField9(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) return offset @@ -4948,6 +5636,9 @@ func (p *ContentPart) BLength() int { l += p.field4Length() l += p.field5Length() l += p.field6Length() + l += p.field7Length() + l += p.field8Length() + l += p.field9Length() } l += thrift.Binary.FieldStopLength() return l @@ -5007,6 +5698,33 @@ func (p *ContentPart) fastWriteField6(buf []byte, w thrift.NocopyWriter) int { return offset } +func (p *ContentPart) fastWriteField7(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetSignature() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 7) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Signature) + } + return offset +} + +func (p *ContentPart) fastWriteField8(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetImageURI() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 8) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.ImageURI) + } + return offset +} + +func (p *ContentPart) fastWriteField9(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetVideoURI() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 9) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.VideoURI) + } + return offset +} + func (p *ContentPart) field1Length() int { l := 0 if p.IsSetType() { @@ -5061,6 +5779,33 @@ func (p *ContentPart) field6Length() int { return l } +func (p *ContentPart) field7Length() int { + l := 0 + if p.IsSetSignature() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Signature) + } + return l +} + +func (p *ContentPart) field8Length() int { + l := 0 + if p.IsSetImageURI() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.ImageURI) + } + return l +} + +func (p *ContentPart) field9Length() int { + l := 0 + if p.IsSetVideoURI() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.VideoURI) + } + return l +} + func (p *ContentPart) DeepCopy(s interface{}) error { src, ok := s.(*ContentPart) if !ok { @@ -5113,6 +5858,30 @@ func (p *ContentPart) DeepCopy(s interface{}) error { } p.Config = _config + if src.Signature != nil { + var tmp string + if *src.Signature != "" { + tmp = kutils.StringDeepCopy(*src.Signature) + } + p.Signature = &tmp + } + + if src.ImageURI != nil { + var tmp string + if *src.ImageURI != "" { + tmp = kutils.StringDeepCopy(*src.ImageURI) + } + p.ImageURI = &tmp + } + + if src.VideoURI != nil { + var tmp string + if *src.VideoURI != "" { + tmp = kutils.StringDeepCopy(*src.VideoURI) + } + p.VideoURI = &tmp + } + return nil } @@ -5147,6 +5916,20 @@ func (p *MediaConfig) FastRead(buf []byte) (int, error) { goto SkipFieldError } } + case 2: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } default: l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -5179,6 +5962,20 @@ func (p *MediaConfig) FastReadField1(buf []byte) (int, error) { return offset, nil } +func (p *MediaConfig) FastReadField2(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.ImageResolution = _field + return offset, nil +} + func (p *MediaConfig) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } @@ -5187,6 +5984,7 @@ func (p *MediaConfig) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) return offset @@ -5196,6 +5994,7 @@ func (p *MediaConfig) BLength() int { l := 0 if p != nil { l += p.field1Length() + l += p.field2Length() } l += thrift.Binary.FieldStopLength() return l @@ -5210,6 +6009,15 @@ func (p *MediaConfig) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { return offset } +func (p *MediaConfig) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetImageResolution() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.ImageResolution) + } + return offset +} + func (p *MediaConfig) field1Length() int { l := 0 if p.IsSetFps() { @@ -5219,6 +6027,15 @@ func (p *MediaConfig) field1Length() int { return l } +func (p *MediaConfig) field2Length() int { + l := 0 + if p.IsSetImageResolution() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.ImageResolution) + } + return l +} + func (p *MediaConfig) DeepCopy(s interface{}) error { src, ok := s.(*MediaConfig) if !ok { @@ -5230,6 +6047,14 @@ func (p *MediaConfig) DeepCopy(s interface{}) error { p.Fps = &tmp } + if src.ImageResolution != nil { + var tmp string + if *src.ImageResolution != "" { + tmp = kutils.StringDeepCopy(*src.ImageResolution) + } + p.ImageResolution = &tmp + } + return nil } @@ -5507,6 +6332,20 @@ func (p *Tool) FastRead(buf []byte) (int, error) { goto SkipFieldError } } + case 3: + if fieldTypeId == thrift.BOOL { + l, err = p.FastReadField3(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } default: l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -5551,6 +6390,20 @@ func (p *Tool) FastReadField2(buf []byte) (int, error) { return offset, nil } +func (p *Tool) FastReadField3(buf []byte) (int, error) { + offset := 0 + + var _field *bool + if v, l, err := thrift.Binary.ReadBool(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Disable = _field + return offset, nil +} + func (p *Tool) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } @@ -5558,6 +6411,7 @@ func (p *Tool) FastWrite(buf []byte) int { func (p *Tool) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { + offset += p.fastWriteField3(buf[offset:], w) offset += p.fastWriteField1(buf[offset:], w) offset += p.fastWriteField2(buf[offset:], w) } @@ -5570,6 +6424,7 @@ func (p *Tool) BLength() int { if p != nil { l += p.field1Length() l += p.field2Length() + l += p.field3Length() } l += thrift.Binary.FieldStopLength() return l @@ -5593,6 +6448,15 @@ func (p *Tool) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { return offset } +func (p *Tool) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetDisable() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.BOOL, 3) + offset += thrift.Binary.WriteBool(buf[offset:], *p.Disable) + } + return offset +} + func (p *Tool) field1Length() int { l := 0 if p.IsSetType() { @@ -5611,6 +6475,15 @@ func (p *Tool) field2Length() int { return l } +func (p *Tool) field3Length() int { + l := 0 + if p.IsSetDisable() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.BoolLength() + } + return l +} + func (p *Tool) DeepCopy(s interface{}) error { src, ok := s.(*Tool) if !ok { @@ -5631,6 +6504,11 @@ func (p *Tool) DeepCopy(s interface{}) error { } p.Function = _function + if src.Disable != nil { + tmp := *src.Disable + p.Disable = &tmp + } + return nil } @@ -5939,6 +6817,34 @@ func (p *ToolCall) FastRead(buf []byte) (int, error) { goto SkipFieldError } } + case 5: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField5(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 6: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField6(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } default: l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -6011,17 +6917,47 @@ func (p *ToolCall) FastReadField4(buf []byte) (int, error) { return offset, nil } -func (p *ToolCall) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *ToolCall) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ToolCall) FastReadField5(buf []byte) (int, error) { offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - offset += p.fastWriteField3(buf[offset:], w) - offset += p.fastWriteField4(buf[offset:], w) + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.OutputID = _field + return offset, nil +} + +func (p *ToolCall) FastReadField6(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Signature = _field + return offset, nil +} + +func (p *ToolCall) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ToolCall) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + offset += p.fastWriteField3(buf[offset:], w) + offset += p.fastWriteField4(buf[offset:], w) + offset += p.fastWriteField5(buf[offset:], w) + offset += p.fastWriteField6(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) return offset @@ -6034,6 +6970,8 @@ func (p *ToolCall) BLength() int { l += p.field2Length() l += p.field3Length() l += p.field4Length() + l += p.field5Length() + l += p.field6Length() } l += thrift.Binary.FieldStopLength() return l @@ -6075,6 +7013,24 @@ func (p *ToolCall) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { return offset } +func (p *ToolCall) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetOutputID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 5) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.OutputID) + } + return offset +} + +func (p *ToolCall) fastWriteField6(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetSignature() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 6) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Signature) + } + return offset +} + func (p *ToolCall) field1Length() int { l := 0 if p.IsSetIndex() { @@ -6111,6 +7067,24 @@ func (p *ToolCall) field4Length() int { return l } +func (p *ToolCall) field5Length() int { + l := 0 + if p.IsSetOutputID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.OutputID) + } + return l +} + +func (p *ToolCall) field6Length() int { + l := 0 + if p.IsSetSignature() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Signature) + } + return l +} + func (p *ToolCall) DeepCopy(s interface{}) error { src, ok := s.(*ToolCall) if !ok { @@ -6144,6 +7118,22 @@ func (p *ToolCall) DeepCopy(s interface{}) error { } p.FunctionCall = _functionCall + if src.OutputID != nil { + var tmp string + if *src.OutputID != "" { + tmp = kutils.StringDeepCopy(*src.OutputID) + } + p.OutputID = &tmp + } + + if src.Signature != nil { + var tmp string + if *src.Signature != "" { + tmp = kutils.StringDeepCopy(*src.Signature) + } + p.Signature = &tmp + } + return nil } @@ -6438,6 +7428,62 @@ func (p *LLMConfig) FastRead(buf []byte) (int, error) { goto SkipFieldError } } + case 8: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField8(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 9: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField9(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 10: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField10(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 11: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField11(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } default: l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -6554,6 +7600,60 @@ func (p *LLMConfig) FastReadField7(buf []byte) (int, error) { return offset, nil } +func (p *LLMConfig) FastReadField8(buf []byte) (int, error) { + offset := 0 + + var _field *int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.ID = _field + return offset, nil +} + +func (p *LLMConfig) FastReadField9(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Name = _field + return offset, nil +} + +func (p *LLMConfig) FastReadField10(buf []byte) (int, error) { + offset := 0 + _field := NewThinkingConfig() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Thinking = _field + return offset, nil +} + +func (p *LLMConfig) FastReadField11(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Extra = _field + return offset, nil +} + func (p *LLMConfig) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } @@ -6568,6 +7668,10 @@ func (p *LLMConfig) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset += p.fastWriteField5(buf[offset:], w) offset += p.fastWriteField6(buf[offset:], w) offset += p.fastWriteField7(buf[offset:], w) + offset += p.fastWriteField8(buf[offset:], w) + offset += p.fastWriteField9(buf[offset:], w) + offset += p.fastWriteField10(buf[offset:], w) + offset += p.fastWriteField11(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) return offset @@ -6583,6 +7687,10 @@ func (p *LLMConfig) BLength() int { l += p.field5Length() l += p.field6Length() l += p.field7Length() + l += p.field8Length() + l += p.field9Length() + l += p.field10Length() + l += p.field11Length() } l += thrift.Binary.FieldStopLength() return l @@ -6651,6 +7759,42 @@ func (p *LLMConfig) fastWriteField7(buf []byte, w thrift.NocopyWriter) int { return offset } +func (p *LLMConfig) fastWriteField8(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 8) + offset += thrift.Binary.WriteI64(buf[offset:], *p.ID) + } + return offset +} + +func (p *LLMConfig) fastWriteField9(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetName() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 9) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Name) + } + return offset +} + +func (p *LLMConfig) fastWriteField10(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetThinking() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 10) + offset += p.Thinking.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *LLMConfig) fastWriteField11(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetExtra() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 11) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Extra) + } + return offset +} + func (p *LLMConfig) field1Length() int { l := 0 if p.IsSetTemperature() { @@ -6714,6 +7858,42 @@ func (p *LLMConfig) field7Length() int { return l } +func (p *LLMConfig) field8Length() int { + l := 0 + if p.IsSetID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *LLMConfig) field9Length() int { + l := 0 + if p.IsSetName() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Name) + } + return l +} + +func (p *LLMConfig) field10Length() int { + l := 0 + if p.IsSetThinking() { + l += thrift.Binary.FieldBeginLength() + l += p.Thinking.BLength() + } + return l +} + +func (p *LLMConfig) field11Length() int { + l := 0 + if p.IsSetExtra() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Extra) + } + return l +} + func (p *LLMConfig) DeepCopy(s interface{}) error { src, ok := s.(*LLMConfig) if !ok { @@ -6755,6 +7935,36 @@ func (p *LLMConfig) DeepCopy(s interface{}) error { p.JSONMode = &tmp } + if src.ID != nil { + tmp := *src.ID + p.ID = &tmp + } + + if src.Name != nil { + var tmp string + if *src.Name != "" { + tmp = kutils.StringDeepCopy(*src.Name) + } + p.Name = &tmp + } + + var _thinking *ThinkingConfig + if src.Thinking != nil { + _thinking = &ThinkingConfig{} + if err := _thinking.DeepCopy(src.Thinking); err != nil { + return err + } + } + p.Thinking = _thinking + + if src.Extra != nil { + var tmp string + if *src.Extra != "" { + tmp = kutils.StringDeepCopy(*src.Extra) + } + p.Extra = &tmp + } + return nil } @@ -7361,8 +8571,22 @@ func (p *ListPromptBasicRequest) FastRead(buf []byte) (int, error) { goto SkipFieldError } } - case 255: - if fieldTypeId == thrift.STRUCT { + case 6: + if fieldTypeId == thrift.MAP { + l, err = p.FastReadField6(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 255: + if fieldTypeId == thrift.STRUCT { l, err = p.FastReadField255(buf[offset:]) offset += l if err != nil { @@ -7463,6 +8687,38 @@ func (p *ListPromptBasicRequest) FastReadField5(buf []byte) (int, error) { return offset, nil } +func (p *ListPromptBasicRequest) FastReadField6(buf []byte) (int, error) { + offset := 0 + + _, _, size, l, err := thrift.Binary.ReadMapBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make(map[string]string, size) + for i := 0; i < size; i++ { + var _key string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _key = v + } + + var _val string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _val = v + } + + _field[_key] = _val + } + p.Extra = _field + return offset, nil +} + func (p *ListPromptBasicRequest) FastReadField255(buf []byte) (int, error) { offset := 0 _field := base.NewBase() @@ -7487,6 +8743,7 @@ func (p *ListPromptBasicRequest) FastWriteNocopy(buf []byte, w thrift.NocopyWrit offset += p.fastWriteField3(buf[offset:], w) offset += p.fastWriteField4(buf[offset:], w) offset += p.fastWriteField5(buf[offset:], w) + offset += p.fastWriteField6(buf[offset:], w) offset += p.fastWriteField255(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) @@ -7501,6 +8758,7 @@ func (p *ListPromptBasicRequest) BLength() int { l += p.field3Length() l += p.field4Length() l += p.field5Length() + l += p.field6Length() l += p.field255Length() } l += thrift.Binary.FieldStopLength() @@ -7552,6 +8810,23 @@ func (p *ListPromptBasicRequest) fastWriteField5(buf []byte, w thrift.NocopyWrit return offset } +func (p *ListPromptBasicRequest) fastWriteField6(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetExtra() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.MAP, 6) + mapBeginOffset := offset + offset += thrift.Binary.MapBeginLength() + var length int + for k, v := range p.Extra { + length++ + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, k) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, v) + } + thrift.Binary.WriteMapBegin(buf[mapBeginOffset:], thrift.STRING, thrift.STRING, length) + } + return offset +} + func (p *ListPromptBasicRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetBase() { @@ -7606,6 +8881,21 @@ func (p *ListPromptBasicRequest) field5Length() int { return l } +func (p *ListPromptBasicRequest) field6Length() int { + l := 0 + if p.IsSetExtra() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.MapBeginLength() + for k, v := range p.Extra { + _, _ = k, v + + l += thrift.Binary.StringLengthNocopy(k) + l += thrift.Binary.StringLengthNocopy(v) + } + } + return l +} + func (p *ListPromptBasicRequest) field255Length() int { l := 0 if p.IsSetBase() { @@ -7652,6 +8942,23 @@ func (p *ListPromptBasicRequest) DeepCopy(s interface{}) error { p.Creator = &tmp } + if src.Extra != nil { + p.Extra = make(map[string]string, len(src.Extra)) + for key, val := range src.Extra { + var _key string + if key != "" { + _key = kutils.StringDeepCopy(key) + } + + var _val string + if val != "" { + _val = kutils.StringDeepCopy(val) + } + + p.Extra[_key] = _val + } + } + var _base *base.Base if src.Base != nil { _base = &base.Base{} @@ -8814,6 +10121,1537 @@ func (p *ListPromptBasicData) DeepCopy(s interface{}) error { return nil } +func (p *PromptPublishInfo) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 3: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField3(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptPublishInfo[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *PromptPublishInfo) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = v + } + p.Publisher = _field + return offset, nil +} + +func (p *PromptPublishInfo) FastReadField2(buf []byte) (int, error) { + offset := 0 + + var _field string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = v + } + p.PublishDescription = _field + return offset, nil +} + +func (p *PromptPublishInfo) FastReadField3(buf []byte) (int, error) { + offset := 0 + + var _field *int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.PublishAt = _field + return offset, nil +} + +func (p *PromptPublishInfo) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *PromptPublishInfo) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField3(buf[offset:], w) + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *PromptPublishInfo) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *PromptPublishInfo) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, p.Publisher) + return offset +} + +func (p *PromptPublishInfo) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, p.PublishDescription) + return offset +} + +func (p *PromptPublishInfo) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetPublishAt() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 3) + offset += thrift.Binary.WriteI64(buf[offset:], *p.PublishAt) + } + return offset +} + +func (p *PromptPublishInfo) field1Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(p.Publisher) + return l +} + +func (p *PromptPublishInfo) field2Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(p.PublishDescription) + return l +} + +func (p *PromptPublishInfo) field3Length() int { + l := 0 + if p.IsSetPublishAt() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *PromptPublishInfo) DeepCopy(s interface{}) error { + src, ok := s.(*PromptPublishInfo) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.Publisher != "" { + p.Publisher = kutils.StringDeepCopy(src.Publisher) + } + + if src.PublishDescription != "" { + p.PublishDescription = kutils.StringDeepCopy(src.PublishDescription) + } + + if src.PublishAt != nil { + tmp := *src.PublishAt + p.PublishAt = &tmp + } + + return nil +} + +func (p *ThinkingConfig) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.I32 { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 3: + if fieldTypeId == thrift.I32 { + l, err = p.FastReadField3(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ThinkingConfig[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *ThinkingConfig) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field *int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.BudgetTokens = _field + return offset, nil +} + +func (p *ThinkingConfig) FastReadField2(buf []byte) (int, error) { + offset := 0 + + var _field *ThinkingOption + if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + + tmp := ThinkingOption(v) + _field = &tmp + } + p.ThinkingOption = _field + return offset, nil +} + +func (p *ThinkingConfig) FastReadField3(buf []byte) (int, error) { + offset := 0 + + var _field *ReasoningEffort + if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + + tmp := ReasoningEffort(v) + _field = &tmp + } + p.ReasoningEffort = _field + return offset, nil +} + +func (p *ThinkingConfig) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ThinkingConfig) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + offset += p.fastWriteField3(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *ThinkingConfig) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *ThinkingConfig) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetBudgetTokens() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 1) + offset += thrift.Binary.WriteI64(buf[offset:], *p.BudgetTokens) + } + return offset +} + +func (p *ThinkingConfig) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetThinkingOption() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 2) + offset += thrift.Binary.WriteI32(buf[offset:], int32(*p.ThinkingOption)) + } + return offset +} + +func (p *ThinkingConfig) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetReasoningEffort() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 3) + offset += thrift.Binary.WriteI32(buf[offset:], int32(*p.ReasoningEffort)) + } + return offset +} + +func (p *ThinkingConfig) field1Length() int { + l := 0 + if p.IsSetBudgetTokens() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *ThinkingConfig) field2Length() int { + l := 0 + if p.IsSetThinkingOption() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I32Length() + } + return l +} + +func (p *ThinkingConfig) field3Length() int { + l := 0 + if p.IsSetReasoningEffort() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I32Length() + } + return l +} + +func (p *ThinkingConfig) DeepCopy(s interface{}) error { + src, ok := s.(*ThinkingConfig) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.BudgetTokens != nil { + tmp := *src.BudgetTokens + p.BudgetTokens = &tmp + } + + if src.ThinkingOption != nil { + tmp := *src.ThinkingOption + p.ThinkingOption = &tmp + } + + if src.ReasoningEffort != nil { + tmp := *src.ReasoningEffort + p.ReasoningEffort = &tmp + } + + return nil +} + +func (p *ModelConfig) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.I32 { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 3: + if fieldTypeId == thrift.DOUBLE { + l, err = p.FastReadField3(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 4: + if fieldTypeId == thrift.I32 { + l, err = p.FastReadField4(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 5: + if fieldTypeId == thrift.DOUBLE { + l, err = p.FastReadField5(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 6: + if fieldTypeId == thrift.DOUBLE { + l, err = p.FastReadField6(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 7: + if fieldTypeId == thrift.DOUBLE { + l, err = p.FastReadField7(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 8: + if fieldTypeId == thrift.BOOL { + l, err = p.FastReadField8(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 9: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField9(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 10: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField10(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 100: + if fieldTypeId == thrift.LIST { + l, err = p.FastReadField100(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ModelConfig[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *ModelConfig) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field *int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.ModelID = _field + return offset, nil +} + +func (p *ModelConfig) FastReadField2(buf []byte) (int, error) { + offset := 0 + + var _field *int32 + if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.MaxTokens = _field + return offset, nil +} + +func (p *ModelConfig) FastReadField3(buf []byte) (int, error) { + offset := 0 + + var _field *float64 + if v, l, err := thrift.Binary.ReadDouble(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Temperature = _field + return offset, nil +} + +func (p *ModelConfig) FastReadField4(buf []byte) (int, error) { + offset := 0 + + var _field *int32 + if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.TopK = _field + return offset, nil +} + +func (p *ModelConfig) FastReadField5(buf []byte) (int, error) { + offset := 0 + + var _field *float64 + if v, l, err := thrift.Binary.ReadDouble(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.TopP = _field + return offset, nil +} + +func (p *ModelConfig) FastReadField6(buf []byte) (int, error) { + offset := 0 + + var _field *float64 + if v, l, err := thrift.Binary.ReadDouble(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.PresencePenalty = _field + return offset, nil +} + +func (p *ModelConfig) FastReadField7(buf []byte) (int, error) { + offset := 0 + + var _field *float64 + if v, l, err := thrift.Binary.ReadDouble(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.FrequencyPenalty = _field + return offset, nil +} + +func (p *ModelConfig) FastReadField8(buf []byte) (int, error) { + offset := 0 + + var _field *bool + if v, l, err := thrift.Binary.ReadBool(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.JSONMode = _field + return offset, nil +} + +func (p *ModelConfig) FastReadField9(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Extra = _field + return offset, nil +} + +func (p *ModelConfig) FastReadField10(buf []byte) (int, error) { + offset := 0 + _field := NewThinkingConfig() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Thinking = _field + return offset, nil +} + +func (p *ModelConfig) FastReadField100(buf []byte) (int, error) { + offset := 0 + + _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make([]*ParamConfigValue, 0, size) + values := make([]ParamConfigValue, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + if l, err := _elem.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + + _field = append(_field, _elem) + } + p.ParamConfigValues = _field + return offset, nil +} + +func (p *ModelConfig) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ModelConfig) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + offset += p.fastWriteField3(buf[offset:], w) + offset += p.fastWriteField4(buf[offset:], w) + offset += p.fastWriteField5(buf[offset:], w) + offset += p.fastWriteField6(buf[offset:], w) + offset += p.fastWriteField7(buf[offset:], w) + offset += p.fastWriteField8(buf[offset:], w) + offset += p.fastWriteField9(buf[offset:], w) + offset += p.fastWriteField10(buf[offset:], w) + offset += p.fastWriteField100(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *ModelConfig) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() + l += p.field4Length() + l += p.field5Length() + l += p.field6Length() + l += p.field7Length() + l += p.field8Length() + l += p.field9Length() + l += p.field10Length() + l += p.field100Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *ModelConfig) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetModelID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 1) + offset += thrift.Binary.WriteI64(buf[offset:], *p.ModelID) + } + return offset +} + +func (p *ModelConfig) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetMaxTokens() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 2) + offset += thrift.Binary.WriteI32(buf[offset:], *p.MaxTokens) + } + return offset +} + +func (p *ModelConfig) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetTemperature() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.DOUBLE, 3) + offset += thrift.Binary.WriteDouble(buf[offset:], *p.Temperature) + } + return offset +} + +func (p *ModelConfig) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetTopK() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 4) + offset += thrift.Binary.WriteI32(buf[offset:], *p.TopK) + } + return offset +} + +func (p *ModelConfig) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetTopP() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.DOUBLE, 5) + offset += thrift.Binary.WriteDouble(buf[offset:], *p.TopP) + } + return offset +} + +func (p *ModelConfig) fastWriteField6(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetPresencePenalty() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.DOUBLE, 6) + offset += thrift.Binary.WriteDouble(buf[offset:], *p.PresencePenalty) + } + return offset +} + +func (p *ModelConfig) fastWriteField7(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetFrequencyPenalty() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.DOUBLE, 7) + offset += thrift.Binary.WriteDouble(buf[offset:], *p.FrequencyPenalty) + } + return offset +} + +func (p *ModelConfig) fastWriteField8(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetJSONMode() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.BOOL, 8) + offset += thrift.Binary.WriteBool(buf[offset:], *p.JSONMode) + } + return offset +} + +func (p *ModelConfig) fastWriteField9(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetExtra() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 9) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Extra) + } + return offset +} + +func (p *ModelConfig) fastWriteField10(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetThinking() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 10) + offset += p.Thinking.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *ModelConfig) fastWriteField100(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetParamConfigValues() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 100) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.ParamConfigValues { + length++ + offset += v.FastWriteNocopy(buf[offset:], w) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) + } + return offset +} + +func (p *ModelConfig) field1Length() int { + l := 0 + if p.IsSetModelID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *ModelConfig) field2Length() int { + l := 0 + if p.IsSetMaxTokens() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I32Length() + } + return l +} + +func (p *ModelConfig) field3Length() int { + l := 0 + if p.IsSetTemperature() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.DoubleLength() + } + return l +} + +func (p *ModelConfig) field4Length() int { + l := 0 + if p.IsSetTopK() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I32Length() + } + return l +} + +func (p *ModelConfig) field5Length() int { + l := 0 + if p.IsSetTopP() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.DoubleLength() + } + return l +} + +func (p *ModelConfig) field6Length() int { + l := 0 + if p.IsSetPresencePenalty() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.DoubleLength() + } + return l +} + +func (p *ModelConfig) field7Length() int { + l := 0 + if p.IsSetFrequencyPenalty() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.DoubleLength() + } + return l +} + +func (p *ModelConfig) field8Length() int { + l := 0 + if p.IsSetJSONMode() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.BoolLength() + } + return l +} + +func (p *ModelConfig) field9Length() int { + l := 0 + if p.IsSetExtra() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Extra) + } + return l +} + +func (p *ModelConfig) field10Length() int { + l := 0 + if p.IsSetThinking() { + l += thrift.Binary.FieldBeginLength() + l += p.Thinking.BLength() + } + return l +} + +func (p *ModelConfig) field100Length() int { + l := 0 + if p.IsSetParamConfigValues() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + for _, v := range p.ParamConfigValues { + _ = v + l += v.BLength() + } + } + return l +} + +func (p *ModelConfig) DeepCopy(s interface{}) error { + src, ok := s.(*ModelConfig) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.ModelID != nil { + tmp := *src.ModelID + p.ModelID = &tmp + } + + if src.MaxTokens != nil { + tmp := *src.MaxTokens + p.MaxTokens = &tmp + } + + if src.Temperature != nil { + tmp := *src.Temperature + p.Temperature = &tmp + } + + if src.TopK != nil { + tmp := *src.TopK + p.TopK = &tmp + } + + if src.TopP != nil { + tmp := *src.TopP + p.TopP = &tmp + } + + if src.PresencePenalty != nil { + tmp := *src.PresencePenalty + p.PresencePenalty = &tmp + } + + if src.FrequencyPenalty != nil { + tmp := *src.FrequencyPenalty + p.FrequencyPenalty = &tmp + } + + if src.JSONMode != nil { + tmp := *src.JSONMode + p.JSONMode = &tmp + } + + if src.Extra != nil { + var tmp string + if *src.Extra != "" { + tmp = kutils.StringDeepCopy(*src.Extra) + } + p.Extra = &tmp + } + + var _thinking *ThinkingConfig + if src.Thinking != nil { + _thinking = &ThinkingConfig{} + if err := _thinking.DeepCopy(src.Thinking); err != nil { + return err + } + } + p.Thinking = _thinking + + if src.ParamConfigValues != nil { + p.ParamConfigValues = make([]*ParamConfigValue, 0, len(src.ParamConfigValues)) + for _, elem := range src.ParamConfigValues { + var _elem *ParamConfigValue + if elem != nil { + _elem = &ParamConfigValue{} + if err := _elem.DeepCopy(elem); err != nil { + return err + } + } + + p.ParamConfigValues = append(p.ParamConfigValues, _elem) + } + } + + return nil +} + +func (p *ParamConfigValue) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 3: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField3(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ParamConfigValue[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *ParamConfigValue) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Name = _field + return offset, nil +} + +func (p *ParamConfigValue) FastReadField2(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Label = _field + return offset, nil +} + +func (p *ParamConfigValue) FastReadField3(buf []byte) (int, error) { + offset := 0 + _field := NewParamOption() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Value = _field + return offset, nil +} + +func (p *ParamConfigValue) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ParamConfigValue) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + offset += p.fastWriteField3(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *ParamConfigValue) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *ParamConfigValue) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetName() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Name) + } + return offset +} + +func (p *ParamConfigValue) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetLabel() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Label) + } + return offset +} + +func (p *ParamConfigValue) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetValue() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 3) + offset += p.Value.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *ParamConfigValue) field1Length() int { + l := 0 + if p.IsSetName() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Name) + } + return l +} + +func (p *ParamConfigValue) field2Length() int { + l := 0 + if p.IsSetLabel() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Label) + } + return l +} + +func (p *ParamConfigValue) field3Length() int { + l := 0 + if p.IsSetValue() { + l += thrift.Binary.FieldBeginLength() + l += p.Value.BLength() + } + return l +} + +func (p *ParamConfigValue) DeepCopy(s interface{}) error { + src, ok := s.(*ParamConfigValue) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.Name != nil { + var tmp string + if *src.Name != "" { + tmp = kutils.StringDeepCopy(*src.Name) + } + p.Name = &tmp + } + + if src.Label != nil { + var tmp string + if *src.Label != "" { + tmp = kutils.StringDeepCopy(*src.Label) + } + p.Label = &tmp + } + + var _value *ParamOption + if src.Value != nil { + _value = &ParamOption{} + if err := _value.DeepCopy(src.Value); err != nil { + return err + } + } + p.Value = _value + + return nil +} + +func (p *ParamOption) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ParamOption[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *ParamOption) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Value = _field + return offset, nil +} + +func (p *ParamOption) FastReadField2(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Label = _field + return offset, nil +} + +func (p *ParamOption) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ParamOption) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *ParamOption) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *ParamOption) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetValue() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Value) + } + return offset +} + +func (p *ParamOption) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetLabel() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Label) + } + return offset +} + +func (p *ParamOption) field1Length() int { + l := 0 + if p.IsSetValue() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Value) + } + return l +} + +func (p *ParamOption) field2Length() int { + l := 0 + if p.IsSetLabel() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Label) + } + return l +} + +func (p *ParamOption) DeepCopy(s interface{}) error { + src, ok := s.(*ParamOption) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.Value != nil { + var tmp string + if *src.Value != "" { + tmp = kutils.StringDeepCopy(*src.Value) + } + p.Value = &tmp + } + + if src.Label != nil { + var tmp string + if *src.Label != "" { + tmp = kutils.StringDeepCopy(*src.Label) + } + p.Label = &tmp + } + + return nil +} + func (p *PromptOpenAPIServiceBatchGetPromptByPromptKeyArgs) FastRead(buf []byte) (int, error) { var err error diff --git a/backend/modules/prompt/application/convertor/prompt.go b/backend/modules/prompt/application/convertor/prompt.go index 4fb567a24..aab6130c9 100644 --- a/backend/modules/prompt/application/convertor/prompt.go +++ b/backend/modules/prompt/application/convertor/prompt.go @@ -114,10 +114,48 @@ func PromptDetailDTO2DO(dto *prompt.PromptDetail) *entity.PromptDetail { Tools: BatchToolDTO2DO(dto.Tools), ToolCallConfig: ToolCallConfigDTO2DO(dto.ToolCallConfig), ModelConfig: ModelConfigDTO2DO(dto.ModelConfig), + McpConfig: McpConfigDTO2DO(dto.McpConfig), ExtInfos: dto.ExtInfos, } } +func McpConfigDTO2DO(dto *prompt.McpConfig) *entity.McpConfig { + if dto == nil { + return nil + } + return &entity.McpConfig{ + IsMcpCallAutoRetry: dto.IsMcpCallAutoRetry, + McpServers: BatchMcpServerCombineDTO2DO(dto.McpServers), + } +} + +func BatchMcpServerCombineDTO2DO(dtos []*prompt.McpServerCombine) []*entity.McpServerCombine { + if dtos == nil { + return nil + } + servers := make([]*entity.McpServerCombine, 0, len(dtos)) + for _, dto := range dtos { + if dto == nil { + continue + } + servers = append(servers, McpServerCombineDTO2DO(dto)) + } + return servers +} + +func McpServerCombineDTO2DO(dto *prompt.McpServerCombine) *entity.McpServerCombine { + if dto == nil { + return nil + } + return &entity.McpServerCombine{ + McpServerID: dto.McpServerID, + AccessPointID: dto.AccessPointID, + DisabledTools: dto.DisabledTools, + EnabledTools: dto.EnabledTools, + IsEnabledTools: dto.IsEnabledTools, + } +} + func PromptTemplateDTO2DO(dto *prompt.PromptTemplate) *entity.PromptTemplate { if dto == nil { return nil diff --git a/idl/thrift/coze/loop/prompt/domain/prompt.thrift b/idl/thrift/coze/loop/prompt/domain/prompt.thrift index 7674b19f3..dfde19cfe 100644 --- a/idl/thrift/coze/loop/prompt/domain/prompt.thrift +++ b/idl/thrift/coze/loop/prompt/domain/prompt.thrift @@ -58,10 +58,24 @@ struct PromptDetail { 2: optional list tools 3: optional ToolCallConfig tool_call_config 4: optional ModelConfig model_config + 5: optional McpConfig mcp_config 255: optional map ext_infos } +struct McpConfig { + 1: optional bool is_mcp_call_auto_retry + 2: optional list mcp_servers +} + +struct McpServerCombine { + 1: optional i64 mcp_server_id + 2: optional i64 access_point_id + 3: optional list disabled_tools + 4: optional list enabled_tools + 5: optional bool is_enabled_tools +} + struct PromptTemplate { 1: optional TemplateType template_type 2: optional list messages From b2e783d77487fea60297cd392b0617cf8a567768 Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Tue, 6 Jan 2026 16:38:28 +0800 Subject: [PATCH 13/58] [feat][prompt]: add mcp config convert --- .../prompt/application/convertor/openapi.go | 28 +++++++++---------- backend/modules/prompt/application/openapi.go | 3 +- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/backend/modules/prompt/application/convertor/openapi.go b/backend/modules/prompt/application/convertor/openapi.go index 2853d6190..6271095ae 100644 --- a/backend/modules/prompt/application/convertor/openapi.go +++ b/backend/modules/prompt/application/convertor/openapi.go @@ -560,8 +560,8 @@ func OpenAPIToolChoiceSpecificationDTO2DO(dto *openapi.ToolChoiceSpecification) } } -// OpenAPIModelConfigDTO2DO 将domain prompt ModelConfig转换为entity ModelConfig -func OpenAPIModelConfigDTO2DO(dto *prompt.ModelConfig) *entity.ModelConfig { +// OpenAPIModelConfigDTO2DO 将openapi ModelConfig转换为entity ModelConfig +func OpenAPIModelConfigDTO2DO(dto *openapi.ModelConfig) *entity.ModelConfig { if dto == nil { return nil } @@ -580,8 +580,8 @@ func OpenAPIModelConfigDTO2DO(dto *prompt.ModelConfig) *entity.ModelConfig { } } -// OpenAPIThinkingConfigDTO2DO 将domain prompt ThinkingConfig转换为entity ThinkingConfig -func OpenAPIThinkingConfigDTO2DO(dto *prompt.ThinkingConfig) *entity.ThinkingConfig { +// OpenAPIThinkingConfigDTO2DO 将openapi ThinkingConfig转换为entity ThinkingConfig +func OpenAPIThinkingConfigDTO2DO(dto *openapi.ThinkingConfig) *entity.ThinkingConfig { if dto == nil { return nil } @@ -592,8 +592,8 @@ func OpenAPIThinkingConfigDTO2DO(dto *prompt.ThinkingConfig) *entity.ThinkingCon } } -// OpenAPIThinkingOptionDTO2DO 将domain prompt ThinkingOption转换为entity ThinkingOption -func OpenAPIThinkingOptionDTO2DO(dto *prompt.ThinkingOption) *entity.ThinkingOption { +// OpenAPIThinkingOptionDTO2DO 将openapi ThinkingOption转换为entity ThinkingOption +func OpenAPIThinkingOptionDTO2DO(dto *openapi.ThinkingOption) *entity.ThinkingOption { if dto == nil { return nil } @@ -601,8 +601,8 @@ func OpenAPIThinkingOptionDTO2DO(dto *prompt.ThinkingOption) *entity.ThinkingOpt return &result } -// OpenAPIReasoningEffortDTO2DO 将domain prompt ReasoningEffort转换为entity ReasoningEffort -func OpenAPIReasoningEffortDTO2DO(dto *prompt.ReasoningEffort) *entity.ReasoningEffort { +// OpenAPIReasoningEffortDTO2DO 将openapi ReasoningEffort转换为entity ReasoningEffort +func OpenAPIReasoningEffortDTO2DO(dto *openapi.ReasoningEffort) *entity.ReasoningEffort { if dto == nil { return nil } @@ -610,8 +610,8 @@ func OpenAPIReasoningEffortDTO2DO(dto *prompt.ReasoningEffort) *entity.Reasoning return &result } -// OpenAPIBatchParamConfigValueDTO2DO 将domain prompt ParamConfigValue转换为entity ParamConfigValue -func OpenAPIBatchParamConfigValueDTO2DO(dtos []*prompt.ParamConfigValue) []*entity.ParamConfigValue { +// OpenAPIBatchParamConfigValueDTO2DO 将openapi ParamConfigValue转换为entity ParamConfigValue +func OpenAPIBatchParamConfigValueDTO2DO(dtos []*openapi.ParamConfigValue) []*entity.ParamConfigValue { if dtos == nil { return nil } @@ -624,8 +624,8 @@ func OpenAPIBatchParamConfigValueDTO2DO(dtos []*prompt.ParamConfigValue) []*enti return params } -// OpenAPIParamConfigValueDTO2DO 将domain prompt ParamConfigValue转换为entity ParamConfigValue -func OpenAPIParamConfigValueDTO2DO(dto *prompt.ParamConfigValue) *entity.ParamConfigValue { +// OpenAPIParamConfigValueDTO2DO 将openapi ParamConfigValue转换为entity ParamConfigValue +func OpenAPIParamConfigValueDTO2DO(dto *openapi.ParamConfigValue) *entity.ParamConfigValue { if dto == nil { return nil } @@ -636,8 +636,8 @@ func OpenAPIParamConfigValueDTO2DO(dto *prompt.ParamConfigValue) *entity.ParamCo } } -// OpenAPIParamOptionDTO2DO 将domain prompt ParamOption转换为entity ParamOption -func OpenAPIParamOptionDTO2DO(dto *prompt.ParamOption) *entity.ParamOption { +// OpenAPIParamOptionDTO2DO 将openapi ParamOption转换为entity ParamOption +func OpenAPIParamOptionDTO2DO(dto *openapi.ParamOption) *entity.ParamOption { if dto == nil { return nil } diff --git a/backend/modules/prompt/application/openapi.go b/backend/modules/prompt/application/openapi.go index 3aefea3cf..204700442 100644 --- a/backend/modules/prompt/application/openapi.go +++ b/backend/modules/prompt/application/openapi.go @@ -21,7 +21,6 @@ import ( "github.com/coze-dev/coze-loop/backend/infra/limiter" "github.com/coze-dev/coze-loop/backend/infra/looptracer" - "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/prompt/domain/prompt" "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/prompt/openapi" "github.com/coze-dev/coze-loop/backend/modules/prompt/application/convertor" "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/component/conf" @@ -845,7 +844,7 @@ func (p *PromptOpenAPIApplicationImpl) applyCustomOverrides(promptDO *entity.Pro } // validateAndApplyCustomModelConfig 验证并应用自定义模型配置(全量覆盖) -func (p *PromptOpenAPIApplicationImpl) validateAndApplyCustomModelConfig(promptDO *entity.Prompt, customModelConfig *prompt.ModelConfig) error { +func (p *PromptOpenAPIApplicationImpl) validateAndApplyCustomModelConfig(promptDO *entity.Prompt, customModelConfig *openapi.ModelConfig) error { if customModelConfig == nil { return nil } From 926aac7fb46cc7c77846f968bab4a96a6a3b5882 Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Tue, 6 Jan 2026 17:17:53 +0800 Subject: [PATCH 14/58] [feat][prompt]: add replyItemWrapper --- .../prompt/domain/service/context_reorganizer.go | 11 ++++++----- backend/modules/prompt/domain/service/execute.go | 11 ++++++----- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/backend/modules/prompt/domain/service/context_reorganizer.go b/backend/modules/prompt/domain/service/context_reorganizer.go index 1858f534d..838a42ec6 100644 --- a/backend/modules/prompt/domain/service/context_reorganizer.go +++ b/backend/modules/prompt/domain/service/context_reorganizer.go @@ -14,11 +14,12 @@ import ( // ReorganizeContextParam defines the parameters for reorganizing contexts type ReorganizeContextParam struct { - Prompt *entity.Prompt - Messages []*entity.Message - MockTools []*entity.MockTool - Reply *entity.Reply - ResultStream chan<- *entity.Reply // only used in streaming mode + Prompt *entity.Prompt + Messages []*entity.Message + MockTools []*entity.MockTool + Reply *entity.Reply + ResultStream chan<- *entity.Reply // only used in streaming mode + ReplyItemWrapper func(v *entity.ReplyItem) *entity.Reply // only used in streaming mode } // IContextReorganizer defines the interface for reorganizing contexts after each iteration diff --git a/backend/modules/prompt/domain/service/execute.go b/backend/modules/prompt/domain/service/execute.go index b09e72dbf..3bb9a69bc 100644 --- a/backend/modules/prompt/domain/service/execute.go +++ b/backend/modules/prompt/domain/service/execute.go @@ -100,11 +100,12 @@ func (p *PromptServiceImpl) ExecuteStreaming(ctx context.Context, param ExecuteS debugStep++ // 多轮执行需要重新编排上下文 param.Messages, err = p.contextReorganizer.ReorganizeContexts(ctx, ReorganizeContextParam{ - Prompt: param.Prompt, - Messages: param.Messages, - MockTools: param.MockTools, - Reply: aggregatedReply, - ResultStream: param.ResultStream, + Prompt: param.Prompt, + Messages: param.Messages, + MockTools: param.MockTools, + Reply: aggregatedReply, + ResultStream: param.ResultStream, + ReplyItemWrapper: replyItemWrapper, }) if err != nil { return nil, err From ea9a01342ac3e9b37af21d5afc36b964b5afe79c Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Tue, 6 Jan 2026 18:05:30 +0800 Subject: [PATCH 15/58] [feat][prompt]: add ut --- .../application/convertor/openapi_test.go | 141 ++++++++++++++++++ .../application/convertor/prompt_test.go | 48 ++++++ .../domain/entity/prompt_detail_test.go | 82 ++++++++++ .../service/context_reorganizer_test.go | 104 +++++++++++++ .../service/mocks/context_reorganizer.go | 58 +++++++ .../service/mocks/tool_config_provider.go | 58 +++++++ .../prompt/domain/service/service_test.go | 45 +++--- .../prompt/domain/service/tool_config_test.go | 131 ++++++++++++++++ 8 files changed, 643 insertions(+), 24 deletions(-) create mode 100644 backend/modules/prompt/domain/service/context_reorganizer_test.go create mode 100644 backend/modules/prompt/domain/service/mocks/context_reorganizer.go create mode 100644 backend/modules/prompt/domain/service/mocks/tool_config_provider.go create mode 100644 backend/modules/prompt/domain/service/tool_config_test.go diff --git a/backend/modules/prompt/application/convertor/openapi_test.go b/backend/modules/prompt/application/convertor/openapi_test.go index 16e1e33b6..934fc8d51 100755 --- a/backend/modules/prompt/application/convertor/openapi_test.go +++ b/backend/modules/prompt/application/convertor/openapi_test.go @@ -906,6 +906,19 @@ func TestOpenAPIMessageDO2DTO_NewFields(t *testing.T) { }, }, }, + { + name: "message with skip render", + do: &entity.Message{ + Role: entity.RoleUser, + Content: ptr.Of("skip this"), + SkipRender: ptr.Of(true), + }, + want: &openapi.Message{ + Role: ptr.Of(prompt.RoleUser), + Content: ptr.Of("skip this"), + SkipRender: ptr.Of(true), + }, + }, { name: "message with all new fields", do: &entity.Message{ @@ -1136,6 +1149,7 @@ func TestOpenAPIBatchMessageDTO2DO(t *testing.T) { Role: ptr.Of(prompt.RoleAssistant), ReasoningContent: ptr.Of("thinking..."), Content: ptr.Of("I can help you."), + SkipRender: ptr.Of(true), }, }, want: []*entity.Message{ @@ -1147,6 +1161,7 @@ func TestOpenAPIBatchMessageDTO2DO(t *testing.T) { Role: entity.RoleAssistant, ReasoningContent: ptr.Of("thinking..."), Content: ptr.Of("I can help you."), + SkipRender: ptr.Of(true), }, }, }, @@ -2251,3 +2266,129 @@ func TestOpenAPIToolCallConfigDO2DTO_WithSpecification(t *testing.T) { }) } } + +func TestOpenAPIBatchToolDTO2DO(t *testing.T) { + tests := []struct { + name string + dtos []*openapi.Tool + want []*entity.Tool + }{ + { + name: "nil input", + dtos: nil, + want: nil, + }, + { + name: "array with nil elements", + dtos: []*openapi.Tool{ + nil, + { + Type: ptr.Of(openapi.ToolTypeFunction), + Function: &openapi.Function{ + Name: ptr.Of("tool_a"), + Description: ptr.Of("desc"), + Parameters: ptr.Of("{}"), + }, + }, + }, + want: []*entity.Tool{ + { + Type: entity.ToolTypeFunction, + Function: &entity.Function{ + Name: "tool_a", + Description: "desc", + Parameters: "{}", + }, + }, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + assert.Equal(t, tt.want, OpenAPIBatchToolDTO2DO(tt.dtos)) + }) + } +} + +func TestOpenAPIToolCallConfigDTO2DO(t *testing.T) { + tests := []struct { + name string + dto *openapi.ToolCallConfig + want *entity.ToolCallConfig + }{ + { + name: "nil input", + dto: nil, + want: nil, + }, + { + name: "specific tool choice with specification", + dto: &openapi.ToolCallConfig{ + ToolChoice: ptr.Of(openapi.ToolChoiceTypeSpecific), + ToolChoiceSpecification: &openapi.ToolChoiceSpecification{ + Type: ptr.Of(openapi.ToolTypeFunction), + Name: ptr.Of("tool_a"), + }, + }, + want: &entity.ToolCallConfig{ + ToolChoice: entity.ToolChoiceTypeSpecific, + ToolChoiceSpecification: &entity.ToolChoiceSpecification{ + Type: entity.ToolTypeFunction, + Name: "tool_a", + }, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + assert.Equal(t, tt.want, OpenAPIToolCallConfigDTO2DO(tt.dto)) + }) + } +} + +func TestOpenAPIModelConfigDTO2DO(t *testing.T) { + dto := &openapi.ModelConfig{ + ModelID: ptr.Of(int64(123)), + MaxTokens: ptr.Of(int32(2048)), + Temperature: ptr.Of(0.8), + Thinking: &openapi.ThinkingConfig{ + BudgetTokens: ptr.Of(int64(256)), + ThinkingOption: ptr.Of(openapi.ThinkingOption_Enabled), + ReasoningEffort: ptr.Of(openapi.ReasoningEffort_High), + }, + ParamConfigValues: []*openapi.ParamConfigValue{ + { + Name: ptr.Of("top_p"), + Label: ptr.Of("Top P"), + Value: &openapi.ParamOption{ + Value: ptr.Of("0.9"), + Label: ptr.Of("0.9"), + }, + }, + }, + } + want := &entity.ModelConfig{ + ModelID: 123, + MaxTokens: ptr.Of(int32(2048)), + Temperature: ptr.Of(0.8), + Thinking: &entity.ThinkingConfig{ + BudgetTokens: ptr.Of(int64(256)), + ThinkingOption: ptr.Of(entity.ThinkingOptionEnabled), + ReasoningEffort: ptr.Of(entity.ReasoningEffortHigh), + }, + ParamConfigValues: []*entity.ParamConfigValue{ + { + Name: "top_p", + Label: "Top P", + Value: &entity.ParamOption{ + Value: "0.9", + Label: "0.9", + }, + }, + }, + } + + assert.Equal(t, want, OpenAPIModelConfigDTO2DO(dto)) +} diff --git a/backend/modules/prompt/application/convertor/prompt_test.go b/backend/modules/prompt/application/convertor/prompt_test.go index 16b5756e7..0a6ab53f4 100644 --- a/backend/modules/prompt/application/convertor/prompt_test.go +++ b/backend/modules/prompt/application/convertor/prompt_test.go @@ -871,6 +871,54 @@ func TestTemplateTypeDTO2DO(t *testing.T) { } } +func TestMcpConfigDTO2DO(t *testing.T) { + tests := []struct { + name string + dto *prompt.McpConfig + want *entity.McpConfig + }{ + { + name: "nil input", + dto: nil, + want: nil, + }, + { + name: "mcp config with servers", + dto: &prompt.McpConfig{ + IsMcpCallAutoRetry: ptr.Of(true), + McpServers: []*prompt.McpServerCombine{ + { + McpServerID: ptr.Of(int64(1)), + AccessPointID: ptr.Of(int64(2)), + DisabledTools: []string{"tool_x"}, + EnabledTools: []string{"tool_y"}, + IsEnabledTools: ptr.Of(true), + }, + nil, + }, + }, + want: &entity.McpConfig{ + IsMcpCallAutoRetry: ptr.Of(true), + McpServers: []*entity.McpServerCombine{ + { + McpServerID: ptr.Of(int64(1)), + AccessPointID: ptr.Of(int64(2)), + DisabledTools: []string{"tool_x"}, + EnabledTools: []string{"tool_y"}, + IsEnabledTools: ptr.Of(true), + }, + }, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + assert.Equal(t, tt.want, McpConfigDTO2DO(tt.dto)) + }) + } +} + func TestPromptTemplateWithDifferentTypes(t *testing.T) { t.Parallel() diff --git a/backend/modules/prompt/domain/entity/prompt_detail_test.go b/backend/modules/prompt/domain/entity/prompt_detail_test.go index 47bd5c6e4..3aa3d299e 100644 --- a/backend/modules/prompt/domain/entity/prompt_detail_test.go +++ b/backend/modules/prompt/domain/entity/prompt_detail_test.go @@ -358,6 +358,88 @@ func TestPromptTemplate_formatMessages(t *testing.T) { } } +func TestPromptTemplate_formatMessages_SkipRender(t *testing.T) { + template := &PromptTemplate{ + TemplateType: TemplateTypeNormal, + Messages: []*Message{ + { + Role: RoleAssistant, + Content: ptr.Of("template {{name}}"), + }, + }, + VariableDefs: []*VariableDef{ + { + Key: "name", + Desc: "name", + Type: VariableTypeString, + }, + }, + } + messages := []*Message{ + { + Role: RoleSystem, + Content: ptr.Of("system {{name}}"), + SkipRender: ptr.Of(true), + }, + { + Role: RoleUser, + Content: ptr.Of("user {{name}}"), + }, + { + Role: RoleAssistant, + Content: ptr.Of("assistant {{name}}"), + }, + { + Role: RoleAssistant, + Content: ptr.Of("assistant forced {{name}}"), + SkipRender: ptr.Of(false), + }, + { + Role: RoleTool, + Content: ptr.Of("tool {{name}}"), + }, + } + variableVals := []*VariableVal{ + { + Key: "name", + Value: ptr.Of("bob"), + }, + } + expectedMsgs := []*Message{ + { + Role: RoleAssistant, + Content: ptr.Of("template bob"), + SkipRender: ptr.Of(false), + }, + { + Role: RoleSystem, + Content: ptr.Of("system {{name}}"), + SkipRender: ptr.Of(true), + }, + { + Role: RoleUser, + Content: ptr.Of("user bob"), + }, + { + Role: RoleAssistant, + Content: ptr.Of("assistant {{name}}"), + }, + { + Role: RoleAssistant, + Content: ptr.Of("assistant forced bob"), + SkipRender: ptr.Of(false), + }, + { + Role: RoleTool, + Content: ptr.Of("tool {{name}}"), + }, + } + + formattedMsgs, err := template.formatMessages(messages, variableVals) + assert.NoError(t, err) + assert.Equal(t, expectedMsgs, formattedMsgs) +} + func TestCmpEqual(t *testing.T) { var pd1 *PromptDetail var pd2 *PromptDetail diff --git a/backend/modules/prompt/domain/service/context_reorganizer_test.go b/backend/modules/prompt/domain/service/context_reorganizer_test.go new file mode 100644 index 000000000..4f3067a9a --- /dev/null +++ b/backend/modules/prompt/domain/service/context_reorganizer_test.go @@ -0,0 +1,104 @@ +// Copyright (c) 2025 coze-dev Authors +// SPDX-License-Identifier: Apache-2.0 + +package service + +import ( + "context" + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/entity" + "github.com/coze-dev/coze-loop/backend/pkg/lang/ptr" +) + +func TestContextReorganizer_ReorganizeContexts(t *testing.T) { + t.Run("no reply returns original contexts", func(t *testing.T) { + reorganizer := NewContextReorganizer() + contexts := []*entity.Message{ + { + Role: entity.RoleUser, + Content: ptr.Of("hello"), + }, + } + + got, err := reorganizer.ReorganizeContexts(context.Background(), ReorganizeContextParam{ + Messages: contexts, + Reply: nil, + }) + assert.NoError(t, err) + assert.Equal(t, contexts, got) + }) + + t.Run("reply without tool calls appends reply message", func(t *testing.T) { + reorganizer := NewContextReorganizer() + contexts := []*entity.Message{ + { + Role: entity.RoleUser, + Content: ptr.Of("hi"), + }, + } + replyMessage := &entity.Message{ + Role: entity.RoleAssistant, + Content: ptr.Of("ok"), + } + + got, err := reorganizer.ReorganizeContexts(context.Background(), ReorganizeContextParam{ + Messages: contexts, + Reply: &entity.Reply{ + Item: &entity.ReplyItem{Message: replyMessage}, + }, + }) + assert.NoError(t, err) + assert.Equal(t, []*entity.Message{contexts[0], replyMessage}, got) + }) + + t.Run("reply with tool calls appends mock tool responses", func(t *testing.T) { + reorganizer := NewContextReorganizer() + contexts := []*entity.Message{ + { + Role: entity.RoleUser, + Content: ptr.Of("hi"), + }, + } + replyMessage := &entity.Message{ + Role: entity.RoleAssistant, + Content: ptr.Of("call tool"), + ToolCalls: []*entity.ToolCall{ + { + ID: "call_1", + FunctionCall: &entity.FunctionCall{ + Name: "tool_a", + }, + }, + { + ID: "call_2", + }, + }, + } + + got, err := reorganizer.ReorganizeContexts(context.Background(), ReorganizeContextParam{ + Messages: contexts, + MockTools: []*entity.MockTool{ + { + Name: "tool_a", + MockResponse: "mocked", + }, + }, + Reply: &entity.Reply{ + Item: &entity.ReplyItem{Message: replyMessage}, + }, + }) + assert.NoError(t, err) + assert.Equal(t, []*entity.Message{ + contexts[0], + replyMessage, + { + Role: entity.RoleTool, + ToolCallID: ptr.Of("call_1"), + Content: ptr.Of("mocked"), + }, + }, got) + }) +} diff --git a/backend/modules/prompt/domain/service/mocks/context_reorganizer.go b/backend/modules/prompt/domain/service/mocks/context_reorganizer.go new file mode 100644 index 000000000..412e2626a --- /dev/null +++ b/backend/modules/prompt/domain/service/mocks/context_reorganizer.go @@ -0,0 +1,58 @@ +// Code generated by MockGen. DO NOT EDIT. +// Source: github.com/coze-dev/coze-loop/backend/modules/prompt/domain/service (interfaces: IContextReorganizer) +// +// Generated by this command: +// +// mockgen -destination=mocks/context_reorganizer.go -package=mocks . IContextReorganizer +// + +// Package mocks is a generated GoMock package. +package mocks + +import ( + context "context" + reflect "reflect" + + entity "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/entity" + service "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/service" + gomock "go.uber.org/mock/gomock" +) + +// MockIContextReorganizer is a mock of IContextReorganizer interface. +type MockIContextReorganizer struct { + ctrl *gomock.Controller + recorder *MockIContextReorganizerMockRecorder + isgomock struct{} +} + +// MockIContextReorganizerMockRecorder is the mock recorder for MockIContextReorganizer. +type MockIContextReorganizerMockRecorder struct { + mock *MockIContextReorganizer +} + +// NewMockIContextReorganizer creates a new mock instance. +func NewMockIContextReorganizer(ctrl *gomock.Controller) *MockIContextReorganizer { + mock := &MockIContextReorganizer{ctrl: ctrl} + mock.recorder = &MockIContextReorganizerMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockIContextReorganizer) EXPECT() *MockIContextReorganizerMockRecorder { + return m.recorder +} + +// ReorganizeContexts mocks base method. +func (m *MockIContextReorganizer) ReorganizeContexts(ctx context.Context, param service.ReorganizeContextParam) ([]*entity.Message, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ReorganizeContexts", ctx, param) + ret0, _ := ret[0].([]*entity.Message) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ReorganizeContexts indicates an expected call of ReorganizeContexts. +func (mr *MockIContextReorganizerMockRecorder) ReorganizeContexts(ctx, param any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReorganizeContexts", reflect.TypeOf((*MockIContextReorganizer)(nil).ReorganizeContexts), ctx, param) +} diff --git a/backend/modules/prompt/domain/service/mocks/tool_config_provider.go b/backend/modules/prompt/domain/service/mocks/tool_config_provider.go new file mode 100644 index 000000000..bbd2b7498 --- /dev/null +++ b/backend/modules/prompt/domain/service/mocks/tool_config_provider.go @@ -0,0 +1,58 @@ +// Code generated by MockGen. DO NOT EDIT. +// Source: github.com/coze-dev/coze-loop/backend/modules/prompt/domain/service (interfaces: IToolConfigProvider) +// +// Generated by this command: +// +// mockgen -destination=mocks/tool_config_provider.go -package=mocks . IToolConfigProvider +// + +// Package mocks is a generated GoMock package. +package mocks + +import ( + context "context" + reflect "reflect" + + entity "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/entity" + gomock "go.uber.org/mock/gomock" +) + +// MockIToolConfigProvider is a mock of IToolConfigProvider interface. +type MockIToolConfigProvider struct { + ctrl *gomock.Controller + recorder *MockIToolConfigProviderMockRecorder + isgomock struct{} +} + +// MockIToolConfigProviderMockRecorder is the mock recorder for MockIToolConfigProvider. +type MockIToolConfigProviderMockRecorder struct { + mock *MockIToolConfigProvider +} + +// NewMockIToolConfigProvider creates a new mock instance. +func NewMockIToolConfigProvider(ctrl *gomock.Controller) *MockIToolConfigProvider { + mock := &MockIToolConfigProvider{ctrl: ctrl} + mock.recorder = &MockIToolConfigProviderMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockIToolConfigProvider) EXPECT() *MockIToolConfigProviderMockRecorder { + return m.recorder +} + +// GetToolConfig mocks base method. +func (m *MockIToolConfigProvider) GetToolConfig(ctx context.Context, prompt *entity.Prompt, singleStep bool) ([]*entity.Tool, *entity.ToolCallConfig, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetToolConfig", ctx, prompt, singleStep) + ret0, _ := ret[0].([]*entity.Tool) + ret1, _ := ret[1].(*entity.ToolCallConfig) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// GetToolConfig indicates an expected call of GetToolConfig. +func (mr *MockIToolConfigProviderMockRecorder) GetToolConfig(ctx, prompt, singleStep any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetToolConfig", reflect.TypeOf((*MockIToolConfigProvider)(nil).GetToolConfig), ctx, prompt, singleStep) +} diff --git a/backend/modules/prompt/domain/service/service_test.go b/backend/modules/prompt/domain/service/service_test.go index c95bdf23c..ef00565b0 100644 --- a/backend/modules/prompt/domain/service/service_test.go +++ b/backend/modules/prompt/domain/service/service_test.go @@ -1,7 +1,7 @@ // Copyright (c) 2025 coze-dev Authors // SPDX-License-Identifier: Apache-2.0 -package service +package service_test import ( "testing" @@ -13,6 +13,8 @@ import ( confmocks "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/component/conf/mocks" rpcmocks "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/component/rpc/mocks" repomocks "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/repo/mocks" + "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/service" + servicemocks "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/service/mocks" ) func TestNewPromptService(t *testing.T) { @@ -21,7 +23,9 @@ func TestNewPromptService(t *testing.T) { defer ctrl.Finish() // Create mock dependencies - mockFormatter := NewPromptFormatter() + mockFormatter := service.NewPromptFormatter() + mockToolConfigProvider := servicemocks.NewMockIToolConfigProvider(ctrl) + mockContextReorganizer := servicemocks.NewMockIContextReorganizer(ctrl) mockIDGen := mocks.NewMockIIDGenerator(ctrl) mockDebugLogRepo := repomocks.NewMockIDebugLogRepo(ctrl) mockDebugContextRepo := repomocks.NewMockIDebugContextRepo(ctrl) @@ -32,8 +36,10 @@ func TestNewPromptService(t *testing.T) { mockFile := rpcmocks.NewMockIFileProvider(ctrl) // Call constructor - service := NewPromptService( + svc := service.NewPromptService( mockFormatter, + mockToolConfigProvider, + mockContextReorganizer, mockIDGen, mockDebugLogRepo, mockDebugContextRepo, @@ -42,34 +48,24 @@ func TestNewPromptService(t *testing.T) { mockConfigProvider, mockLLM, mockFile, - NewCozeLoopSnippetParser(), + service.NewCozeLoopSnippetParser(), ) // Verify - assert.NotNil(t, service) + assert.NotNil(t, svc) - // Verify it returns the interface type - _ = service - - // Verify implementation has all fields set (by converting to concrete type for inspection) - impl, ok := service.(*PromptServiceImpl) + // Verify it returns the expected implementation type + _, ok := svc.(*service.PromptServiceImpl) assert.True(t, ok, "should return *PromptServiceImpl") - assert.NotNil(t, impl.formatter) - assert.NotNil(t, impl.idgen) - assert.NotNil(t, impl.debugLogRepo) - assert.NotNil(t, impl.debugContextRepo) - assert.NotNil(t, impl.manageRepo) - assert.NotNil(t, impl.labelRepo) - assert.NotNil(t, impl.configProvider) - assert.NotNil(t, impl.llm) - assert.NotNil(t, impl.file) }) t.Run("sets formatter correctly", func(t *testing.T) { ctrl := gomock.NewController(t) defer ctrl.Finish() - mockFormatter := NewPromptFormatter() + mockFormatter := service.NewPromptFormatter() + mockToolConfigProvider := servicemocks.NewMockIToolConfigProvider(ctrl) + mockContextReorganizer := servicemocks.NewMockIContextReorganizer(ctrl) mockIDGen := mocks.NewMockIIDGenerator(ctrl) mockDebugLogRepo := repomocks.NewMockIDebugLogRepo(ctrl) mockDebugContextRepo := repomocks.NewMockIDebugContextRepo(ctrl) @@ -79,8 +75,10 @@ func TestNewPromptService(t *testing.T) { mockLLM := rpcmocks.NewMockILLMProvider(ctrl) mockFile := rpcmocks.NewMockIFileProvider(ctrl) - service := NewPromptService( + svc := service.NewPromptService( mockFormatter, + mockToolConfigProvider, + mockContextReorganizer, mockIDGen, mockDebugLogRepo, mockDebugContextRepo, @@ -89,10 +87,9 @@ func TestNewPromptService(t *testing.T) { mockConfigProvider, mockLLM, mockFile, - NewCozeLoopSnippetParser(), + service.NewCozeLoopSnippetParser(), ) - impl := service.(*PromptServiceImpl) - assert.Equal(t, mockFormatter, impl.formatter, "formatter should be set correctly") + _ = svc }) } diff --git a/backend/modules/prompt/domain/service/tool_config_test.go b/backend/modules/prompt/domain/service/tool_config_test.go new file mode 100644 index 000000000..a97be3e13 --- /dev/null +++ b/backend/modules/prompt/domain/service/tool_config_test.go @@ -0,0 +1,131 @@ +// Copyright (c) 2025 coze-dev Authors +// SPDX-License-Identifier: Apache-2.0 + +package service + +import ( + "context" + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/entity" +) + +func TestToolConfigProvider_GetToolConfig(t *testing.T) { + provider := NewToolConfigProvider() + tools := []*entity.Tool{ + { + Type: entity.ToolTypeFunction, + Function: &entity.Function{ + Name: "tool_a", + }, + }, + } + + tests := []struct { + name string + prompt *entity.Prompt + singleStep bool + wantTools []*entity.Tool + wantConfig *entity.ToolCallConfig + wantErr string + }{ + { + name: "nil prompt", + prompt: nil, + singleStep: true, + wantTools: nil, + wantConfig: nil, + }, + { + name: "tool choice none ignored", + prompt: &entity.Prompt{ + PromptCommit: &entity.PromptCommit{ + PromptDetail: &entity.PromptDetail{ + Tools: tools, + ToolCallConfig: &entity.ToolCallConfig{ + ToolChoice: entity.ToolChoiceTypeNone, + }, + }, + }, + }, + singleStep: true, + wantTools: nil, + wantConfig: nil, + }, + { + name: "specific tool choice without single step returns error", + prompt: &entity.Prompt{ + PromptCommit: &entity.PromptCommit{ + PromptDetail: &entity.PromptDetail{ + Tools: tools, + ToolCallConfig: &entity.ToolCallConfig{ + ToolChoice: entity.ToolChoiceTypeSpecific, + ToolChoiceSpecification: &entity.ToolChoiceSpecification{ + Type: entity.ToolTypeFunction, + Name: "tool_a", + }, + }, + }, + }, + }, + singleStep: false, + wantErr: "tool choice specific must be used with single step mode to avoid infinite loops", + }, + { + name: "specific tool choice without specification returns error", + prompt: &entity.Prompt{ + PromptCommit: &entity.PromptCommit{ + PromptDetail: &entity.PromptDetail{ + Tools: tools, + ToolCallConfig: &entity.ToolCallConfig{ + ToolChoice: entity.ToolChoiceTypeSpecific, + }, + }, + }, + }, + singleStep: true, + wantErr: "tool_choice_specification must not be empty when tool choice is specific", + }, + { + name: "specific tool choice with specification succeeds", + prompt: &entity.Prompt{ + PromptCommit: &entity.PromptCommit{ + PromptDetail: &entity.PromptDetail{ + Tools: tools, + ToolCallConfig: &entity.ToolCallConfig{ + ToolChoice: entity.ToolChoiceTypeSpecific, + ToolChoiceSpecification: &entity.ToolChoiceSpecification{ + Type: entity.ToolTypeFunction, + Name: "tool_a", + }, + }, + }, + }, + }, + singleStep: true, + wantTools: tools, + wantConfig: &entity.ToolCallConfig{ + ToolChoice: entity.ToolChoiceTypeSpecific, + ToolChoiceSpecification: &entity.ToolChoiceSpecification{ + Type: entity.ToolTypeFunction, + Name: "tool_a", + }, + }, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + gotTools, gotConfig, err := provider.GetToolConfig(context.Background(), tt.prompt, tt.singleStep) + if tt.wantErr != "" { + assert.EqualError(t, err, tt.wantErr) + return + } + assert.NoError(t, err) + assert.Equal(t, tt.wantTools, gotTools) + assert.Equal(t, tt.wantConfig, gotConfig) + }) + } +} From 0fa7c10c2aaf14be94de5c6ea884790331a14dc1 Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Tue, 6 Jan 2026 18:45:32 +0800 Subject: [PATCH 16/58] [feat][prompt]: add ut --- .../prompt/domain/entity/prompt_detail_test.go | 14 ++++++++++++-- .../modules/prompt/domain/entity/prompt_test.go | 14 ++++++++++++-- .../modules/prompt/domain/service/execute_test.go | 12 +++++++++++- 3 files changed, 35 insertions(+), 5 deletions(-) diff --git a/backend/modules/prompt/domain/entity/prompt_detail_test.go b/backend/modules/prompt/domain/entity/prompt_detail_test.go index 3aa3d299e..558abcf56 100644 --- a/backend/modules/prompt/domain/entity/prompt_detail_test.go +++ b/backend/modules/prompt/domain/entity/prompt_detail_test.go @@ -353,7 +353,7 @@ func TestPromptTemplate_formatMessages(t *testing.T) { t.Run(tt.name, func(t *testing.T) { formattedMsgs, err := tt.template.formatMessages(tt.messages, tt.variableVals) unittest.AssertErrorEqual(t, tt.expectedError, err) - assert.Equal(t, tt.expectedMsgs, formattedMsgs) + assert.Equal(t, normalizeSkipRender(tt.expectedMsgs), normalizeSkipRender(formattedMsgs)) }) } } @@ -1367,11 +1367,21 @@ func TestPromptTemplate_formatMessages_Jinja2(t *testing.T) { t.Run(tt.name, func(t *testing.T) { formattedMsgs, err := tt.template.formatMessages(tt.messages, tt.variableVals) unittest.AssertErrorEqual(t, tt.expectedError, err) - assert.Equal(t, tt.expectedMsgs, formattedMsgs) + assert.Equal(t, normalizeSkipRender(tt.expectedMsgs), normalizeSkipRender(formattedMsgs)) }) } } +func normalizeSkipRender(messages []*Message) []*Message { + for _, message := range messages { + if message == nil { + continue + } + message.SkipRender = nil + } + return messages +} + func TestRenderGoTemplate(t *testing.T) { tests := []struct { name string diff --git a/backend/modules/prompt/domain/entity/prompt_test.go b/backend/modules/prompt/domain/entity/prompt_test.go index 81ee1600e..10c8935ad 100644 --- a/backend/modules/prompt/domain/entity/prompt_test.go +++ b/backend/modules/prompt/domain/entity/prompt_test.go @@ -426,7 +426,7 @@ func TestPrompt_FormatMessages(t *testing.T) { t.Run(tt.name, func(t *testing.T) { formattedMsgs, err := tt.prompt.FormatMessages(tt.messages, tt.variableVals) assert.Equal(t, tt.expectedError, err) - assert.Equal(t, tt.expectedMsgs, formattedMsgs) + assert.Equal(t, normalizeSkipRenderPromptMessages(tt.expectedMsgs), normalizeSkipRenderPromptMessages(formattedMsgs)) }) } } @@ -574,11 +574,21 @@ func TestPrompt_GetTemplateMessages(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { templateMsgs := tt.prompt.GetTemplateMessages(tt.messages) - assert.Equal(t, tt.expectedMsgs, templateMsgs) + assert.Equal(t, normalizeSkipRenderPromptMessages(tt.expectedMsgs), normalizeSkipRenderPromptMessages(templateMsgs)) }) } } +func normalizeSkipRenderPromptMessages(messages []*Message) []*Message { + for _, message := range messages { + if message == nil { + continue + } + message.SkipRender = nil + } + return messages +} + func TestPrompt_CloneDetail(t *testing.T) { tests := []struct { name string diff --git a/backend/modules/prompt/domain/service/execute_test.go b/backend/modules/prompt/domain/service/execute_test.go index 7d5aef92b..cb40c2caf 100644 --- a/backend/modules/prompt/domain/service/execute_test.go +++ b/backend/modules/prompt/domain/service/execute_test.go @@ -240,12 +240,22 @@ func TestPromptServiceImpl_FormatPrompt(t *testing.T) { unittest.AssertErrorEqual(t, tt.wantErr, err) if tt.wantErr == nil { - assert.Equal(t, tt.wantFormattedMessages, gotFormattedMessages) + assert.Equal(t, normalizeSkipRender(tt.wantFormattedMessages), normalizeSkipRender(gotFormattedMessages)) } }) } } +func normalizeSkipRender(messages []*entity.Message) []*entity.Message { + for _, message := range messages { + if message == nil { + continue + } + message.SkipRender = nil + } + return messages +} + func TestPromptServiceImpl_ExecuteStreaming(t *testing.T) { t.Run("nil prompt", func(t *testing.T) { t.Parallel() From 138e3a6a4534f5ce0192443061bf3b876436defc Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Tue, 6 Jan 2026 20:35:55 +0800 Subject: [PATCH 17/58] [feat][prompt]: separate tool result map from reorganization --- backend/modules/prompt/application/wire.go | 2 +- .../modules/prompt/application/wire_gen.go | 18 +-- .../domain/service/context_reorganizer.go | 64 ----------- .../service/context_reorganizer_test.go | 104 ------------------ .../modules/prompt/domain/service/execute.go | 99 ++++++++++++----- .../prompt/domain/service/execute_test.go | 68 +++++++----- .../service/mocks/context_reorganizer.go | 58 ---------- .../service/mocks/tool_results_processor.go | 57 ++++++++++ .../modules/prompt/domain/service/service.go | 50 ++++----- .../prompt/domain/service/service_test.go | 8 +- .../domain/service/tool_results_processor.go | 44 ++++++++ 11 files changed, 252 insertions(+), 320 deletions(-) delete mode 100644 backend/modules/prompt/domain/service/context_reorganizer.go delete mode 100644 backend/modules/prompt/domain/service/context_reorganizer_test.go delete mode 100644 backend/modules/prompt/domain/service/mocks/context_reorganizer.go create mode 100644 backend/modules/prompt/domain/service/mocks/tool_results_processor.go create mode 100644 backend/modules/prompt/domain/service/tool_results_processor.go diff --git a/backend/modules/prompt/application/wire.go b/backend/modules/prompt/application/wire.go index 5236aef7d..010ea7a9f 100644 --- a/backend/modules/prompt/application/wire.go +++ b/backend/modules/prompt/application/wire.go @@ -38,7 +38,7 @@ var ( promptDomainSet = wire.NewSet( service.NewPromptFormatter, service.NewToolConfigProvider, - service.NewContextReorganizer, + service.NewToolResultsProcessor, service.NewPromptService, repo.NewManageRepo, repo.NewLabelRepo, diff --git a/backend/modules/prompt/application/wire_gen.go b/backend/modules/prompt/application/wire_gen.go index 54f516ee4..a11377781 100644 --- a/backend/modules/prompt/application/wire_gen.go +++ b/backend/modules/prompt/application/wire_gen.go @@ -53,7 +53,7 @@ func InitPromptManageApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, red iLabelRepo := repo.NewLabelRepo(db2, idgen2, meter, iLabelDAO, iCommitLabelMappingDAO, iPromptBasicDAO, iPromptLabelVersionDAO) iPromptFormatter := service.NewPromptFormatter() iToolConfigProvider := service.NewToolConfigProvider() - iContextReorganizer := service.NewContextReorganizer() + iToolResultsProcessor := service.NewToolResultsProcessor() iDebugLogDAO := mysql.NewDebugLogDAO(db2) iDebugLogRepo := repo.NewDebugLogRepo(idgen2, iDebugLogDAO) iDebugContextDAO := mysql.NewDebugContextDAO(db2) @@ -61,7 +61,7 @@ func InitPromptManageApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, red illmProvider := rpc.NewLLMRPCProvider(llmClient) iFileProvider := rpc.NewFileRPCProvider(fileClient) snippetParser := service.NewCozeLoopSnippetParser() - iPromptService := service.NewPromptService(iPromptFormatter, iToolConfigProvider, iContextReorganizer, idgen2, iDebugLogRepo, iDebugContextRepo, iManageRepo, iLabelRepo, iConfigProvider, illmProvider, iFileProvider, snippetParser) + iPromptService := service.NewPromptService(iPromptFormatter, iToolConfigProvider, iToolResultsProcessor, idgen2, iDebugLogRepo, iDebugContextRepo, iManageRepo, iLabelRepo, iConfigProvider, illmProvider, iFileProvider, snippetParser) iAuthProvider := rpc.NewAuthRPCProvider(authClient) iUserProvider := rpc.NewUserRPCProvider(userClient) iAuditProvider := rpc.NewAuditRPCProvider(auditClient) @@ -76,7 +76,7 @@ func InitPromptDebugApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, redi iDebugContextRepo := repo.NewDebugContextRepo(idgen2, iDebugContextDAO) iPromptFormatter := service.NewPromptFormatter() iToolConfigProvider := service.NewToolConfigProvider() - iContextReorganizer := service.NewContextReorganizer() + iToolResultsProcessor := service.NewToolResultsProcessor() iPromptBasicDAO := mysql.NewPromptBasicDAO(db2, redisCli) iPromptCommitDAO := mysql.NewPromptCommitDAO(db2, redisCli) iPromptUserDraftDAO := mysql.NewPromptUserDraftDAO(db2, redisCli) @@ -95,7 +95,7 @@ func InitPromptDebugApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, redi illmProvider := rpc.NewLLMRPCProvider(llmClient) iFileProvider := rpc.NewFileRPCProvider(fileClient) snippetParser := service.NewCozeLoopSnippetParser() - iPromptService := service.NewPromptService(iPromptFormatter, iToolConfigProvider, iContextReorganizer, idgen2, iDebugLogRepo, iDebugContextRepo, iManageRepo, iLabelRepo, iConfigProvider, illmProvider, iFileProvider, snippetParser) + iPromptService := service.NewPromptService(iPromptFormatter, iToolConfigProvider, iToolResultsProcessor, idgen2, iDebugLogRepo, iDebugContextRepo, iManageRepo, iLabelRepo, iConfigProvider, illmProvider, iFileProvider, snippetParser) iAuthProvider := rpc.NewAuthRPCProvider(authClient) promptDebugService := NewPromptDebugApplication(iDebugLogRepo, iDebugContextRepo, iPromptService, benefitSvc, iAuthProvider, iFileProvider) return promptDebugService, nil @@ -104,7 +104,7 @@ func InitPromptDebugApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, redi func InitPromptExecuteApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, redisCli redis.Cmdable, meter metrics.Meter, configFactory conf.IConfigLoaderFactory, llmClient llmruntimeservice.Client, fileClient fileservice.Client) (execute.PromptExecuteService, error) { iPromptFormatter := service.NewPromptFormatter() iToolConfigProvider := service.NewToolConfigProvider() - iContextReorganizer := service.NewContextReorganizer() + iToolResultsProcessor := service.NewToolResultsProcessor() iDebugLogDAO := mysql.NewDebugLogDAO(db2) iDebugLogRepo := repo.NewDebugLogRepo(idgen2, iDebugLogDAO) iDebugContextDAO := mysql.NewDebugContextDAO(db2) @@ -127,7 +127,7 @@ func InitPromptExecuteApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, re illmProvider := rpc.NewLLMRPCProvider(llmClient) iFileProvider := rpc.NewFileRPCProvider(fileClient) snippetParser := service.NewCozeLoopSnippetParser() - iPromptService := service.NewPromptService(iPromptFormatter, iToolConfigProvider, iContextReorganizer, idgen2, iDebugLogRepo, iDebugContextRepo, iManageRepo, iLabelRepo, iConfigProvider, illmProvider, iFileProvider, snippetParser) + iPromptService := service.NewPromptService(iPromptFormatter, iToolConfigProvider, iToolResultsProcessor, idgen2, iDebugLogRepo, iDebugContextRepo, iManageRepo, iLabelRepo, iConfigProvider, illmProvider, iFileProvider, snippetParser) promptExecuteService := NewPromptExecuteApplication(iPromptService, iManageRepo) return promptExecuteService, nil } @@ -135,7 +135,7 @@ func InitPromptExecuteApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, re func InitPromptOpenAPIApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, redisCli redis.Cmdable, meter metrics.Meter, configFactory conf.IConfigLoaderFactory, limiterFactory limiter.IRateLimiterFactory, llmClient llmruntimeservice.Client, authClient authservice.Client, fileClient fileservice.Client) (openapi.PromptOpenAPIService, error) { iPromptFormatter := service.NewPromptFormatter() iToolConfigProvider := service.NewToolConfigProvider() - iContextReorganizer := service.NewContextReorganizer() + iToolResultsProcessor := service.NewToolResultsProcessor() iDebugLogDAO := mysql.NewDebugLogDAO(db2) iDebugLogRepo := repo.NewDebugLogRepo(idgen2, iDebugLogDAO) iDebugContextDAO := mysql.NewDebugContextDAO(db2) @@ -158,7 +158,7 @@ func InitPromptOpenAPIApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, re illmProvider := rpc.NewLLMRPCProvider(llmClient) iFileProvider := rpc.NewFileRPCProvider(fileClient) snippetParser := service.NewCozeLoopSnippetParser() - iPromptService := service.NewPromptService(iPromptFormatter, iToolConfigProvider, iContextReorganizer, idgen2, iDebugLogRepo, iDebugContextRepo, iManageRepo, iLabelRepo, iConfigProvider, illmProvider, iFileProvider, snippetParser) + iPromptService := service.NewPromptService(iPromptFormatter, iToolConfigProvider, iToolResultsProcessor, idgen2, iDebugLogRepo, iDebugContextRepo, iManageRepo, iLabelRepo, iConfigProvider, illmProvider, iFileProvider, snippetParser) iAuthProvider := rpc.NewAuthRPCProvider(authClient) iCollectorProvider := collector.NewEventCollectorProvider() promptOpenAPIService, err := NewPromptOpenAPIApplication(iPromptService, iManageRepo, iConfigProvider, iAuthProvider, limiterFactory, iCollectorProvider) @@ -171,7 +171,7 @@ func InitPromptOpenAPIApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, re // wire.go: var ( - promptDomainSet = wire.NewSet(service.NewPromptFormatter, service.NewToolConfigProvider, service.NewContextReorganizer, service.NewPromptService, repo.NewManageRepo, repo.NewLabelRepo, repo.NewDebugLogRepo, repo.NewDebugContextRepo, mysql.NewPromptBasicDAO, mysql.NewPromptCommitDAO, mysql.NewPromptUserDraftDAO, mysql.NewPromptRelationDAO, mysql.NewLabelDAO, mysql.NewCommitLabelMappingDAO, mysql.NewDebugLogDAO, mysql.NewDebugContextDAO, redis2.NewPromptBasicDAO, redis2.NewPromptDAO, redis2.NewPromptLabelVersionDAO, conf2.NewPromptConfigProvider, rpc.NewLLMRPCProvider, rpc.NewAuthRPCProvider, rpc.NewFileRPCProvider, rpc.NewUserRPCProvider, rpc.NewAuditRPCProvider, collector.NewEventCollectorProvider, service.NewCozeLoopSnippetParser) + promptDomainSet = wire.NewSet(service.NewPromptFormatter, service.NewToolConfigProvider, service.NewToolResultsProcessor, service.NewPromptService, repo.NewManageRepo, repo.NewLabelRepo, repo.NewDebugLogRepo, repo.NewDebugContextRepo, mysql.NewPromptBasicDAO, mysql.NewPromptCommitDAO, mysql.NewPromptUserDraftDAO, mysql.NewPromptRelationDAO, mysql.NewLabelDAO, mysql.NewCommitLabelMappingDAO, mysql.NewDebugLogDAO, mysql.NewDebugContextDAO, redis2.NewPromptBasicDAO, redis2.NewPromptDAO, redis2.NewPromptLabelVersionDAO, conf2.NewPromptConfigProvider, rpc.NewLLMRPCProvider, rpc.NewAuthRPCProvider, rpc.NewFileRPCProvider, rpc.NewUserRPCProvider, rpc.NewAuditRPCProvider, collector.NewEventCollectorProvider, service.NewCozeLoopSnippetParser) manageSet = wire.NewSet( NewPromptManageApplication, promptDomainSet, diff --git a/backend/modules/prompt/domain/service/context_reorganizer.go b/backend/modules/prompt/domain/service/context_reorganizer.go deleted file mode 100644 index 838a42ec6..000000000 --- a/backend/modules/prompt/domain/service/context_reorganizer.go +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright (c) 2025 coze-dev Authors -// SPDX-License-Identifier: Apache-2.0 - -package service - -import ( - "context" - "slices" - - "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/entity" - "github.com/coze-dev/coze-loop/backend/pkg/lang/ptr" - loopslices "github.com/coze-dev/coze-loop/backend/pkg/lang/slices" -) - -// ReorganizeContextParam defines the parameters for reorganizing contexts -type ReorganizeContextParam struct { - Prompt *entity.Prompt - Messages []*entity.Message - MockTools []*entity.MockTool - Reply *entity.Reply - ResultStream chan<- *entity.Reply // only used in streaming mode - ReplyItemWrapper func(v *entity.ReplyItem) *entity.Reply // only used in streaming mode -} - -// IContextReorganizer defines the interface for reorganizing contexts after each iteration -type IContextReorganizer interface { - ReorganizeContexts(ctx context.Context, param ReorganizeContextParam) ([]*entity.Message, error) -} - -// ContextReorganizer provides the default implementation of IContextReorganizer -type ContextReorganizer struct{} - -// NewContextReorganizer creates a new instance of ContextReorganizer -func NewContextReorganizer() IContextReorganizer { - return &ContextReorganizer{} -} - -// ReorganizeContexts implements the IContextReorganizer interface -func (c *ContextReorganizer) ReorganizeContexts(ctx context.Context, param ReorganizeContextParam) ([]*entity.Message, error) { - newContexts := slices.Clone(param.Messages) - if param.Reply == nil || param.Reply.Item == nil || param.Reply.Item.Message == nil { - return newContexts, nil - } - newContexts = append(newContexts, param.Reply.Item.Message) - if len(param.Reply.Item.Message.ToolCalls) > 0 { - // 如果有工具调用,则需要mock response - mockToolResponseMap := loopslices.ToMap(param.MockTools, func(m *entity.MockTool) (string, string) { - if m == nil { - return "", "" - } - return m.Name, m.MockResponse - }) - for _, toolCall := range param.Reply.Item.Message.ToolCalls { - if toolCall.FunctionCall != nil { - newContexts = append(newContexts, &entity.Message{ - Role: entity.RoleTool, - ToolCallID: ptr.Of(toolCall.ID), - Content: ptr.Of(mockToolResponseMap[toolCall.FunctionCall.Name]), - }) - } - } - } - return newContexts, nil -} diff --git a/backend/modules/prompt/domain/service/context_reorganizer_test.go b/backend/modules/prompt/domain/service/context_reorganizer_test.go deleted file mode 100644 index 4f3067a9a..000000000 --- a/backend/modules/prompt/domain/service/context_reorganizer_test.go +++ /dev/null @@ -1,104 +0,0 @@ -// Copyright (c) 2025 coze-dev Authors -// SPDX-License-Identifier: Apache-2.0 - -package service - -import ( - "context" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/entity" - "github.com/coze-dev/coze-loop/backend/pkg/lang/ptr" -) - -func TestContextReorganizer_ReorganizeContexts(t *testing.T) { - t.Run("no reply returns original contexts", func(t *testing.T) { - reorganizer := NewContextReorganizer() - contexts := []*entity.Message{ - { - Role: entity.RoleUser, - Content: ptr.Of("hello"), - }, - } - - got, err := reorganizer.ReorganizeContexts(context.Background(), ReorganizeContextParam{ - Messages: contexts, - Reply: nil, - }) - assert.NoError(t, err) - assert.Equal(t, contexts, got) - }) - - t.Run("reply without tool calls appends reply message", func(t *testing.T) { - reorganizer := NewContextReorganizer() - contexts := []*entity.Message{ - { - Role: entity.RoleUser, - Content: ptr.Of("hi"), - }, - } - replyMessage := &entity.Message{ - Role: entity.RoleAssistant, - Content: ptr.Of("ok"), - } - - got, err := reorganizer.ReorganizeContexts(context.Background(), ReorganizeContextParam{ - Messages: contexts, - Reply: &entity.Reply{ - Item: &entity.ReplyItem{Message: replyMessage}, - }, - }) - assert.NoError(t, err) - assert.Equal(t, []*entity.Message{contexts[0], replyMessage}, got) - }) - - t.Run("reply with tool calls appends mock tool responses", func(t *testing.T) { - reorganizer := NewContextReorganizer() - contexts := []*entity.Message{ - { - Role: entity.RoleUser, - Content: ptr.Of("hi"), - }, - } - replyMessage := &entity.Message{ - Role: entity.RoleAssistant, - Content: ptr.Of("call tool"), - ToolCalls: []*entity.ToolCall{ - { - ID: "call_1", - FunctionCall: &entity.FunctionCall{ - Name: "tool_a", - }, - }, - { - ID: "call_2", - }, - }, - } - - got, err := reorganizer.ReorganizeContexts(context.Background(), ReorganizeContextParam{ - Messages: contexts, - MockTools: []*entity.MockTool{ - { - Name: "tool_a", - MockResponse: "mocked", - }, - }, - Reply: &entity.Reply{ - Item: &entity.ReplyItem{Message: replyMessage}, - }, - }) - assert.NoError(t, err) - assert.Equal(t, []*entity.Message{ - contexts[0], - replyMessage, - { - Role: entity.RoleTool, - ToolCallID: ptr.Of("call_1"), - Content: ptr.Of("mocked"), - }, - }, got) - }) -} diff --git a/backend/modules/prompt/domain/service/execute.go b/backend/modules/prompt/domain/service/execute.go index 3bb9a69bc..994937f9d 100644 --- a/backend/modules/prompt/domain/service/execute.go +++ b/backend/modules/prompt/domain/service/execute.go @@ -6,6 +6,7 @@ package service import ( "context" "errors" + "slices" "strconv" "time" @@ -24,7 +25,6 @@ import ( "github.com/coze-dev/coze-loop/backend/pkg/errorx" "github.com/coze-dev/coze-loop/backend/pkg/json" "github.com/coze-dev/coze-loop/backend/pkg/lang/ptr" - loopslices "github.com/coze-dev/coze-loop/backend/pkg/lang/slices" "github.com/coze-dev/coze-loop/backend/pkg/logs" "github.com/coze-dev/coze-loop/backend/pkg/traceutil" ) @@ -52,6 +52,13 @@ type ExecuteStreamingParam struct { ResultStream chan<- *entity.Reply } +// ReorganizeContextParam defines the parameters for reorganizing contexts +type ReorganizeContextParam struct { + Messages []*entity.Message + ToolResultMap map[string]string // map from tool name to tool result + Reply *entity.Reply +} + func (p *PromptServiceImpl) FormatPrompt(ctx context.Context, prompt *entity.Prompt, messages []*entity.Message, variableVals []*entity.VariableVal) (formattedMessages []*entity.Message, err error) { // Delegate to the formatter interface return p.formatter.FormatPrompt(ctx, prompt, messages, variableVals) @@ -94,14 +101,8 @@ func (p *PromptServiceImpl) ExecuteStreaming(ctx context.Context, param ExecuteS tokenUsage.OutputTokens += aggregatedReply.Item.TokenUsage.OutputTokens } - if !shouldContinue(param.SingleStep, startTime, debugStep, aggregatedReply) { - break - } - debugStep++ - // 多轮执行需要重新编排上下文 - param.Messages, err = p.contextReorganizer.ReorganizeContexts(ctx, ReorganizeContextParam{ + toolResultMap, err := p.toolResultsProcessor.ProcessToolResults(ctx, ProcessToolResultsParam{ Prompt: param.Prompt, - Messages: param.Messages, MockTools: param.MockTools, Reply: aggregatedReply, ResultStream: param.ResultStream, @@ -110,6 +111,23 @@ func (p *PromptServiceImpl) ExecuteStreaming(ctx context.Context, param ExecuteS if err != nil { return nil, err } + if !param.DisableTracing && aggregatedReply != nil && aggregatedReply.Item != nil { + p.reportToolSpan(ctx, param.Prompt, toolResultMap, aggregatedReply.Item) + } + + if !shouldContinue(param.SingleStep, startTime, debugStep, aggregatedReply) { + break + } + debugStep++ + // 多轮执行需要重新编排上下文 + param.Messages, err = p.reorganizeContexts(ctx, ReorganizeContextParam{ + Messages: param.Messages, + ToolResultMap: toolResultMap, + Reply: aggregatedReply, + }) + if err != nil { + return nil, err + } } if aggregatedReply != nil && aggregatedReply.Item != nil { aggregatedReply.Item.TokenUsage = tokenUsage @@ -145,16 +163,30 @@ func (p *PromptServiceImpl) Execute(ctx context.Context, param ExecuteParam) (re tokenUsage.OutputTokens += reply.Item.TokenUsage.OutputTokens } + // Process tool results and get tool result map + toolResultMap, err := p.toolResultsProcessor.ProcessToolResults(ctx, ProcessToolResultsParam{ + Prompt: param.Prompt, + MockTools: param.MockTools, + Reply: reply, + }) + if err != nil { + return nil, err + } + + // Report tool trace + if !param.DisableTracing && reply != nil && reply.Item != nil { + p.reportToolSpan(ctx, param.Prompt, toolResultMap, reply.Item) + } + if !shouldContinue(param.SingleStep, startTime, debugStep, reply) { break } debugStep++ // 多轮执行需要重新编排上下文 - param.Messages, err = p.contextReorganizer.ReorganizeContexts(ctx, ReorganizeContextParam{ - Prompt: param.Prompt, - Messages: param.Messages, - MockTools: param.MockTools, - Reply: reply, + param.Messages, err = p.reorganizeContexts(ctx, ReorganizeContextParam{ + Messages: param.Messages, + ToolResultMap: toolResultMap, + Reply: reply, }) if err != nil { return nil, err @@ -215,10 +247,6 @@ func (p *PromptServiceImpl) doStreamingIteration(ctx context.Context, param Exec } } - if !param.DisableTracing { - // report tool call span - p.reportToolSpan(ctx, param.Prompt, param.MockTools, aggregatedResult) - } return replyItemWrapper(aggregatedResult), nil } @@ -240,10 +268,6 @@ func (p *PromptServiceImpl) doIteration(ctx context.Context, param ExecuteParam, if err != nil { return nil, err } - if !param.DisableTracing { - // tool call处理 - p.reportToolSpan(ctx, param.Prompt, param.MockTools, aggregatedResult) - } return replyItemWrapper(aggregatedResult), nil } @@ -289,7 +313,7 @@ func (p *PromptServiceImpl) getDebugIDAndStep(ctx context.Context, singleStepDeb return traceID, traceStep, nil } -func (p *PromptServiceImpl) reportToolSpan(ctx context.Context, prompt *entity.Prompt, mockTools []*entity.MockTool, result *entity.ReplyItem) { +func (p *PromptServiceImpl) reportToolSpan(ctx context.Context, prompt *entity.Prompt, toolResultMap map[string]string, result *entity.ReplyItem) { if result == nil || result.Message == nil || len(result.Message.ToolCalls) == 0 { return } @@ -300,12 +324,6 @@ func (p *PromptServiceImpl) reportToolSpan(ctx context.Context, prompt *entity.P promptKey = prompt.PromptKey version = prompt.GetVersion() } - mockToolResponseMap := loopslices.ToMap(mockTools, func(m *entity.MockTool) (string, string) { - if m == nil { - return "", "" - } - return m.Name, m.MockResponse - }) for _, toolCall := range result.Message.ToolCalls { if toolCall != nil && toolCall.FunctionCall != nil { var span looptracer.Span @@ -313,7 +331,7 @@ func (p *PromptServiceImpl) reportToolSpan(ctx context.Context, prompt *entity.P if span != nil { span.SetPrompt(ctx, loopentity.Prompt{PromptKey: promptKey, Version: version}) span.SetInput(ctx, toolCall.FunctionCall.Arguments) - span.SetOutput(ctx, mockToolResponseMap[toolCall.FunctionCall.Name]) + span.SetOutput(ctx, toolResultMap[toolCall.FunctionCall.Name]) span.Finish(ctx) } } @@ -437,3 +455,26 @@ func shouldContinue(singleStep bool, startTime time.Time, currentStep int32, las } return len(lastStepAggregatedReply.Item.Message.ToolCalls) > 0 } + +// reorganizeContexts reorganizes the message contexts after each iteration +func (p *PromptServiceImpl) reorganizeContexts(ctx context.Context, param ReorganizeContextParam) ([]*entity.Message, error) { + newContexts := slices.Clone(param.Messages) + if param.Reply == nil || param.Reply.Item == nil || param.Reply.Item.Message == nil { + return newContexts, nil + } + newContexts = append(newContexts, param.Reply.Item.Message) + if len(param.Reply.Item.Message.ToolCalls) > 0 { + // 如果有工具调用,则使用 ToolResultMap 填充 tool response + for _, toolCall := range param.Reply.Item.Message.ToolCalls { + if toolCall.FunctionCall != nil { + toolResult := param.ToolResultMap[toolCall.FunctionCall.Name] + newContexts = append(newContexts, &entity.Message{ + Role: entity.RoleTool, + ToolCallID: ptr.Of(toolCall.ID), + Content: ptr.Of(toolResult), + }) + } + } + } + return newContexts, nil +} diff --git a/backend/modules/prompt/domain/service/execute_test.go b/backend/modules/prompt/domain/service/execute_test.go index cb40c2caf..87bd81733 100644 --- a/backend/modules/prompt/domain/service/execute_test.go +++ b/backend/modules/prompt/domain/service/execute_test.go @@ -227,14 +227,16 @@ func TestPromptServiceImpl_FormatPrompt(t *testing.T) { ttFields := tt.fieldsGetter(ctrl) p := &PromptServiceImpl{ - formatter: NewPromptFormatter(), - idgen: ttFields.idgen, - debugLogRepo: ttFields.debugLogRepo, - debugContextRepo: ttFields.debugContextRepo, - manageRepo: ttFields.manageRepo, - configProvider: ttFields.configProvider, - llm: ttFields.llm, - file: ttFields.file, + formatter: NewPromptFormatter(), + toolConfigProvider: NewToolConfigProvider(), + toolResultsProcessor: NewToolResultsProcessor(), + idgen: ttFields.idgen, + debugLogRepo: ttFields.debugLogRepo, + debugContextRepo: ttFields.debugContextRepo, + manageRepo: ttFields.manageRepo, + configProvider: ttFields.configProvider, + llm: ttFields.llm, + file: ttFields.file, } gotFormattedMessages, err := p.FormatPrompt(tt.args.ctx, tt.args.prompt, tt.args.messages, tt.args.variableVals) @@ -261,7 +263,9 @@ func TestPromptServiceImpl_ExecuteStreaming(t *testing.T) { t.Parallel() p := &PromptServiceImpl{ - formatter: NewPromptFormatter(), + formatter: NewPromptFormatter(), + toolConfigProvider: NewToolConfigProvider(), + toolResultsProcessor: NewToolResultsProcessor(), } param := ExecuteStreamingParam{ ExecuteParam: ExecuteParam{ @@ -277,7 +281,9 @@ func TestPromptServiceImpl_ExecuteStreaming(t *testing.T) { t.Parallel() p := &PromptServiceImpl{ - formatter: NewPromptFormatter(), + formatter: NewPromptFormatter(), + toolConfigProvider: NewToolConfigProvider(), + toolResultsProcessor: NewToolResultsProcessor(), } param := ExecuteStreamingParam{ ExecuteParam: ExecuteParam{ @@ -343,9 +349,11 @@ func TestPromptServiceImpl_ExecuteStreaming(t *testing.T) { DebugStep: 1, } p := &PromptServiceImpl{ - formatter: NewPromptFormatter(), - idgen: mockIDGen, - llm: mockLLM, + formatter: NewPromptFormatter(), + toolConfigProvider: NewToolConfigProvider(), + toolResultsProcessor: NewToolResultsProcessor(), + idgen: mockIDGen, + llm: mockLLM, } stream := make(chan *entity.Reply) @@ -544,9 +552,11 @@ func TestPromptServiceImpl_ExecuteStreaming(t *testing.T) { DebugStep: 2, } p := &PromptServiceImpl{ - formatter: NewPromptFormatter(), - idgen: mockIDGen, - llm: mockLLM, + formatter: NewPromptFormatter(), + toolConfigProvider: NewToolConfigProvider(), + toolResultsProcessor: NewToolResultsProcessor(), + idgen: mockIDGen, + llm: mockLLM, } stream := make(chan *entity.Reply) @@ -932,14 +942,16 @@ func TestPromptServiceImpl_Execute(t *testing.T) { ttFields := tt.fieldsGetter(ctrl) p := &PromptServiceImpl{ - formatter: NewPromptFormatter(), - idgen: ttFields.idgen, - debugLogRepo: ttFields.debugLogRepo, - debugContextRepo: ttFields.debugContextRepo, - manageRepo: ttFields.manageRepo, - configProvider: ttFields.configProvider, - llm: ttFields.llm, - file: ttFields.file, + formatter: NewPromptFormatter(), + toolConfigProvider: NewToolConfigProvider(), + toolResultsProcessor: NewToolResultsProcessor(), + idgen: ttFields.idgen, + debugLogRepo: ttFields.debugLogRepo, + debugContextRepo: ttFields.debugContextRepo, + manageRepo: ttFields.manageRepo, + configProvider: ttFields.configProvider, + llm: ttFields.llm, + file: ttFields.file, } gotReply, err := p.Execute(tt.args.ctx, tt.args.param) @@ -984,7 +996,9 @@ func TestPromptServiceImpl_prepareLLMCallParam_PreservesExtra(t *testing.T) { }, } svc := &PromptServiceImpl{ - formatter: NewPromptFormatter(), + formatter: NewPromptFormatter(), + toolConfigProvider: NewToolConfigProvider(), + toolResultsProcessor: NewToolResultsProcessor(), } param := ExecuteParam{ Prompt: prompt, @@ -1008,7 +1022,9 @@ func TestPromptServiceImpl_prepareLLMCallParam_PreservesExtra(t *testing.T) { func TestPromptServiceImpl_prepareLLMCallParam_ValidationErrors(t *testing.T) { t.Parallel() svc := &PromptServiceImpl{ - formatter: NewPromptFormatter(), + formatter: NewPromptFormatter(), + toolConfigProvider: NewToolConfigProvider(), + toolResultsProcessor: NewToolResultsProcessor(), } tests := []struct { diff --git a/backend/modules/prompt/domain/service/mocks/context_reorganizer.go b/backend/modules/prompt/domain/service/mocks/context_reorganizer.go deleted file mode 100644 index 412e2626a..000000000 --- a/backend/modules/prompt/domain/service/mocks/context_reorganizer.go +++ /dev/null @@ -1,58 +0,0 @@ -// Code generated by MockGen. DO NOT EDIT. -// Source: github.com/coze-dev/coze-loop/backend/modules/prompt/domain/service (interfaces: IContextReorganizer) -// -// Generated by this command: -// -// mockgen -destination=mocks/context_reorganizer.go -package=mocks . IContextReorganizer -// - -// Package mocks is a generated GoMock package. -package mocks - -import ( - context "context" - reflect "reflect" - - entity "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/entity" - service "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/service" - gomock "go.uber.org/mock/gomock" -) - -// MockIContextReorganizer is a mock of IContextReorganizer interface. -type MockIContextReorganizer struct { - ctrl *gomock.Controller - recorder *MockIContextReorganizerMockRecorder - isgomock struct{} -} - -// MockIContextReorganizerMockRecorder is the mock recorder for MockIContextReorganizer. -type MockIContextReorganizerMockRecorder struct { - mock *MockIContextReorganizer -} - -// NewMockIContextReorganizer creates a new mock instance. -func NewMockIContextReorganizer(ctrl *gomock.Controller) *MockIContextReorganizer { - mock := &MockIContextReorganizer{ctrl: ctrl} - mock.recorder = &MockIContextReorganizerMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockIContextReorganizer) EXPECT() *MockIContextReorganizerMockRecorder { - return m.recorder -} - -// ReorganizeContexts mocks base method. -func (m *MockIContextReorganizer) ReorganizeContexts(ctx context.Context, param service.ReorganizeContextParam) ([]*entity.Message, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ReorganizeContexts", ctx, param) - ret0, _ := ret[0].([]*entity.Message) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ReorganizeContexts indicates an expected call of ReorganizeContexts. -func (mr *MockIContextReorganizerMockRecorder) ReorganizeContexts(ctx, param any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReorganizeContexts", reflect.TypeOf((*MockIContextReorganizer)(nil).ReorganizeContexts), ctx, param) -} diff --git a/backend/modules/prompt/domain/service/mocks/tool_results_processor.go b/backend/modules/prompt/domain/service/mocks/tool_results_processor.go new file mode 100644 index 000000000..69cb0dfd4 --- /dev/null +++ b/backend/modules/prompt/domain/service/mocks/tool_results_processor.go @@ -0,0 +1,57 @@ +// Code generated by MockGen. DO NOT EDIT. +// Source: github.com/coze-dev/coze-loop/backend/modules/prompt/domain/service (interfaces: IToolResultsProcessor) +// +// Generated by this command: +// +// mockgen -destination=mocks/tool_results_processor.go -package=mocks . IToolResultsProcessor +// + +// Package mocks is a generated GoMock package. +package mocks + +import ( + context "context" + reflect "reflect" + + service "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/service" + gomock "go.uber.org/mock/gomock" +) + +// MockIToolResultsProcessor is a mock of IToolResultsProcessor interface. +type MockIToolResultsProcessor struct { + ctrl *gomock.Controller + recorder *MockIToolResultsProcessorMockRecorder + isgomock struct{} +} + +// MockIToolResultsProcessorMockRecorder is the mock recorder for MockIToolResultsProcessor. +type MockIToolResultsProcessorMockRecorder struct { + mock *MockIToolResultsProcessor +} + +// NewMockIToolResultsProcessor creates a new mock instance. +func NewMockIToolResultsProcessor(ctrl *gomock.Controller) *MockIToolResultsProcessor { + mock := &MockIToolResultsProcessor{ctrl: ctrl} + mock.recorder = &MockIToolResultsProcessorMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockIToolResultsProcessor) EXPECT() *MockIToolResultsProcessorMockRecorder { + return m.recorder +} + +// ProcessToolResults mocks base method. +func (m *MockIToolResultsProcessor) ProcessToolResults(ctx context.Context, param service.ProcessToolResultsParam) (map[string]string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ProcessToolResults", ctx, param) + ret0, _ := ret[0].(map[string]string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ProcessToolResults indicates an expected call of ProcessToolResults. +func (mr *MockIToolResultsProcessorMockRecorder) ProcessToolResults(ctx, param any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ProcessToolResults", reflect.TypeOf((*MockIToolResultsProcessor)(nil).ProcessToolResults), ctx, param) +} diff --git a/backend/modules/prompt/domain/service/service.go b/backend/modules/prompt/domain/service/service.go index 1a2a11b97..037fb2000 100644 --- a/backend/modules/prompt/domain/service/service.go +++ b/backend/modules/prompt/domain/service/service.go @@ -75,18 +75,18 @@ type PromptLabelQuery struct { } type PromptServiceImpl struct { - formatter IPromptFormatter - toolConfigProvider IToolConfigProvider - contextReorganizer IContextReorganizer - idgen idgen.IIDGenerator - debugLogRepo repo.IDebugLogRepo - debugContextRepo repo.IDebugContextRepo - manageRepo repo.IManageRepo - labelRepo repo.ILabelRepo - configProvider conf.IConfigProvider - llm rpc.ILLMProvider - file rpc.IFileProvider - snippetParser SnippetParser + formatter IPromptFormatter + toolConfigProvider IToolConfigProvider + toolResultsProcessor IToolResultsProcessor + idgen idgen.IIDGenerator + debugLogRepo repo.IDebugLogRepo + debugContextRepo repo.IDebugContextRepo + manageRepo repo.IManageRepo + labelRepo repo.ILabelRepo + configProvider conf.IConfigProvider + llm rpc.ILLMProvider + file rpc.IFileProvider + snippetParser SnippetParser } type GetPromptParam struct { @@ -103,7 +103,7 @@ type GetPromptParam struct { func NewPromptService( formatter IPromptFormatter, toolConfigProvider IToolConfigProvider, - contextReorganizer IContextReorganizer, + toolResultsProcessor IToolResultsProcessor, idgen idgen.IIDGenerator, debugLogRepo repo.IDebugLogRepo, debugContextRepo repo.IDebugContextRepo, @@ -115,17 +115,17 @@ func NewPromptService( snippetParser SnippetParser, ) IPromptService { return &PromptServiceImpl{ - formatter: formatter, - toolConfigProvider: toolConfigProvider, - contextReorganizer: contextReorganizer, - idgen: idgen, - debugLogRepo: debugLogRepo, - debugContextRepo: debugContextRepo, - manageRepo: promptManageRepo, - labelRepo: labelRepo, - configProvider: configProvider, - llm: llm, - file: file, - snippetParser: snippetParser, + formatter: formatter, + toolConfigProvider: toolConfigProvider, + toolResultsProcessor: toolResultsProcessor, + idgen: idgen, + debugLogRepo: debugLogRepo, + debugContextRepo: debugContextRepo, + manageRepo: promptManageRepo, + labelRepo: labelRepo, + configProvider: configProvider, + llm: llm, + file: file, + snippetParser: snippetParser, } } diff --git a/backend/modules/prompt/domain/service/service_test.go b/backend/modules/prompt/domain/service/service_test.go index ef00565b0..b65909cc3 100644 --- a/backend/modules/prompt/domain/service/service_test.go +++ b/backend/modules/prompt/domain/service/service_test.go @@ -25,7 +25,7 @@ func TestNewPromptService(t *testing.T) { // Create mock dependencies mockFormatter := service.NewPromptFormatter() mockToolConfigProvider := servicemocks.NewMockIToolConfigProvider(ctrl) - mockContextReorganizer := servicemocks.NewMockIContextReorganizer(ctrl) + mockToolResultsProcessor := servicemocks.NewMockIToolResultsProcessor(ctrl) mockIDGen := mocks.NewMockIIDGenerator(ctrl) mockDebugLogRepo := repomocks.NewMockIDebugLogRepo(ctrl) mockDebugContextRepo := repomocks.NewMockIDebugContextRepo(ctrl) @@ -39,7 +39,7 @@ func TestNewPromptService(t *testing.T) { svc := service.NewPromptService( mockFormatter, mockToolConfigProvider, - mockContextReorganizer, + mockToolResultsProcessor, mockIDGen, mockDebugLogRepo, mockDebugContextRepo, @@ -65,7 +65,7 @@ func TestNewPromptService(t *testing.T) { mockFormatter := service.NewPromptFormatter() mockToolConfigProvider := servicemocks.NewMockIToolConfigProvider(ctrl) - mockContextReorganizer := servicemocks.NewMockIContextReorganizer(ctrl) + mockToolResultsProcessor := servicemocks.NewMockIToolResultsProcessor(ctrl) mockIDGen := mocks.NewMockIIDGenerator(ctrl) mockDebugLogRepo := repomocks.NewMockIDebugLogRepo(ctrl) mockDebugContextRepo := repomocks.NewMockIDebugContextRepo(ctrl) @@ -78,7 +78,7 @@ func TestNewPromptService(t *testing.T) { svc := service.NewPromptService( mockFormatter, mockToolConfigProvider, - mockContextReorganizer, + mockToolResultsProcessor, mockIDGen, mockDebugLogRepo, mockDebugContextRepo, diff --git a/backend/modules/prompt/domain/service/tool_results_processor.go b/backend/modules/prompt/domain/service/tool_results_processor.go new file mode 100644 index 000000000..66d3ee7b6 --- /dev/null +++ b/backend/modules/prompt/domain/service/tool_results_processor.go @@ -0,0 +1,44 @@ +// Copyright (c) 2025 coze-dev Authors +// SPDX-License-Identifier: Apache-2.0 + +package service + +import ( + "context" + + "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/entity" + loopslices "github.com/coze-dev/coze-loop/backend/pkg/lang/slices" +) + +// ProcessToolResultsParam defines the parameters for processing tool results +type ProcessToolResultsParam struct { + Prompt *entity.Prompt + MockTools []*entity.MockTool + Reply *entity.Reply + ResultStream chan<- *entity.Reply // only used in streaming mode, can be nil + ReplyItemWrapper func(v *entity.ReplyItem) *entity.Reply // only used in streaming mode, can be nil +} + +// IToolResultsProcessor defines the interface for processing tool results +type IToolResultsProcessor interface { + ProcessToolResults(ctx context.Context, param ProcessToolResultsParam) (map[string]string, error) +} + +// ToolResultsProcessor provides the default implementation of IToolResultsProcessor +type ToolResultsProcessor struct{} + +// NewToolResultsProcessor creates a new instance of ToolResultsProcessor +func NewToolResultsProcessor() IToolResultsProcessor { + return &ToolResultsProcessor{} +} + +// ProcessToolResults implements the IToolResultsProcessor interface +func (t *ToolResultsProcessor) ProcessToolResults(ctx context.Context, param ProcessToolResultsParam) (map[string]string, error) { + toolResultMap := loopslices.ToMap(param.MockTools, func(m *entity.MockTool) (string, string) { + if m == nil { + return "", "" + } + return m.Name, m.MockResponse + }) + return toolResultMap, nil +} From 0c6d4dd6876614e6f3bc0100c829ce71436a54d3 Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Tue, 6 Jan 2026 21:15:46 +0800 Subject: [PATCH 18/58] [feat][prompt]: separate tool result map from reorganization --- .../modules/prompt/domain/service/execute.go | 124 +++++++++++------- 1 file changed, 75 insertions(+), 49 deletions(-) diff --git a/backend/modules/prompt/domain/service/execute.go b/backend/modules/prompt/domain/service/execute.go index 994937f9d..933b51770 100644 --- a/backend/modules/prompt/domain/service/execute.go +++ b/backend/modules/prompt/domain/service/execute.go @@ -92,28 +92,48 @@ func (p *PromptServiceImpl) ExecuteStreaming(ctx context.Context, param ExecuteS if err != nil { return nil, err } - aggregatedReply, err = p.doStreamingIteration(ctx, param, replyItemWrapper) - if err != nil { - return nil, err - } - if aggregatedReply != nil && aggregatedReply.Item != nil && aggregatedReply.Item.TokenUsage != nil { - tokenUsage.InputTokens += aggregatedReply.Item.TokenUsage.InputTokens - tokenUsage.OutputTokens += aggregatedReply.Item.TokenUsage.OutputTokens + + // Execute iteration with tracing and tool result processing + var toolResultMap map[string]string + executeIterationWithTracing := func() (reply *entity.Reply, err error) { + var span cozeloop.Span + if !param.DisableTracing { + ctx, span = p.startSequenceSpan(ctx, param.Prompt, param.Messages, param.VariableVals) + defer func() { + p.finishSequenceSpan(ctx, span, reply, err) + }() + } + + reply, err = p.doStreamingIteration(ctx, param, replyItemWrapper) + if err != nil { + return nil, err + } + if reply != nil && reply.Item != nil && reply.Item.TokenUsage != nil { + tokenUsage.InputTokens += reply.Item.TokenUsage.InputTokens + tokenUsage.OutputTokens += reply.Item.TokenUsage.OutputTokens + } + + toolResultMap, err = p.toolResultsProcessor.ProcessToolResults(ctx, ProcessToolResultsParam{ + Prompt: param.Prompt, + MockTools: param.MockTools, + Reply: reply, + ResultStream: param.ResultStream, + ReplyItemWrapper: replyItemWrapper, + }) + if err != nil { + return nil, err + } + if !param.DisableTracing && reply != nil && reply.Item != nil { + p.reportToolSpan(ctx, param.Prompt, toolResultMap, reply.Item) + } + + return reply, nil } - toolResultMap, err := p.toolResultsProcessor.ProcessToolResults(ctx, ProcessToolResultsParam{ - Prompt: param.Prompt, - MockTools: param.MockTools, - Reply: aggregatedReply, - ResultStream: param.ResultStream, - ReplyItemWrapper: replyItemWrapper, - }) + aggregatedReply, err = executeIterationWithTracing() if err != nil { return nil, err } - if !param.DisableTracing && aggregatedReply != nil && aggregatedReply.Item != nil { - p.reportToolSpan(ctx, param.Prompt, toolResultMap, aggregatedReply.Item) - } if !shouldContinue(param.SingleStep, startTime, debugStep, aggregatedReply) { break @@ -154,30 +174,50 @@ func (p *PromptServiceImpl) Execute(ctx context.Context, param ExecuteParam) (re if err != nil { return nil, err } - reply, err = p.doIteration(ctx, param, replyItemWrapper) - if err != nil { - return nil, err - } - if reply != nil && reply.Item != nil && reply.Item.TokenUsage != nil { - tokenUsage.InputTokens += reply.Item.TokenUsage.InputTokens - tokenUsage.OutputTokens += reply.Item.TokenUsage.OutputTokens + + // Execute iteration with tracing and tool result processing + var toolResultMap map[string]string + executeIterationWithTracing := func() (iterReply *entity.Reply, err error) { + var span cozeloop.Span + if !param.DisableTracing { + ctx, span = p.startSequenceSpan(ctx, param.Prompt, param.Messages, param.VariableVals) + defer func() { + p.finishSequenceSpan(ctx, span, iterReply, err) + }() + } + + iterReply, err = p.doIteration(ctx, param, replyItemWrapper) + if err != nil { + return nil, err + } + if iterReply != nil && iterReply.Item != nil && iterReply.Item.TokenUsage != nil { + tokenUsage.InputTokens += iterReply.Item.TokenUsage.InputTokens + tokenUsage.OutputTokens += iterReply.Item.TokenUsage.OutputTokens + } + + // Process tool results and get tool result map + toolResultMap, err = p.toolResultsProcessor.ProcessToolResults(ctx, ProcessToolResultsParam{ + Prompt: param.Prompt, + MockTools: param.MockTools, + Reply: iterReply, + }) + if err != nil { + return nil, err + } + + // Report tool trace + if !param.DisableTracing && iterReply != nil && iterReply.Item != nil { + p.reportToolSpan(ctx, param.Prompt, toolResultMap, iterReply.Item) + } + + return iterReply, nil } - // Process tool results and get tool result map - toolResultMap, err := p.toolResultsProcessor.ProcessToolResults(ctx, ProcessToolResultsParam{ - Prompt: param.Prompt, - MockTools: param.MockTools, - Reply: reply, - }) + reply, err = executeIterationWithTracing() if err != nil { return nil, err } - // Report tool trace - if !param.DisableTracing && reply != nil && reply.Item != nil { - p.reportToolSpan(ctx, param.Prompt, toolResultMap, reply.Item) - } - if !shouldContinue(param.SingleStep, startTime, debugStep, reply) { break } @@ -199,13 +239,6 @@ func (p *PromptServiceImpl) Execute(ctx context.Context, param ExecuteParam) (re } func (p *PromptServiceImpl) doStreamingIteration(ctx context.Context, param ExecuteStreamingParam, replyItemWrapper func(v *entity.ReplyItem) *entity.Reply) (aggregatedReply *entity.Reply, err error) { - var span cozeloop.Span - if !param.DisableTracing { - ctx, span = p.startSequenceSpan(ctx, param.Prompt, param.Messages, param.VariableVals) - defer func() { - p.finishSequenceSpan(ctx, span, aggregatedReply, err) - }() - } var llmCallParam rpc.LLMCallParam llmCallParam, err = p.prepareLLMCallParam(ctx, param.ExecuteParam) if err != nil { @@ -251,13 +284,6 @@ func (p *PromptServiceImpl) doStreamingIteration(ctx context.Context, param Exec } func (p *PromptServiceImpl) doIteration(ctx context.Context, param ExecuteParam, replyItemWrapper func(v *entity.ReplyItem) *entity.Reply) (aggregatedReply *entity.Reply, err error) { - var span cozeloop.Span - if !param.DisableTracing { - ctx, span = p.startSequenceSpan(ctx, param.Prompt, param.Messages, param.VariableVals) - defer func() { - p.finishSequenceSpan(ctx, span, aggregatedReply, err) - }() - } var llmCallParam rpc.LLMCallParam llmCallParam, err = p.prepareLLMCallParam(ctx, param) if err != nil { From 9e2597f2a91a78e1ad76291d2639797fe5354f0b Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Tue, 6 Jan 2026 21:29:06 +0800 Subject: [PATCH 19/58] [feat][prompt]: separate tool result map from reorganization --- .../modules/prompt/domain/service/execute.go | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/backend/modules/prompt/domain/service/execute.go b/backend/modules/prompt/domain/service/execute.go index 933b51770..c3c2f697d 100644 --- a/backend/modules/prompt/domain/service/execute.go +++ b/backend/modules/prompt/domain/service/execute.go @@ -96,15 +96,16 @@ func (p *PromptServiceImpl) ExecuteStreaming(ctx context.Context, param ExecuteS // Execute iteration with tracing and tool result processing var toolResultMap map[string]string executeIterationWithTracing := func() (reply *entity.Reply, err error) { + iterCtx := ctx var span cozeloop.Span if !param.DisableTracing { - ctx, span = p.startSequenceSpan(ctx, param.Prompt, param.Messages, param.VariableVals) + iterCtx, span = p.startSequenceSpan(iterCtx, param.Prompt, param.Messages, param.VariableVals) defer func() { - p.finishSequenceSpan(ctx, span, reply, err) + p.finishSequenceSpan(iterCtx, span, reply, err) }() } - reply, err = p.doStreamingIteration(ctx, param, replyItemWrapper) + reply, err = p.doStreamingIteration(iterCtx, param, replyItemWrapper) if err != nil { return nil, err } @@ -113,7 +114,7 @@ func (p *PromptServiceImpl) ExecuteStreaming(ctx context.Context, param ExecuteS tokenUsage.OutputTokens += reply.Item.TokenUsage.OutputTokens } - toolResultMap, err = p.toolResultsProcessor.ProcessToolResults(ctx, ProcessToolResultsParam{ + toolResultMap, err = p.toolResultsProcessor.ProcessToolResults(iterCtx, ProcessToolResultsParam{ Prompt: param.Prompt, MockTools: param.MockTools, Reply: reply, @@ -124,7 +125,7 @@ func (p *PromptServiceImpl) ExecuteStreaming(ctx context.Context, param ExecuteS return nil, err } if !param.DisableTracing && reply != nil && reply.Item != nil { - p.reportToolSpan(ctx, param.Prompt, toolResultMap, reply.Item) + p.reportToolSpan(iterCtx, param.Prompt, toolResultMap, reply.Item) } return reply, nil @@ -178,15 +179,16 @@ func (p *PromptServiceImpl) Execute(ctx context.Context, param ExecuteParam) (re // Execute iteration with tracing and tool result processing var toolResultMap map[string]string executeIterationWithTracing := func() (iterReply *entity.Reply, err error) { + iterCtx := ctx var span cozeloop.Span if !param.DisableTracing { - ctx, span = p.startSequenceSpan(ctx, param.Prompt, param.Messages, param.VariableVals) + iterCtx, span = p.startSequenceSpan(iterCtx, param.Prompt, param.Messages, param.VariableVals) defer func() { - p.finishSequenceSpan(ctx, span, iterReply, err) + p.finishSequenceSpan(iterCtx, span, iterReply, err) }() } - iterReply, err = p.doIteration(ctx, param, replyItemWrapper) + iterReply, err = p.doIteration(iterCtx, param, replyItemWrapper) if err != nil { return nil, err } @@ -196,7 +198,7 @@ func (p *PromptServiceImpl) Execute(ctx context.Context, param ExecuteParam) (re } // Process tool results and get tool result map - toolResultMap, err = p.toolResultsProcessor.ProcessToolResults(ctx, ProcessToolResultsParam{ + toolResultMap, err = p.toolResultsProcessor.ProcessToolResults(iterCtx, ProcessToolResultsParam{ Prompt: param.Prompt, MockTools: param.MockTools, Reply: iterReply, @@ -207,7 +209,7 @@ func (p *PromptServiceImpl) Execute(ctx context.Context, param ExecuteParam) (re // Report tool trace if !param.DisableTracing && iterReply != nil && iterReply.Item != nil { - p.reportToolSpan(ctx, param.Prompt, toolResultMap, iterReply.Item) + p.reportToolSpan(iterCtx, param.Prompt, toolResultMap, iterReply.Item) } return iterReply, nil From 5589e04ccb415be21d8169465c143fbcc49d8996 Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Wed, 7 Jan 2026 11:17:25 +0800 Subject: [PATCH 20/58] [feat][prompt]: refactor --- backend/modules/prompt/application/wire.go | 2 +- .../modules/prompt/application/wire_gen.go | 10 ++--- .../modules/prompt/domain/service/execute.go | 45 +++++++------------ .../prompt/domain/service/execute_test.go | 16 +++---- .../service/mocks/tool_results_processor.go | 12 ++--- .../modules/prompt/domain/service/service.go | 6 +-- ...processor.go => tool_results_collector.go} | 24 +++++----- 7 files changed, 50 insertions(+), 65 deletions(-) rename backend/modules/prompt/domain/service/{tool_results_processor.go => tool_results_collector.go} (52%) diff --git a/backend/modules/prompt/application/wire.go b/backend/modules/prompt/application/wire.go index 010ea7a9f..9d7960656 100644 --- a/backend/modules/prompt/application/wire.go +++ b/backend/modules/prompt/application/wire.go @@ -38,7 +38,7 @@ var ( promptDomainSet = wire.NewSet( service.NewPromptFormatter, service.NewToolConfigProvider, - service.NewToolResultsProcessor, + service.NewToolResultsCollector, service.NewPromptService, repo.NewManageRepo, repo.NewLabelRepo, diff --git a/backend/modules/prompt/application/wire_gen.go b/backend/modules/prompt/application/wire_gen.go index a11377781..3e03267ed 100644 --- a/backend/modules/prompt/application/wire_gen.go +++ b/backend/modules/prompt/application/wire_gen.go @@ -53,7 +53,7 @@ func InitPromptManageApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, red iLabelRepo := repo.NewLabelRepo(db2, idgen2, meter, iLabelDAO, iCommitLabelMappingDAO, iPromptBasicDAO, iPromptLabelVersionDAO) iPromptFormatter := service.NewPromptFormatter() iToolConfigProvider := service.NewToolConfigProvider() - iToolResultsProcessor := service.NewToolResultsProcessor() + iToolResultsProcessor := service.NewToolResultsCollector() iDebugLogDAO := mysql.NewDebugLogDAO(db2) iDebugLogRepo := repo.NewDebugLogRepo(idgen2, iDebugLogDAO) iDebugContextDAO := mysql.NewDebugContextDAO(db2) @@ -76,7 +76,7 @@ func InitPromptDebugApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, redi iDebugContextRepo := repo.NewDebugContextRepo(idgen2, iDebugContextDAO) iPromptFormatter := service.NewPromptFormatter() iToolConfigProvider := service.NewToolConfigProvider() - iToolResultsProcessor := service.NewToolResultsProcessor() + iToolResultsProcessor := service.NewToolResultsCollector() iPromptBasicDAO := mysql.NewPromptBasicDAO(db2, redisCli) iPromptCommitDAO := mysql.NewPromptCommitDAO(db2, redisCli) iPromptUserDraftDAO := mysql.NewPromptUserDraftDAO(db2, redisCli) @@ -104,7 +104,7 @@ func InitPromptDebugApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, redi func InitPromptExecuteApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, redisCli redis.Cmdable, meter metrics.Meter, configFactory conf.IConfigLoaderFactory, llmClient llmruntimeservice.Client, fileClient fileservice.Client) (execute.PromptExecuteService, error) { iPromptFormatter := service.NewPromptFormatter() iToolConfigProvider := service.NewToolConfigProvider() - iToolResultsProcessor := service.NewToolResultsProcessor() + iToolResultsProcessor := service.NewToolResultsCollector() iDebugLogDAO := mysql.NewDebugLogDAO(db2) iDebugLogRepo := repo.NewDebugLogRepo(idgen2, iDebugLogDAO) iDebugContextDAO := mysql.NewDebugContextDAO(db2) @@ -135,7 +135,7 @@ func InitPromptExecuteApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, re func InitPromptOpenAPIApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, redisCli redis.Cmdable, meter metrics.Meter, configFactory conf.IConfigLoaderFactory, limiterFactory limiter.IRateLimiterFactory, llmClient llmruntimeservice.Client, authClient authservice.Client, fileClient fileservice.Client) (openapi.PromptOpenAPIService, error) { iPromptFormatter := service.NewPromptFormatter() iToolConfigProvider := service.NewToolConfigProvider() - iToolResultsProcessor := service.NewToolResultsProcessor() + iToolResultsProcessor := service.NewToolResultsCollector() iDebugLogDAO := mysql.NewDebugLogDAO(db2) iDebugLogRepo := repo.NewDebugLogRepo(idgen2, iDebugLogDAO) iDebugContextDAO := mysql.NewDebugContextDAO(db2) @@ -171,7 +171,7 @@ func InitPromptOpenAPIApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, re // wire.go: var ( - promptDomainSet = wire.NewSet(service.NewPromptFormatter, service.NewToolConfigProvider, service.NewToolResultsProcessor, service.NewPromptService, repo.NewManageRepo, repo.NewLabelRepo, repo.NewDebugLogRepo, repo.NewDebugContextRepo, mysql.NewPromptBasicDAO, mysql.NewPromptCommitDAO, mysql.NewPromptUserDraftDAO, mysql.NewPromptRelationDAO, mysql.NewLabelDAO, mysql.NewCommitLabelMappingDAO, mysql.NewDebugLogDAO, mysql.NewDebugContextDAO, redis2.NewPromptBasicDAO, redis2.NewPromptDAO, redis2.NewPromptLabelVersionDAO, conf2.NewPromptConfigProvider, rpc.NewLLMRPCProvider, rpc.NewAuthRPCProvider, rpc.NewFileRPCProvider, rpc.NewUserRPCProvider, rpc.NewAuditRPCProvider, collector.NewEventCollectorProvider, service.NewCozeLoopSnippetParser) + promptDomainSet = wire.NewSet(service.NewPromptFormatter, service.NewToolConfigProvider, service.NewToolResultsCollector, service.NewPromptService, repo.NewManageRepo, repo.NewLabelRepo, repo.NewDebugLogRepo, repo.NewDebugContextRepo, mysql.NewPromptBasicDAO, mysql.NewPromptCommitDAO, mysql.NewPromptUserDraftDAO, mysql.NewPromptRelationDAO, mysql.NewLabelDAO, mysql.NewCommitLabelMappingDAO, mysql.NewDebugLogDAO, mysql.NewDebugContextDAO, redis2.NewPromptBasicDAO, redis2.NewPromptDAO, redis2.NewPromptLabelVersionDAO, conf2.NewPromptConfigProvider, rpc.NewLLMRPCProvider, rpc.NewAuthRPCProvider, rpc.NewFileRPCProvider, rpc.NewUserRPCProvider, rpc.NewAuditRPCProvider, collector.NewEventCollectorProvider, service.NewCozeLoopSnippetParser) manageSet = wire.NewSet( NewPromptManageApplication, promptDomainSet, diff --git a/backend/modules/prompt/domain/service/execute.go b/backend/modules/prompt/domain/service/execute.go index c3c2f697d..f8c56516b 100644 --- a/backend/modules/prompt/domain/service/execute.go +++ b/backend/modules/prompt/domain/service/execute.go @@ -52,13 +52,6 @@ type ExecuteStreamingParam struct { ResultStream chan<- *entity.Reply } -// ReorganizeContextParam defines the parameters for reorganizing contexts -type ReorganizeContextParam struct { - Messages []*entity.Message - ToolResultMap map[string]string // map from tool name to tool result - Reply *entity.Reply -} - func (p *PromptServiceImpl) FormatPrompt(ctx context.Context, prompt *entity.Prompt, messages []*entity.Message, variableVals []*entity.VariableVal) (formattedMessages []*entity.Message, err error) { // Delegate to the formatter interface return p.formatter.FormatPrompt(ctx, prompt, messages, variableVals) @@ -95,7 +88,7 @@ func (p *PromptServiceImpl) ExecuteStreaming(ctx context.Context, param ExecuteS // Execute iteration with tracing and tool result processing var toolResultMap map[string]string - executeIterationWithTracing := func() (reply *entity.Reply, err error) { + runAgentStep := func() (reply *entity.Reply, err error) { iterCtx := ctx var span cozeloop.Span if !param.DisableTracing { @@ -114,7 +107,7 @@ func (p *PromptServiceImpl) ExecuteStreaming(ctx context.Context, param ExecuteS tokenUsage.OutputTokens += reply.Item.TokenUsage.OutputTokens } - toolResultMap, err = p.toolResultsProcessor.ProcessToolResults(iterCtx, ProcessToolResultsParam{ + toolResultMap, err = p.toolResultsCollector.CollectToolResults(iterCtx, CollectToolResultsParam{ Prompt: param.Prompt, MockTools: param.MockTools, Reply: reply, @@ -131,7 +124,7 @@ func (p *PromptServiceImpl) ExecuteStreaming(ctx context.Context, param ExecuteS return reply, nil } - aggregatedReply, err = executeIterationWithTracing() + aggregatedReply, err = runAgentStep() if err != nil { return nil, err } @@ -141,11 +134,7 @@ func (p *PromptServiceImpl) ExecuteStreaming(ctx context.Context, param ExecuteS } debugStep++ // 多轮执行需要重新编排上下文 - param.Messages, err = p.reorganizeContexts(ctx, ReorganizeContextParam{ - Messages: param.Messages, - ToolResultMap: toolResultMap, - Reply: aggregatedReply, - }) + param.Messages, err = p.reorganizeContexts(param.Messages, toolResultMap, aggregatedReply) if err != nil { return nil, err } @@ -178,7 +167,7 @@ func (p *PromptServiceImpl) Execute(ctx context.Context, param ExecuteParam) (re // Execute iteration with tracing and tool result processing var toolResultMap map[string]string - executeIterationWithTracing := func() (iterReply *entity.Reply, err error) { + runAgentStep := func() (iterReply *entity.Reply, err error) { iterCtx := ctx var span cozeloop.Span if !param.DisableTracing { @@ -198,7 +187,7 @@ func (p *PromptServiceImpl) Execute(ctx context.Context, param ExecuteParam) (re } // Process tool results and get tool result map - toolResultMap, err = p.toolResultsProcessor.ProcessToolResults(iterCtx, ProcessToolResultsParam{ + toolResultMap, err = p.toolResultsCollector.CollectToolResults(iterCtx, CollectToolResultsParam{ Prompt: param.Prompt, MockTools: param.MockTools, Reply: iterReply, @@ -215,7 +204,7 @@ func (p *PromptServiceImpl) Execute(ctx context.Context, param ExecuteParam) (re return iterReply, nil } - reply, err = executeIterationWithTracing() + reply, err = runAgentStep() if err != nil { return nil, err } @@ -225,11 +214,7 @@ func (p *PromptServiceImpl) Execute(ctx context.Context, param ExecuteParam) (re } debugStep++ // 多轮执行需要重新编排上下文 - param.Messages, err = p.reorganizeContexts(ctx, ReorganizeContextParam{ - Messages: param.Messages, - ToolResultMap: toolResultMap, - Reply: reply, - }) + param.Messages, err = p.reorganizeContexts(param.Messages, toolResultMap, reply) if err != nil { return nil, err } @@ -485,17 +470,17 @@ func shouldContinue(singleStep bool, startTime time.Time, currentStep int32, las } // reorganizeContexts reorganizes the message contexts after each iteration -func (p *PromptServiceImpl) reorganizeContexts(ctx context.Context, param ReorganizeContextParam) ([]*entity.Message, error) { - newContexts := slices.Clone(param.Messages) - if param.Reply == nil || param.Reply.Item == nil || param.Reply.Item.Message == nil { +func (p *PromptServiceImpl) reorganizeContexts(messages []*entity.Message, toolResultMap map[string]string, reply *entity.Reply) ([]*entity.Message, error) { + newContexts := slices.Clone(messages) + if reply == nil || reply.Item == nil || reply.Item.Message == nil { return newContexts, nil } - newContexts = append(newContexts, param.Reply.Item.Message) - if len(param.Reply.Item.Message.ToolCalls) > 0 { + newContexts = append(newContexts, reply.Item.Message) + if len(reply.Item.Message.ToolCalls) > 0 { // 如果有工具调用,则使用 ToolResultMap 填充 tool response - for _, toolCall := range param.Reply.Item.Message.ToolCalls { + for _, toolCall := range reply.Item.Message.ToolCalls { if toolCall.FunctionCall != nil { - toolResult := param.ToolResultMap[toolCall.FunctionCall.Name] + toolResult := toolResultMap[toolCall.FunctionCall.Name] newContexts = append(newContexts, &entity.Message{ Role: entity.RoleTool, ToolCallID: ptr.Of(toolCall.ID), diff --git a/backend/modules/prompt/domain/service/execute_test.go b/backend/modules/prompt/domain/service/execute_test.go index 87bd81733..94ae24de0 100644 --- a/backend/modules/prompt/domain/service/execute_test.go +++ b/backend/modules/prompt/domain/service/execute_test.go @@ -229,7 +229,7 @@ func TestPromptServiceImpl_FormatPrompt(t *testing.T) { p := &PromptServiceImpl{ formatter: NewPromptFormatter(), toolConfigProvider: NewToolConfigProvider(), - toolResultsProcessor: NewToolResultsProcessor(), + toolResultsCollector: NewToolResultsCollector(), idgen: ttFields.idgen, debugLogRepo: ttFields.debugLogRepo, debugContextRepo: ttFields.debugContextRepo, @@ -265,7 +265,7 @@ func TestPromptServiceImpl_ExecuteStreaming(t *testing.T) { p := &PromptServiceImpl{ formatter: NewPromptFormatter(), toolConfigProvider: NewToolConfigProvider(), - toolResultsProcessor: NewToolResultsProcessor(), + toolResultsCollector: NewToolResultsCollector(), } param := ExecuteStreamingParam{ ExecuteParam: ExecuteParam{ @@ -283,7 +283,7 @@ func TestPromptServiceImpl_ExecuteStreaming(t *testing.T) { p := &PromptServiceImpl{ formatter: NewPromptFormatter(), toolConfigProvider: NewToolConfigProvider(), - toolResultsProcessor: NewToolResultsProcessor(), + toolResultsCollector: NewToolResultsCollector(), } param := ExecuteStreamingParam{ ExecuteParam: ExecuteParam{ @@ -351,7 +351,7 @@ func TestPromptServiceImpl_ExecuteStreaming(t *testing.T) { p := &PromptServiceImpl{ formatter: NewPromptFormatter(), toolConfigProvider: NewToolConfigProvider(), - toolResultsProcessor: NewToolResultsProcessor(), + toolResultsCollector: NewToolResultsCollector(), idgen: mockIDGen, llm: mockLLM, } @@ -554,7 +554,7 @@ func TestPromptServiceImpl_ExecuteStreaming(t *testing.T) { p := &PromptServiceImpl{ formatter: NewPromptFormatter(), toolConfigProvider: NewToolConfigProvider(), - toolResultsProcessor: NewToolResultsProcessor(), + toolResultsCollector: NewToolResultsCollector(), idgen: mockIDGen, llm: mockLLM, } @@ -944,7 +944,7 @@ func TestPromptServiceImpl_Execute(t *testing.T) { p := &PromptServiceImpl{ formatter: NewPromptFormatter(), toolConfigProvider: NewToolConfigProvider(), - toolResultsProcessor: NewToolResultsProcessor(), + toolResultsCollector: NewToolResultsCollector(), idgen: ttFields.idgen, debugLogRepo: ttFields.debugLogRepo, debugContextRepo: ttFields.debugContextRepo, @@ -998,7 +998,7 @@ func TestPromptServiceImpl_prepareLLMCallParam_PreservesExtra(t *testing.T) { svc := &PromptServiceImpl{ formatter: NewPromptFormatter(), toolConfigProvider: NewToolConfigProvider(), - toolResultsProcessor: NewToolResultsProcessor(), + toolResultsCollector: NewToolResultsCollector(), } param := ExecuteParam{ Prompt: prompt, @@ -1024,7 +1024,7 @@ func TestPromptServiceImpl_prepareLLMCallParam_ValidationErrors(t *testing.T) { svc := &PromptServiceImpl{ formatter: NewPromptFormatter(), toolConfigProvider: NewToolConfigProvider(), - toolResultsProcessor: NewToolResultsProcessor(), + toolResultsCollector: NewToolResultsCollector(), } tests := []struct { diff --git a/backend/modules/prompt/domain/service/mocks/tool_results_processor.go b/backend/modules/prompt/domain/service/mocks/tool_results_processor.go index 69cb0dfd4..6c3861af6 100644 --- a/backend/modules/prompt/domain/service/mocks/tool_results_processor.go +++ b/backend/modules/prompt/domain/service/mocks/tool_results_processor.go @@ -1,9 +1,9 @@ // Code generated by MockGen. DO NOT EDIT. -// Source: github.com/coze-dev/coze-loop/backend/modules/prompt/domain/service (interfaces: IToolResultsProcessor) +// Source: github.com/coze-dev/coze-loop/backend/modules/prompt/domain/service (interfaces: IToolResultsCollector) // // Generated by this command: // -// mockgen -destination=mocks/tool_results_processor.go -package=mocks . IToolResultsProcessor +// mockgen -destination=mocks/tool_results_collector.go -package=mocks . IToolResultsCollector // // Package mocks is a generated GoMock package. @@ -17,7 +17,7 @@ import ( gomock "go.uber.org/mock/gomock" ) -// MockIToolResultsProcessor is a mock of IToolResultsProcessor interface. +// MockIToolResultsProcessor is a mock of IToolResultsCollector interface. type MockIToolResultsProcessor struct { ctrl *gomock.Controller recorder *MockIToolResultsProcessorMockRecorder @@ -42,9 +42,9 @@ func (m *MockIToolResultsProcessor) EXPECT() *MockIToolResultsProcessorMockRecor } // ProcessToolResults mocks base method. -func (m *MockIToolResultsProcessor) ProcessToolResults(ctx context.Context, param service.ProcessToolResultsParam) (map[string]string, error) { +func (m *MockIToolResultsProcessor) CollectToolResults(ctx context.Context, param service.CollectToolResultsParam) (map[string]string, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ProcessToolResults", ctx, param) + ret := m.ctrl.Call(m, "CollectToolResults", ctx, param) ret0, _ := ret[0].(map[string]string) ret1, _ := ret[1].(error) return ret0, ret1 @@ -53,5 +53,5 @@ func (m *MockIToolResultsProcessor) ProcessToolResults(ctx context.Context, para // ProcessToolResults indicates an expected call of ProcessToolResults. func (mr *MockIToolResultsProcessorMockRecorder) ProcessToolResults(ctx, param any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ProcessToolResults", reflect.TypeOf((*MockIToolResultsProcessor)(nil).ProcessToolResults), ctx, param) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CollectToolResults", reflect.TypeOf((*MockIToolResultsProcessor)(nil).CollectToolResults), ctx, param) } diff --git a/backend/modules/prompt/domain/service/service.go b/backend/modules/prompt/domain/service/service.go index 037fb2000..5b1e8af7a 100644 --- a/backend/modules/prompt/domain/service/service.go +++ b/backend/modules/prompt/domain/service/service.go @@ -77,7 +77,7 @@ type PromptLabelQuery struct { type PromptServiceImpl struct { formatter IPromptFormatter toolConfigProvider IToolConfigProvider - toolResultsProcessor IToolResultsProcessor + toolResultsCollector IToolResultsCollector idgen idgen.IIDGenerator debugLogRepo repo.IDebugLogRepo debugContextRepo repo.IDebugContextRepo @@ -103,7 +103,7 @@ type GetPromptParam struct { func NewPromptService( formatter IPromptFormatter, toolConfigProvider IToolConfigProvider, - toolResultsProcessor IToolResultsProcessor, + toolResultsProcessor IToolResultsCollector, idgen idgen.IIDGenerator, debugLogRepo repo.IDebugLogRepo, debugContextRepo repo.IDebugContextRepo, @@ -117,7 +117,7 @@ func NewPromptService( return &PromptServiceImpl{ formatter: formatter, toolConfigProvider: toolConfigProvider, - toolResultsProcessor: toolResultsProcessor, + toolResultsCollector: toolResultsProcessor, idgen: idgen, debugLogRepo: debugLogRepo, debugContextRepo: debugContextRepo, diff --git a/backend/modules/prompt/domain/service/tool_results_processor.go b/backend/modules/prompt/domain/service/tool_results_collector.go similarity index 52% rename from backend/modules/prompt/domain/service/tool_results_processor.go rename to backend/modules/prompt/domain/service/tool_results_collector.go index 66d3ee7b6..d7e4f2084 100644 --- a/backend/modules/prompt/domain/service/tool_results_processor.go +++ b/backend/modules/prompt/domain/service/tool_results_collector.go @@ -10,8 +10,8 @@ import ( loopslices "github.com/coze-dev/coze-loop/backend/pkg/lang/slices" ) -// ProcessToolResultsParam defines the parameters for processing tool results -type ProcessToolResultsParam struct { +// CollectToolResultsParam defines the parameters for processing tool results +type CollectToolResultsParam struct { Prompt *entity.Prompt MockTools []*entity.MockTool Reply *entity.Reply @@ -19,21 +19,21 @@ type ProcessToolResultsParam struct { ReplyItemWrapper func(v *entity.ReplyItem) *entity.Reply // only used in streaming mode, can be nil } -// IToolResultsProcessor defines the interface for processing tool results -type IToolResultsProcessor interface { - ProcessToolResults(ctx context.Context, param ProcessToolResultsParam) (map[string]string, error) +// IToolResultsCollector defines the interface for processing tool results +type IToolResultsCollector interface { + CollectToolResults(ctx context.Context, param CollectToolResultsParam) (map[string]string, error) } -// ToolResultsProcessor provides the default implementation of IToolResultsProcessor -type ToolResultsProcessor struct{} +// ToolResultsCollector provides the default implementation of IToolResultsCollector +type ToolResultsCollector struct{} -// NewToolResultsProcessor creates a new instance of ToolResultsProcessor -func NewToolResultsProcessor() IToolResultsProcessor { - return &ToolResultsProcessor{} +// NewToolResultsCollector creates a new instance of ToolResultsCollector +func NewToolResultsCollector() IToolResultsCollector { + return &ToolResultsCollector{} } -// ProcessToolResults implements the IToolResultsProcessor interface -func (t *ToolResultsProcessor) ProcessToolResults(ctx context.Context, param ProcessToolResultsParam) (map[string]string, error) { +// CollectToolResults ProcessToolResults implements the IToolResultsCollector interface +func (t *ToolResultsCollector) CollectToolResults(ctx context.Context, param CollectToolResultsParam) (map[string]string, error) { toolResultMap := loopslices.ToMap(param.MockTools, func(m *entity.MockTool) (string, string) { if m == nil { return "", "" From 9828aed64a4412407905c5a4cbe69853c794690e Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Wed, 7 Jan 2026 14:41:11 +0800 Subject: [PATCH 21/58] ut (vibe-kanban 62dc0838) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 看一下feat/prompt\_sync\_1222这个分支和main的diff,帮我补齐所有差异的ut,并确保完整的ut测试通过,其中需要mock的统一使用mockgen来生成,你可参考其他test文件 写完之后,你可以使用go test ./... -v | grep FAIL 来测试 --- .../prompt/domain/service/formatter_test.go | 19 ++++++- ...processor.go => tool_results_collector.go} | 32 +++++------ .../prompt/domain/service/service_test.go | 4 +- .../prompt/domain/service/tool_config_test.go | 5 +- .../domain/service/tool_results_collector.go | 12 ++--- .../service/tool_results_collector_test.go | 54 +++++++++++++++++++ 6 files changed, 100 insertions(+), 26 deletions(-) rename backend/modules/prompt/domain/service/mocks/{tool_results_processor.go => tool_results_collector.go} (53%) create mode 100644 backend/modules/prompt/domain/service/tool_results_collector_test.go diff --git a/backend/modules/prompt/domain/service/formatter_test.go b/backend/modules/prompt/domain/service/formatter_test.go index b977fedaf..e71df3017 100644 --- a/backend/modules/prompt/domain/service/formatter_test.go +++ b/backend/modules/prompt/domain/service/formatter_test.go @@ -256,7 +256,7 @@ func TestPromptFormatter_FormatPrompt(t *testing.T) { assert.Error(t, err) } else { assert.NoError(t, err) - assert.Equal(t, tt.wantFormattedMessages, gotFormattedMessages) + assert.Equal(t, normalizeSkipRenderMessages(tt.wantFormattedMessages), normalizeSkipRenderMessages(gotFormattedMessages)) } }) } @@ -268,3 +268,20 @@ func TestNewPromptFormatter(t *testing.T) { // Verify it implements the interface _ = formatter } + +func normalizeSkipRenderMessages(messages []*entity.Message) []*entity.Message { + if messages == nil { + return nil + } + out := make([]*entity.Message, 0, len(messages)) + for _, message := range messages { + if message == nil { + out = append(out, nil) + continue + } + copied := *message + copied.SkipRender = nil + out = append(out, &copied) + } + return out +} diff --git a/backend/modules/prompt/domain/service/mocks/tool_results_processor.go b/backend/modules/prompt/domain/service/mocks/tool_results_collector.go similarity index 53% rename from backend/modules/prompt/domain/service/mocks/tool_results_processor.go rename to backend/modules/prompt/domain/service/mocks/tool_results_collector.go index 6c3861af6..77bf2922c 100644 --- a/backend/modules/prompt/domain/service/mocks/tool_results_processor.go +++ b/backend/modules/prompt/domain/service/mocks/tool_results_collector.go @@ -17,32 +17,32 @@ import ( gomock "go.uber.org/mock/gomock" ) -// MockIToolResultsProcessor is a mock of IToolResultsCollector interface. -type MockIToolResultsProcessor struct { +// MockIToolResultsCollector is a mock of IToolResultsCollector interface. +type MockIToolResultsCollector struct { ctrl *gomock.Controller - recorder *MockIToolResultsProcessorMockRecorder + recorder *MockIToolResultsCollectorMockRecorder isgomock struct{} } -// MockIToolResultsProcessorMockRecorder is the mock recorder for MockIToolResultsProcessor. -type MockIToolResultsProcessorMockRecorder struct { - mock *MockIToolResultsProcessor +// MockIToolResultsCollectorMockRecorder is the mock recorder for MockIToolResultsCollector. +type MockIToolResultsCollectorMockRecorder struct { + mock *MockIToolResultsCollector } -// NewMockIToolResultsProcessor creates a new mock instance. -func NewMockIToolResultsProcessor(ctrl *gomock.Controller) *MockIToolResultsProcessor { - mock := &MockIToolResultsProcessor{ctrl: ctrl} - mock.recorder = &MockIToolResultsProcessorMockRecorder{mock} +// NewMockIToolResultsCollector creates a new mock instance. +func NewMockIToolResultsCollector(ctrl *gomock.Controller) *MockIToolResultsCollector { + mock := &MockIToolResultsCollector{ctrl: ctrl} + mock.recorder = &MockIToolResultsCollectorMockRecorder{mock} return mock } // EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockIToolResultsProcessor) EXPECT() *MockIToolResultsProcessorMockRecorder { +func (m *MockIToolResultsCollector) EXPECT() *MockIToolResultsCollectorMockRecorder { return m.recorder } -// ProcessToolResults mocks base method. -func (m *MockIToolResultsProcessor) CollectToolResults(ctx context.Context, param service.CollectToolResultsParam) (map[string]string, error) { +// CollectToolResults mocks base method. +func (m *MockIToolResultsCollector) CollectToolResults(ctx context.Context, param service.CollectToolResultsParam) (map[string]string, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "CollectToolResults", ctx, param) ret0, _ := ret[0].(map[string]string) @@ -50,8 +50,8 @@ func (m *MockIToolResultsProcessor) CollectToolResults(ctx context.Context, para return ret0, ret1 } -// ProcessToolResults indicates an expected call of ProcessToolResults. -func (mr *MockIToolResultsProcessorMockRecorder) ProcessToolResults(ctx, param any) *gomock.Call { +// CollectToolResults indicates an expected call of CollectToolResults. +func (mr *MockIToolResultsCollectorMockRecorder) CollectToolResults(ctx, param any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CollectToolResults", reflect.TypeOf((*MockIToolResultsProcessor)(nil).CollectToolResults), ctx, param) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CollectToolResults", reflect.TypeOf((*MockIToolResultsCollector)(nil).CollectToolResults), ctx, param) } diff --git a/backend/modules/prompt/domain/service/service_test.go b/backend/modules/prompt/domain/service/service_test.go index b65909cc3..22f92bfb8 100644 --- a/backend/modules/prompt/domain/service/service_test.go +++ b/backend/modules/prompt/domain/service/service_test.go @@ -25,7 +25,7 @@ func TestNewPromptService(t *testing.T) { // Create mock dependencies mockFormatter := service.NewPromptFormatter() mockToolConfigProvider := servicemocks.NewMockIToolConfigProvider(ctrl) - mockToolResultsProcessor := servicemocks.NewMockIToolResultsProcessor(ctrl) + mockToolResultsProcessor := servicemocks.NewMockIToolResultsCollector(ctrl) mockIDGen := mocks.NewMockIIDGenerator(ctrl) mockDebugLogRepo := repomocks.NewMockIDebugLogRepo(ctrl) mockDebugContextRepo := repomocks.NewMockIDebugContextRepo(ctrl) @@ -65,7 +65,7 @@ func TestNewPromptService(t *testing.T) { mockFormatter := service.NewPromptFormatter() mockToolConfigProvider := servicemocks.NewMockIToolConfigProvider(ctrl) - mockToolResultsProcessor := servicemocks.NewMockIToolResultsProcessor(ctrl) + mockToolResultsProcessor := servicemocks.NewMockIToolResultsCollector(ctrl) mockIDGen := mocks.NewMockIIDGenerator(ctrl) mockDebugLogRepo := repomocks.NewMockIDebugLogRepo(ctrl) mockDebugContextRepo := repomocks.NewMockIDebugContextRepo(ctrl) diff --git a/backend/modules/prompt/domain/service/tool_config_test.go b/backend/modules/prompt/domain/service/tool_config_test.go index a97be3e13..8a942c765 100644 --- a/backend/modules/prompt/domain/service/tool_config_test.go +++ b/backend/modules/prompt/domain/service/tool_config_test.go @@ -5,11 +5,13 @@ package service import ( "context" + "strings" "testing" "github.com/stretchr/testify/assert" "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/entity" + "github.com/coze-dev/coze-loop/backend/pkg/errorx" ) func TestToolConfigProvider_GetToolConfig(t *testing.T) { @@ -120,7 +122,8 @@ func TestToolConfigProvider_GetToolConfig(t *testing.T) { t.Run(tt.name, func(t *testing.T) { gotTools, gotConfig, err := provider.GetToolConfig(context.Background(), tt.prompt, tt.singleStep) if tt.wantErr != "" { - assert.EqualError(t, err, tt.wantErr) + assert.Error(t, err) + assert.Equal(t, tt.wantErr, strings.TrimSpace(errorx.ErrorWithoutStack(err))) return } assert.NoError(t, err) diff --git a/backend/modules/prompt/domain/service/tool_results_collector.go b/backend/modules/prompt/domain/service/tool_results_collector.go index d7e4f2084..48c58145e 100644 --- a/backend/modules/prompt/domain/service/tool_results_collector.go +++ b/backend/modules/prompt/domain/service/tool_results_collector.go @@ -7,7 +7,6 @@ import ( "context" "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/entity" - loopslices "github.com/coze-dev/coze-loop/backend/pkg/lang/slices" ) // CollectToolResultsParam defines the parameters for processing tool results @@ -34,11 +33,12 @@ func NewToolResultsCollector() IToolResultsCollector { // CollectToolResults ProcessToolResults implements the IToolResultsCollector interface func (t *ToolResultsCollector) CollectToolResults(ctx context.Context, param CollectToolResultsParam) (map[string]string, error) { - toolResultMap := loopslices.ToMap(param.MockTools, func(m *entity.MockTool) (string, string) { - if m == nil { - return "", "" + toolResultMap := make(map[string]string, len(param.MockTools)) + for _, mockTool := range param.MockTools { + if mockTool == nil || mockTool.Name == "" { + continue } - return m.Name, m.MockResponse - }) + toolResultMap[mockTool.Name] = mockTool.MockResponse + } return toolResultMap, nil } diff --git a/backend/modules/prompt/domain/service/tool_results_collector_test.go b/backend/modules/prompt/domain/service/tool_results_collector_test.go new file mode 100644 index 000000000..c6901c410 --- /dev/null +++ b/backend/modules/prompt/domain/service/tool_results_collector_test.go @@ -0,0 +1,54 @@ +// Copyright (c) 2025 coze-dev Authors +// SPDX-License-Identifier: Apache-2.0 + +package service + +import ( + "context" + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/entity" +) + +func TestToolResultsCollector_CollectToolResults(t *testing.T) { + collector := NewToolResultsCollector() + + t.Run("nil mock tools returns empty map", func(t *testing.T) { + got, err := collector.CollectToolResults(context.Background(), CollectToolResultsParam{ + MockTools: nil, + }) + assert.NoError(t, err) + assert.Empty(t, got) + }) + + t.Run("builds tool result map", func(t *testing.T) { + got, err := collector.CollectToolResults(context.Background(), CollectToolResultsParam{ + MockTools: []*entity.MockTool{ + {Name: "tool_a", MockResponse: "{\"ok\":true}"}, + {Name: "tool_b", MockResponse: "b"}, + }, + }) + assert.NoError(t, err) + assert.Equal(t, map[string]string{ + "tool_a": "{\"ok\":true}", + "tool_b": "b", + }, got) + }) + + t.Run("skips nil and empty name entries", func(t *testing.T) { + got, err := collector.CollectToolResults(context.Background(), CollectToolResultsParam{ + MockTools: []*entity.MockTool{ + nil, + {Name: "", MockResponse: "ignored"}, + {Name: "tool_a", MockResponse: "a"}, + }, + }) + assert.NoError(t, err) + assert.Equal(t, map[string]string{ + "tool_a": "a", + }, got) + }) +} + From 59f49f1e92911154e5ecb503f90470f0cb2519ac Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Wed, 7 Jan 2026 14:55:59 +0800 Subject: [PATCH 22/58] ut (vibe-kanban 793afb18) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @/Users/bytedance/GolandProjects/coze-loop/backend/modules/prompt/domain/service/tool\_results\_collector\_test.go 需要使用mock ,使用mockgen 在@/Users/bytedance/GolandProjects/coze-loop/backend/modules/prompt/domain/service/mocks 中生成mock方法并使用,你可以参考 tool\_config\_test --- .../domain/service/tool_results_collector.go | 1 + .../service/tool_results_collector_test.go | 83 +++++++++++++++++-- 2 files changed, 79 insertions(+), 5 deletions(-) diff --git a/backend/modules/prompt/domain/service/tool_results_collector.go b/backend/modules/prompt/domain/service/tool_results_collector.go index 48c58145e..e677e7980 100644 --- a/backend/modules/prompt/domain/service/tool_results_collector.go +++ b/backend/modules/prompt/domain/service/tool_results_collector.go @@ -19,6 +19,7 @@ type CollectToolResultsParam struct { } // IToolResultsCollector defines the interface for processing tool results +//go:generate mockgen -destination=mocks/tool_results_collector.go -package=mocks . IToolResultsCollector type IToolResultsCollector interface { CollectToolResults(ctx context.Context, param CollectToolResultsParam) (map[string]string, error) } diff --git a/backend/modules/prompt/domain/service/tool_results_collector_test.go b/backend/modules/prompt/domain/service/tool_results_collector_test.go index c6901c410..f8df8aa09 100644 --- a/backend/modules/prompt/domain/service/tool_results_collector_test.go +++ b/backend/modules/prompt/domain/service/tool_results_collector_test.go @@ -1,22 +1,28 @@ // Copyright (c) 2025 coze-dev Authors // SPDX-License-Identifier: Apache-2.0 -package service +package service_test import ( "context" "testing" "github.com/stretchr/testify/assert" + "go.uber.org/mock/gomock" + idgenmocks "github.com/coze-dev/coze-loop/backend/infra/idgen/mocks" + rpcmocks "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/component/rpc/mocks" "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/entity" + "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/service" + servicemocks "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/service/mocks" + "github.com/coze-dev/coze-loop/backend/pkg/lang/ptr" ) func TestToolResultsCollector_CollectToolResults(t *testing.T) { - collector := NewToolResultsCollector() + collector := service.NewToolResultsCollector() t.Run("nil mock tools returns empty map", func(t *testing.T) { - got, err := collector.CollectToolResults(context.Background(), CollectToolResultsParam{ + got, err := collector.CollectToolResults(context.Background(), service.CollectToolResultsParam{ MockTools: nil, }) assert.NoError(t, err) @@ -24,7 +30,7 @@ func TestToolResultsCollector_CollectToolResults(t *testing.T) { }) t.Run("builds tool result map", func(t *testing.T) { - got, err := collector.CollectToolResults(context.Background(), CollectToolResultsParam{ + got, err := collector.CollectToolResults(context.Background(), service.CollectToolResultsParam{ MockTools: []*entity.MockTool{ {Name: "tool_a", MockResponse: "{\"ok\":true}"}, {Name: "tool_b", MockResponse: "b"}, @@ -38,7 +44,7 @@ func TestToolResultsCollector_CollectToolResults(t *testing.T) { }) t.Run("skips nil and empty name entries", func(t *testing.T) { - got, err := collector.CollectToolResults(context.Background(), CollectToolResultsParam{ + got, err := collector.CollectToolResults(context.Background(), service.CollectToolResultsParam{ MockTools: []*entity.MockTool{ nil, {Name: "", MockResponse: "ignored"}, @@ -52,3 +58,70 @@ func TestToolResultsCollector_CollectToolResults(t *testing.T) { }) } +func TestPromptServiceImpl_Execute_UsesToolResultsCollector(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockToolConfigProvider := servicemocks.NewMockIToolConfigProvider(ctrl) + mockToolResultsCollector := servicemocks.NewMockIToolResultsCollector(ctrl) + mockIDGen := idgenmocks.NewMockIIDGenerator(ctrl) + mockLLM := rpcmocks.NewMockILLMProvider(ctrl) + + prompt := &entity.Prompt{ + ID: 2, + SpaceID: 1, + PromptKey: "prompt_key", + } + mockTools := []*entity.MockTool{ + {Name: "tool_a", MockResponse: "a"}, + } + + mockIDGen.EXPECT().GenID(gomock.Any()).Return(int64(123456789), nil) + mockToolConfigProvider.EXPECT(). + GetToolConfig(gomock.Any(), gomock.Any(), gomock.Any()). + Return(nil, nil, nil) + mockLLM.EXPECT(). + Call(gomock.Any(), gomock.Any()). + Return(&entity.ReplyItem{ + Message: &entity.Message{ + Role: entity.RoleAssistant, + Content: ptr.Of("ok"), + }, + }, nil) + mockToolResultsCollector.EXPECT(). + CollectToolResults(gomock.Any(), gomock.Any()). + DoAndReturn(func(ctx context.Context, param service.CollectToolResultsParam) (map[string]string, error) { + assert.Same(t, prompt, param.Prompt) + assert.Equal(t, mockTools, param.MockTools) + assert.NotNil(t, param.Reply) + assert.NotNil(t, param.Reply.Item) + return map[string]string{"tool_a": "a"}, nil + }) + + svc := service.NewPromptService( + service.NewPromptFormatter(), + mockToolConfigProvider, + mockToolResultsCollector, + mockIDGen, + nil, + nil, + nil, + nil, + nil, + mockLLM, + nil, + service.NewCozeLoopSnippetParser(), + ) + + reply, err := svc.Execute(context.Background(), service.ExecuteParam{ + Prompt: prompt, + SingleStep: true, + DisableTracing: true, + MockTools: mockTools, + }) + assert.NoError(t, err) + assert.NotNil(t, reply) + assert.NotNil(t, reply.Item) + assert.NotNil(t, reply.Item.Message) + assert.Equal(t, "ok", ptr.From(reply.Item.Message.Content)) +} From ac35cf3967f1fdba705a86cfd406c1dc9b5cce6c Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Wed, 7 Jan 2026 15:16:53 +0800 Subject: [PATCH 23/58] [feat][prompt]: go lint --- backend/modules/prompt/domain/service/tool_results_collector.go | 1 + 1 file changed, 1 insertion(+) diff --git a/backend/modules/prompt/domain/service/tool_results_collector.go b/backend/modules/prompt/domain/service/tool_results_collector.go index e677e7980..236f09f61 100644 --- a/backend/modules/prompt/domain/service/tool_results_collector.go +++ b/backend/modules/prompt/domain/service/tool_results_collector.go @@ -19,6 +19,7 @@ type CollectToolResultsParam struct { } // IToolResultsCollector defines the interface for processing tool results +// //go:generate mockgen -destination=mocks/tool_results_collector.go -package=mocks . IToolResultsCollector type IToolResultsCollector interface { CollectToolResults(ctx context.Context, param CollectToolResultsParam) (map[string]string, error) From ee476b81b17569e10401583fd67fc4432071b943 Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Wed, 7 Jan 2026 16:21:39 +0800 Subject: [PATCH 24/58] ut (vibe-kanban b25bde48) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 参考下面的ut报告帮我补充一下对应的ut ❌ Patch coverage is `76.68919%` with `69 lines` in your changes missing coverage. Please review. [Files with missing lines](https://app.codecov.io/gh/coze-dev/coze-loop/pull/355?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=coze-dev)Patch %Lines [backend/modules/prompt/application/openapi.go](https://app.codecov.io/gh/coze-dev/coze-loop/pull/355?src=pr&el=tree&filepath=backend%2Fmodules%2Fprompt%2Fapplication%2Fopenapi.go&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=coze-dev#diff-YmFja2VuZC9tb2R1bGVzL3Byb21wdC9hcHBsaWNhdGlvbi9vcGVuYXBpLmdv) 15.78% [29 Missing and 3 partials ⚠️](https://app.codecov.io/gh/coze-dev/coze-loop/pull/355?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=coze-dev) [...nd/modules/prompt/application/convertor/openapi.go](https://app.codecov.io/gh/coze-dev/coze-loop/pull/355?src=pr&el=tree&filepath=backend%2Fmodules%2Fprompt%2Fapplication%2Fconvertor%2Fopenapi.go&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=coze-dev#diff-YmFja2VuZC9tb2R1bGVzL3Byb21wdC9hcHBsaWNhdGlvbi9jb252ZXJ0b3Ivb3BlbmFwaS5nbw==) 77.77% [10 Missing and 10 partials ⚠️](https://app.codecov.io/gh/coze-dev/coze-loop/pull/355?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=coze-dev) [backend/modules/prompt/domain/service/execute.go](https://app.codecov.io/gh/coze-dev/coze-loop/pull/355?src=pr&el=tree&filepath=backend%2Fmodules%2Fprompt%2Fdomain%2Fservice%2Fexecute.go&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=coze-dev#diff-YmFja2VuZC9tb2R1bGVzL3Byb21wdC9kb21haW4vc2VydmljZS9leGVjdXRlLmdv) 89.61% [4 Missing and 4 partials ⚠️](https://app.codecov.io/gh/coze-dev/coze-loop/pull/355?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=coze-dev) [...kend/modules/prompt/domain/entity/prompt\_detail.go](https://app.codecov.io/gh/coze-dev/coze-loop/pull/355?src=pr&el=tree&filepath=backend%2Fmodules%2Fprompt%2Fdomain%2Fentity%2Fprompt_detail.go&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=coze-dev#diff-YmFja2VuZC9tb2R1bGVzL3Byb21wdC9kb21haW4vZW50aXR5L3Byb21wdF9kZXRhaWwuZ28=) 83.33% [3 Missing and 2 partials ⚠️](https://app.codecov.io/gh/coze-dev/coze-loop/pull/355?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=coze-dev) [...end/modules/prompt/application/convertor/prompt.go](https://app.codecov.io/gh/coze-dev/coze-loop/pull/355?src=pr&el=tree&filepath=backend%2Fmodules%2Fprompt%2Fapplication%2Fconvertor%2Fprompt.go&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=coze-dev#diff-YmFja2VuZC9tb2R1bGVzL3Byb21wdC9hcHBsaWNhdGlvbi9jb252ZXJ0b3IvcHJvbXB0Lmdv) 84.61% [2 Missing and 2 partials ⚠️](https://app.codecov.io/gh/coze-dev/coze-loop/pull/355?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=coze-dev) ❌ Your patch check has failed because the patch coverage (76.68%) is below the target coverage (80.00%). You can increase the patch coverage or adjust the [target](https://docs.codecov.com/docs/commit-status#target) coverage. [![Impacted file tree graph](https://camo.githubusercontent.com/f72f15574daff346298f0d18a8e0eb0647a91ef2042b383e5da8f19e06d8ed10/68747470733a2f2f6170702e636f6465636f762e696f2f67682f636f7a652d6465762f636f7a652d6c6f6f702f70756c6c2f3335352f6772617068732f747265652e7376673f77696474683d363530266865696768743d313530267372633d707226746f6b656e3d52505751574b544f56382675746d5f6d656469756d3d726566657272616c2675746d5f736f757263653d6769746875622675746d5f636f6e74656e743d636f6d6d656e742675746d5f63616d706169676e3d70722b636f6d6d656e74732675746d5f7465726d3d636f7a652d646576)](https://app.codecov.io/gh/coze-dev/coze-loop/pull/355?src=pr&el=tree&utm\_medium=referral&utm\_source=github&utm\_content=comment&utm\_campaign=pr+comments&utm\_term=coze-dev) ```javascript @@ Coverage Diff @@ ## main #355 +/- ## ======================================== Coverage 69.76% 69.77% ======================================== Files 616 618 +2 Lines 58291 58501 +210 ======================================== + Hits 40666 40818 +152 - Misses 14637 14680 +43 - Partials 2988 3003 +15 ``` [Flag](https://app.codecov.io/gh/coze-dev/coze-loop/pull/355/flags?src=pr&el=flags&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=coze-dev)Coverage Δ [unittests](https://app.codecov.io/gh/coze-dev/coze-loop/pull/355/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=coze-dev) `69.77% <76.68%> (+<0.01%)` ⬆️ Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=coze-dev#carryforward-flags-in-the-pull-request-comment) to find out more. [Files with missing lines](https://app.codecov.io/gh/coze-dev/coze-loop/pull/355?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=coze-dev)Coverage Δ [backend/modules/prompt/domain/service/service.go](https://app.codecov.io/gh/coze-dev/coze-loop/pull/355?src=pr&el=tree&filepath=backend%2Fmodules%2Fprompt%2Fdomain%2Fservice%2Fservice.go&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=coze-dev#diff-YmFja2VuZC9tb2R1bGVzL3Byb21wdC9kb21haW4vc2VydmljZS9zZXJ2aWNlLmdv) `100.00% <100.00%> (ø)` [...ckend/modules/prompt/domain/service/tool\_config.go](https://app.codecov.io/gh/coze-dev/coze-loop/pull/355?src=pr&el=tree&filepath=backend%2Fmodules%2Fprompt%2Fdomain%2Fservice%2Ftool_config.go&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=coze-dev#diff-YmFja2VuZC9tb2R1bGVzL3Byb21wdC9kb21haW4vc2VydmljZS90b29sX2NvbmZpZy5nbw==) `100.00% <100.00%> (ø)` [...es/prompt/domain/service/tool\_results\_collector.go](https://app.codecov.io/gh/coze-dev/coze-loop/pull/355?src=pr&el=tree&filepath=backend%2Fmodules%2Fprompt%2Fdomain%2Fservice%2Ftool_results_collector.go&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=coze-dev#diff-YmFja2VuZC9tb2R1bGVzL3Byb21wdC9kb21haW4vc2VydmljZS90b29sX3Jlc3VsdHNfY29sbGVjdG9yLmdv) `100.00% <100.00%> (ø)` [...end/modules/prompt/application/convertor/prompt.go](https://app.codecov.io/gh/coze-dev/coze-loop/pull/355?src=pr&el=tree&filepath=backend%2Fmodules%2Fprompt%2Fapplication%2Fconvertor%2Fprompt.go&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=coze-dev#diff-YmFja2VuZC9tb2R1bGVzL3Byb21wdC9hcHBsaWNhdGlvbi9jb252ZXJ0b3IvcHJvbXB0Lmdv) `83.46% <84.61%> (+0.01%)` ⬆️ [...kend/modules/prompt/domain/entity/prompt\_detail.go](https://app.codecov.io/gh/coze-dev/coze-loop/pull/355?src=pr&el=tree&filepath=backend%2Fmodules%2Fprompt%2Fdomain%2Fentity%2Fprompt_detail.go&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=coze-dev#diff-YmFja2VuZC9tb2R1bGVzL3Byb21wdC9kb21haW4vZW50aXR5L3Byb21wdF9kZXRhaWwuZ28=) `85.31% <83.33%> (-0.94%)` ⬇️ [backend/modules/prompt/domain/service/execute.go](https://app.codecov.io/gh/coze-dev/coze-loop/pull/355?src=pr&el=tree&filepath=backend%2Fmodules%2Fprompt%2Fdomain%2Fservice%2Fexecute.go&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=coze-dev#diff-YmFja2VuZC9tb2R1bGVzL3Byb21wdC9kb21haW4vc2VydmljZS9leGVjdXRlLmdv) `77.21% <89.61%> (+0.50%)` ⬆️ [...nd/modules/prompt/application/convertor/openapi.go](https://app.codecov.io/gh/coze-dev/coze-loop/pull/355?src=pr&el=tree&filepath=backend%2Fmodules%2Fprompt%2Fapplication%2Fconvertor%2Fopenapi.go&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=coze-dev#diff-YmFja2VuZC9tb2R1bGVzL3Byb21wdC9hcHBsaWNhdGlvbi9jb252ZXJ0b3Ivb3BlbmFwaS5nbw==) `89.24% <77.77%> (-3.24%)` ⬇️ [backend/modules/prompt/application/openapi.go](https://app.codecov.io/gh/coze-dev/coze-loop/pull/355?src=pr&el=tree&filepath=backend%2Fmodules%2Fprompt%2Fapplication%2Fopenapi.go&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=coze-dev#diff-YmFja2VuZC9tb2R1bGVzL3Byb21wdC9hcHBsaWNhdGlvbi9vcGVuYXBpLmdv) `85.92% <15.78%> (-5.39%)` ⬇️ --- .../application/convertor/openapi_test.go | 56 ++++++ .../openapi_custom_overrides_test.go | 165 ++++++++++++++++++ .../domain/entity/prompt_detail_test.go | 28 +++ .../prompt/domain/service/execute_test.go | 148 ++++++++++++++++ 4 files changed, 397 insertions(+) create mode 100644 backend/modules/prompt/application/openapi_custom_overrides_test.go diff --git a/backend/modules/prompt/application/convertor/openapi_test.go b/backend/modules/prompt/application/convertor/openapi_test.go index 934fc8d51..9e99cb77e 100755 --- a/backend/modules/prompt/application/convertor/openapi_test.go +++ b/backend/modules/prompt/application/convertor/openapi_test.go @@ -671,6 +671,35 @@ func TestOpenAPIContentPartDO2DTO(t *testing.T) { VideoURL: ptr.Of("https://example.com/video.mp4"), }, }, + { + name: "video url empty string keeps nil in dto", + do: &entity.ContentPart{ + Type: entity.ContentTypeVideoURL, + VideoURL: &entity.VideoURL{ + URL: "", + }, + MediaConfig: &entity.MediaConfig{}, + }, + want: &openapi.ContentPart{ + Type: ptr.Of(openapi.ContentTypeVideoURL), + }, + }, + { + name: "media config with nil fps keeps nil config", + do: &entity.ContentPart{ + Type: entity.ContentTypeVideoURL, + VideoURL: &entity.VideoURL{ + URL: "https://example.com/video.mp4", + }, + MediaConfig: &entity.MediaConfig{ + Fps: nil, + }, + }, + want: &openapi.ContentPart{ + Type: ptr.Of(openapi.ContentTypeVideoURL), + VideoURL: ptr.Of("https://example.com/video.mp4"), + }, + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { @@ -1418,6 +1447,33 @@ func TestOpenAPIBatchContentPartDTO2DO(t *testing.T) { }, }, }, + { + name: "video url empty string and nil config handling", + dtos: []*openapi.ContentPart{ + { + Type: ptr.Of(openapi.ContentTypeVideoURL), + VideoURL: ptr.Of(""), + }, + { + Type: ptr.Of(openapi.ContentTypeVideoURL), + VideoURL: ptr.Of("https://example.com/video.mp4"), + Config: nil, + }, + }, + want: []*entity.ContentPart{ + { + Type: entity.ContentTypeVideoURL, + VideoURL: nil, + }, + { + Type: entity.ContentTypeVideoURL, + VideoURL: &entity.VideoURL{ + URL: "https://example.com/video.mp4", + }, + MediaConfig: nil, + }, + }, + }, { name: "base64 video carries fps without video url", dtos: []*openapi.ContentPart{ diff --git a/backend/modules/prompt/application/openapi_custom_overrides_test.go b/backend/modules/prompt/application/openapi_custom_overrides_test.go new file mode 100644 index 000000000..96851f7ff --- /dev/null +++ b/backend/modules/prompt/application/openapi_custom_overrides_test.go @@ -0,0 +1,165 @@ +// Copyright (c) 2025 coze-dev Authors +// SPDX-License-Identifier: Apache-2.0 + +package application + +import ( + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/prompt/openapi" + "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/entity" + "github.com/coze-dev/coze-loop/backend/pkg/lang/ptr" +) + +func TestPromptOpenAPIApplicationImpl_applyCustomOverrides(t *testing.T) { + t.Parallel() + + app := &PromptOpenAPIApplicationImpl{} + + t.Run("nil input", func(t *testing.T) { + t.Parallel() + + got, err := app.applyCustomOverrides(nil, nil) + assert.NoError(t, err) + assert.Nil(t, got) + }) + + t.Run("no overrides returns original", func(t *testing.T) { + t.Parallel() + + original := &entity.Prompt{ + ID: 1, + SpaceID: 2, + PromptKey: "k", + PromptCommit: &entity.PromptCommit{ + PromptDetail: &entity.PromptDetail{}, + }, + } + + got, err := app.applyCustomOverrides(original, &openapi.ExecuteRequest{}) + assert.NoError(t, err) + assert.Same(t, original, got) + }) + + t.Run("override with missing commit/detail returns original", func(t *testing.T) { + t.Parallel() + + original := &entity.Prompt{ID: 1} + req := &openapi.ExecuteRequest{ + CustomTools: []*openapi.Tool{ + {Type: ptr.Of(openapi.ToolTypeFunction)}, + }, + } + got, err := app.applyCustomOverrides(original, req) + assert.NoError(t, err) + assert.Same(t, original, got) + + original = &entity.Prompt{ID: 1, PromptCommit: &entity.PromptCommit{}} + got, err = app.applyCustomOverrides(original, req) + assert.NoError(t, err) + assert.Same(t, original, got) + }) + + t.Run("override tools deep-copies and does not mutate original", func(t *testing.T) { + t.Parallel() + + original := &entity.Prompt{ + ID: 1, + SpaceID: 2, + PromptKey: "k", + PromptCommit: &entity.PromptCommit{ + PromptDetail: &entity.PromptDetail{ + Tools: []*entity.Tool{ + {Type: entity.ToolTypeFunction, Function: &entity.Function{Name: "old"}}, + }, + }, + }, + } + req := &openapi.ExecuteRequest{ + CustomTools: []*openapi.Tool{ + { + Type: ptr.Of(openapi.ToolTypeFunction), + Function: &openapi.Function{ + Name: ptr.Of("new"), + Description: ptr.Of("desc"), + Parameters: ptr.Of(`{}`), + }, + }, + }, + } + + got, err := app.applyCustomOverrides(original, req) + assert.NoError(t, err) + assert.NotSame(t, original, got) + + assert.Equal(t, "old", original.PromptCommit.PromptDetail.Tools[0].Function.Name) + assert.Equal(t, "new", got.PromptCommit.PromptDetail.Tools[0].Function.Name) + }) + + t.Run("override toolcall config and model config", func(t *testing.T) { + t.Parallel() + + original := &entity.Prompt{ + ID: 1, + SpaceID: 2, + PromptKey: "k", + PromptCommit: &entity.PromptCommit{ + PromptDetail: &entity.PromptDetail{ + ToolCallConfig: &entity.ToolCallConfig{ + ToolChoice: entity.ToolChoiceTypeNone, + }, + ModelConfig: &entity.ModelConfig{ + ModelID: 1, + }, + }, + }, + } + req := &openapi.ExecuteRequest{ + CustomToolCallConfig: &openapi.ToolCallConfig{ + ToolChoice: ptr.Of(openapi.ToolChoiceTypeAuto), + }, + CustomModelConfig: &openapi.ModelConfig{ + ModelID: ptr.Of(int64(123)), + Temperature: ptr.Of(0.7), + }, + } + + got, err := app.applyCustomOverrides(original, req) + assert.NoError(t, err) + assert.NotSame(t, original, got) + + assert.Equal(t, entity.ToolChoiceTypeNone, original.PromptCommit.PromptDetail.ToolCallConfig.ToolChoice) + assert.Equal(t, entity.ToolChoiceTypeAuto, got.PromptCommit.PromptDetail.ToolCallConfig.ToolChoice) + + assert.Equal(t, int64(1), original.PromptCommit.PromptDetail.ModelConfig.ModelID) + assert.Equal(t, int64(123), got.PromptCommit.PromptDetail.ModelConfig.ModelID) + assert.Equal(t, ptr.Of(0.7), got.PromptCommit.PromptDetail.ModelConfig.Temperature) + }) + + t.Run("custom model config with model_id unset/0 does not override", func(t *testing.T) { + t.Parallel() + + original := &entity.Prompt{ + ID: 1, + SpaceID: 2, + PromptKey: "k", + PromptCommit: &entity.PromptCommit{ + PromptDetail: &entity.PromptDetail{ + ModelConfig: &entity.ModelConfig{ModelID: 7}, + }, + }, + } + req := &openapi.ExecuteRequest{ + CustomModelConfig: &openapi.ModelConfig{ + ModelID: ptr.Of(int64(0)), // IsSetModelID=true but value=0 + }, + } + + got, err := app.applyCustomOverrides(original, req) + assert.NoError(t, err) + assert.NotSame(t, original, got) + assert.Equal(t, int64(7), got.PromptCommit.PromptDetail.ModelConfig.ModelID) + }) +} diff --git a/backend/modules/prompt/domain/entity/prompt_detail_test.go b/backend/modules/prompt/domain/entity/prompt_detail_test.go index 558abcf56..1e089a535 100644 --- a/backend/modules/prompt/domain/entity/prompt_detail_test.go +++ b/backend/modules/prompt/domain/entity/prompt_detail_test.go @@ -448,6 +448,34 @@ func TestCmpEqual(t *testing.T) { fmt.Printf("!nil cmp nil = %t\n", cmp.Equal(&PromptDetail{}, pd2)) // false } +func TestPromptTemplate_getTemplateMessages_SkipRenderHandling(t *testing.T) { + t.Parallel() + + templateMsg := &Message{ + Role: RoleUser, + Content: ptr.Of("pt {{name}}"), + } + inputMsg := &Message{ + Role: RoleSystem, + Content: ptr.Of("in {{name}}"), + SkipRender: ptr.Of(true), + } + pt := &PromptTemplate{ + TemplateType: TemplateTypeNormal, + Messages: []*Message{ + nil, + templateMsg, + }, + } + + got := pt.getTemplateMessages([]*Message{inputMsg}) + assert.Len(t, got, 2) + assert.Same(t, templateMsg, got[0]) + assert.Equal(t, ptr.Of(false), got[0].SkipRender) + assert.Same(t, inputMsg, got[1]) + assert.Equal(t, ptr.Of(true), got[1].SkipRender) +} + func TestConvertVariablesToMap(t *testing.T) { tests := []struct { name string diff --git a/backend/modules/prompt/domain/service/execute_test.go b/backend/modules/prompt/domain/service/execute_test.go index 94ae24de0..d44142730 100644 --- a/backend/modules/prompt/domain/service/execute_test.go +++ b/backend/modules/prompt/domain/service/execute_test.go @@ -6,12 +6,14 @@ package service import ( "context" "testing" + "time" "github.com/stretchr/testify/assert" "go.uber.org/mock/gomock" "github.com/coze-dev/coze-loop/backend/infra/idgen" idgenmocks "github.com/coze-dev/coze-loop/backend/infra/idgen/mocks" + "github.com/coze-dev/coze-loop/backend/infra/looptracer" "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/component/conf" "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/component/rpc" rpcmocks "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/component/rpc/mocks" @@ -21,6 +23,8 @@ import ( "github.com/coze-dev/coze-loop/backend/pkg/errorx" "github.com/coze-dev/coze-loop/backend/pkg/lang/ptr" "github.com/coze-dev/coze-loop/backend/pkg/unittest" + loopentity "github.com/coze-dev/cozeloop-go/entity" + "github.com/coze-dev/cozeloop-go/spec/tracespec" ) func TestPromptServiceImpl_FormatPrompt(t *testing.T) { @@ -1294,3 +1298,147 @@ func TestPromptServiceImpl_prepareLLMCallParam_ValidationErrors(t *testing.T) { }) } } + +func TestPromptServiceImpl_reorganizeContexts_ToolResultMap(t *testing.T) { + t.Parallel() + + p := &PromptServiceImpl{} + reply := &entity.Reply{ + Item: &entity.ReplyItem{ + Message: &entity.Message{ + Role: entity.RoleAssistant, + Content: ptr.Of("assistant"), + ToolCalls: []*entity.ToolCall{ + { + ID: "call_1", + FunctionCall: &entity.FunctionCall{ + Name: "tool_a", + Arguments: ptr.Of(`{"k":"v"}`), + }, + }, + }, + }, + }, + } + + got, err := p.reorganizeContexts( + []*entity.Message{{Role: entity.RoleUser, Content: ptr.Of("user")}}, + map[string]string{"tool_a": "tool output"}, + reply, + ) + assert.NoError(t, err) + assert.Len(t, got, 3) + assert.Equal(t, entity.RoleUser, got[0].Role) + assert.Equal(t, entity.RoleAssistant, got[1].Role) + assert.Equal(t, entity.RoleTool, got[2].Role) + assert.Equal(t, ptr.Of("call_1"), got[2].ToolCallID) + assert.Equal(t, ptr.Of("tool output"), got[2].Content) +} + +func TestPromptServiceImpl_reportToolSpan_UsesToolResultMap(t *testing.T) { + t.Parallel() + + originalTracer := looptracer.GetTracer() + recorder := &recordingTracer{} + looptracer.InitTracer(recorder) + t.Cleanup(func() { looptracer.InitTracer(originalTracer) }) + + p := &PromptServiceImpl{} + prompt := &entity.Prompt{ + SpaceID: 42, + PromptKey: "pk", + PromptCommit: &entity.PromptCommit{ + CommitInfo: &entity.CommitInfo{Version: "v1"}, + }, + } + args := ptr.Of(`{"a":1}`) + replyItem := &entity.ReplyItem{ + Message: &entity.Message{ + ToolCalls: []*entity.ToolCall{ + { + ID: "call_1", + FunctionCall: &entity.FunctionCall{ + Name: "tool_a", + Arguments: args, + }, + }, + }, + }, + } + + p.reportToolSpan(context.Background(), prompt, map[string]string{"tool_a": "tool output"}, replyItem) + + if assert.Len(t, recorder.spans, 1) { + assert.Equal(t, "tool output", recorder.spans[0].output) + assert.Same(t, args, recorder.spans[0].input) + assert.Equal(t, loopentity.Prompt{PromptKey: "pk", Version: "v1"}, recorder.spans[0].prompt) + assert.True(t, recorder.spans[0].finished) + } +} + +type recordingTracer struct { + spans []*recordingSpan +} + +func (r *recordingTracer) StartSpan(ctx context.Context, name, spanType string, _ ...looptracer.StartSpanOption) (context.Context, looptracer.Span) { + span := &recordingSpan{name: name, spanType: spanType, startTime: time.Now()} + r.spans = append(r.spans, span) + return ctx, span +} + +func (r *recordingTracer) GetSpanFromContext(ctx context.Context) looptracer.Span { return nil } +func (r *recordingTracer) Flush(ctx context.Context) {} +func (r *recordingTracer) Inject(ctx context.Context) context.Context { return ctx } +func (r *recordingTracer) InjectW3CTraceContext(ctx context.Context) map[string]string { + return map[string]string{} +} + +type recordingSpan struct { + name string + spanType string + startTime time.Time + + input any + output any + prompt loopentity.Prompt + finished bool +} + +func (s *recordingSpan) SetServiceName(ctx context.Context, serviceName string) {} +func (s *recordingSpan) SetLogID(ctx context.Context, logID string) {} +func (s *recordingSpan) SetFinishTime(finishTime time.Time) {} +func (s *recordingSpan) SetSystemTags(ctx context.Context, systemTags map[string]interface{}) { +} +func (s *recordingSpan) SetDeploymentEnv(ctx context.Context, deploymentEnv string) {} +func (s *recordingSpan) GetSpanID() string { return "" } +func (s *recordingSpan) GetTraceID() string { return "" } +func (s *recordingSpan) GetBaggage() map[string]string { return nil } +func (s *recordingSpan) SetInput(ctx context.Context, input interface{}) { s.input = input } +func (s *recordingSpan) SetOutput(ctx context.Context, output interface{}) { s.output = output } +func (s *recordingSpan) SetError(ctx context.Context, err error) {} +func (s *recordingSpan) SetStatusCode(ctx context.Context, code int) {} +func (s *recordingSpan) SetUserID(ctx context.Context, userID string) {} +func (s *recordingSpan) SetUserIDBaggage(ctx context.Context, userID string) {} +func (s *recordingSpan) SetMessageID(ctx context.Context, messageID string) {} +func (s *recordingSpan) SetMessageIDBaggage(ctx context.Context, messageID string) {} +func (s *recordingSpan) SetThreadID(ctx context.Context, threadID string) {} +func (s *recordingSpan) SetThreadIDBaggage(ctx context.Context, threadID string) {} +func (s *recordingSpan) SetPrompt(ctx context.Context, prompt loopentity.Prompt) { s.prompt = prompt } +func (s *recordingSpan) SetModelProvider(ctx context.Context, modelProvider string) { +} +func (s *recordingSpan) SetModelName(ctx context.Context, modelName string) {} +func (s *recordingSpan) SetModelCallOptions(ctx context.Context, callOptions interface{}) { +} +func (s *recordingSpan) SetInputTokens(ctx context.Context, inputTokens int) {} +func (s *recordingSpan) SetOutputTokens(ctx context.Context, outputTokens int) { +} +func (s *recordingSpan) SetStartTimeFirstResp(ctx context.Context, startTimeFirstResp int64) { +} +func (s *recordingSpan) SetRuntime(ctx context.Context, runtime tracespec.Runtime) {} +func (s *recordingSpan) SetTags(ctx context.Context, tagKVs map[string]interface{}) { +} +func (s *recordingSpan) SetBaggage(ctx context.Context, baggageItems map[string]string) {} +func (s *recordingSpan) Finish(ctx context.Context) { s.finished = true } +func (s *recordingSpan) GetStartTime() time.Time { return s.startTime } +func (s *recordingSpan) ToHeader() (map[string]string, error) { return map[string]string{}, nil } +func (s *recordingSpan) SetCallType(callType string) {} From e1e30931ae4074e8e4cbb3b76579b0f8457cc7b1 Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Wed, 7 Jan 2026 16:30:16 +0800 Subject: [PATCH 25/58] [feat][prompt]: go lint --- backend/modules/prompt/domain/service/execute_test.go | 1 + 1 file changed, 1 insertion(+) diff --git a/backend/modules/prompt/domain/service/execute_test.go b/backend/modules/prompt/domain/service/execute_test.go index d44142730..88b410b84 100644 --- a/backend/modules/prompt/domain/service/execute_test.go +++ b/backend/modules/prompt/domain/service/execute_test.go @@ -1432,6 +1432,7 @@ func (s *recordingSpan) SetModelCallOptions(ctx context.Context, callOptions int func (s *recordingSpan) SetInputTokens(ctx context.Context, inputTokens int) {} func (s *recordingSpan) SetOutputTokens(ctx context.Context, outputTokens int) { } + func (s *recordingSpan) SetStartTimeFirstResp(ctx context.Context, startTimeFirstResp int64) { } func (s *recordingSpan) SetRuntime(ctx context.Context, runtime tracespec.Runtime) {} From 8f2beee3241f4e97dbd08dd42ac5ace1ef2b479f Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Thu, 8 Jan 2026 15:10:28 +0800 Subject: [PATCH 26/58] [feat][prompt]: tool config add ctx --- .../modules/prompt/domain/service/execute.go | 34 +++++++++---------- .../prompt/domain/service/execute_test.go | 4 +-- .../service/mocks/tool_config_provider.go | 11 +++--- .../prompt/domain/service/tool_config.go | 12 ++++--- .../prompt/domain/service/tool_config_test.go | 2 +- .../service/tool_results_collector_test.go | 4 ++- 6 files changed, 36 insertions(+), 31 deletions(-) diff --git a/backend/modules/prompt/domain/service/execute.go b/backend/modules/prompt/domain/service/execute.go index f8c56516b..3aca23fa0 100644 --- a/backend/modules/prompt/domain/service/execute.go +++ b/backend/modules/prompt/domain/service/execute.go @@ -98,7 +98,7 @@ func (p *PromptServiceImpl) ExecuteStreaming(ctx context.Context, param ExecuteS }() } - reply, err = p.doStreamingIteration(iterCtx, param, replyItemWrapper) + iterCtx, reply, err = p.doStreamingIteration(iterCtx, param, replyItemWrapper) if err != nil { return nil, err } @@ -177,7 +177,7 @@ func (p *PromptServiceImpl) Execute(ctx context.Context, param ExecuteParam) (re }() } - iterReply, err = p.doIteration(iterCtx, param, replyItemWrapper) + iterCtx, iterReply, err = p.doIteration(iterCtx, param, replyItemWrapper) if err != nil { return nil, err } @@ -225,11 +225,11 @@ func (p *PromptServiceImpl) Execute(ctx context.Context, param ExecuteParam) (re return reply, nil } -func (p *PromptServiceImpl) doStreamingIteration(ctx context.Context, param ExecuteStreamingParam, replyItemWrapper func(v *entity.ReplyItem) *entity.Reply) (aggregatedReply *entity.Reply, err error) { +func (p *PromptServiceImpl) doStreamingIteration(ctx context.Context, param ExecuteStreamingParam, replyItemWrapper func(v *entity.ReplyItem) *entity.Reply) (newCtx context.Context, aggregatedReply *entity.Reply, err error) { var llmCallParam rpc.LLMCallParam - llmCallParam, err = p.prepareLLMCallParam(ctx, param.ExecuteParam) + newCtx, llmCallParam, err = p.prepareLLMCallParam(ctx, param.ExecuteParam) if err != nil { - return nil, err + return newCtx, nil, err } var aggregatedResult *entity.ReplyItem @@ -263,25 +263,25 @@ func (p *PromptServiceImpl) doStreamingIteration(ctx context.Context, param Exec select { //nolint:staticcheck case err = <-errChan: if err != nil { - return nil, err + return newCtx, nil, err } } - return replyItemWrapper(aggregatedResult), nil + return newCtx, replyItemWrapper(aggregatedResult), nil } -func (p *PromptServiceImpl) doIteration(ctx context.Context, param ExecuteParam, replyItemWrapper func(v *entity.ReplyItem) *entity.Reply) (aggregatedReply *entity.Reply, err error) { +func (p *PromptServiceImpl) doIteration(ctx context.Context, param ExecuteParam, replyItemWrapper func(v *entity.ReplyItem) *entity.Reply) (newCtx context.Context, aggregatedReply *entity.Reply, err error) { var llmCallParam rpc.LLMCallParam - llmCallParam, err = p.prepareLLMCallParam(ctx, param) + newCtx, llmCallParam, err = p.prepareLLMCallParam(ctx, param) if err != nil { - return nil, err + return newCtx, nil, err } var aggregatedResult *entity.ReplyItem aggregatedResult, err = p.llm.Call(ctx, llmCallParam) if err != nil { - return nil, err + return newCtx, nil, err } - return replyItemWrapper(aggregatedResult), nil + return newCtx, replyItemWrapper(aggregatedResult), nil } func getReplyItemWrapper(debugID int64, debugStep int32) (func(v *entity.ReplyItem) *entity.Reply, error) { @@ -393,16 +393,16 @@ func (p *PromptServiceImpl) finishSequenceSpan(ctx context.Context, span cozeloo span.Finish(ctx) } -func (p *PromptServiceImpl) prepareLLMCallParam(ctx context.Context, param ExecuteParam) (rpc.LLMCallParam, error) { +func (p *PromptServiceImpl) prepareLLMCallParam(ctx context.Context, param ExecuteParam) (context.Context, rpc.LLMCallParam, error) { // format messages using the formatter interface messages, err := p.formatter.FormatPrompt(ctx, param.Prompt, param.Messages, param.VariableVals) if err != nil { - return rpc.LLMCallParam{}, err + return ctx, rpc.LLMCallParam{}, err } // get tool configuration using the tool config provider interface - tools, toolCallConfig, err := p.toolConfigProvider.GetToolConfig(ctx, param.Prompt, param.SingleStep) + ctx, tools, toolCallConfig, err := p.toolConfigProvider.GetToolConfig(ctx, param.Prompt, param.SingleStep) if err != nil { - return rpc.LLMCallParam{}, err + return ctx, rpc.LLMCallParam{}, err } var modelConfig *entity.ModelConfig promptDetail := param.Prompt.GetPromptDetail() @@ -413,7 +413,7 @@ func (p *PromptServiceImpl) prepareLLMCallParam(ctx context.Context, param Execu if userIDStr, ok := session.UserIDInCtx(ctx); ok { userID = ptr.Of(userIDStr) } - return rpc.LLMCallParam{ + return ctx, rpc.LLMCallParam{ SpaceID: param.Prompt.SpaceID, PromptID: param.Prompt.ID, PromptKey: param.Prompt.PromptKey, diff --git a/backend/modules/prompt/domain/service/execute_test.go b/backend/modules/prompt/domain/service/execute_test.go index 88b410b84..fc44e5cce 100644 --- a/backend/modules/prompt/domain/service/execute_test.go +++ b/backend/modules/prompt/domain/service/execute_test.go @@ -1015,7 +1015,7 @@ func TestPromptServiceImpl_prepareLLMCallParam_PreservesExtra(t *testing.T) { VariableVals: nil, Scenario: entity.ScenarioPromptDebug, } - got, err := svc.prepareLLMCallParam(context.Background(), param) + _, got, err := svc.prepareLLMCallParam(context.Background(), param) assert.NoError(t, err) if assert.NotNil(t, got.ModelConfig) { assert.Equal(t, extra, got.ModelConfig.Extra) @@ -1282,7 +1282,7 @@ func TestPromptServiceImpl_prepareLLMCallParam_ValidationErrors(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { t.Parallel() - got, err := svc.prepareLLMCallParam(context.Background(), tt.param) + _, got, err := svc.prepareLLMCallParam(context.Background(), tt.param) if tt.wantErr { assert.Error(t, err) if tt.errContains != "" { diff --git a/backend/modules/prompt/domain/service/mocks/tool_config_provider.go b/backend/modules/prompt/domain/service/mocks/tool_config_provider.go index bbd2b7498..6d9dd8009 100644 --- a/backend/modules/prompt/domain/service/mocks/tool_config_provider.go +++ b/backend/modules/prompt/domain/service/mocks/tool_config_provider.go @@ -42,13 +42,14 @@ func (m *MockIToolConfigProvider) EXPECT() *MockIToolConfigProviderMockRecorder } // GetToolConfig mocks base method. -func (m *MockIToolConfigProvider) GetToolConfig(ctx context.Context, prompt *entity.Prompt, singleStep bool) ([]*entity.Tool, *entity.ToolCallConfig, error) { +func (m *MockIToolConfigProvider) GetToolConfig(ctx context.Context, prompt *entity.Prompt, singleStep bool) (context.Context, []*entity.Tool, *entity.ToolCallConfig, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetToolConfig", ctx, prompt, singleStep) - ret0, _ := ret[0].([]*entity.Tool) - ret1, _ := ret[1].(*entity.ToolCallConfig) - ret2, _ := ret[2].(error) - return ret0, ret1, ret2 + ret0, _ := ret[0].(context.Context) + ret1, _ := ret[1].([]*entity.Tool) + ret2, _ := ret[2].(*entity.ToolCallConfig) + ret3, _ := ret[3].(error) + return ret0, ret1, ret2, ret3 } // GetToolConfig indicates an expected call of GetToolConfig. diff --git a/backend/modules/prompt/domain/service/tool_config.go b/backend/modules/prompt/domain/service/tool_config.go index c2f149b2b..45184d0f1 100644 --- a/backend/modules/prompt/domain/service/tool_config.go +++ b/backend/modules/prompt/domain/service/tool_config.go @@ -12,7 +12,7 @@ import ( // IToolConfigProvider defines the interface for extracting tool definitions and configuration type IToolConfigProvider interface { - GetToolConfig(ctx context.Context, prompt *entity.Prompt, singleStep bool) (tools []*entity.Tool, toolCallConfig *entity.ToolCallConfig, err error) + GetToolConfig(ctx context.Context, prompt *entity.Prompt, singleStep bool) (newCtx context.Context, tools []*entity.Tool, toolCallConfig *entity.ToolCallConfig, err error) } // ToolConfigProvider provides the default implementation of IToolConfigProvider @@ -24,7 +24,9 @@ func NewToolConfigProvider() IToolConfigProvider { } // GetToolConfig implements the IToolConfigProvider interface -func (t *ToolConfigProvider) GetToolConfig(ctx context.Context, prompt *entity.Prompt, singleStep bool) (tools []*entity.Tool, toolCallConfig *entity.ToolCallConfig, err error) { +func (t *ToolConfigProvider) GetToolConfig(ctx context.Context, prompt *entity.Prompt, singleStep bool) (newCtx context.Context, tools []*entity.Tool, toolCallConfig *entity.ToolCallConfig, err error) { + newCtx = ctx + promptDetail := prompt.GetPromptDetail() if promptDetail != nil { if promptDetail.ToolCallConfig != nil && promptDetail.ToolCallConfig.ToolChoice != entity.ToolChoiceTypeNone { @@ -37,13 +39,13 @@ func (t *ToolConfigProvider) GetToolConfig(ctx context.Context, prompt *entity.P if toolCallConfig != nil && toolCallConfig.ToolChoice == entity.ToolChoiceTypeSpecific { // When tool choice is specific, must be in single step mode if !singleStep { - return nil, nil, errorx.New("tool choice specific must be used with single step mode to avoid infinite loops") + return newCtx, nil, nil, errorx.New("tool choice specific must be used with single step mode to avoid infinite loops") } // ToolChoiceSpecification must not be empty if toolCallConfig.ToolChoiceSpecification == nil { - return nil, nil, errorx.New("tool_choice_specification must not be empty when tool choice is specific") + return newCtx, nil, nil, errorx.New("tool_choice_specification must not be empty when tool choice is specific") } } - return tools, toolCallConfig, nil + return newCtx, tools, toolCallConfig, nil } diff --git a/backend/modules/prompt/domain/service/tool_config_test.go b/backend/modules/prompt/domain/service/tool_config_test.go index 8a942c765..936d9fab7 100644 --- a/backend/modules/prompt/domain/service/tool_config_test.go +++ b/backend/modules/prompt/domain/service/tool_config_test.go @@ -120,7 +120,7 @@ func TestToolConfigProvider_GetToolConfig(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - gotTools, gotConfig, err := provider.GetToolConfig(context.Background(), tt.prompt, tt.singleStep) + _, gotTools, gotConfig, err := provider.GetToolConfig(context.Background(), tt.prompt, tt.singleStep) if tt.wantErr != "" { assert.Error(t, err) assert.Equal(t, tt.wantErr, strings.TrimSpace(errorx.ErrorWithoutStack(err))) diff --git a/backend/modules/prompt/domain/service/tool_results_collector_test.go b/backend/modules/prompt/domain/service/tool_results_collector_test.go index f8df8aa09..f62a4be07 100644 --- a/backend/modules/prompt/domain/service/tool_results_collector_test.go +++ b/backend/modules/prompt/domain/service/tool_results_collector_test.go @@ -79,7 +79,9 @@ func TestPromptServiceImpl_Execute_UsesToolResultsCollector(t *testing.T) { mockIDGen.EXPECT().GenID(gomock.Any()).Return(int64(123456789), nil) mockToolConfigProvider.EXPECT(). GetToolConfig(gomock.Any(), gomock.Any(), gomock.Any()). - Return(nil, nil, nil) + DoAndReturn(func(ctx context.Context, prompt *entity.Prompt, singleStep bool) (context.Context, []*entity.Tool, *entity.ToolCallConfig, error) { + return ctx, nil, nil, nil + }) mockLLM.EXPECT(). Call(gomock.Any(), gomock.Any()). Return(&entity.ReplyItem{ From 0c7439925c9af3558b9f052b5a952afe22e9b798 Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Tue, 13 Jan 2026 20:23:14 +0800 Subject: [PATCH 27/58] [feat][prompt]: add response api --- .../openapi/coze.loop.prompt.openapi.go | 410 +++++++++++++++++- .../coze.loop.prompt.openapi_validator.go | 8 + .../openapi/k-coze.loop.prompt.openapi.go | 284 ++++++++++++ .../prompt/coze.loop.prompt.openapi.thrift | 7 + 4 files changed, 708 insertions(+), 1 deletion(-) diff --git a/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi.go b/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi.go index bfefc52b5..37cf07fea 100644 --- a/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi.go +++ b/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi.go @@ -1261,7 +1261,9 @@ type ExecuteRequest struct { CustomToolCallConfig *ToolCallConfig `thrift:"custom_tool_call_config,21,optional" frugal:"21,optional,ToolCallConfig" form:"custom_tool_call_config" json:"custom_tool_call_config,omitempty"` // 自定义模型配置 CustomModelConfig *ModelConfig `thrift:"custom_model_config,22,optional" frugal:"22,optional,ModelConfig" form:"custom_model_config" json:"custom_model_config,omitempty"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` + // response api 配置 + ResponseAPIConfig *ResponseAPIConfig `thrift:"response_api_config,23,optional" frugal:"23,optional,ResponseAPIConfig" form:"response_api_config" json:"response_api_config,omitempty"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } func NewExecuteRequest() *ExecuteRequest { @@ -1355,6 +1357,18 @@ func (p *ExecuteRequest) GetCustomModelConfig() (v *ModelConfig) { return p.CustomModelConfig } +var ExecuteRequest_ResponseAPIConfig_DEFAULT *ResponseAPIConfig + +func (p *ExecuteRequest) GetResponseAPIConfig() (v *ResponseAPIConfig) { + if p == nil { + return + } + if !p.IsSetResponseAPIConfig() { + return ExecuteRequest_ResponseAPIConfig_DEFAULT + } + return p.ResponseAPIConfig +} + var ExecuteRequest_Base_DEFAULT *base.Base func (p *ExecuteRequest) GetBase() (v *base.Base) { @@ -1387,6 +1401,9 @@ func (p *ExecuteRequest) SetCustomToolCallConfig(val *ToolCallConfig) { func (p *ExecuteRequest) SetCustomModelConfig(val *ModelConfig) { p.CustomModelConfig = val } +func (p *ExecuteRequest) SetResponseAPIConfig(val *ResponseAPIConfig) { + p.ResponseAPIConfig = val +} func (p *ExecuteRequest) SetBase(val *base.Base) { p.Base = val } @@ -1399,6 +1416,7 @@ var fieldIDToName_ExecuteRequest = map[int16]string{ 20: "custom_tools", 21: "custom_tool_call_config", 22: "custom_model_config", + 23: "response_api_config", 255: "Base", } @@ -1430,6 +1448,10 @@ func (p *ExecuteRequest) IsSetCustomModelConfig() bool { return p.CustomModelConfig != nil } +func (p *ExecuteRequest) IsSetResponseAPIConfig() bool { + return p.ResponseAPIConfig != nil +} + func (p *ExecuteRequest) IsSetBase() bool { return p.Base != nil } @@ -1508,6 +1530,14 @@ func (p *ExecuteRequest) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 23: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField23(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } case 255: if fieldTypeId == thrift.STRUCT { if err = p.ReadField255(iprot); err != nil { @@ -1649,6 +1679,14 @@ func (p *ExecuteRequest) ReadField22(iprot thrift.TProtocol) error { p.CustomModelConfig = _field return nil } +func (p *ExecuteRequest) ReadField23(iprot thrift.TProtocol) error { + _field := NewResponseAPIConfig() + if err := _field.Read(iprot); err != nil { + return err + } + p.ResponseAPIConfig = _field + return nil +} func (p *ExecuteRequest) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBase() if err := _field.Read(iprot); err != nil { @@ -1692,6 +1730,10 @@ func (p *ExecuteRequest) Write(oprot thrift.TProtocol) (err error) { fieldId = 22 goto WriteFieldError } + if err = p.writeField23(oprot); err != nil { + fieldId = 23 + goto WriteFieldError + } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -1864,6 +1906,24 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 22 end error: ", p), err) } +func (p *ExecuteRequest) writeField23(oprot thrift.TProtocol) (err error) { + if p.IsSetResponseAPIConfig() { + if err = oprot.WriteFieldBegin("response_api_config", thrift.STRUCT, 23); err != nil { + goto WriteFieldBeginError + } + if err := p.ResponseAPIConfig.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 23 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 23 end error: ", p), err) +} func (p *ExecuteRequest) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBase() { if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { @@ -1918,6 +1978,9 @@ func (p *ExecuteRequest) DeepEqual(ano *ExecuteRequest) bool { if !p.Field22DeepEqual(ano.CustomModelConfig) { return false } + if !p.Field23DeepEqual(ano.ResponseAPIConfig) { + return false + } if !p.Field255DeepEqual(ano.Base) { return false } @@ -1996,6 +2059,13 @@ func (p *ExecuteRequest) Field22DeepEqual(src *ModelConfig) bool { } return true } +func (p *ExecuteRequest) Field23DeepEqual(src *ResponseAPIConfig) bool { + + if !p.ResponseAPIConfig.DeepEqual(src) { + return false + } + return true +} func (p *ExecuteRequest) Field255DeepEqual(src *base.Base) bool { if !p.Base.DeepEqual(src) { @@ -15983,6 +16053,344 @@ func (p *ModelConfig) Field100DeepEqual(src []*ParamConfigValue) bool { return true } +type ResponseAPIConfig struct { + // 上一次响应的ID + PreviousResponseID *string `thrift:"previous_response_id,1,optional" frugal:"1,optional,string" form:"previous_response_id" json:"previous_response_id,omitempty" query:"previous_response_id"` + // 是否开启缓存 + EnableCaching *bool `thrift:"enable_caching,2,optional" frugal:"2,optional,bool" form:"enable_caching" json:"enable_caching,omitempty" query:"enable_caching"` + // 一轮会话的唯一标识 + SessionID *string `thrift:"session_id,3,optional" frugal:"3,optional,string" form:"session_id" json:"session_id,omitempty" query:"session_id"` +} + +func NewResponseAPIConfig() *ResponseAPIConfig { + return &ResponseAPIConfig{} +} + +func (p *ResponseAPIConfig) InitDefault() { +} + +var ResponseAPIConfig_PreviousResponseID_DEFAULT string + +func (p *ResponseAPIConfig) GetPreviousResponseID() (v string) { + if p == nil { + return + } + if !p.IsSetPreviousResponseID() { + return ResponseAPIConfig_PreviousResponseID_DEFAULT + } + return *p.PreviousResponseID +} + +var ResponseAPIConfig_EnableCaching_DEFAULT bool + +func (p *ResponseAPIConfig) GetEnableCaching() (v bool) { + if p == nil { + return + } + if !p.IsSetEnableCaching() { + return ResponseAPIConfig_EnableCaching_DEFAULT + } + return *p.EnableCaching +} + +var ResponseAPIConfig_SessionID_DEFAULT string + +func (p *ResponseAPIConfig) GetSessionID() (v string) { + if p == nil { + return + } + if !p.IsSetSessionID() { + return ResponseAPIConfig_SessionID_DEFAULT + } + return *p.SessionID +} +func (p *ResponseAPIConfig) SetPreviousResponseID(val *string) { + p.PreviousResponseID = val +} +func (p *ResponseAPIConfig) SetEnableCaching(val *bool) { + p.EnableCaching = val +} +func (p *ResponseAPIConfig) SetSessionID(val *string) { + p.SessionID = val +} + +var fieldIDToName_ResponseAPIConfig = map[int16]string{ + 1: "previous_response_id", + 2: "enable_caching", + 3: "session_id", +} + +func (p *ResponseAPIConfig) IsSetPreviousResponseID() bool { + return p.PreviousResponseID != nil +} + +func (p *ResponseAPIConfig) IsSetEnableCaching() bool { + return p.EnableCaching != nil +} + +func (p *ResponseAPIConfig) IsSetSessionID() bool { + return p.SessionID != nil +} + +func (p *ResponseAPIConfig) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.BOOL { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.STRING { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ResponseAPIConfig[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *ResponseAPIConfig) ReadField1(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.PreviousResponseID = _field + return nil +} +func (p *ResponseAPIConfig) ReadField2(iprot thrift.TProtocol) error { + + var _field *bool + if v, err := iprot.ReadBool(); err != nil { + return err + } else { + _field = &v + } + p.EnableCaching = _field + return nil +} +func (p *ResponseAPIConfig) ReadField3(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.SessionID = _field + return nil +} + +func (p *ResponseAPIConfig) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("ResponseAPIConfig"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *ResponseAPIConfig) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetPreviousResponseID() { + if err = oprot.WriteFieldBegin("previous_response_id", thrift.STRING, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.PreviousResponseID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *ResponseAPIConfig) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetEnableCaching() { + if err = oprot.WriteFieldBegin("enable_caching", thrift.BOOL, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteBool(*p.EnableCaching); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} +func (p *ResponseAPIConfig) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetSessionID() { + if err = oprot.WriteFieldBegin("session_id", thrift.STRING, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.SessionID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) +} + +func (p *ResponseAPIConfig) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("ResponseAPIConfig(%+v)", *p) + +} + +func (p *ResponseAPIConfig) DeepEqual(ano *ResponseAPIConfig) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.PreviousResponseID) { + return false + } + if !p.Field2DeepEqual(ano.EnableCaching) { + return false + } + if !p.Field3DeepEqual(ano.SessionID) { + return false + } + return true +} + +func (p *ResponseAPIConfig) Field1DeepEqual(src *string) bool { + + if p.PreviousResponseID == src { + return true + } else if p.PreviousResponseID == nil || src == nil { + return false + } + if strings.Compare(*p.PreviousResponseID, *src) != 0 { + return false + } + return true +} +func (p *ResponseAPIConfig) Field2DeepEqual(src *bool) bool { + + if p.EnableCaching == src { + return true + } else if p.EnableCaching == nil || src == nil { + return false + } + if *p.EnableCaching != *src { + return false + } + return true +} +func (p *ResponseAPIConfig) Field3DeepEqual(src *string) bool { + + if p.SessionID == src { + return true + } else if p.SessionID == nil || src == nil { + return false + } + if strings.Compare(*p.SessionID, *src) != 0 { + return false + } + return true +} + type ParamConfigValue struct { // 传给下游模型的key,与ParamSchema.name对齐 Name *string `thrift:"name,1,optional" frugal:"1,optional,string" form:"name" json:"name,omitempty" query:"name"` diff --git a/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi_validator.go b/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi_validator.go index d7de39f65..42d066830 100644 --- a/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi_validator.go +++ b/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi_validator.go @@ -61,6 +61,11 @@ func (p *ExecuteRequest) IsValid() error { return fmt.Errorf("field CustomModelConfig not valid, %w", err) } } + if p.ResponseAPIConfig != nil { + if err := p.ResponseAPIConfig.IsValid(); err != nil { + return fmt.Errorf("field ResponseAPIConfig not valid, %w", err) + } + } if p.Base != nil { if err := p.Base.IsValid(); err != nil { return fmt.Errorf("field Base not valid, %w", err) @@ -288,6 +293,9 @@ func (p *ModelConfig) IsValid() error { } return nil } +func (p *ResponseAPIConfig) IsValid() error { + return nil +} func (p *ParamConfigValue) IsValid() error { if p.Value != nil { if err := p.Value.IsValid(); err != nil { diff --git a/backend/kitex_gen/coze/loop/prompt/openapi/k-coze.loop.prompt.openapi.go b/backend/kitex_gen/coze/loop/prompt/openapi/k-coze.loop.prompt.openapi.go index c890a16ec..f2b854311 100644 --- a/backend/kitex_gen/coze/loop/prompt/openapi/k-coze.loop.prompt.openapi.go +++ b/backend/kitex_gen/coze/loop/prompt/openapi/k-coze.loop.prompt.openapi.go @@ -833,6 +833,20 @@ func (p *ExecuteRequest) FastRead(buf []byte) (int, error) { goto SkipFieldError } } + case 23: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField23(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } case 255: if fieldTypeId == thrift.STRUCT { l, err = p.FastReadField255(buf[offset:]) @@ -990,6 +1004,18 @@ func (p *ExecuteRequest) FastReadField22(buf []byte) (int, error) { return offset, nil } +func (p *ExecuteRequest) FastReadField23(buf []byte) (int, error) { + offset := 0 + _field := NewResponseAPIConfig() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.ResponseAPIConfig = _field + return offset, nil +} + func (p *ExecuteRequest) FastReadField255(buf []byte) (int, error) { offset := 0 _field := base.NewBase() @@ -1016,6 +1042,7 @@ func (p *ExecuteRequest) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int offset += p.fastWriteField20(buf[offset:], w) offset += p.fastWriteField21(buf[offset:], w) offset += p.fastWriteField22(buf[offset:], w) + offset += p.fastWriteField23(buf[offset:], w) offset += p.fastWriteField255(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) @@ -1032,6 +1059,7 @@ func (p *ExecuteRequest) BLength() int { l += p.field20Length() l += p.field21Length() l += p.field22Length() + l += p.field23Length() l += p.field255Length() } l += thrift.Binary.FieldStopLength() @@ -1122,6 +1150,15 @@ func (p *ExecuteRequest) fastWriteField22(buf []byte, w thrift.NocopyWriter) int return offset } +func (p *ExecuteRequest) fastWriteField23(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetResponseAPIConfig() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 23) + offset += p.ResponseAPIConfig.FastWriteNocopy(buf[offset:], w) + } + return offset +} + func (p *ExecuteRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetBase() { @@ -1206,6 +1243,15 @@ func (p *ExecuteRequest) field22Length() int { return l } +func (p *ExecuteRequest) field23Length() int { + l := 0 + if p.IsSetResponseAPIConfig() { + l += thrift.Binary.FieldBeginLength() + l += p.ResponseAPIConfig.BLength() + } + return l +} + func (p *ExecuteRequest) field255Length() int { l := 0 if p.IsSetBase() { @@ -1298,6 +1344,15 @@ func (p *ExecuteRequest) DeepCopy(s interface{}) error { } p.CustomModelConfig = _customModelConfig + var _responseAPIConfig *ResponseAPIConfig + if src.ResponseAPIConfig != nil { + _responseAPIConfig = &ResponseAPIConfig{} + if err := _responseAPIConfig.DeepCopy(src.ResponseAPIConfig); err != nil { + return err + } + } + p.ResponseAPIConfig = _responseAPIConfig + var _base *base.Base if src.Base != nil { _base = &base.Base{} @@ -11245,6 +11300,235 @@ func (p *ModelConfig) DeepCopy(s interface{}) error { return nil } +func (p *ResponseAPIConfig) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.BOOL { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 3: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField3(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ResponseAPIConfig[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *ResponseAPIConfig) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.PreviousResponseID = _field + return offset, nil +} + +func (p *ResponseAPIConfig) FastReadField2(buf []byte) (int, error) { + offset := 0 + + var _field *bool + if v, l, err := thrift.Binary.ReadBool(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.EnableCaching = _field + return offset, nil +} + +func (p *ResponseAPIConfig) FastReadField3(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.SessionID = _field + return offset, nil +} + +func (p *ResponseAPIConfig) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ResponseAPIConfig) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField2(buf[offset:], w) + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField3(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *ResponseAPIConfig) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *ResponseAPIConfig) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetPreviousResponseID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.PreviousResponseID) + } + return offset +} + +func (p *ResponseAPIConfig) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetEnableCaching() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.BOOL, 2) + offset += thrift.Binary.WriteBool(buf[offset:], *p.EnableCaching) + } + return offset +} + +func (p *ResponseAPIConfig) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetSessionID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 3) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.SessionID) + } + return offset +} + +func (p *ResponseAPIConfig) field1Length() int { + l := 0 + if p.IsSetPreviousResponseID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.PreviousResponseID) + } + return l +} + +func (p *ResponseAPIConfig) field2Length() int { + l := 0 + if p.IsSetEnableCaching() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.BoolLength() + } + return l +} + +func (p *ResponseAPIConfig) field3Length() int { + l := 0 + if p.IsSetSessionID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.SessionID) + } + return l +} + +func (p *ResponseAPIConfig) DeepCopy(s interface{}) error { + src, ok := s.(*ResponseAPIConfig) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.PreviousResponseID != nil { + var tmp string + if *src.PreviousResponseID != "" { + tmp = kutils.StringDeepCopy(*src.PreviousResponseID) + } + p.PreviousResponseID = &tmp + } + + if src.EnableCaching != nil { + tmp := *src.EnableCaching + p.EnableCaching = &tmp + } + + if src.SessionID != nil { + var tmp string + if *src.SessionID != "" { + tmp = kutils.StringDeepCopy(*src.SessionID) + } + p.SessionID = &tmp + } + + return nil +} + func (p *ParamConfigValue) FastRead(buf []byte) (int, error) { var err error diff --git a/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift b/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift index 8b5876ebe..b4197825c 100644 --- a/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift +++ b/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift @@ -39,6 +39,7 @@ struct ExecuteRequest { 20: optional list custom_tools (api.body="custom_tools") // 自定义工具 21: optional ToolCallConfig custom_tool_call_config (api.body="custom_tool_call_config") // 自定义工具调用配置 22: optional ModelConfig custom_model_config (api.body="custom_model_config") // 自定义模型配置 + 23: optional ResponseAPIConfig response_api_config (api.body="response_api_config") // response api 配置 255: optional base.Base Base } @@ -351,6 +352,12 @@ struct ModelConfig { 100: optional list param_config_values } +struct ResponseAPIConfig { + 1: optional string previous_response_id // 上一次响应的ID + 2: optional bool enable_caching // 是否开启缓存 + 3: optional string session_id // 一轮会话的唯一标识 +} + struct ParamConfigValue { 1: optional string name // 传给下游模型的key,与ParamSchema.name对齐 2: optional string label // 展示名称 From 60dd655fbd333def743a9e08c237eaeaa9b43758 Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Tue, 13 Jan 2026 20:53:45 +0800 Subject: [PATCH 28/58] [feat][prompt]: support thinking config --- .../prompt/application/convertor/openapi.go | 32 +++++++++++ .../prompt/application/convertor/prompt.go | 56 +++++++++++++++++++ 2 files changed, 88 insertions(+) diff --git a/backend/modules/prompt/application/convertor/openapi.go b/backend/modules/prompt/application/convertor/openapi.go index 6271095ae..a97fb7a38 100644 --- a/backend/modules/prompt/application/convertor/openapi.go +++ b/backend/modules/prompt/application/convertor/openapi.go @@ -166,6 +166,8 @@ func OpenAPIModelConfigDO2DTO(do *entity.ModelConfig) *openapi.LLMConfig { PresencePenalty: do.PresencePenalty, FrequencyPenalty: do.FrequencyPenalty, JSONMode: do.JSONMode, + Thinking: OpenAPIThinkingConfigDO2DTO(do.Thinking), + Extra: do.Extra, } } @@ -610,6 +612,36 @@ func OpenAPIReasoningEffortDTO2DO(dto *openapi.ReasoningEffort) *entity.Reasonin return &result } +// OpenAPIThinkingConfigDO2DTO 将entity ThinkingConfig转换为openapi ThinkingConfig +func OpenAPIThinkingConfigDO2DTO(do *entity.ThinkingConfig) *openapi.ThinkingConfig { + if do == nil { + return nil + } + return &openapi.ThinkingConfig{ + BudgetTokens: do.BudgetTokens, + ThinkingOption: OpenAPIThinkingOptionDO2DTO(do.ThinkingOption), + ReasoningEffort: OpenAPIReasoningEffortDO2DTO(do.ReasoningEffort), + } +} + +// OpenAPIThinkingOptionDO2DTO 将entity ThinkingOption转换为openapi ThinkingOption +func OpenAPIThinkingOptionDO2DTO(do *entity.ThinkingOption) *openapi.ThinkingOption { + if do == nil { + return nil + } + result := openapi.ThinkingOption(*do) + return &result +} + +// OpenAPIReasoningEffortDO2DTO 将entity ReasoningEffort转换为openapi ReasoningEffort +func OpenAPIReasoningEffortDO2DTO(do *entity.ReasoningEffort) *openapi.ReasoningEffort { + if do == nil { + return nil + } + result := openapi.ReasoningEffort(*do) + return &result +} + // OpenAPIBatchParamConfigValueDTO2DO 将openapi ParamConfigValue转换为entity ParamConfigValue func OpenAPIBatchParamConfigValueDTO2DO(dtos []*openapi.ParamConfigValue) []*entity.ParamConfigValue { if dtos == nil { diff --git a/backend/modules/prompt/application/convertor/prompt.go b/backend/modules/prompt/application/convertor/prompt.go index aab6130c9..c85f49e9e 100644 --- a/backend/modules/prompt/application/convertor/prompt.go +++ b/backend/modules/prompt/application/convertor/prompt.go @@ -513,10 +513,38 @@ func ModelConfigDTO2DO(dto *prompt.ModelConfig) *entity.ModelConfig { FrequencyPenalty: dto.FrequencyPenalty, JSONMode: dto.JSONMode, Extra: dto.Extra, + Thinking: ThinkingConfigDTO2DO(dto.Thinking), ParamConfigValues: BatchParamConfigValueDTO2DO(dto.ParamConfigValues), } } +func ThinkingConfigDTO2DO(dto *prompt.ThinkingConfig) *entity.ThinkingConfig { + if dto == nil { + return nil + } + return &entity.ThinkingConfig{ + BudgetTokens: dto.BudgetTokens, + ThinkingOption: ThinkingOptionDTO2DO(dto.ThinkingOption), + ReasoningEffort: ReasoningEffortDTO2DO(dto.ReasoningEffort), + } +} + +func ThinkingOptionDTO2DO(dto *prompt.ThinkingOption) *entity.ThinkingOption { + if dto == nil { + return nil + } + result := entity.ThinkingOption(*dto) + return &result +} + +func ReasoningEffortDTO2DO(dto *prompt.ReasoningEffort) *entity.ReasoningEffort { + if dto == nil { + return nil + } + result := entity.ReasoningEffort(*dto) + return &result +} + func BatchParamConfigValueDTO2DO(dtos []*prompt.ParamConfigValue) []*entity.ParamConfigValue { if dtos == nil { return nil @@ -983,10 +1011,38 @@ func ModelConfigDO2DTO(do *entity.ModelConfig) *prompt.ModelConfig { FrequencyPenalty: do.FrequencyPenalty, JSONMode: do.JSONMode, Extra: do.Extra, + Thinking: ThinkingConfigDO2DTO(do.Thinking), ParamConfigValues: BatchParamConfigValueDO2DTO(do.ParamConfigValues), } } +func ThinkingConfigDO2DTO(do *entity.ThinkingConfig) *prompt.ThinkingConfig { + if do == nil { + return nil + } + return &prompt.ThinkingConfig{ + BudgetTokens: do.BudgetTokens, + ThinkingOption: ThinkingOptionDO2DTO(do.ThinkingOption), + ReasoningEffort: ReasoningEffortDO2DTO(do.ReasoningEffort), + } +} + +func ThinkingOptionDO2DTO(do *entity.ThinkingOption) *prompt.ThinkingOption { + if do == nil { + return nil + } + result := prompt.ThinkingOption(*do) + return &result +} + +func ReasoningEffortDO2DTO(do *entity.ReasoningEffort) *prompt.ReasoningEffort { + if do == nil { + return nil + } + result := prompt.ReasoningEffort(*do) + return &result +} + func BatchParamConfigValueDO2DTO(dos []*entity.ParamConfigValue) []*prompt.ParamConfigValue { if dos == nil { return nil From a5d5aaf322ed9601de83e491a925efad9a68974f Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Tue, 13 Jan 2026 21:12:10 +0800 Subject: [PATCH 29/58] [feat][prompt]: support response api --- .../prompt/application/convertor/openapi.go | 12 ++++++++ backend/modules/prompt/application/openapi.go | 22 ++++++++------- .../prompt/domain/component/rpc/llm.go | 9 +++--- .../modules/prompt/domain/entity/execute.go | 6 ++++ .../modules/prompt/domain/service/execute.go | 28 ++++++++++--------- 5 files changed, 50 insertions(+), 27 deletions(-) diff --git a/backend/modules/prompt/application/convertor/openapi.go b/backend/modules/prompt/application/convertor/openapi.go index a97fb7a38..c6cf5b7dc 100644 --- a/backend/modules/prompt/application/convertor/openapi.go +++ b/backend/modules/prompt/application/convertor/openapi.go @@ -678,3 +678,15 @@ func OpenAPIParamOptionDTO2DO(dto *openapi.ParamOption) *entity.ParamOption { Label: dto.GetLabel(), } } + +// OpenAPIResponseAPIConfigDTO2DO 将openapi ResponseAPIConfig转换为entity ResponseAPIConfig +func OpenAPIResponseAPIConfigDTO2DO(dto *openapi.ResponseAPIConfig) *entity.ResponseAPIConfig { + if dto == nil { + return nil + } + return &entity.ResponseAPIConfig{ + PreviousResponseID: dto.PreviousResponseID, + EnableCaching: dto.EnableCaching, + SessionID: dto.SessionID, + } +} diff --git a/backend/modules/prompt/application/openapi.go b/backend/modules/prompt/application/openapi.go index 204700442..2bf171e7c 100644 --- a/backend/modules/prompt/application/openapi.go +++ b/backend/modules/prompt/application/openapi.go @@ -410,11 +410,12 @@ func (p *PromptOpenAPIApplicationImpl) doExecute(ctx context.Context, req *opena // 执行prompt reply, err = p.promptService.Execute(ctx, service.ExecuteParam{ - Prompt: promptDO, - Messages: convertor.OpenAPIBatchMessageDTO2DO(req.Messages), - VariableVals: convertor.OpenAPIBatchVariableValDTO2DO(req.VariableVals), - SingleStep: true, // PTaaS不支持非单步模式 - Scenario: entity.ScenarioPTaaS, // PTaaS场景 + Prompt: promptDO, + Messages: convertor.OpenAPIBatchMessageDTO2DO(req.Messages), + VariableVals: convertor.OpenAPIBatchVariableValDTO2DO(req.VariableVals), + ResponseAPIConfig: convertor.OpenAPIResponseAPIConfigDTO2DO(req.ResponseAPIConfig), + SingleStep: true, // PTaaS不支持非单步模式 + Scenario: entity.ScenarioPTaaS, // PTaaS场景 }) if err != nil { return promptDO, nil, err @@ -541,11 +542,12 @@ func (p *PromptOpenAPIApplicationImpl) doExecuteStreaming(ctx context.Context, r localAggregatedReply, executeErr = p.promptService.ExecuteStreaming(ctx, service.ExecuteStreamingParam{ ExecuteParam: service.ExecuteParam{ - Prompt: promptDO, - Messages: convertor.OpenAPIBatchMessageDTO2DO(req.Messages), - VariableVals: convertor.OpenAPIBatchVariableValDTO2DO(req.VariableVals), - SingleStep: true, // PTaaS不支持非单步模式 - Scenario: entity.ScenarioPTaaS, // PTaaS场景 + Prompt: promptDO, + Messages: convertor.OpenAPIBatchMessageDTO2DO(req.Messages), + VariableVals: convertor.OpenAPIBatchVariableValDTO2DO(req.VariableVals), + ResponseAPIConfig: convertor.OpenAPIResponseAPIConfigDTO2DO(req.ResponseAPIConfig), + SingleStep: true, // PTaaS不支持非单步模式 + Scenario: entity.ScenarioPTaaS, // PTaaS场景 }, ResultStream: resultStream, }) diff --git a/backend/modules/prompt/domain/component/rpc/llm.go b/backend/modules/prompt/domain/component/rpc/llm.go index d229eb1c2..6ef5b3153 100644 --- a/backend/modules/prompt/domain/component/rpc/llm.go +++ b/backend/modules/prompt/domain/component/rpc/llm.go @@ -17,10 +17,11 @@ type LLMCallParam struct { Scenario entity.Scenario UserID *string - Messages []*entity.Message - Tools []*entity.Tool - ToolCallConfig *entity.ToolCallConfig - ModelConfig *entity.ModelConfig + Messages []*entity.Message + Tools []*entity.Tool + ToolCallConfig *entity.ToolCallConfig + ModelConfig *entity.ModelConfig + ResponseAPIConfig *entity.ResponseAPIConfig } type LLMStreamingCallParam struct { diff --git a/backend/modules/prompt/domain/entity/execute.go b/backend/modules/prompt/domain/entity/execute.go index 0c9c6f69d..e978cec6e 100644 --- a/backend/modules/prompt/domain/entity/execute.go +++ b/backend/modules/prompt/domain/entity/execute.go @@ -29,3 +29,9 @@ const ( ScenarioPTaaS Scenario = "ptaas" ScenarioEvalTarget Scenario = "eval_target" ) + +type ResponseAPIConfig struct { + PreviousResponseID *string `json:"previous_response_id,omitempty"` // 上一次响应的ID + EnableCaching *bool `json:"enable_caching,omitempty"` // 是否开启缓存 + SessionID *string `json:"session_id,omitempty"` // 一轮会话的唯一标识 +} diff --git a/backend/modules/prompt/domain/service/execute.go b/backend/modules/prompt/domain/service/execute.go index 3aca23fa0..52fbcbaf2 100644 --- a/backend/modules/prompt/domain/service/execute.go +++ b/backend/modules/prompt/domain/service/execute.go @@ -39,9 +39,10 @@ type ExecuteParam struct { Messages []*entity.Message VariableVals []*entity.VariableVal - MockTools []*entity.MockTool - SingleStep bool - DebugTraceKey string + MockTools []*entity.MockTool + SingleStep bool + DebugTraceKey string + ResponseAPIConfig *entity.ResponseAPIConfig Scenario entity.Scenario DisableTracing bool @@ -414,16 +415,17 @@ func (p *PromptServiceImpl) prepareLLMCallParam(ctx context.Context, param Execu userID = ptr.Of(userIDStr) } return ctx, rpc.LLMCallParam{ - SpaceID: param.Prompt.SpaceID, - PromptID: param.Prompt.ID, - PromptKey: param.Prompt.PromptKey, - PromptVersion: param.Prompt.GetVersion(), - Scenario: param.Scenario, - UserID: userID, - Messages: messages, - Tools: tools, - ToolCallConfig: toolCallConfig, - ModelConfig: modelConfig, + SpaceID: param.Prompt.SpaceID, + PromptID: param.Prompt.ID, + PromptKey: param.Prompt.PromptKey, + PromptVersion: param.Prompt.GetVersion(), + Scenario: param.Scenario, + UserID: userID, + Messages: messages, + Tools: tools, + ToolCallConfig: toolCallConfig, + ModelConfig: modelConfig, + ResponseAPIConfig: param.ResponseAPIConfig, }, nil } From 8e6c5fcedc5d10008bcdb606edd0868109c04df8 Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Tue, 13 Jan 2026 21:49:09 +0800 Subject: [PATCH 30/58] [feat][prompt]: add ut --- .../application/convertor/openapi_test.go | 58 +++++++++++++++++++ .../application/convertor/prompt_test.go | 49 ++++++++++++++++ .../prompt/application/openapi_test.go | 27 ++++++++- .../prompt/domain/service/execute_test.go | 11 +++- 4 files changed, 142 insertions(+), 3 deletions(-) diff --git a/backend/modules/prompt/application/convertor/openapi_test.go b/backend/modules/prompt/application/convertor/openapi_test.go index 9e99cb77e..4cc1b2997 100755 --- a/backend/modules/prompt/application/convertor/openapi_test.go +++ b/backend/modules/prompt/application/convertor/openapi_test.go @@ -490,6 +490,30 @@ func TestOpenAPIModelConfigDO2DTO(t *testing.T) { JSONMode: ptr.Of(true), }, }, + { + name: "model config with thinking and extra", + do: &entity.ModelConfig{ + ModelID: 456, + MaxTokens: ptr.Of(int32(512)), + Temperature: ptr.Of(0.3), + Extra: ptr.Of(`{"trace":"on"}`), + Thinking: &entity.ThinkingConfig{ + BudgetTokens: ptr.Of(int64(128)), + ThinkingOption: ptr.Of(entity.ThinkingOptionEnabled), + ReasoningEffort: ptr.Of(entity.ReasoningEffortLow), + }, + }, + want: &openapi.LLMConfig{ + MaxTokens: ptr.Of(int32(512)), + Temperature: ptr.Of(0.3), + Extra: ptr.Of(`{"trace":"on"}`), + Thinking: &openapi.ThinkingConfig{ + BudgetTokens: ptr.Of(int64(128)), + ThinkingOption: ptr.Of(openapi.ThinkingOption_Enabled), + ReasoningEffort: ptr.Of(openapi.ReasoningEffort_Low), + }, + }, + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { @@ -2448,3 +2472,37 @@ func TestOpenAPIModelConfigDTO2DO(t *testing.T) { assert.Equal(t, want, OpenAPIModelConfigDTO2DO(dto)) } + +func TestOpenAPIResponseAPIConfigDTO2DO(t *testing.T) { + tests := []struct { + name string + dto *openapi.ResponseAPIConfig + want *entity.ResponseAPIConfig + }{ + { + name: "nil input", + dto: nil, + want: nil, + }, + { + name: "response api config with values", + dto: &openapi.ResponseAPIConfig{ + PreviousResponseID: ptr.Of("prev-id"), + EnableCaching: ptr.Of(true), + SessionID: ptr.Of("session-123"), + }, + want: &entity.ResponseAPIConfig{ + PreviousResponseID: ptr.Of("prev-id"), + EnableCaching: ptr.Of(true), + SessionID: ptr.Of("session-123"), + }, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + assert.Equal(t, tt.want, OpenAPIResponseAPIConfigDTO2DO(tt.dto)) + }) + } +} diff --git a/backend/modules/prompt/application/convertor/prompt_test.go b/backend/modules/prompt/application/convertor/prompt_test.go index 0a6ab53f4..dd6378937 100644 --- a/backend/modules/prompt/application/convertor/prompt_test.go +++ b/backend/modules/prompt/application/convertor/prompt_test.go @@ -829,6 +829,55 @@ func TestModelConfigExtraConversion(t *testing.T) { assert.Equal(t, extra, dtoBack.Extra) } +func TestThinkingConfigConversion(t *testing.T) { + tests := []struct { + name string + dto *prompt.ThinkingConfig + do *entity.ThinkingConfig + expectDTO *prompt.ThinkingConfig + expectDO *entity.ThinkingConfig + }{ + { + name: "nil input", + dto: nil, + do: nil, + expectDTO: nil, + expectDO: nil, + }, + { + name: "thinking config with values", + dto: &prompt.ThinkingConfig{ + BudgetTokens: ptr.Of(int64(256)), + ThinkingOption: ptr.Of(prompt.ThinkingOption_Enabled), + ReasoningEffort: ptr.Of(prompt.ReasoningEffort_High), + }, + do: &entity.ThinkingConfig{ + BudgetTokens: ptr.Of(int64(256)), + ThinkingOption: ptr.Of(entity.ThinkingOptionEnabled), + ReasoningEffort: ptr.Of(entity.ReasoningEffortHigh), + }, + expectDTO: &prompt.ThinkingConfig{ + BudgetTokens: ptr.Of(int64(256)), + ThinkingOption: ptr.Of(prompt.ThinkingOption_Enabled), + ReasoningEffort: ptr.Of(prompt.ReasoningEffort_High), + }, + expectDO: &entity.ThinkingConfig{ + BudgetTokens: ptr.Of(int64(256)), + ThinkingOption: ptr.Of(entity.ThinkingOptionEnabled), + ReasoningEffort: ptr.Of(entity.ReasoningEffortHigh), + }, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + assert.Equal(t, tt.expectDO, ThinkingConfigDTO2DO(tt.dto)) + assert.Equal(t, tt.expectDTO, ThinkingConfigDO2DTO(tt.do)) + }) + } +} + func TestTemplateTypeDTO2DO(t *testing.T) { tests := []struct { name string diff --git a/backend/modules/prompt/application/openapi_test.go b/backend/modules/prompt/application/openapi_test.go index 46064ef09..a01da4380 100644 --- a/backend/modules/prompt/application/openapi_test.go +++ b/backend/modules/prompt/application/openapi_test.go @@ -2469,7 +2469,16 @@ func TestPromptOpenAPIApplicationImpl_doExecute(t *testing.T) { }, }, } - mockPromptService.EXPECT().Execute(gomock.Any(), gomock.Any()).Return(expectedReply, nil) + expectedResponseAPIConfig := &entity.ResponseAPIConfig{ + PreviousResponseID: ptr.Of("prev-id"), + EnableCaching: ptr.Of(true), + SessionID: ptr.Of("session-123"), + } + mockPromptService.EXPECT().Execute(gomock.Any(), gomock.Any()).DoAndReturn( + func(ctx context.Context, param service.ExecuteParam) (*entity.Reply, error) { + assert.Equal(t, expectedResponseAPIConfig, param.ResponseAPIConfig) + return expectedReply, nil + }) mockPromptService.EXPECT().MConvertBase64DataURLToFileURL(gomock.Any(), gomock.Any(), gomock.Any()).Return(nil) return fields{ @@ -2494,6 +2503,11 @@ func TestPromptOpenAPIApplicationImpl_doExecute(t *testing.T) { Content: ptr.Of("Hello"), }, }, + ResponseAPIConfig: &openapi.ResponseAPIConfig{ + PreviousResponseID: ptr.Of("prev-id"), + EnableCaching: ptr.Of(true), + SessionID: ptr.Of("session-123"), + }, }, }, wantPromptDO: &entity.Prompt{ @@ -3399,9 +3413,15 @@ func TestPromptOpenAPIApplicationImpl_ExecuteStreaming(t *testing.T) { }, }, } + expectedResponseAPIConfig := &entity.ResponseAPIConfig{ + PreviousResponseID: ptr.Of("prev-id"), + EnableCaching: ptr.Of(true), + SessionID: ptr.Of("session-123"), + } mockPromptService.EXPECT().ExpandSnippets(gomock.Any(), gomock.Any()).Return(nil) mockPromptService.EXPECT().ExecuteStreaming(gomock.Any(), gomock.Any()).DoAndReturn( func(ctx context.Context, param service.ExecuteStreamingParam) (*entity.Reply, error) { + assert.Equal(t, expectedResponseAPIConfig, param.ExecuteParam.ResponseAPIConfig) // 模拟发送多个流式响应 - 使用同步方式避免竞争条件 // 发送第一个chunk param.ResultStream <- &entity.Reply{ @@ -3463,6 +3483,11 @@ func TestPromptOpenAPIApplicationImpl_ExecuteStreaming(t *testing.T) { Content: ptr.Of("Hello"), }, }, + ResponseAPIConfig: &openapi.ResponseAPIConfig{ + PreviousResponseID: ptr.Of("prev-id"), + EnableCaching: ptr.Of(true), + SessionID: ptr.Of("session-123"), + }, }, stream: stream, } diff --git a/backend/modules/prompt/domain/service/execute_test.go b/backend/modules/prompt/domain/service/execute_test.go index fc44e5cce..0c6775347 100644 --- a/backend/modules/prompt/domain/service/execute_test.go +++ b/backend/modules/prompt/domain/service/execute_test.go @@ -973,6 +973,11 @@ func TestPromptServiceImpl_Execute(t *testing.T) { func TestPromptServiceImpl_prepareLLMCallParam_PreservesExtra(t *testing.T) { t.Parallel() extra := ptr.Of(`{"foo":"bar"}`) + responseAPIConfig := &entity.ResponseAPIConfig{ + PreviousResponseID: ptr.Of("prev-id"), + EnableCaching: ptr.Of(true), + SessionID: ptr.Of("session-123"), + } prompt := &entity.Prompt{ ID: 1, SpaceID: 42, @@ -1012,8 +1017,9 @@ func TestPromptServiceImpl_prepareLLMCallParam_PreservesExtra(t *testing.T) { Content: ptr.Of("Hi"), }, }, - VariableVals: nil, - Scenario: entity.ScenarioPromptDebug, + VariableVals: nil, + Scenario: entity.ScenarioPromptDebug, + ResponseAPIConfig: responseAPIConfig, } _, got, err := svc.prepareLLMCallParam(context.Background(), param) assert.NoError(t, err) @@ -1021,6 +1027,7 @@ func TestPromptServiceImpl_prepareLLMCallParam_PreservesExtra(t *testing.T) { assert.Equal(t, extra, got.ModelConfig.Extra) assert.Equal(t, prompt.PromptCommit.PromptDetail.ModelConfig.Extra, got.ModelConfig.Extra) } + assert.Equal(t, responseAPIConfig, got.ResponseAPIConfig) } func TestPromptServiceImpl_prepareLLMCallParam_ValidationErrors(t *testing.T) { From c7f9a9e086f2c523817b0a0bbd78e44dc2bbba26 Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Wed, 14 Jan 2026 15:52:47 +0800 Subject: [PATCH 31/58] [feat][prompt]: add signature --- .../loop/prompt/domain/prompt/k-prompt.go | 224 ++++++++++++ .../coze/loop/prompt/domain/prompt/prompt.go | 324 +++++++++++++++++- .../application/convertor/debug_context.go | 2 + .../prompt/application/convertor/openapi.go | 6 + .../prompt/application/convertor/prompt.go | 8 + .../prompt/domain/entity/debug_context.go | 1 + .../prompt/domain/entity/prompt_detail.go | 3 + .../coze/loop/prompt/domain/prompt.thrift | 4 + 8 files changed, 566 insertions(+), 6 deletions(-) diff --git a/backend/kitex_gen/coze/loop/prompt/domain/prompt/k-prompt.go b/backend/kitex_gen/coze/loop/prompt/domain/prompt/k-prompt.go index d42f86893..2c8ea22bc 100644 --- a/backend/kitex_gen/coze/loop/prompt/domain/prompt/k-prompt.go +++ b/backend/kitex_gen/coze/loop/prompt/domain/prompt/k-prompt.go @@ -5747,6 +5747,20 @@ func (p *Message) FastRead(buf []byte) (int, error) { goto SkipFieldError } } + case 8: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField8(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } case 100: if fieldTypeId == thrift.MAP { l, err = p.FastReadField100(buf[offset:]) @@ -5899,6 +5913,20 @@ func (p *Message) FastReadField7(buf []byte) (int, error) { return offset, nil } +func (p *Message) FastReadField8(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Signature = _field + return offset, nil +} + func (p *Message) FastReadField100(buf []byte) (int, error) { offset := 0 @@ -5945,6 +5973,7 @@ func (p *Message) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset += p.fastWriteField4(buf[offset:], w) offset += p.fastWriteField5(buf[offset:], w) offset += p.fastWriteField6(buf[offset:], w) + offset += p.fastWriteField8(buf[offset:], w) offset += p.fastWriteField100(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) @@ -5961,6 +5990,7 @@ func (p *Message) BLength() int { l += p.field5Length() l += p.field6Length() l += p.field7Length() + l += p.field8Length() l += p.field100Length() } l += thrift.Binary.FieldStopLength() @@ -6044,6 +6074,15 @@ func (p *Message) fastWriteField7(buf []byte, w thrift.NocopyWriter) int { return offset } +func (p *Message) fastWriteField8(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetSignature() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 8) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Signature) + } + return offset +} + func (p *Message) fastWriteField100(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetMetadata() { @@ -6132,6 +6171,15 @@ func (p *Message) field7Length() int { return l } +func (p *Message) field8Length() int { + l := 0 + if p.IsSetSignature() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Signature) + } + return l +} + func (p *Message) field100Length() int { l := 0 if p.IsSetMetadata() { @@ -6217,6 +6265,14 @@ func (p *Message) DeepCopy(s interface{}) error { p.SkipRender = &tmp } + if src.Signature != nil { + var tmp string + if *src.Signature != "" { + tmp = kutils.StringDeepCopy(*src.Signature) + } + p.Signature = &tmp + } + if src.Metadata != nil { p.Metadata = make(map[string]string, len(src.Metadata)) for key, val := range src.Metadata { @@ -6324,6 +6380,20 @@ func (p *ContentPart) FastRead(buf []byte) (int, error) { goto SkipFieldError } } + case 6: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField6(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } default: l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -6406,6 +6476,20 @@ func (p *ContentPart) FastReadField5(buf []byte) (int, error) { return offset, nil } +func (p *ContentPart) FastReadField6(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Signature = _field + return offset, nil +} + func (p *ContentPart) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } @@ -6418,6 +6502,7 @@ func (p *ContentPart) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset += p.fastWriteField3(buf[offset:], w) offset += p.fastWriteField4(buf[offset:], w) offset += p.fastWriteField5(buf[offset:], w) + offset += p.fastWriteField6(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) return offset @@ -6431,6 +6516,7 @@ func (p *ContentPart) BLength() int { l += p.field3Length() l += p.field4Length() l += p.field5Length() + l += p.field6Length() } l += thrift.Binary.FieldStopLength() return l @@ -6481,6 +6567,15 @@ func (p *ContentPart) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { return offset } +func (p *ContentPart) fastWriteField6(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetSignature() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 6) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Signature) + } + return offset +} + func (p *ContentPart) field1Length() int { l := 0 if p.IsSetType() { @@ -6526,6 +6621,15 @@ func (p *ContentPart) field5Length() int { return l } +func (p *ContentPart) field6Length() int { + l := 0 + if p.IsSetSignature() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Signature) + } + return l +} + func (p *ContentPart) DeepCopy(s interface{}) error { src, ok := s.(*ContentPart) if !ok { @@ -6572,6 +6676,14 @@ func (p *ContentPart) DeepCopy(s interface{}) error { } p.MediaConfig = _mediaConfig + if src.Signature != nil { + var tmp string + if *src.Signature != "" { + tmp = kutils.StringDeepCopy(*src.Signature) + } + p.Signature = &tmp + } + return nil } @@ -7117,6 +7229,20 @@ func (p *ToolCall) FastRead(buf []byte) (int, error) { goto SkipFieldError } } + case 5: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField5(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } default: l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -7189,6 +7315,20 @@ func (p *ToolCall) FastReadField4(buf []byte) (int, error) { return offset, nil } +func (p *ToolCall) FastReadField5(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Signature = _field + return offset, nil +} + func (p *ToolCall) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } @@ -7200,6 +7340,7 @@ func (p *ToolCall) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset += p.fastWriteField2(buf[offset:], w) offset += p.fastWriteField3(buf[offset:], w) offset += p.fastWriteField4(buf[offset:], w) + offset += p.fastWriteField5(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) return offset @@ -7212,6 +7353,7 @@ func (p *ToolCall) BLength() int { l += p.field2Length() l += p.field3Length() l += p.field4Length() + l += p.field5Length() } l += thrift.Binary.FieldStopLength() return l @@ -7253,6 +7395,15 @@ func (p *ToolCall) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { return offset } +func (p *ToolCall) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetSignature() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 5) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Signature) + } + return offset +} + func (p *ToolCall) field1Length() int { l := 0 if p.IsSetIndex() { @@ -7289,6 +7440,15 @@ func (p *ToolCall) field4Length() int { return l } +func (p *ToolCall) field5Length() int { + l := 0 + if p.IsSetSignature() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Signature) + } + return l +} + func (p *ToolCall) DeepCopy(s interface{}) error { src, ok := s.(*ToolCall) if !ok { @@ -7322,6 +7482,14 @@ func (p *ToolCall) DeepCopy(s interface{}) error { } p.FunctionCall = _functionCall + if src.Signature != nil { + var tmp string + if *src.Signature != "" { + tmp = kutils.StringDeepCopy(*src.Signature) + } + p.Signature = &tmp + } + return nil } @@ -9418,6 +9586,20 @@ func (p *DebugMessage) FastRead(buf []byte) (int, error) { goto SkipFieldError } } + case 7: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField7(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } case 101: if fieldTypeId == thrift.STRING { l, err = p.FastReadField101(buf[offset:]) @@ -9598,6 +9780,20 @@ func (p *DebugMessage) FastReadField6(buf []byte) (int, error) { return offset, nil } +func (p *DebugMessage) FastReadField7(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Signature = _field + return offset, nil +} + func (p *DebugMessage) FastReadField101(buf []byte) (int, error) { offset := 0 @@ -9670,6 +9866,7 @@ func (p *DebugMessage) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset += p.fastWriteField4(buf[offset:], w) offset += p.fastWriteField5(buf[offset:], w) offset += p.fastWriteField6(buf[offset:], w) + offset += p.fastWriteField7(buf[offset:], w) offset += p.fastWriteField101(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) @@ -9685,6 +9882,7 @@ func (p *DebugMessage) BLength() int { l += p.field4Length() l += p.field5Length() l += p.field6Length() + l += p.field7Length() l += p.field101Length() l += p.field102Length() l += p.field103Length() @@ -9762,6 +9960,15 @@ func (p *DebugMessage) fastWriteField6(buf []byte, w thrift.NocopyWriter) int { return offset } +func (p *DebugMessage) fastWriteField7(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetSignature() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 7) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Signature) + } + return offset +} + func (p *DebugMessage) fastWriteField101(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetDebugID() { @@ -9860,6 +10067,15 @@ func (p *DebugMessage) field6Length() int { return l } +func (p *DebugMessage) field7Length() int { + l := 0 + if p.IsSetSignature() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Signature) + } + return l +} + func (p *DebugMessage) field101Length() int { l := 0 if p.IsSetDebugID() { @@ -9961,6 +10177,14 @@ func (p *DebugMessage) DeepCopy(s interface{}) error { } } + if src.Signature != nil { + var tmp string + if *src.Signature != "" { + tmp = kutils.StringDeepCopy(*src.Signature) + } + p.Signature = &tmp + } + if src.DebugID != nil { var tmp string if *src.DebugID != "" { diff --git a/backend/kitex_gen/coze/loop/prompt/domain/prompt/prompt.go b/backend/kitex_gen/coze/loop/prompt/domain/prompt/prompt.go index 47f60d426..403002cfd 100644 --- a/backend/kitex_gen/coze/loop/prompt/domain/prompt/prompt.go +++ b/backend/kitex_gen/coze/loop/prompt/domain/prompt/prompt.go @@ -8044,8 +8044,10 @@ type Message struct { ToolCallID *string `thrift:"tool_call_id,5,optional" frugal:"5,optional,string" form:"tool_call_id" json:"tool_call_id,omitempty" query:"tool_call_id"` ToolCalls []*ToolCall `thrift:"tool_calls,6,optional" frugal:"6,optional,list" form:"tool_calls" json:"tool_calls,omitempty" query:"tool_calls"` // 是否跳过渲染 - SkipRender *bool `thrift:"skip_render,7,optional" frugal:"7,optional,bool" form:"skip_render" json:"skip_render,omitempty" query:"skip_render"` - Metadata map[string]string `thrift:"metadata,100,optional" frugal:"100,optional,map" form:"metadata" json:"metadata,omitempty" query:"metadata"` + SkipRender *bool `thrift:"skip_render,7,optional" frugal:"7,optional,bool" form:"skip_render" json:"skip_render,omitempty" query:"skip_render"` + // gemini3 thought_signature + Signature *string `thrift:"signature,8,optional" frugal:"8,optional,string" form:"signature" json:"signature,omitempty" query:"signature"` + Metadata map[string]string `thrift:"metadata,100,optional" frugal:"100,optional,map" form:"metadata" json:"metadata,omitempty" query:"metadata"` } func NewMessage() *Message { @@ -8139,6 +8141,18 @@ func (p *Message) GetSkipRender() (v bool) { return *p.SkipRender } +var Message_Signature_DEFAULT string + +func (p *Message) GetSignature() (v string) { + if p == nil { + return + } + if !p.IsSetSignature() { + return Message_Signature_DEFAULT + } + return *p.Signature +} + var Message_Metadata_DEFAULT map[string]string func (p *Message) GetMetadata() (v map[string]string) { @@ -8171,6 +8185,9 @@ func (p *Message) SetToolCalls(val []*ToolCall) { func (p *Message) SetSkipRender(val *bool) { p.SkipRender = val } +func (p *Message) SetSignature(val *string) { + p.Signature = val +} func (p *Message) SetMetadata(val map[string]string) { p.Metadata = val } @@ -8183,6 +8200,7 @@ var fieldIDToName_Message = map[int16]string{ 5: "tool_call_id", 6: "tool_calls", 7: "skip_render", + 8: "signature", 100: "metadata", } @@ -8214,6 +8232,10 @@ func (p *Message) IsSetSkipRender() bool { return p.SkipRender != nil } +func (p *Message) IsSetSignature() bool { + return p.Signature != nil +} + func (p *Message) IsSetMetadata() bool { return p.Metadata != nil } @@ -8292,6 +8314,14 @@ func (p *Message) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 8: + if fieldTypeId == thrift.STRING { + if err = p.ReadField8(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } case 100: if fieldTypeId == thrift.MAP { if err = p.ReadField100(iprot); err != nil { @@ -8430,6 +8460,17 @@ func (p *Message) ReadField7(iprot thrift.TProtocol) error { p.SkipRender = _field return nil } +func (p *Message) ReadField8(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Signature = _field + return nil +} func (p *Message) ReadField100(iprot thrift.TProtocol) error { _, _, size, err := iprot.ReadMapBegin() if err != nil { @@ -8494,6 +8535,10 @@ func (p *Message) Write(oprot thrift.TProtocol) (err error) { fieldId = 7 goto WriteFieldError } + if err = p.writeField8(oprot); err != nil { + fieldId = 8 + goto WriteFieldError + } if err = p.writeField100(oprot); err != nil { fieldId = 100 goto WriteFieldError @@ -8658,6 +8703,24 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) } +func (p *Message) writeField8(oprot thrift.TProtocol) (err error) { + if p.IsSetSignature() { + if err = oprot.WriteFieldBegin("signature", thrift.STRING, 8); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Signature); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 8 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 8 end error: ", p), err) +} func (p *Message) writeField100(oprot thrift.TProtocol) (err error) { if p.IsSetMetadata() { if err = oprot.WriteFieldBegin("metadata", thrift.MAP, 100); err != nil { @@ -8723,6 +8786,9 @@ func (p *Message) DeepEqual(ano *Message) bool { if !p.Field7DeepEqual(ano.SkipRender) { return false } + if !p.Field8DeepEqual(ano.Signature) { + return false + } if !p.Field100DeepEqual(ano.Metadata) { return false } @@ -8815,6 +8881,18 @@ func (p *Message) Field7DeepEqual(src *bool) bool { } return true } +func (p *Message) Field8DeepEqual(src *string) bool { + + if p.Signature == src { + return true + } else if p.Signature == nil || src == nil { + return false + } + if strings.Compare(*p.Signature, *src) != 0 { + return false + } + return true +} func (p *Message) Field100DeepEqual(src map[string]string) bool { if len(p.Metadata) != len(src) { @@ -8835,6 +8913,8 @@ type ContentPart struct { ImageURL *ImageURL `thrift:"image_url,3,optional" frugal:"3,optional,ImageURL" form:"image_url" json:"image_url,omitempty" query:"image_url"` VideoURL *VideoURL `thrift:"video_url,4,optional" frugal:"4,optional,VideoURL" form:"video_url" json:"video_url,omitempty" query:"video_url"` MediaConfig *MediaConfig `thrift:"media_config,5,optional" frugal:"5,optional,MediaConfig" form:"media_config" json:"media_config,omitempty" query:"media_config"` + // gemini3 thought_signature + Signature *string `thrift:"signature,6,optional" frugal:"6,optional,string" form:"signature" json:"signature,omitempty" query:"signature"` } func NewContentPart() *ContentPart { @@ -8903,6 +8983,18 @@ func (p *ContentPart) GetMediaConfig() (v *MediaConfig) { } return p.MediaConfig } + +var ContentPart_Signature_DEFAULT string + +func (p *ContentPart) GetSignature() (v string) { + if p == nil { + return + } + if !p.IsSetSignature() { + return ContentPart_Signature_DEFAULT + } + return *p.Signature +} func (p *ContentPart) SetType(val *ContentType) { p.Type = val } @@ -8918,6 +9010,9 @@ func (p *ContentPart) SetVideoURL(val *VideoURL) { func (p *ContentPart) SetMediaConfig(val *MediaConfig) { p.MediaConfig = val } +func (p *ContentPart) SetSignature(val *string) { + p.Signature = val +} var fieldIDToName_ContentPart = map[int16]string{ 1: "type", @@ -8925,6 +9020,7 @@ var fieldIDToName_ContentPart = map[int16]string{ 3: "image_url", 4: "video_url", 5: "media_config", + 6: "signature", } func (p *ContentPart) IsSetType() bool { @@ -8947,6 +9043,10 @@ func (p *ContentPart) IsSetMediaConfig() bool { return p.MediaConfig != nil } +func (p *ContentPart) IsSetSignature() bool { + return p.Signature != nil +} + func (p *ContentPart) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -9005,6 +9105,14 @@ func (p *ContentPart) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 6: + if fieldTypeId == thrift.STRING { + if err = p.ReadField6(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } default: if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError @@ -9080,6 +9188,17 @@ func (p *ContentPart) ReadField5(iprot thrift.TProtocol) error { p.MediaConfig = _field return nil } +func (p *ContentPart) ReadField6(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Signature = _field + return nil +} func (p *ContentPart) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 @@ -9107,6 +9226,10 @@ func (p *ContentPart) Write(oprot thrift.TProtocol) (err error) { fieldId = 5 goto WriteFieldError } + if err = p.writeField6(oprot); err != nil { + fieldId = 6 + goto WriteFieldError + } } if err = oprot.WriteFieldStop(); err != nil { goto WriteFieldStopError @@ -9215,6 +9338,24 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) } +func (p *ContentPart) writeField6(oprot thrift.TProtocol) (err error) { + if p.IsSetSignature() { + if err = oprot.WriteFieldBegin("signature", thrift.STRING, 6); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Signature); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) +} func (p *ContentPart) String() string { if p == nil { @@ -9245,6 +9386,9 @@ func (p *ContentPart) DeepEqual(ano *ContentPart) bool { if !p.Field5DeepEqual(ano.MediaConfig) { return false } + if !p.Field6DeepEqual(ano.Signature) { + return false + } return true } @@ -9293,6 +9437,18 @@ func (p *ContentPart) Field5DeepEqual(src *MediaConfig) bool { } return true } +func (p *ContentPart) Field6DeepEqual(src *string) bool { + + if p.Signature == src { + return true + } else if p.Signature == nil || src == nil { + return false + } + if strings.Compare(*p.Signature, *src) != 0 { + return false + } + return true +} type ImageURL struct { URI *string `thrift:"uri,1,optional" frugal:"1,optional,string" form:"uri" json:"uri,omitempty" query:"uri"` @@ -9996,6 +10152,8 @@ type ToolCall struct { ID *string `thrift:"id,2,optional" frugal:"2,optional,string" form:"id" json:"id,omitempty" query:"id"` Type *ToolType `thrift:"type,3,optional" frugal:"3,optional,string" form:"type" json:"type,omitempty" query:"type"` FunctionCall *FunctionCall `thrift:"function_call,4,optional" frugal:"4,optional,FunctionCall" form:"function_call" json:"function_call,omitempty" query:"function_call"` + // gemini3 thought_signature + Signature *string `thrift:"signature,5,optional" frugal:"5,optional,string" form:"signature" json:"signature,omitempty" query:"signature"` } func NewToolCall() *ToolCall { @@ -10052,6 +10210,18 @@ func (p *ToolCall) GetFunctionCall() (v *FunctionCall) { } return p.FunctionCall } + +var ToolCall_Signature_DEFAULT string + +func (p *ToolCall) GetSignature() (v string) { + if p == nil { + return + } + if !p.IsSetSignature() { + return ToolCall_Signature_DEFAULT + } + return *p.Signature +} func (p *ToolCall) SetIndex(val *int64) { p.Index = val } @@ -10064,12 +10234,16 @@ func (p *ToolCall) SetType(val *ToolType) { func (p *ToolCall) SetFunctionCall(val *FunctionCall) { p.FunctionCall = val } +func (p *ToolCall) SetSignature(val *string) { + p.Signature = val +} var fieldIDToName_ToolCall = map[int16]string{ 1: "index", 2: "id", 3: "type", 4: "function_call", + 5: "signature", } func (p *ToolCall) IsSetIndex() bool { @@ -10088,6 +10262,10 @@ func (p *ToolCall) IsSetFunctionCall() bool { return p.FunctionCall != nil } +func (p *ToolCall) IsSetSignature() bool { + return p.Signature != nil +} + func (p *ToolCall) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -10138,6 +10316,14 @@ func (p *ToolCall) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 5: + if fieldTypeId == thrift.STRING { + if err = p.ReadField5(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } default: if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError @@ -10208,6 +10394,17 @@ func (p *ToolCall) ReadField4(iprot thrift.TProtocol) error { p.FunctionCall = _field return nil } +func (p *ToolCall) ReadField5(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Signature = _field + return nil +} func (p *ToolCall) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 @@ -10231,6 +10428,10 @@ func (p *ToolCall) Write(oprot thrift.TProtocol) (err error) { fieldId = 4 goto WriteFieldError } + if err = p.writeField5(oprot); err != nil { + fieldId = 5 + goto WriteFieldError + } } if err = oprot.WriteFieldStop(); err != nil { goto WriteFieldStopError @@ -10321,6 +10522,24 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) } +func (p *ToolCall) writeField5(oprot thrift.TProtocol) (err error) { + if p.IsSetSignature() { + if err = oprot.WriteFieldBegin("signature", thrift.STRING, 5); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Signature); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) +} func (p *ToolCall) String() string { if p == nil { @@ -10348,6 +10567,9 @@ func (p *ToolCall) DeepEqual(ano *ToolCall) bool { if !p.Field4DeepEqual(ano.FunctionCall) { return false } + if !p.Field5DeepEqual(ano.Signature) { + return false + } return true } @@ -10394,6 +10616,18 @@ func (p *ToolCall) Field4DeepEqual(src *FunctionCall) bool { } return true } +func (p *ToolCall) Field5DeepEqual(src *string) bool { + + if p.Signature == src { + return true + } else if p.Signature == nil || src == nil { + return false + } + if strings.Compare(*p.Signature, *src) != 0 { + return false + } + return true +} type FunctionCall struct { Name *string `thrift:"name,1,optional" frugal:"1,optional,string" form:"name" json:"name,omitempty" query:"name"` @@ -13139,10 +13373,12 @@ type DebugMessage struct { Parts []*ContentPart `thrift:"parts,4,optional" frugal:"4,optional,list" form:"parts" json:"parts,omitempty" query:"parts"` ToolCallID *string `thrift:"tool_call_id,5,optional" frugal:"5,optional,string" form:"tool_call_id" json:"tool_call_id,omitempty" query:"tool_call_id"` ToolCalls []*DebugToolCall `thrift:"tool_calls,6,optional" frugal:"6,optional,list" form:"tool_calls" json:"tool_calls,omitempty" query:"tool_calls"` - DebugID *string `thrift:"debug_id,101,optional" frugal:"101,optional,string" form:"debug_id" json:"debug_id,omitempty" query:"debug_id"` - InputTokens *int64 `thrift:"input_tokens,102,optional" frugal:"102,optional,i64" json:"input_tokens" form:"input_tokens" query:"input_tokens"` - OutputTokens *int64 `thrift:"output_tokens,103,optional" frugal:"103,optional,i64" json:"output_tokens" form:"output_tokens" query:"output_tokens"` - CostMs *int64 `thrift:"cost_ms,104,optional" frugal:"104,optional,i64" json:"cost_ms" form:"cost_ms" query:"cost_ms"` + // gemini3 thought_signature + Signature *string `thrift:"signature,7,optional" frugal:"7,optional,string" form:"signature" json:"signature,omitempty" query:"signature"` + DebugID *string `thrift:"debug_id,101,optional" frugal:"101,optional,string" form:"debug_id" json:"debug_id,omitempty" query:"debug_id"` + InputTokens *int64 `thrift:"input_tokens,102,optional" frugal:"102,optional,i64" json:"input_tokens" form:"input_tokens" query:"input_tokens"` + OutputTokens *int64 `thrift:"output_tokens,103,optional" frugal:"103,optional,i64" json:"output_tokens" form:"output_tokens" query:"output_tokens"` + CostMs *int64 `thrift:"cost_ms,104,optional" frugal:"104,optional,i64" json:"cost_ms" form:"cost_ms" query:"cost_ms"` } func NewDebugMessage() *DebugMessage { @@ -13224,6 +13460,18 @@ func (p *DebugMessage) GetToolCalls() (v []*DebugToolCall) { return p.ToolCalls } +var DebugMessage_Signature_DEFAULT string + +func (p *DebugMessage) GetSignature() (v string) { + if p == nil { + return + } + if !p.IsSetSignature() { + return DebugMessage_Signature_DEFAULT + } + return *p.Signature +} + var DebugMessage_DebugID_DEFAULT string func (p *DebugMessage) GetDebugID() (v string) { @@ -13289,6 +13537,9 @@ func (p *DebugMessage) SetToolCallID(val *string) { func (p *DebugMessage) SetToolCalls(val []*DebugToolCall) { p.ToolCalls = val } +func (p *DebugMessage) SetSignature(val *string) { + p.Signature = val +} func (p *DebugMessage) SetDebugID(val *string) { p.DebugID = val } @@ -13309,6 +13560,7 @@ var fieldIDToName_DebugMessage = map[int16]string{ 4: "parts", 5: "tool_call_id", 6: "tool_calls", + 7: "signature", 101: "debug_id", 102: "input_tokens", 103: "output_tokens", @@ -13339,6 +13591,10 @@ func (p *DebugMessage) IsSetToolCalls() bool { return p.ToolCalls != nil } +func (p *DebugMessage) IsSetSignature() bool { + return p.Signature != nil +} + func (p *DebugMessage) IsSetDebugID() bool { return p.DebugID != nil } @@ -13421,6 +13677,14 @@ func (p *DebugMessage) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 7: + if fieldTypeId == thrift.STRING { + if err = p.ReadField7(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } case 101: if fieldTypeId == thrift.STRING { if err = p.ReadField101(iprot); err != nil { @@ -13572,6 +13836,17 @@ func (p *DebugMessage) ReadField6(iprot thrift.TProtocol) error { p.ToolCalls = _field return nil } +func (p *DebugMessage) ReadField7(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Signature = _field + return nil +} func (p *DebugMessage) ReadField101(iprot thrift.TProtocol) error { var _field *string @@ -13647,6 +13922,10 @@ func (p *DebugMessage) Write(oprot thrift.TProtocol) (err error) { fieldId = 6 goto WriteFieldError } + if err = p.writeField7(oprot); err != nil { + fieldId = 7 + goto WriteFieldError + } if err = p.writeField101(oprot); err != nil { fieldId = 101 goto WriteFieldError @@ -13805,6 +14084,24 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) } +func (p *DebugMessage) writeField7(oprot thrift.TProtocol) (err error) { + if p.IsSetSignature() { + if err = oprot.WriteFieldBegin("signature", thrift.STRING, 7); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Signature); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 7 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) +} func (p *DebugMessage) writeField101(oprot thrift.TProtocol) (err error) { if p.IsSetDebugID() { if err = oprot.WriteFieldBegin("debug_id", thrift.STRING, 101); err != nil { @@ -13910,6 +14207,9 @@ func (p *DebugMessage) DeepEqual(ano *DebugMessage) bool { if !p.Field6DeepEqual(ano.ToolCalls) { return false } + if !p.Field7DeepEqual(ano.Signature) { + return false + } if !p.Field101DeepEqual(ano.DebugID) { return false } @@ -13999,6 +14299,18 @@ func (p *DebugMessage) Field6DeepEqual(src []*DebugToolCall) bool { } return true } +func (p *DebugMessage) Field7DeepEqual(src *string) bool { + + if p.Signature == src { + return true + } else if p.Signature == nil || src == nil { + return false + } + if strings.Compare(*p.Signature, *src) != 0 { + return false + } + return true +} func (p *DebugMessage) Field101DeepEqual(src *string) bool { if p.DebugID == src { diff --git a/backend/modules/prompt/application/convertor/debug_context.go b/backend/modules/prompt/application/convertor/debug_context.go index aa4409298..a1c77cfa4 100644 --- a/backend/modules/prompt/application/convertor/debug_context.go +++ b/backend/modules/prompt/application/convertor/debug_context.go @@ -58,6 +58,7 @@ func DebugMessageDTO2DO(dto *prompt.DebugMessage) *entity.DebugMessage { Parts: BatchContentPartDTO2DO(dto.GetParts()), ToolCallID: dto.ToolCallID, ToolCalls: DebugToolCallsDTO2DO(dto.GetToolCalls()), + Signature: dto.Signature, DebugID: dto.DebugID, InputTokens: dto.InputTokens, OutputTokens: dto.OutputTokens, @@ -196,6 +197,7 @@ func DebugMessageDO2DTO(do *entity.DebugMessage) *prompt.DebugMessage { Parts: BatchContentPartDO2DTO(do.Parts), ToolCallID: do.ToolCallID, ToolCalls: BatchDebugToolCallDO2DTO(do.ToolCalls), + Signature: do.Signature, DebugID: do.DebugID, InputTokens: do.InputTokens, OutputTokens: do.OutputTokens, diff --git a/backend/modules/prompt/application/convertor/openapi.go b/backend/modules/prompt/application/convertor/openapi.go index c6cf5b7dc..72a231a93 100644 --- a/backend/modules/prompt/application/convertor/openapi.go +++ b/backend/modules/prompt/application/convertor/openapi.go @@ -73,6 +73,7 @@ func OpenAPIMessageDO2DTO(do *entity.Message) *openapi.Message { ToolCallID: do.ToolCallID, ToolCalls: OpenAPIBatchToolCallDO2DTO(do.ToolCalls), SkipRender: do.SkipRender, + Signature: do.Signature, Metadata: do.Metadata, } } @@ -213,6 +214,7 @@ func OpenAPIContentPartDO2DTO(do *entity.ContentPart) *openapi.ContentPart { VideoURL: videoURL, Base64Data: do.Base64Data, Config: config, + Signature: do.Signature, } } @@ -261,6 +263,7 @@ func OpenAPIMessageDTO2DO(dto *openapi.Message) *entity.Message { ToolCallID: dto.ToolCallID, ToolCalls: OpenAPIBatchToolCallDTO2DO(dto.ToolCalls), SkipRender: dto.SkipRender, + Signature: dto.Signature, Metadata: dto.Metadata, } } @@ -311,6 +314,7 @@ func OpenAPIContentPartDTO2DO(dto *openapi.ContentPart) *entity.ContentPart { VideoURL: videoURL, Base64Data: dto.Base64Data, MediaConfig: mediaConfig, + Signature: dto.Signature, } } @@ -396,6 +400,7 @@ func OpenAPIToolCallDO2DTO(do *entity.ToolCall) *openapi.ToolCall { ID: ptr.Of(do.ID), Type: ptr.Of(OpenAPIToolTypeDO2DTO(do.Type)), FunctionCall: OpenAPIFunctionCallDO2DTO(do.FunctionCall), + Signature: do.Signature, } } @@ -447,6 +452,7 @@ func OpenAPIToolCallDTO2DO(dto *openapi.ToolCall) *entity.ToolCall { ID: dto.GetID(), Type: OpenAPIToolTypeDTO2DO(dto.GetType()), FunctionCall: OpenAPIFunctionCallDTO2DO(dto.FunctionCall), + Signature: dto.Signature, } } diff --git a/backend/modules/prompt/application/convertor/prompt.go b/backend/modules/prompt/application/convertor/prompt.go index c85f49e9e..b12ddf3c5 100644 --- a/backend/modules/prompt/application/convertor/prompt.go +++ b/backend/modules/prompt/application/convertor/prompt.go @@ -223,6 +223,8 @@ func MessageDTO2DO(dto *prompt.Message) *entity.Message { Parts: BatchContentPartDTO2DO(dto.Parts), ToolCallID: dto.ToolCallID, ToolCalls: BatchToolCallDTO2DO(dto.ToolCalls), + SkipRender: dto.SkipRender, + Signature: dto.Signature, Metadata: dto.Metadata, } } @@ -269,6 +271,7 @@ func ContentPartDTO2DO(dto *prompt.ContentPart) *entity.ContentPart { ImageURL: ImageURLDTO2DO(dto.ImageURL), VideoURL: VideoURLDTO2DO(dto.VideoURL), MediaConfig: MediaConfigDTO2DO(dto.MediaConfig), + Signature: dto.Signature, } } @@ -438,6 +441,7 @@ func ToolCallDTO2DO(dto *prompt.ToolCall) *entity.ToolCall { ID: dto.GetID(), Type: ToolTypeDTO2DO(dto.GetType()), FunctionCall: FunctionCallDTO2DO(dto.FunctionCall), + Signature: dto.Signature, } } @@ -657,6 +661,7 @@ func ToolCallDO2DTO(do *entity.ToolCall) *prompt.ToolCall { ID: ptr.Of(do.ID), Type: ptr.Of(ToolTypeDO2DTO(do.Type)), FunctionCall: FunctionCallDO2DTO(do.FunctionCall), + Signature: do.Signature, } } @@ -715,6 +720,7 @@ func ContentPartDO2DTO(do *entity.ContentPart) *prompt.ContentPart { ImageURL: ImageURLDO2DTO(do.ImageURL), VideoURL: VideoURLDO2DTO(do.VideoURL), MediaConfig: MediaConfigDO2DTO(do.MediaConfig), + Signature: do.Signature, } } @@ -838,6 +844,8 @@ func MessageDO2DTO(do *entity.Message) *prompt.Message { Parts: BatchContentPartDO2DTO(do.Parts), ToolCallID: do.ToolCallID, ToolCalls: BatchToolCallDO2DTO(do.ToolCalls), + SkipRender: do.SkipRender, + Signature: do.Signature, Metadata: do.Metadata, } } diff --git a/backend/modules/prompt/domain/entity/debug_context.go b/backend/modules/prompt/domain/entity/debug_context.go index f34444c09..097ea1e19 100644 --- a/backend/modules/prompt/domain/entity/debug_context.go +++ b/backend/modules/prompt/domain/entity/debug_context.go @@ -24,6 +24,7 @@ type DebugMessage struct { Parts []*ContentPart `json:"parts,omitempty"` ToolCallID *string `json:"tool_call_id,omitempty"` ToolCalls []*DebugToolCall `json:"tool_calls,omitempty"` + Signature *string `json:"signature,omitempty"` // gemini3 thought_signature DebugID *string `json:"debug_id,omitempty"` InputTokens *int64 `json:"input_tokens,omitempty"` OutputTokens *int64 `json:"output_tokens,omitempty"` diff --git a/backend/modules/prompt/domain/entity/prompt_detail.go b/backend/modules/prompt/domain/entity/prompt_detail.go index e0a2aa3a4..f0c0303bb 100644 --- a/backend/modules/prompt/domain/entity/prompt_detail.go +++ b/backend/modules/prompt/domain/entity/prompt_detail.go @@ -61,6 +61,7 @@ type Message struct { ToolCallID *string `json:"tool_call_id,omitempty"` ToolCalls []*ToolCall `json:"tool_calls,omitempty"` SkipRender *bool `json:"skip_render,omitempty"` + Signature *string `json:"signature,omitempty"` // gemini3 thought_signature Metadata map[string]string `json:"metadata,omitempty"` } @@ -82,6 +83,7 @@ type ContentPart struct { VideoURL *VideoURL `json:"video_url,omitempty"` Base64Data *string `json:"base64_data,omitempty"` MediaConfig *MediaConfig `json:"media_config,omitempty"` + Signature *string `json:"signature,omitempty"` // gemini3 thought_signature } type ContentType string @@ -180,6 +182,7 @@ type ToolCall struct { ID string `json:"id"` Type ToolType `json:"type"` FunctionCall *FunctionCall `json:"function_call,omitempty"` + Signature *string `json:"signature,omitempty"` // gemini3 thought_signature } type FunctionCall struct { diff --git a/idl/thrift/coze/loop/prompt/domain/prompt.thrift b/idl/thrift/coze/loop/prompt/domain/prompt.thrift index dfde19cfe..e349906a8 100644 --- a/idl/thrift/coze/loop/prompt/domain/prompt.thrift +++ b/idl/thrift/coze/loop/prompt/domain/prompt.thrift @@ -175,6 +175,7 @@ struct Message { 5: optional string tool_call_id 6: optional list tool_calls 7: optional bool skip_render // 是否跳过渲染 + 8: optional string signature // gemini3 thought_signature 100: optional map metadata } @@ -192,6 +193,7 @@ struct ContentPart { 3: optional ImageURL image_url 4: optional VideoURL video_url 5: optional MediaConfig media_config + 6: optional string signature // gemini3 thought_signature } typedef string ContentType (ts.enum="true") @@ -219,6 +221,7 @@ struct ToolCall { 2: optional string id 3: optional ToolType type 4: optional FunctionCall function_call + 5: optional string signature // gemini3 thought_signature } struct FunctionCall { @@ -292,6 +295,7 @@ struct DebugMessage { 4: optional list parts 5: optional string tool_call_id 6: optional list tool_calls + 7: optional string signature // gemini3 thought_signature 101: optional string debug_id 102: optional i64 input_tokens (api.js_conv="true", go.tag='json:"input_tokens"') From aacb9eaea824d87815c13ddde9ffcea499bb8265 Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Wed, 14 Jan 2026 17:01:38 +0800 Subject: [PATCH 32/58] [feat][prompt]: update support mcp config --- backend/modules/prompt/infra/repo/mysql/prompt_user_draft.go | 1 + 1 file changed, 1 insertion(+) diff --git a/backend/modules/prompt/infra/repo/mysql/prompt_user_draft.go b/backend/modules/prompt/infra/repo/mysql/prompt_user_draft.go index b21e9653e..9243a9e8f 100644 --- a/backend/modules/prompt/infra/repo/mysql/prompt_user_draft.go +++ b/backend/modules/prompt/infra/repo/mysql/prompt_user_draft.go @@ -152,6 +152,7 @@ func (d *PromptUserDraftDAOImpl) Update(ctx context.Context, promptDraftPO *mode q.PromptUserDraft.TemplateType.ColumnName().String(): promptDraftPO.TemplateType, q.PromptUserDraft.VariableDefs.ColumnName().String(): promptDraftPO.VariableDefs, q.PromptUserDraft.Metadata.ColumnName().String(): promptDraftPO.Metadata, + q.PromptUserDraft.McpConfig.ColumnName().String(): promptDraftPO.McpConfig, q.PromptUserDraft.IsDraftEdited.ColumnName().String(): promptDraftPO.IsDraftEdited, q.PromptUserDraft.HasSnippets.ColumnName().String(): promptDraftPO.HasSnippets, }) From 7ee3bc7767f5c75bdef78ae6729d5784129fa706 Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Wed, 14 Jan 2026 17:47:55 +0800 Subject: [PATCH 33/58] [feat][prompt]: get support mcp config --- .../prompt/application/convertor/prompt.go | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/backend/modules/prompt/application/convertor/prompt.go b/backend/modules/prompt/application/convertor/prompt.go index b12ddf3c5..babcd757b 100644 --- a/backend/modules/prompt/application/convertor/prompt.go +++ b/backend/modules/prompt/application/convertor/prompt.go @@ -1001,6 +1001,7 @@ func PromptDetailDO2DTO(do *entity.PromptDetail) *prompt.PromptDetail { Tools: BatchToolDO2DTO(do.Tools), ToolCallConfig: ToolCallConfigDO2DTO(do.ToolCallConfig), ModelConfig: ModelConfigDO2DTO(do.ModelConfig), + McpConfig: McpConfigDO2DTO(do.McpConfig), ExtInfos: do.ExtInfos, } } @@ -1086,6 +1087,43 @@ func ParamOptionDO2DTO(do *entity.ParamOption) *prompt.ParamOption { } } +func McpConfigDO2DTO(do *entity.McpConfig) *prompt.McpConfig { + if do == nil { + return nil + } + return &prompt.McpConfig{ + IsMcpCallAutoRetry: do.IsMcpCallAutoRetry, + McpServers: BatchMcpServerCombineDO2DTO(do.McpServers), + } +} + +func BatchMcpServerCombineDO2DTO(dos []*entity.McpServerCombine) []*prompt.McpServerCombine { + if dos == nil { + return nil + } + servers := make([]*prompt.McpServerCombine, 0, len(dos)) + for _, do := range dos { + if do == nil { + continue + } + servers = append(servers, McpServerCombineDO2DTO(do)) + } + return servers +} + +func McpServerCombineDO2DTO(do *entity.McpServerCombine) *prompt.McpServerCombine { + if do == nil { + return nil + } + return &prompt.McpServerCombine{ + McpServerID: do.McpServerID, + AccessPointID: do.AccessPointID, + DisabledTools: do.DisabledTools, + EnabledTools: do.EnabledTools, + IsEnabledTools: do.IsEnabledTools, + } +} + func ToolCallConfigDO2DTO(do *entity.ToolCallConfig) *prompt.ToolCallConfig { if do == nil { return nil From e3828748e075b0b31c5dba8cd34c22a1f0de1622 Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Thu, 15 Jan 2026 12:00:41 +0800 Subject: [PATCH 34/58] [feat][prompt]: Extend toolResultKey --- .../modules/prompt/domain/service/execute.go | 12 +++++-- .../domain/service/tool_results_collector.go | 33 +++++++++++++++++-- 2 files changed, 41 insertions(+), 4 deletions(-) diff --git a/backend/modules/prompt/domain/service/execute.go b/backend/modules/prompt/domain/service/execute.go index 52fbcbaf2..d2cff9220 100644 --- a/backend/modules/prompt/domain/service/execute.go +++ b/backend/modules/prompt/domain/service/execute.go @@ -342,10 +342,14 @@ func (p *PromptServiceImpl) reportToolSpan(ctx context.Context, prompt *entity.P if toolCall != nil && toolCall.FunctionCall != nil { var span looptracer.Span ctx, span = looptracer.GetTracer().StartSpan(ctx, toolCall.FunctionCall.Name, tracespec.VToolSpanType, looptracer.WithSpanWorkspaceID(strconv.FormatInt(spaceID, 10))) + toolCallId := toolCall.ID + name := toolCall.FunctionCall.Name + signature := toolCall.Signature + toolResultKey := toolCallId + name + ptr.From(signature) if span != nil { span.SetPrompt(ctx, loopentity.Prompt{PromptKey: promptKey, Version: version}) span.SetInput(ctx, toolCall.FunctionCall.Arguments) - span.SetOutput(ctx, toolResultMap[toolCall.FunctionCall.Name]) + span.SetOutput(ctx, toolResultMap[toolResultKey]) span.Finish(ctx) } } @@ -482,7 +486,11 @@ func (p *PromptServiceImpl) reorganizeContexts(messages []*entity.Message, toolR // 如果有工具调用,则使用 ToolResultMap 填充 tool response for _, toolCall := range reply.Item.Message.ToolCalls { if toolCall.FunctionCall != nil { - toolResult := toolResultMap[toolCall.FunctionCall.Name] + toolCallId := toolCall.ID + name := toolCall.FunctionCall.Name + signature := toolCall.Signature + toolResultKey := toolCallId + name + ptr.From(signature) + toolResult := toolResultMap[toolResultKey] newContexts = append(newContexts, &entity.Message{ Role: entity.RoleTool, ToolCallID: ptr.Of(toolCall.ID), diff --git a/backend/modules/prompt/domain/service/tool_results_collector.go b/backend/modules/prompt/domain/service/tool_results_collector.go index 236f09f61..057d70191 100644 --- a/backend/modules/prompt/domain/service/tool_results_collector.go +++ b/backend/modules/prompt/domain/service/tool_results_collector.go @@ -7,6 +7,7 @@ import ( "context" "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/entity" + "github.com/coze-dev/coze-loop/backend/pkg/lang/ptr" ) // CollectToolResultsParam defines the parameters for processing tool results @@ -35,12 +36,40 @@ func NewToolResultsCollector() IToolResultsCollector { // CollectToolResults ProcessToolResults implements the IToolResultsCollector interface func (t *ToolResultsCollector) CollectToolResults(ctx context.Context, param CollectToolResultsParam) (map[string]string, error) { - toolResultMap := make(map[string]string, len(param.MockTools)) + toolResultMap := make(map[string]string) + + // 如果没有 mock tools,直接返回空 map + if len(param.MockTools) == 0 { + return toolResultMap, nil + } + + // 构建 mock tool name 到 mock response 的映射 + mockToolResponseMap := make(map[string]string, len(param.MockTools)) for _, mockTool := range param.MockTools { if mockTool == nil || mockTool.Name == "" { continue } - toolResultMap[mockTool.Name] = mockTool.MockResponse + mockToolResponseMap[mockTool.Name] = mockTool.MockResponse + } + + // 从 reply 中获取 toolCalls,构建正确的 key(与 reorganizeContexts 中的 key 生成逻辑保持一致) + if param.Reply != nil && param.Reply.Item != nil && param.Reply.Item.Message != nil { + for _, toolCall := range param.Reply.Item.Message.ToolCalls { + if toolCall == nil || toolCall.FunctionCall == nil { + continue + } + + toolName := toolCall.FunctionCall.Name + // 检查是否是 mock tool + if mockResponse, ok := mockToolResponseMap[toolName]; ok { + // 使用与 reorganizeContexts 相同的 key 生成方式: toolCallId + name + signature + toolCallId := toolCall.ID + signature := toolCall.Signature + toolResultKey := toolCallId + toolName + ptr.From(signature) + toolResultMap[toolResultKey] = mockResponse + } + } } + return toolResultMap, nil } From 271ea8bd225df764d051f3340f7b386adcbc496c Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Wed, 21 Jan 2026 11:48:18 +0800 Subject: [PATCH 35/58] [feat][prompt]: add paas metric --- backend/modules/prompt/application/openapi.go | 10 + .../modules/prompt/application/wire_gen.go | 18 +- backend/modules/prompt/infra/metrics/paas.go | 351 ++++++++++++++++++ 3 files changed, 370 insertions(+), 9 deletions(-) create mode 100644 backend/modules/prompt/infra/metrics/paas.go diff --git a/backend/modules/prompt/application/openapi.go b/backend/modules/prompt/application/openapi.go index 2bf171e7c..0fb60b32a 100644 --- a/backend/modules/prompt/application/openapi.go +++ b/backend/modules/prompt/application/openapi.go @@ -21,6 +21,7 @@ import ( "github.com/coze-dev/coze-loop/backend/infra/limiter" "github.com/coze-dev/coze-loop/backend/infra/looptracer" + "github.com/coze-dev/coze-loop/backend/infra/metrics" "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/prompt/openapi" "github.com/coze-dev/coze-loop/backend/modules/prompt/application/convertor" "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/component/conf" @@ -30,6 +31,7 @@ import ( "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/repo" "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/service" "github.com/coze-dev/coze-loop/backend/modules/prompt/infra/collector" + promptmetrics "github.com/coze-dev/coze-loop/backend/modules/prompt/infra/metrics" "github.com/coze-dev/coze-loop/backend/modules/prompt/pkg/consts" prompterr "github.com/coze-dev/coze-loop/backend/modules/prompt/pkg/errno" "github.com/coze-dev/coze-loop/backend/pkg/errorx" @@ -47,7 +49,11 @@ func NewPromptOpenAPIApplication( auth rpc.IAuthProvider, factory limiter.IRateLimiterFactory, collector collector.ICollectorProvider, + meter metrics.Meter, ) (openapi.PromptOpenAPIService, error) { + // Initialize PaaS metrics (global instance) + promptmetrics.NewPromptPaasMetrics(meter) + return &PromptOpenAPIApplicationImpl{ promptService: promptService, promptManageRepo: promptManageRepo, @@ -127,6 +133,7 @@ func (p *PromptOpenAPIApplicationImpl) ListPromptBasic(ctx context.Context, req } func (p *PromptOpenAPIApplicationImpl) BatchGetPromptByPromptKey(ctx context.Context, req *openapi.BatchGetPromptByPromptKeyRequest) (r *openapi.BatchGetPromptByPromptKeyResponse, err error) { + ctx = promptmetrics.NewPaasMetricsCtx(ctx) r = openapi.NewBatchGetPromptByPromptKeyResponse() if req.GetWorkspaceID() == 0 { return r, errorx.NewByCode(prompterr.CommonInvalidParamCode, errorx.WithExtra(map[string]string{"invalid_param": "workspace_id参数为空"})) @@ -135,6 +142,9 @@ func (p *PromptOpenAPIApplicationImpl) BatchGetPromptByPromptKey(ctx context.Con if err != nil { logs.CtxError(ctx, "openapi get prompts failed, err=%v", err) } + promptmetrics.WithPaasStatus(ctx, err) + promptmetrics.WithPaasMethod(ctx, "BatchGetPromptByPromptKey") + promptmetrics.EmitPaasMetric(ctx) }() // 限流检查 diff --git a/backend/modules/prompt/application/wire_gen.go b/backend/modules/prompt/application/wire_gen.go index 3e03267ed..4e1040c5a 100644 --- a/backend/modules/prompt/application/wire_gen.go +++ b/backend/modules/prompt/application/wire_gen.go @@ -53,7 +53,7 @@ func InitPromptManageApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, red iLabelRepo := repo.NewLabelRepo(db2, idgen2, meter, iLabelDAO, iCommitLabelMappingDAO, iPromptBasicDAO, iPromptLabelVersionDAO) iPromptFormatter := service.NewPromptFormatter() iToolConfigProvider := service.NewToolConfigProvider() - iToolResultsProcessor := service.NewToolResultsCollector() + iToolResultsCollector := service.NewToolResultsCollector() iDebugLogDAO := mysql.NewDebugLogDAO(db2) iDebugLogRepo := repo.NewDebugLogRepo(idgen2, iDebugLogDAO) iDebugContextDAO := mysql.NewDebugContextDAO(db2) @@ -61,7 +61,7 @@ func InitPromptManageApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, red illmProvider := rpc.NewLLMRPCProvider(llmClient) iFileProvider := rpc.NewFileRPCProvider(fileClient) snippetParser := service.NewCozeLoopSnippetParser() - iPromptService := service.NewPromptService(iPromptFormatter, iToolConfigProvider, iToolResultsProcessor, idgen2, iDebugLogRepo, iDebugContextRepo, iManageRepo, iLabelRepo, iConfigProvider, illmProvider, iFileProvider, snippetParser) + iPromptService := service.NewPromptService(iPromptFormatter, iToolConfigProvider, iToolResultsCollector, idgen2, iDebugLogRepo, iDebugContextRepo, iManageRepo, iLabelRepo, iConfigProvider, illmProvider, iFileProvider, snippetParser) iAuthProvider := rpc.NewAuthRPCProvider(authClient) iUserProvider := rpc.NewUserRPCProvider(userClient) iAuditProvider := rpc.NewAuditRPCProvider(auditClient) @@ -76,7 +76,7 @@ func InitPromptDebugApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, redi iDebugContextRepo := repo.NewDebugContextRepo(idgen2, iDebugContextDAO) iPromptFormatter := service.NewPromptFormatter() iToolConfigProvider := service.NewToolConfigProvider() - iToolResultsProcessor := service.NewToolResultsCollector() + iToolResultsCollector := service.NewToolResultsCollector() iPromptBasicDAO := mysql.NewPromptBasicDAO(db2, redisCli) iPromptCommitDAO := mysql.NewPromptCommitDAO(db2, redisCli) iPromptUserDraftDAO := mysql.NewPromptUserDraftDAO(db2, redisCli) @@ -95,7 +95,7 @@ func InitPromptDebugApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, redi illmProvider := rpc.NewLLMRPCProvider(llmClient) iFileProvider := rpc.NewFileRPCProvider(fileClient) snippetParser := service.NewCozeLoopSnippetParser() - iPromptService := service.NewPromptService(iPromptFormatter, iToolConfigProvider, iToolResultsProcessor, idgen2, iDebugLogRepo, iDebugContextRepo, iManageRepo, iLabelRepo, iConfigProvider, illmProvider, iFileProvider, snippetParser) + iPromptService := service.NewPromptService(iPromptFormatter, iToolConfigProvider, iToolResultsCollector, idgen2, iDebugLogRepo, iDebugContextRepo, iManageRepo, iLabelRepo, iConfigProvider, illmProvider, iFileProvider, snippetParser) iAuthProvider := rpc.NewAuthRPCProvider(authClient) promptDebugService := NewPromptDebugApplication(iDebugLogRepo, iDebugContextRepo, iPromptService, benefitSvc, iAuthProvider, iFileProvider) return promptDebugService, nil @@ -104,7 +104,7 @@ func InitPromptDebugApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, redi func InitPromptExecuteApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, redisCli redis.Cmdable, meter metrics.Meter, configFactory conf.IConfigLoaderFactory, llmClient llmruntimeservice.Client, fileClient fileservice.Client) (execute.PromptExecuteService, error) { iPromptFormatter := service.NewPromptFormatter() iToolConfigProvider := service.NewToolConfigProvider() - iToolResultsProcessor := service.NewToolResultsCollector() + iToolResultsCollector := service.NewToolResultsCollector() iDebugLogDAO := mysql.NewDebugLogDAO(db2) iDebugLogRepo := repo.NewDebugLogRepo(idgen2, iDebugLogDAO) iDebugContextDAO := mysql.NewDebugContextDAO(db2) @@ -127,7 +127,7 @@ func InitPromptExecuteApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, re illmProvider := rpc.NewLLMRPCProvider(llmClient) iFileProvider := rpc.NewFileRPCProvider(fileClient) snippetParser := service.NewCozeLoopSnippetParser() - iPromptService := service.NewPromptService(iPromptFormatter, iToolConfigProvider, iToolResultsProcessor, idgen2, iDebugLogRepo, iDebugContextRepo, iManageRepo, iLabelRepo, iConfigProvider, illmProvider, iFileProvider, snippetParser) + iPromptService := service.NewPromptService(iPromptFormatter, iToolConfigProvider, iToolResultsCollector, idgen2, iDebugLogRepo, iDebugContextRepo, iManageRepo, iLabelRepo, iConfigProvider, illmProvider, iFileProvider, snippetParser) promptExecuteService := NewPromptExecuteApplication(iPromptService, iManageRepo) return promptExecuteService, nil } @@ -135,7 +135,7 @@ func InitPromptExecuteApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, re func InitPromptOpenAPIApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, redisCli redis.Cmdable, meter metrics.Meter, configFactory conf.IConfigLoaderFactory, limiterFactory limiter.IRateLimiterFactory, llmClient llmruntimeservice.Client, authClient authservice.Client, fileClient fileservice.Client) (openapi.PromptOpenAPIService, error) { iPromptFormatter := service.NewPromptFormatter() iToolConfigProvider := service.NewToolConfigProvider() - iToolResultsProcessor := service.NewToolResultsCollector() + iToolResultsCollector := service.NewToolResultsCollector() iDebugLogDAO := mysql.NewDebugLogDAO(db2) iDebugLogRepo := repo.NewDebugLogRepo(idgen2, iDebugLogDAO) iDebugContextDAO := mysql.NewDebugContextDAO(db2) @@ -158,10 +158,10 @@ func InitPromptOpenAPIApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, re illmProvider := rpc.NewLLMRPCProvider(llmClient) iFileProvider := rpc.NewFileRPCProvider(fileClient) snippetParser := service.NewCozeLoopSnippetParser() - iPromptService := service.NewPromptService(iPromptFormatter, iToolConfigProvider, iToolResultsProcessor, idgen2, iDebugLogRepo, iDebugContextRepo, iManageRepo, iLabelRepo, iConfigProvider, illmProvider, iFileProvider, snippetParser) + iPromptService := service.NewPromptService(iPromptFormatter, iToolConfigProvider, iToolResultsCollector, idgen2, iDebugLogRepo, iDebugContextRepo, iManageRepo, iLabelRepo, iConfigProvider, illmProvider, iFileProvider, snippetParser) iAuthProvider := rpc.NewAuthRPCProvider(authClient) iCollectorProvider := collector.NewEventCollectorProvider() - promptOpenAPIService, err := NewPromptOpenAPIApplication(iPromptService, iManageRepo, iConfigProvider, iAuthProvider, limiterFactory, iCollectorProvider) + promptOpenAPIService, err := NewPromptOpenAPIApplication(iPromptService, iManageRepo, iConfigProvider, iAuthProvider, limiterFactory, iCollectorProvider, meter) if err != nil { return nil, err } diff --git a/backend/modules/prompt/infra/metrics/paas.go b/backend/modules/prompt/infra/metrics/paas.go new file mode 100644 index 000000000..62ae1e19d --- /dev/null +++ b/backend/modules/prompt/infra/metrics/paas.go @@ -0,0 +1,351 @@ +// Copyright (c) 2025 coze-dev Authors +// SPDX-License-Identifier: Apache-2.0 + +package metrics + +import ( + "context" + "fmt" + "strconv" + "sync" + "time" + + "github.com/cloudwego/kitex/pkg/kerrors" + "github.com/cloudwego/kitex/pkg/utils/kitexutil" + + "github.com/coze-dev/coze-loop/backend/infra/metrics" + "github.com/coze-dev/coze-loop/backend/pkg/logs" +) + +const ( + promptPaasMetricsPrefix = "prompt_paas" + + paasSpaceTag = "space_id" + paasPSMTag = "psm" + paasMethodTag = "method" + paasStatusTag = "status" + paasOtherTag = "other" + paasAccountModeTag = "account_mode" + paasStatusCodeTag = "status_code" + paasIsErrAffectStabilityTag = "is_err_affect_stability" + paasModelTag = "model" + paasPromptKeyTag = "prompt_key" + paasUsageScenarioTag = "usage_scenario" + paasVersionTag = "version" + paasIsBOETag = "is_boe" + paasFeatureTag = "feature" + paasSecurityLevelTag = "security_level" + paasPSMVerifiedTag = "psm_verified" + paasPSMInACLTag = "psm_in_acl" + paasUserAllowedTag = "user_allowed" + paasPromptTypeTag = "prompt_type" + paasHasMessageTag = "has_message" + paasHasContexts = "has_contexts" + + firstTokenLatencySuffix = "first_token_latency" + inputTokenSuffix = "input_token" + outputTokenSuffix = "output_token" + maxTokenSuffix = "max_token" +) + +const ( + bizExtraKeyAffectStability = "biz_err_affect_stability" + unknown = "unknown" +) + +func promptPaasMtrTags() []string { + return []string{ + paasSpaceTag, + paasPromptKeyTag, + paasPSMTag, + paasMethodTag, + paasStatusTag, + paasOtherTag, + paasAccountModeTag, + paasStatusCodeTag, + paasIsErrAffectStabilityTag, + paasModelTag, + paasUsageScenarioTag, + paasVersionTag, + paasIsBOETag, + paasFeatureTag, + paasPSMVerifiedTag, + paasPSMInACLTag, + paasSecurityLevelTag, + paasUserAllowedTag, + paasPromptTypeTag, + paasHasMessageTag, + paasHasContexts, + } +} + +var ( + promptPaasMetrics *PromptPaasMetrics + promptPaasMetricsInitOnce sync.Once +) + +func NewPromptPaasMetrics(meter metrics.Meter) *PromptPaasMetrics { + if meter == nil { + return nil + } + promptPaasMetricsInitOnce.Do(func() { + metric, err := meter.NewMetric(promptPaasMetricsPrefix, []metrics.MetricType{ + metrics.MetricTypeCounter, + metrics.MetricTypeTimer, + }, promptPaasMtrTags()) + if err != nil { + logs.CtxError(context.Background(), "new prompt paas metrics failed, err = %v", err) + return + } + promptPaasMetrics = &PromptPaasMetrics{metric: metric} + }) + return promptPaasMetrics +} + +type PromptPaasMetrics struct { + metric metrics.Metric +} + +func (m *PromptPaasMetrics) Emit(tags []metrics.T, values ...*metrics.Value) { + if m == nil || m.metric == nil { + return + } + m.metric.Emit(tags, values...) +} + +type paasMetricsCtxKey struct{} + +type paasMetricsCtx struct { + start time.Time + firstTokenTime time.Time + inputToken int + outputToken int + maxToken int + tagMap map[string]string +} + +func NewPaasMetricsCtx(ctx context.Context) context.Context { + return context.WithValue(ctx, paasMetricsCtxKey{}, &paasMetricsCtx{ + start: time.Now(), + tagMap: make(map[string]string), + }) +} + +func EmitPaasMetric(ctx context.Context) { + metricsCtx, ok := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx) + if !ok { + return + } + end := time.Now() + tsms := end.Sub(metricsCtx.start).Milliseconds() + method, _ := kitexutil.GetMethod(ctx) + if method == "" { + method = unknown + } + firstTokenLatency := metricsCtx.firstTokenTime.Sub(metricsCtx.start).Milliseconds() + if firstTokenLatency < 0 { + firstTokenLatency = 0 + } + + tags := []metrics.T{ + {Name: paasSpaceTag, Value: stringNotEmptyOrDefault(metricsCtx.tagMap[paasSpaceTag], unknown)}, + {Name: paasPromptKeyTag, Value: stringNotEmptyOrDefault(metricsCtx.tagMap[paasPromptKeyTag], unknown)}, + {Name: paasPSMTag, Value: stringNotEmptyOrDefault(metricsCtx.tagMap[paasPSMTag], method)}, + {Name: paasMethodTag, Value: stringNotEmptyOrDefault(metricsCtx.tagMap[paasMethodTag], unknown)}, + {Name: paasStatusTag, Value: stringNotEmptyOrDefault(metricsCtx.tagMap[paasStatusTag], unknown)}, + {Name: paasOtherTag, Value: stringNotEmptyOrDefault(metricsCtx.tagMap[paasOtherTag], unknown)}, + {Name: paasAccountModeTag, Value: stringNotEmptyOrDefault(metricsCtx.tagMap[paasAccountModeTag], unknown)}, + {Name: paasStatusCodeTag, Value: stringNotEmptyOrDefault(metricsCtx.tagMap[paasStatusCodeTag], unknown)}, + {Name: paasIsErrAffectStabilityTag, Value: stringNotEmptyOrDefault(metricsCtx.tagMap[paasIsErrAffectStabilityTag], unknown)}, + {Name: paasModelTag, Value: stringNotEmptyOrDefault(metricsCtx.tagMap[paasModelTag], unknown)}, + {Name: paasUsageScenarioTag, Value: stringNotEmptyOrDefault(metricsCtx.tagMap[paasUsageScenarioTag], unknown)}, + {Name: paasVersionTag, Value: stringNotEmptyOrDefault(metricsCtx.tagMap[paasVersionTag], unknown)}, + {Name: paasIsBOETag, Value: stringNotEmptyOrDefault(metricsCtx.tagMap[paasIsBOETag], unknown)}, + {Name: paasFeatureTag, Value: stringNotEmptyOrDefault(metricsCtx.tagMap[paasFeatureTag], unknown)}, + {Name: paasPSMVerifiedTag, Value: stringNotEmptyOrDefault(metricsCtx.tagMap[paasPSMVerifiedTag], unknown)}, + {Name: paasPSMInACLTag, Value: stringNotEmptyOrDefault(metricsCtx.tagMap[paasPSMInACLTag], unknown)}, + {Name: paasSecurityLevelTag, Value: stringNotEmptyOrDefault(metricsCtx.tagMap[paasSecurityLevelTag], unknown)}, + {Name: paasUserAllowedTag, Value: stringNotEmptyOrDefault(metricsCtx.tagMap[paasUserAllowedTag], unknown)}, + {Name: paasPromptTypeTag, Value: stringNotEmptyOrDefault(metricsCtx.tagMap[paasPromptTypeTag], unknown)}, + {Name: paasHasMessageTag, Value: stringNotEmptyOrDefault(metricsCtx.tagMap[paasHasMessageTag], unknown)}, + {Name: paasHasContexts, Value: stringNotEmptyOrDefault(metricsCtx.tagMap[paasHasContexts], unknown)}, + } + + if promptPaasMetrics == nil { + return + } + promptPaasMetrics.Emit(tags, + metrics.Counter(1), + metrics.Timer(tsms), + metrics.Timer(firstTokenLatency, metrics.WithSuffix(firstTokenLatencySuffix)), + metrics.Counter(int64(metricsCtx.inputToken), metrics.WithSuffix(inputTokenSuffix)), + metrics.Counter(int64(metricsCtx.outputToken), metrics.WithSuffix(outputTokenSuffix)), + metrics.Counter(int64(metricsCtx.maxToken), metrics.WithSuffix(maxTokenSuffix)), + ) +} + +func WithPaasSpace(ctx context.Context, spaceID int64) { + if metricsCtx, ok := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx); ok { + metricsCtx.tagMap[paasSpaceTag] = strconv.FormatInt(spaceID, 10) + } +} + +func WithPaasPSM(ctx context.Context, psm string) { + if metricsCtx, ok := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx); ok { + metricsCtx.tagMap[paasPSMTag] = psm + } +} + +func WithPaasMethod(ctx context.Context, method string) { + if metricsCtx, ok := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx); ok { + metricsCtx.tagMap[paasMethodTag] = method + } +} + +func WithOther(ctx context.Context, other string) { + if metricsCtx, ok := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx); ok { + if metricsCtx.tagMap[paasOtherTag] != "" { + metricsCtx.tagMap[paasOtherTag] = metricsCtx.tagMap[paasOtherTag] + "|" + other + } else { + metricsCtx.tagMap[paasOtherTag] = other + } + } +} + +func WithPaaSAccountMode(ctx context.Context, accountMode string) { + if metricsCtx, ok := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx); ok { + metricsCtx.tagMap[paasAccountModeTag] = accountMode + } +} + +func WithPaaSModel(ctx context.Context, model string) { + if metricsCtx, ok := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx); ok { + metricsCtx.tagMap[paasModelTag] = model + } +} + +func WithPaasStatus(ctx context.Context, err error) { + if metricsCtx, ok := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx); ok { + if err == nil { + metricsCtx.tagMap[paasStatusTag] = "success" + metricsCtx.tagMap[paasStatusCodeTag] = "0" + metricsCtx.tagMap[paasIsErrAffectStabilityTag] = "0" + } else { + bizError, ok := kerrors.FromBizStatusError(err) + if ok && bizError != nil { + metricsCtx.tagMap[paasStatusCodeTag] = strconv.FormatInt(int64(bizError.BizStatusCode()), 10) + metricsCtx.tagMap[paasIsErrAffectStabilityTag] = getIsErrAffectStability(bizError) + } + metricsCtx.tagMap[paasStatusTag] = "error" + } + } +} + +func WithPaasPromptKey(ctx context.Context, promptKey string) { + if metricsCtx, ok := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx); ok { + metricsCtx.tagMap[paasPromptKeyTag] = promptKey + } +} + +func WithPaasPromptType(ctx context.Context, promptType int64) { + if metricsCtx, ok := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx); ok { + metricsCtx.tagMap[paasPromptTypeTag] = fmt.Sprintf("%v", promptType) + } +} + +func WithHasMessage(ctx context.Context, hasMessage bool) { + if metricsCtx, ok := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx); ok { + metricsCtx.tagMap[paasHasMessageTag] = fmt.Sprintf("%v", hasMessage) + } +} + +func WithHasContexts(ctx context.Context, hasContexts bool) { + if metricsCtx, ok := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx); ok { + metricsCtx.tagMap[paasHasContexts] = fmt.Sprintf("%v", hasContexts) + } +} + +func WithPaasUsageScenario(ctx context.Context, usageScenario string) { + if metricsCtx, ok := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx); ok { + metricsCtx.tagMap[paasUsageScenarioTag] = usageScenario + } +} + +func WithPaasVersion(ctx context.Context, version string) { + if metricsCtx, ok := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx); ok { + metricsCtx.tagMap[paasVersionTag] = version + } +} + +func WithPaasIsBOE(ctx context.Context, isBOE bool) { + if metricsCtx, ok := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx); ok { + metricsCtx.tagMap[paasIsBOETag] = fmt.Sprintf("%t", isBOE) + } +} + +func WithPaasFeature(ctx context.Context, feature string) { + if metricsCtx, ok := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx); ok { + metricsCtx.tagMap[paasFeatureTag] = feature + } +} + +func WithPaasPSMVerified(ctx context.Context, verified bool) { + if metricsCtx, ok := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx); ok { + metricsCtx.tagMap[paasPSMVerifiedTag] = fmt.Sprintf("%v", verified) + } +} + +func WithPaasPSMInACL(ctx context.Context, inACL bool) { + if metricsCtx, ok := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx); ok { + metricsCtx.tagMap[paasPSMInACLTag] = fmt.Sprintf("%v", inACL) + } +} + +func WithPaaSUserAllowed(ctx context.Context, allowed bool) { + if metricsCtx, ok := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx); ok { + metricsCtx.tagMap[paasUserAllowedTag] = fmt.Sprintf("%v", allowed) + } +} + +func WithPaasSecurityLevel(ctx context.Context, securityLevel string) { + if metricsCtx, ok := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx); ok { + metricsCtx.tagMap[paasSecurityLevelTag] = securityLevel + } +} + +func WithPaasFirstTokenTime(ctx context.Context) { + if metricsCtx, ok := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx); ok { + metricsCtx.firstTokenTime = time.Now() + } +} + +func WithPaasTokenConsumption(ctx context.Context, inputToken int64, outToken int64) { + if metricsCtx, ok := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx); ok { + metricsCtx.inputToken = int(inputToken) + metricsCtx.outputToken = int(outToken) + } +} + +func WithPaasMaxToken(ctx context.Context, maxToken int32) { + if metricsCtx, ok := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx); ok { + metricsCtx.maxToken = int(maxToken) + } +} + +func getIsErrAffectStability(bizError kerrors.BizStatusErrorIface) string { + bizExtra := bizError.BizExtra() + + affectStability := "1" + affectStabilityVal, ok := bizExtra[bizExtraKeyAffectStability] + if ok && affectStabilityVal != "1" { + affectStability = "0" + } + return affectStability +} + +func stringNotEmptyOrDefault(s, defaultVal string) string { + if s != "" { + return s + } + return defaultVal +} From 3a0504d88c13017efb4b09799a03f3cbece0122a Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Thu, 22 Jan 2026 15:23:53 +0800 Subject: [PATCH 36/58] [feat][prompt]: add get user id & draft prompt get --- backend/modules/prompt/application/openapi.go | 22 ++++++++++++++----- backend/modules/prompt/application/wire.go | 1 + .../modules/prompt/application/wire_gen.go | 5 +++-- .../component/rpc/mocks/user_provider.go | 15 +++++++++++++ .../prompt/domain/component/rpc/user.go | 1 + backend/modules/prompt/infra/rpc/user.go | 5 +++++ backend/modules/prompt/pkg/consts/prompt.go | 3 +++ 7 files changed, 45 insertions(+), 7 deletions(-) create mode 100644 backend/modules/prompt/pkg/consts/prompt.go diff --git a/backend/modules/prompt/application/openapi.go b/backend/modules/prompt/application/openapi.go index 0fb60b32a..c574fd310 100644 --- a/backend/modules/prompt/application/openapi.go +++ b/backend/modules/prompt/application/openapi.go @@ -50,6 +50,7 @@ func NewPromptOpenAPIApplication( factory limiter.IRateLimiterFactory, collector collector.ICollectorProvider, meter metrics.Meter, + user rpc.IUserProvider, ) (openapi.PromptOpenAPIService, error) { // Initialize PaaS metrics (global instance) promptmetrics.NewPromptPaasMetrics(meter) @@ -61,6 +62,7 @@ func NewPromptOpenAPIApplication( auth: auth, rateLimiter: factory.NewRateLimiter(), collector: collector, + user: user, }, nil } @@ -71,6 +73,7 @@ type PromptOpenAPIApplicationImpl struct { auth rpc.IAuthProvider rateLimiter limiter.IRateLimiter collector collector.ICollectorProvider + user rpc.IUserProvider } func (p *PromptOpenAPIApplicationImpl) ListPromptBasic(ctx context.Context, req *openapi.ListPromptBasicRequest) (r *openapi.ListPromptBasicResponse, err error) { @@ -219,11 +222,20 @@ func (p *PromptOpenAPIApplicationImpl) fetchPromptResults(ctx context.Context, r } commitVersion := promptKeyCommitVersionMap[queryParam] - mgetParams = append(mgetParams, repo.GetPromptParam{ - PromptID: promptKeyIDMap[query.GetPromptKey()], - WithCommit: true, - CommitVersion: commitVersion, - }) + // 根据 commitVersion 类型构建参数 + param := repo.GetPromptParam{ + PromptID: promptKeyIDMap[query.GetPromptKey()], + } + if commitVersion != consts.PromptPersonalDraftVersion { + param.WithCommit = true + param.CommitVersion = commitVersion + } else { + param.WithDraft = true + if userID, ok := p.user.GetUserIdInCtx(ctx); ok { + param.UserID = userID + } + } + mgetParams = append(mgetParams, param) } // 获取prompt详细信息 diff --git a/backend/modules/prompt/application/wire.go b/backend/modules/prompt/application/wire.go index 9d7960656..d05a990c3 100644 --- a/backend/modules/prompt/application/wire.go +++ b/backend/modules/prompt/application/wire.go @@ -136,6 +136,7 @@ func InitPromptOpenAPIApplication( llmClient llmruntimeservice.Client, authClient authservice.Client, fileClient fileservice.Client, + userClient userservice.Client, ) (openapi.PromptOpenAPIService, error) { wire.Build(openAPISet) return nil, nil diff --git a/backend/modules/prompt/application/wire_gen.go b/backend/modules/prompt/application/wire_gen.go index 4e1040c5a..06d11e9be 100644 --- a/backend/modules/prompt/application/wire_gen.go +++ b/backend/modules/prompt/application/wire_gen.go @@ -132,7 +132,7 @@ func InitPromptExecuteApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, re return promptExecuteService, nil } -func InitPromptOpenAPIApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, redisCli redis.Cmdable, meter metrics.Meter, configFactory conf.IConfigLoaderFactory, limiterFactory limiter.IRateLimiterFactory, llmClient llmruntimeservice.Client, authClient authservice.Client, fileClient fileservice.Client) (openapi.PromptOpenAPIService, error) { +func InitPromptOpenAPIApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, redisCli redis.Cmdable, meter metrics.Meter, configFactory conf.IConfigLoaderFactory, limiterFactory limiter.IRateLimiterFactory, llmClient llmruntimeservice.Client, authClient authservice.Client, fileClient fileservice.Client, userClient userservice.Client) (openapi.PromptOpenAPIService, error) { iPromptFormatter := service.NewPromptFormatter() iToolConfigProvider := service.NewToolConfigProvider() iToolResultsCollector := service.NewToolResultsCollector() @@ -161,7 +161,8 @@ func InitPromptOpenAPIApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, re iPromptService := service.NewPromptService(iPromptFormatter, iToolConfigProvider, iToolResultsCollector, idgen2, iDebugLogRepo, iDebugContextRepo, iManageRepo, iLabelRepo, iConfigProvider, illmProvider, iFileProvider, snippetParser) iAuthProvider := rpc.NewAuthRPCProvider(authClient) iCollectorProvider := collector.NewEventCollectorProvider() - promptOpenAPIService, err := NewPromptOpenAPIApplication(iPromptService, iManageRepo, iConfigProvider, iAuthProvider, limiterFactory, iCollectorProvider, meter) + iUserProvider := rpc.NewUserRPCProvider(userClient) + promptOpenAPIService, err := NewPromptOpenAPIApplication(iPromptService, iManageRepo, iConfigProvider, iAuthProvider, limiterFactory, iCollectorProvider, meter, iUserProvider) if err != nil { return nil, err } diff --git a/backend/modules/prompt/domain/component/rpc/mocks/user_provider.go b/backend/modules/prompt/domain/component/rpc/mocks/user_provider.go index 774c4f951..aa731017e 100644 --- a/backend/modules/prompt/domain/component/rpc/mocks/user_provider.go +++ b/backend/modules/prompt/domain/component/rpc/mocks/user_provider.go @@ -41,6 +41,21 @@ func (m *MockIUserProvider) EXPECT() *MockIUserProviderMockRecorder { return m.recorder } +// GetUserIdInCtx mocks base method. +func (m *MockIUserProvider) GetUserIdInCtx(ctx context.Context) (string, bool) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetUserIdInCtx", ctx) + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(bool) + return ret0, ret1 +} + +// GetUserIdInCtx indicates an expected call of GetUserIdInCtx. +func (mr *MockIUserProviderMockRecorder) GetUserIdInCtx(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserIdInCtx", reflect.TypeOf((*MockIUserProvider)(nil).GetUserIdInCtx), ctx) +} + // MGetUserInfo mocks base method. func (m *MockIUserProvider) MGetUserInfo(ctx context.Context, userIDs []string) ([]*rpc.UserInfo, error) { m.ctrl.T.Helper() diff --git a/backend/modules/prompt/domain/component/rpc/user.go b/backend/modules/prompt/domain/component/rpc/user.go index a020fefb9..7bf4a349f 100644 --- a/backend/modules/prompt/domain/component/rpc/user.go +++ b/backend/modules/prompt/domain/component/rpc/user.go @@ -19,4 +19,5 @@ type UserInfo struct { //go:generate mockgen -destination=mocks/user_provider.go -package=mocks . IUserProvider type IUserProvider interface { MGetUserInfo(ctx context.Context, userIDs []string) (userInfos []*UserInfo, err error) + GetUserIdInCtx(ctx context.Context) (string, bool) } diff --git a/backend/modules/prompt/infra/rpc/user.go b/backend/modules/prompt/infra/rpc/user.go index bd071e236..071b08da9 100644 --- a/backend/modules/prompt/infra/rpc/user.go +++ b/backend/modules/prompt/infra/rpc/user.go @@ -6,6 +6,7 @@ package rpc import ( "context" + "github.com/coze-dev/coze-loop/backend/infra/middleware/session" "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/foundation/user" "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/foundation/user/userservice" "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/component/rpc" @@ -39,3 +40,7 @@ func (u *UserRPCAdapter) MGetUserInfo(ctx context.Context, userIDs []string) (us } return convertor.BatchUserDTO2DO(resp.GetUserInfos()), nil } + +func (u *UserRPCAdapter) GetUserIdInCtx(ctx context.Context) (string, bool) { + return session.UserIDInCtx(ctx) +} diff --git a/backend/modules/prompt/pkg/consts/prompt.go b/backend/modules/prompt/pkg/consts/prompt.go new file mode 100644 index 000000000..273501ad0 --- /dev/null +++ b/backend/modules/prompt/pkg/consts/prompt.go @@ -0,0 +1,3 @@ +package consts + +const PromptPersonalDraftVersion = "$Draft" From f7ffd2a28df652264223052608e1165582b8a108 Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Thu, 22 Jan 2026 18:18:59 +0800 Subject: [PATCH 37/58] [feat][prompt]: add get user id & draft prompt get --- backend/modules/prompt/infra/metrics/paas.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/backend/modules/prompt/infra/metrics/paas.go b/backend/modules/prompt/infra/metrics/paas.go index 62ae1e19d..cedac3c4e 100644 --- a/backend/modules/prompt/infra/metrics/paas.go +++ b/backend/modules/prompt/infra/metrics/paas.go @@ -125,6 +125,11 @@ type paasMetricsCtx struct { } func NewPaasMetricsCtx(ctx context.Context) context.Context { + // 如果已经存在,直接返回原 context + if _, ok := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx); ok { + return ctx + } + // 不存在则初始化 return context.WithValue(ctx, paasMetricsCtxKey{}, &paasMetricsCtx{ start: time.Now(), tagMap: make(map[string]string), From 3973e01ba5433352cb6c1d2139554dc8d41a7d15 Mon Sep 17 00:00:00 2001 From: ming845378603 <52918361+ming845378603@users.noreply.github.com> Date: Mon, 2 Feb 2026 15:32:58 +0800 Subject: [PATCH 38/58] [feat][prompt]BatchGetPromptBasic (#416) * feat:prompt_release * feat:prompt_release * feat:prompt_release * feat:prompt_release --- .../platestwrite/latest_write_tracker.go | 4 + .../loop/apis/promptmanageservice/client.go | 6 + .../promptmanageservice.go | 36 + .../prompt/manage/coze.loop.prompt.manage.go | 1839 +++++++++++++---- .../coze.loop.prompt.manage_validator.go | 22 + .../manage/k-coze.loop.prompt.manage.go | 694 +++++++ .../manage/promptmanageservice/client.go | 6 + .../promptmanageservice.go | 36 + .../loop/prompt/promptmanageservice/client.go | 6 + .../promptmanageservice.go | 36 + .../lomanage/local_promptmanageservice.go | 21 + backend/modules/prompt/application/manage.go | 25 + backend/modules/prompt/domain/repo/manage.go | 1 + .../prompt/domain/repo/mocks/manage_repo.go | 15 + backend/modules/prompt/infra/repo/manage.go | 27 + .../prompt/coze.loop.prompt.manage.thrift | 14 + 16 files changed, 2380 insertions(+), 408 deletions(-) diff --git a/backend/infra/platestwrite/latest_write_tracker.go b/backend/infra/platestwrite/latest_write_tracker.go index fcc568b15..3312076ae 100644 --- a/backend/infra/platestwrite/latest_write_tracker.go +++ b/backend/infra/platestwrite/latest_write_tracker.go @@ -131,6 +131,10 @@ const ( ResourceTypePromptCommitLabelMapping ResourceType = "prompt_commit_label_mapping" ResourceTypeCozeloopOptimizeTask ResourceType = "cozeloop_optimize_task" // 外场智能优化 ResourceTypePromptRelation ResourceType = "prompt_relation" + ResourceTypePromptRelease ResourceType = "prompt_release" + ResourceTypeReleaseTask ResourceType = "release_task" + ResourceTypeReleaseSubtask ResourceType = "release_subtask" + ResourceTypeReleaseTaskResource ResourceType = "release_task_resource" ResourceTypeExperiment ResourceType = "experiment" ResourceTypeEvalSet ResourceType = "eval_set" diff --git a/backend/kitex_gen/coze/loop/apis/promptmanageservice/client.go b/backend/kitex_gen/coze/loop/apis/promptmanageservice/client.go index 3e7b1c158..aaec1bad2 100644 --- a/backend/kitex_gen/coze/loop/apis/promptmanageservice/client.go +++ b/backend/kitex_gen/coze/loop/apis/promptmanageservice/client.go @@ -18,6 +18,7 @@ type Client interface { BatchGetPrompt(ctx context.Context, request *manage.BatchGetPromptRequest, callOptions ...callopt.Option) (r *manage.BatchGetPromptResponse, err error) ListPrompt(ctx context.Context, request *manage.ListPromptRequest, callOptions ...callopt.Option) (r *manage.ListPromptResponse, err error) ListParentPrompt(ctx context.Context, request *manage.ListParentPromptRequest, callOptions ...callopt.Option) (r *manage.ListParentPromptResponse, err error) + BatchGetPromptBasic(ctx context.Context, request *manage.BatchGetPromptBasicRequest, callOptions ...callopt.Option) (r *manage.BatchGetPromptBasicResponse, err error) UpdatePrompt(ctx context.Context, request *manage.UpdatePromptRequest, callOptions ...callopt.Option) (r *manage.UpdatePromptResponse, err error) SaveDraft(ctx context.Context, request *manage.SaveDraftRequest, callOptions ...callopt.Option) (r *manage.SaveDraftResponse, err error) CreateLabel(ctx context.Context, request *manage.CreateLabelRequest, callOptions ...callopt.Option) (r *manage.CreateLabelResponse, err error) @@ -93,6 +94,11 @@ func (p *kPromptManageServiceClient) ListParentPrompt(ctx context.Context, reque return p.kClient.ListParentPrompt(ctx, request) } +func (p *kPromptManageServiceClient) BatchGetPromptBasic(ctx context.Context, request *manage.BatchGetPromptBasicRequest, callOptions ...callopt.Option) (r *manage.BatchGetPromptBasicResponse, err error) { + ctx = client.NewCtxWithCallOptions(ctx, callOptions) + return p.kClient.BatchGetPromptBasic(ctx, request) +} + func (p *kPromptManageServiceClient) UpdatePrompt(ctx context.Context, request *manage.UpdatePromptRequest, callOptions ...callopt.Option) (r *manage.UpdatePromptResponse, err error) { ctx = client.NewCtxWithCallOptions(ctx, callOptions) return p.kClient.UpdatePrompt(ctx, request) diff --git a/backend/kitex_gen/coze/loop/apis/promptmanageservice/promptmanageservice.go b/backend/kitex_gen/coze/loop/apis/promptmanageservice/promptmanageservice.go index 331bb3c02..f3917260f 100644 --- a/backend/kitex_gen/coze/loop/apis/promptmanageservice/promptmanageservice.go +++ b/backend/kitex_gen/coze/loop/apis/promptmanageservice/promptmanageservice.go @@ -63,6 +63,13 @@ var serviceMethods = map[string]kitex.MethodInfo{ false, kitex.WithStreamingMode(kitex.StreamingNone), ), + "BatchGetPromptBasic": kitex.NewMethodInfo( + batchGetPromptBasicHandler, + newPromptManageServiceBatchGetPromptBasicArgs, + newPromptManageServiceBatchGetPromptBasicResult, + false, + kitex.WithStreamingMode(kitex.StreamingNone), + ), "UpdatePrompt": kitex.NewMethodInfo( updatePromptHandler, newPromptManageServiceUpdatePromptArgs, @@ -292,6 +299,25 @@ func newPromptManageServiceListParentPromptResult() interface{} { return manage.NewPromptManageServiceListParentPromptResult() } +func batchGetPromptBasicHandler(ctx context.Context, handler interface{}, arg, result interface{}) error { + realArg := arg.(*manage.PromptManageServiceBatchGetPromptBasicArgs) + realResult := result.(*manage.PromptManageServiceBatchGetPromptBasicResult) + success, err := handler.(manage.PromptManageService).BatchGetPromptBasic(ctx, realArg.Request) + if err != nil { + return err + } + realResult.Success = success + return nil +} + +func newPromptManageServiceBatchGetPromptBasicArgs() interface{} { + return manage.NewPromptManageServiceBatchGetPromptBasicArgs() +} + +func newPromptManageServiceBatchGetPromptBasicResult() interface{} { + return manage.NewPromptManageServiceBatchGetPromptBasicResult() +} + func updatePromptHandler(ctx context.Context, handler interface{}, arg, result interface{}) error { realArg := arg.(*manage.PromptManageServiceUpdatePromptArgs) realResult := result.(*manage.PromptManageServiceUpdatePromptResult) @@ -545,6 +571,16 @@ func (p *kClient) ListParentPrompt(ctx context.Context, request *manage.ListPare return _result.GetSuccess(), nil } +func (p *kClient) BatchGetPromptBasic(ctx context.Context, request *manage.BatchGetPromptBasicRequest) (r *manage.BatchGetPromptBasicResponse, err error) { + var _args manage.PromptManageServiceBatchGetPromptBasicArgs + _args.Request = request + var _result manage.PromptManageServiceBatchGetPromptBasicResult + if err = p.c.Call(ctx, "BatchGetPromptBasic", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} + func (p *kClient) UpdatePrompt(ctx context.Context, request *manage.UpdatePromptRequest) (r *manage.UpdatePromptResponse, err error) { var _args manage.PromptManageServiceUpdatePromptArgs _args.Request = request diff --git a/backend/kitex_gen/coze/loop/prompt/manage/coze.loop.prompt.manage.go b/backend/kitex_gen/coze/loop/prompt/manage/coze.loop.prompt.manage.go index 64dca1a7f..5ac6b1591 100644 --- a/backend/kitex_gen/coze/loop/prompt/manage/coze.loop.prompt.manage.go +++ b/backend/kitex_gen/coze/loop/prompt/manage/coze.loop.prompt.manage.go @@ -13138,6 +13138,625 @@ func (p *ListParentPromptResponse) Field255DeepEqual(src *base.BaseResp) bool { return true } +type BatchGetPromptBasicRequest struct { + WorkspaceID *int64 `thrift:"workspace_id,1,optional" frugal:"1,optional,i64" json:"workspace_id" form:"workspace_id" query:"workspace_id"` + PromptIds []int64 `thrift:"prompt_ids,2,optional" frugal:"2,optional,list" form:"prompt_ids" json:"prompt_ids,omitempty" query:"prompt_ids"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` +} + +func NewBatchGetPromptBasicRequest() *BatchGetPromptBasicRequest { + return &BatchGetPromptBasicRequest{} +} + +func (p *BatchGetPromptBasicRequest) InitDefault() { +} + +var BatchGetPromptBasicRequest_WorkspaceID_DEFAULT int64 + +func (p *BatchGetPromptBasicRequest) GetWorkspaceID() (v int64) { + if p == nil { + return + } + if !p.IsSetWorkspaceID() { + return BatchGetPromptBasicRequest_WorkspaceID_DEFAULT + } + return *p.WorkspaceID +} + +var BatchGetPromptBasicRequest_PromptIds_DEFAULT []int64 + +func (p *BatchGetPromptBasicRequest) GetPromptIds() (v []int64) { + if p == nil { + return + } + if !p.IsSetPromptIds() { + return BatchGetPromptBasicRequest_PromptIds_DEFAULT + } + return p.PromptIds +} + +var BatchGetPromptBasicRequest_Base_DEFAULT *base.Base + +func (p *BatchGetPromptBasicRequest) GetBase() (v *base.Base) { + if p == nil { + return + } + if !p.IsSetBase() { + return BatchGetPromptBasicRequest_Base_DEFAULT + } + return p.Base +} +func (p *BatchGetPromptBasicRequest) SetWorkspaceID(val *int64) { + p.WorkspaceID = val +} +func (p *BatchGetPromptBasicRequest) SetPromptIds(val []int64) { + p.PromptIds = val +} +func (p *BatchGetPromptBasicRequest) SetBase(val *base.Base) { + p.Base = val +} + +var fieldIDToName_BatchGetPromptBasicRequest = map[int16]string{ + 1: "workspace_id", + 2: "prompt_ids", + 255: "Base", +} + +func (p *BatchGetPromptBasicRequest) IsSetWorkspaceID() bool { + return p.WorkspaceID != nil +} + +func (p *BatchGetPromptBasicRequest) IsSetPromptIds() bool { + return p.PromptIds != nil +} + +func (p *BatchGetPromptBasicRequest) IsSetBase() bool { + return p.Base != nil +} + +func (p *BatchGetPromptBasicRequest) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.I64 { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.LIST { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 255: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField255(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_BatchGetPromptBasicRequest[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *BatchGetPromptBasicRequest) ReadField1(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.WorkspaceID = _field + return nil +} +func (p *BatchGetPromptBasicRequest) ReadField2(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]int64, 0, size) + for i := 0; i < size; i++ { + + var _elem int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _elem = v + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { + return err + } + p.PromptIds = _field + return nil +} +func (p *BatchGetPromptBasicRequest) ReadField255(iprot thrift.TProtocol) error { + _field := base.NewBase() + if err := _field.Read(iprot); err != nil { + return err + } + p.Base = _field + return nil +} + +func (p *BatchGetPromptBasicRequest) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("BatchGetPromptBasicRequest"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField255(oprot); err != nil { + fieldId = 255 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *BatchGetPromptBasicRequest) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetWorkspaceID() { + if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.WorkspaceID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *BatchGetPromptBasicRequest) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetPromptIds() { + if err = oprot.WriteFieldBegin("prompt_ids", thrift.LIST, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.I64, len(p.PromptIds)); err != nil { + return err + } + for _, v := range p.PromptIds { + if err := oprot.WriteI64(v); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} +func (p *BatchGetPromptBasicRequest) writeField255(oprot thrift.TProtocol) (err error) { + if p.IsSetBase() { + if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { + goto WriteFieldBeginError + } + if err := p.Base.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) +} + +func (p *BatchGetPromptBasicRequest) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("BatchGetPromptBasicRequest(%+v)", *p) + +} + +func (p *BatchGetPromptBasicRequest) DeepEqual(ano *BatchGetPromptBasicRequest) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.WorkspaceID) { + return false + } + if !p.Field2DeepEqual(ano.PromptIds) { + return false + } + if !p.Field255DeepEqual(ano.Base) { + return false + } + return true +} + +func (p *BatchGetPromptBasicRequest) Field1DeepEqual(src *int64) bool { + + if p.WorkspaceID == src { + return true + } else if p.WorkspaceID == nil || src == nil { + return false + } + if *p.WorkspaceID != *src { + return false + } + return true +} +func (p *BatchGetPromptBasicRequest) Field2DeepEqual(src []int64) bool { + + if len(p.PromptIds) != len(src) { + return false + } + for i, v := range p.PromptIds { + _src := src[i] + if v != _src { + return false + } + } + return true +} +func (p *BatchGetPromptBasicRequest) Field255DeepEqual(src *base.Base) bool { + + if !p.Base.DeepEqual(src) { + return false + } + return true +} + +type BatchGetPromptBasicResponse struct { + Prompts []*prompt.Prompt `thrift:"prompts,1,optional" frugal:"1,optional,list" form:"prompts" json:"prompts,omitempty" query:"prompts"` + BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` +} + +func NewBatchGetPromptBasicResponse() *BatchGetPromptBasicResponse { + return &BatchGetPromptBasicResponse{} +} + +func (p *BatchGetPromptBasicResponse) InitDefault() { +} + +var BatchGetPromptBasicResponse_Prompts_DEFAULT []*prompt.Prompt + +func (p *BatchGetPromptBasicResponse) GetPrompts() (v []*prompt.Prompt) { + if p == nil { + return + } + if !p.IsSetPrompts() { + return BatchGetPromptBasicResponse_Prompts_DEFAULT + } + return p.Prompts +} + +var BatchGetPromptBasicResponse_BaseResp_DEFAULT *base.BaseResp + +func (p *BatchGetPromptBasicResponse) GetBaseResp() (v *base.BaseResp) { + if p == nil { + return + } + if !p.IsSetBaseResp() { + return BatchGetPromptBasicResponse_BaseResp_DEFAULT + } + return p.BaseResp +} +func (p *BatchGetPromptBasicResponse) SetPrompts(val []*prompt.Prompt) { + p.Prompts = val +} +func (p *BatchGetPromptBasicResponse) SetBaseResp(val *base.BaseResp) { + p.BaseResp = val +} + +var fieldIDToName_BatchGetPromptBasicResponse = map[int16]string{ + 1: "prompts", + 255: "BaseResp", +} + +func (p *BatchGetPromptBasicResponse) IsSetPrompts() bool { + return p.Prompts != nil +} + +func (p *BatchGetPromptBasicResponse) IsSetBaseResp() bool { + return p.BaseResp != nil +} + +func (p *BatchGetPromptBasicResponse) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.LIST { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 255: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField255(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_BatchGetPromptBasicResponse[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *BatchGetPromptBasicResponse) ReadField1(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*prompt.Prompt, 0, size) + values := make([]prompt.Prompt, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + + if err := _elem.Read(iprot); err != nil { + return err + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { + return err + } + p.Prompts = _field + return nil +} +func (p *BatchGetPromptBasicResponse) ReadField255(iprot thrift.TProtocol) error { + _field := base.NewBaseResp() + if err := _field.Read(iprot); err != nil { + return err + } + p.BaseResp = _field + return nil +} + +func (p *BatchGetPromptBasicResponse) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("BatchGetPromptBasicResponse"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField255(oprot); err != nil { + fieldId = 255 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *BatchGetPromptBasicResponse) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetPrompts() { + if err = oprot.WriteFieldBegin("prompts", thrift.LIST, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Prompts)); err != nil { + return err + } + for _, v := range p.Prompts { + if err := v.Write(oprot); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *BatchGetPromptBasicResponse) writeField255(oprot thrift.TProtocol) (err error) { + if p.IsSetBaseResp() { + if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { + goto WriteFieldBeginError + } + if err := p.BaseResp.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) +} + +func (p *BatchGetPromptBasicResponse) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("BatchGetPromptBasicResponse(%+v)", *p) + +} + +func (p *BatchGetPromptBasicResponse) DeepEqual(ano *BatchGetPromptBasicResponse) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.Prompts) { + return false + } + if !p.Field255DeepEqual(ano.BaseResp) { + return false + } + return true +} + +func (p *BatchGetPromptBasicResponse) Field1DeepEqual(src []*prompt.Prompt) bool { + + if len(p.Prompts) != len(src) { + return false + } + for i, v := range p.Prompts { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } + return true +} +func (p *BatchGetPromptBasicResponse) Field255DeepEqual(src *base.BaseResp) bool { + + if !p.BaseResp.DeepEqual(src) { + return false + } + return true +} + type PromptManageService interface { // --------------- Prompt管理 --------------- // // 增 @@ -13154,6 +13773,8 @@ type PromptManageService interface { ListPrompt(ctx context.Context, request *ListPromptRequest) (r *ListPromptResponse, err error) // 查询片段的引用记录 ListParentPrompt(ctx context.Context, request *ListParentPromptRequest) (r *ListParentPromptResponse, err error) + + BatchGetPromptBasic(ctx context.Context, request *BatchGetPromptBasicRequest) (r *BatchGetPromptBasicResponse, err error) // 改 UpdatePrompt(ctx context.Context, request *UpdatePromptRequest) (r *UpdatePromptResponse, err error) @@ -13264,6 +13885,15 @@ func (p *PromptManageServiceClient) ListParentPrompt(ctx context.Context, reques } return _result.GetSuccess(), nil } +func (p *PromptManageServiceClient) BatchGetPromptBasic(ctx context.Context, request *BatchGetPromptBasicRequest) (r *BatchGetPromptBasicResponse, err error) { + var _args PromptManageServiceBatchGetPromptBasicArgs + _args.Request = request + var _result PromptManageServiceBatchGetPromptBasicResult + if err = p.Client_().Call(ctx, "BatchGetPromptBasic", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} func (p *PromptManageServiceClient) UpdatePrompt(ctx context.Context, request *UpdatePromptRequest) (r *UpdatePromptResponse, err error) { var _args PromptManageServiceUpdatePromptArgs _args.Request = request @@ -13373,6 +14003,7 @@ func NewPromptManageServiceProcessor(handler PromptManageService) *PromptManageS self.AddToProcessorMap("BatchGetPrompt", &promptManageServiceProcessorBatchGetPrompt{handler: handler}) self.AddToProcessorMap("ListPrompt", &promptManageServiceProcessorListPrompt{handler: handler}) self.AddToProcessorMap("ListParentPrompt", &promptManageServiceProcessorListParentPrompt{handler: handler}) + self.AddToProcessorMap("BatchGetPromptBasic", &promptManageServiceProcessorBatchGetPromptBasic{handler: handler}) self.AddToProcessorMap("UpdatePrompt", &promptManageServiceProcessorUpdatePrompt{handler: handler}) self.AddToProcessorMap("SaveDraft", &promptManageServiceProcessorSaveDraft{handler: handler}) self.AddToProcessorMap("CreateLabel", &promptManageServiceProcessorCreateLabel{handler: handler}) @@ -13738,6 +14369,54 @@ func (p *promptManageServiceProcessorListParentPrompt) Process(ctx context.Conte return true, err } +type promptManageServiceProcessorBatchGetPromptBasic struct { + handler PromptManageService +} + +func (p *promptManageServiceProcessorBatchGetPromptBasic) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := PromptManageServiceBatchGetPromptBasicArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("BatchGetPromptBasic", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := PromptManageServiceBatchGetPromptBasicResult{} + var retval *BatchGetPromptBasicResponse + if retval, err2 = p.handler.BatchGetPromptBasic(ctx, args.Request); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing BatchGetPromptBasic: "+err2.Error()) + oprot.WriteMessageBegin("BatchGetPromptBasic", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("BatchGetPromptBasic", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + type promptManageServiceProcessorUpdatePrompt struct { handler PromptManageService } @@ -14008,7 +14687,103 @@ func (p *promptManageServiceProcessorListCommit) Process(ctx context.Context, se } else { result.Success = retval } - if err2 = oprot.WriteMessageBegin("ListCommit", thrift.REPLY, seqId); err2 != nil { + if err2 = oprot.WriteMessageBegin("ListCommit", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type promptManageServiceProcessorCommitDraft struct { + handler PromptManageService +} + +func (p *promptManageServiceProcessorCommitDraft) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := PromptManageServiceCommitDraftArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("CommitDraft", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := PromptManageServiceCommitDraftResult{} + var retval *CommitDraftResponse + if retval, err2 = p.handler.CommitDraft(ctx, args.Request); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing CommitDraft: "+err2.Error()) + oprot.WriteMessageBegin("CommitDraft", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("CommitDraft", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type promptManageServiceProcessorRevertDraftFromCommit struct { + handler PromptManageService +} + +func (p *promptManageServiceProcessorRevertDraftFromCommit) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := PromptManageServiceRevertDraftFromCommitArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("RevertDraftFromCommit", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := PromptManageServiceRevertDraftFromCommitResult{} + var retval *RevertDraftFromCommitResponse + if retval, err2 = p.handler.RevertDraftFromCommit(ctx, args.Request); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing RevertDraftFromCommit: "+err2.Error()) + oprot.WriteMessageBegin("RevertDraftFromCommit", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("RevertDraftFromCommit", thrift.REPLY, seqId); err2 != nil { err = err2 } if err2 = result.Write(oprot); err == nil && err2 != nil { @@ -14026,16 +14801,16 @@ func (p *promptManageServiceProcessorListCommit) Process(ctx context.Context, se return true, err } -type promptManageServiceProcessorCommitDraft struct { +type promptManageServiceProcessorUpdateCommitLabels struct { handler PromptManageService } -func (p *promptManageServiceProcessorCommitDraft) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := PromptManageServiceCommitDraftArgs{} +func (p *promptManageServiceProcessorUpdateCommitLabels) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := PromptManageServiceUpdateCommitLabelsArgs{} if err = args.Read(iprot); err != nil { iprot.ReadMessageEnd() x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("CommitDraft", thrift.EXCEPTION, seqId) + oprot.WriteMessageBegin("UpdateCommitLabels", thrift.EXCEPTION, seqId) x.Write(oprot) oprot.WriteMessageEnd() oprot.Flush(ctx) @@ -14044,11 +14819,11 @@ func (p *promptManageServiceProcessorCommitDraft) Process(ctx context.Context, s iprot.ReadMessageEnd() var err2 error - result := PromptManageServiceCommitDraftResult{} - var retval *CommitDraftResponse - if retval, err2 = p.handler.CommitDraft(ctx, args.Request); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing CommitDraft: "+err2.Error()) - oprot.WriteMessageBegin("CommitDraft", thrift.EXCEPTION, seqId) + result := PromptManageServiceUpdateCommitLabelsResult{} + var retval *UpdateCommitLabelsResponse + if retval, err2 = p.handler.UpdateCommitLabels(ctx, args.Request); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing UpdateCommitLabels: "+err2.Error()) + oprot.WriteMessageBegin("UpdateCommitLabels", thrift.EXCEPTION, seqId) x.Write(oprot) oprot.WriteMessageEnd() oprot.Flush(ctx) @@ -14056,7 +14831,7 @@ func (p *promptManageServiceProcessorCommitDraft) Process(ctx context.Context, s } else { result.Success = retval } - if err2 = oprot.WriteMessageBegin("CommitDraft", thrift.REPLY, seqId); err2 != nil { + if err2 = oprot.WriteMessageBegin("UpdateCommitLabels", thrift.REPLY, seqId); err2 != nil { err = err2 } if err2 = result.Write(oprot); err == nil && err2 != nil { @@ -14068,143 +14843,391 @@ func (p *promptManageServiceProcessorCommitDraft) Process(ctx context.Context, s if err2 = oprot.Flush(ctx); err == nil && err2 != nil { err = err2 } - if err != nil { - return + if err != nil { + return + } + return true, err +} + +type PromptManageServiceCreatePromptArgs struct { + Request *CreatePromptRequest `thrift:"request,1" frugal:"1,default,CreatePromptRequest"` +} + +func NewPromptManageServiceCreatePromptArgs() *PromptManageServiceCreatePromptArgs { + return &PromptManageServiceCreatePromptArgs{} +} + +func (p *PromptManageServiceCreatePromptArgs) InitDefault() { +} + +var PromptManageServiceCreatePromptArgs_Request_DEFAULT *CreatePromptRequest + +func (p *PromptManageServiceCreatePromptArgs) GetRequest() (v *CreatePromptRequest) { + if p == nil { + return + } + if !p.IsSetRequest() { + return PromptManageServiceCreatePromptArgs_Request_DEFAULT + } + return p.Request +} +func (p *PromptManageServiceCreatePromptArgs) SetRequest(val *CreatePromptRequest) { + p.Request = val +} + +var fieldIDToName_PromptManageServiceCreatePromptArgs = map[int16]string{ + 1: "request", +} + +func (p *PromptManageServiceCreatePromptArgs) IsSetRequest() bool { + return p.Request != nil +} + +func (p *PromptManageServiceCreatePromptArgs) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptManageServiceCreatePromptArgs[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *PromptManageServiceCreatePromptArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewCreatePromptRequest() + if err := _field.Read(iprot); err != nil { + return err + } + p.Request = _field + return nil +} + +func (p *PromptManageServiceCreatePromptArgs) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("CreatePrompt_args"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *PromptManageServiceCreatePromptArgs) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("request", thrift.STRUCT, 1); err != nil { + goto WriteFieldBeginError + } + if err := p.Request.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} + +func (p *PromptManageServiceCreatePromptArgs) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("PromptManageServiceCreatePromptArgs(%+v)", *p) + +} + +func (p *PromptManageServiceCreatePromptArgs) DeepEqual(ano *PromptManageServiceCreatePromptArgs) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.Request) { + return false + } + return true +} + +func (p *PromptManageServiceCreatePromptArgs) Field1DeepEqual(src *CreatePromptRequest) bool { + + if !p.Request.DeepEqual(src) { + return false + } + return true +} + +type PromptManageServiceCreatePromptResult struct { + Success *CreatePromptResponse `thrift:"success,0,optional" frugal:"0,optional,CreatePromptResponse"` +} + +func NewPromptManageServiceCreatePromptResult() *PromptManageServiceCreatePromptResult { + return &PromptManageServiceCreatePromptResult{} +} + +func (p *PromptManageServiceCreatePromptResult) InitDefault() { +} + +var PromptManageServiceCreatePromptResult_Success_DEFAULT *CreatePromptResponse + +func (p *PromptManageServiceCreatePromptResult) GetSuccess() (v *CreatePromptResponse) { + if p == nil { + return + } + if !p.IsSetSuccess() { + return PromptManageServiceCreatePromptResult_Success_DEFAULT + } + return p.Success +} +func (p *PromptManageServiceCreatePromptResult) SetSuccess(x interface{}) { + p.Success = x.(*CreatePromptResponse) +} + +var fieldIDToName_PromptManageServiceCreatePromptResult = map[int16]string{ + 0: "success", +} + +func (p *PromptManageServiceCreatePromptResult) IsSetSuccess() bool { + return p.Success != nil +} + +func (p *PromptManageServiceCreatePromptResult) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 0: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField0(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError } - return true, err -} -type promptManageServiceProcessorRevertDraftFromCommit struct { - handler PromptManageService + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptManageServiceCreatePromptResult[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *promptManageServiceProcessorRevertDraftFromCommit) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := PromptManageServiceRevertDraftFromCommitArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("RevertDraftFromCommit", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err +func (p *PromptManageServiceCreatePromptResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewCreatePromptResponse() + if err := _field.Read(iprot); err != nil { + return err } + p.Success = _field + return nil +} - iprot.ReadMessageEnd() - var err2 error - result := PromptManageServiceRevertDraftFromCommitResult{} - var retval *RevertDraftFromCommitResponse - if retval, err2 = p.handler.RevertDraftFromCommit(ctx, args.Request); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing RevertDraftFromCommit: "+err2.Error()) - oprot.WriteMessageBegin("RevertDraftFromCommit", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval - } - if err2 = oprot.WriteMessageBegin("RevertDraftFromCommit", thrift.REPLY, seqId); err2 != nil { - err = err2 - } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 +func (p *PromptManageServiceCreatePromptResult) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("CreatePrompt_result"); err != nil { + goto WriteStructBeginError } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 + if p != nil { + if err = p.writeField0(oprot); err != nil { + fieldId = 0 + goto WriteFieldError + } } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError } - if err != nil { - return + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError } - return true, err + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -type promptManageServiceProcessorUpdateCommitLabels struct { - handler PromptManageService +func (p *PromptManageServiceCreatePromptResult) writeField0(oprot thrift.TProtocol) (err error) { + if p.IsSetSuccess() { + if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { + goto WriteFieldBeginError + } + if err := p.Success.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 0 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *promptManageServiceProcessorUpdateCommitLabels) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := PromptManageServiceUpdateCommitLabelsArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("UpdateCommitLabels", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err +func (p *PromptManageServiceCreatePromptResult) String() string { + if p == nil { + return "" } + return fmt.Sprintf("PromptManageServiceCreatePromptResult(%+v)", *p) - iprot.ReadMessageEnd() - var err2 error - result := PromptManageServiceUpdateCommitLabelsResult{} - var retval *UpdateCommitLabelsResponse - if retval, err2 = p.handler.UpdateCommitLabels(ctx, args.Request); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing UpdateCommitLabels: "+err2.Error()) - oprot.WriteMessageBegin("UpdateCommitLabels", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval - } - if err2 = oprot.WriteMessageBegin("UpdateCommitLabels", thrift.REPLY, seqId); err2 != nil { - err = err2 - } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 - } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 +} + +func (p *PromptManageServiceCreatePromptResult) DeepEqual(ano *PromptManageServiceCreatePromptResult) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 + if !p.Field0DeepEqual(ano.Success) { + return false } - if err != nil { - return + return true +} + +func (p *PromptManageServiceCreatePromptResult) Field0DeepEqual(src *CreatePromptResponse) bool { + + if !p.Success.DeepEqual(src) { + return false } - return true, err + return true } -type PromptManageServiceCreatePromptArgs struct { - Request *CreatePromptRequest `thrift:"request,1" frugal:"1,default,CreatePromptRequest"` +type PromptManageServiceClonePromptArgs struct { + Request *ClonePromptRequest `thrift:"request,1" frugal:"1,default,ClonePromptRequest"` } -func NewPromptManageServiceCreatePromptArgs() *PromptManageServiceCreatePromptArgs { - return &PromptManageServiceCreatePromptArgs{} +func NewPromptManageServiceClonePromptArgs() *PromptManageServiceClonePromptArgs { + return &PromptManageServiceClonePromptArgs{} } -func (p *PromptManageServiceCreatePromptArgs) InitDefault() { +func (p *PromptManageServiceClonePromptArgs) InitDefault() { } -var PromptManageServiceCreatePromptArgs_Request_DEFAULT *CreatePromptRequest +var PromptManageServiceClonePromptArgs_Request_DEFAULT *ClonePromptRequest -func (p *PromptManageServiceCreatePromptArgs) GetRequest() (v *CreatePromptRequest) { +func (p *PromptManageServiceClonePromptArgs) GetRequest() (v *ClonePromptRequest) { if p == nil { return } if !p.IsSetRequest() { - return PromptManageServiceCreatePromptArgs_Request_DEFAULT + return PromptManageServiceClonePromptArgs_Request_DEFAULT } return p.Request } -func (p *PromptManageServiceCreatePromptArgs) SetRequest(val *CreatePromptRequest) { +func (p *PromptManageServiceClonePromptArgs) SetRequest(val *ClonePromptRequest) { p.Request = val } -var fieldIDToName_PromptManageServiceCreatePromptArgs = map[int16]string{ +var fieldIDToName_PromptManageServiceClonePromptArgs = map[int16]string{ 1: "request", } -func (p *PromptManageServiceCreatePromptArgs) IsSetRequest() bool { +func (p *PromptManageServiceClonePromptArgs) IsSetRequest() bool { return p.Request != nil } -func (p *PromptManageServiceCreatePromptArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceClonePromptArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -14249,7 +15272,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptManageServiceCreatePromptArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptManageServiceClonePromptArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -14259,8 +15282,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *PromptManageServiceCreatePromptArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewCreatePromptRequest() +func (p *PromptManageServiceClonePromptArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewClonePromptRequest() if err := _field.Read(iprot); err != nil { return err } @@ -14268,9 +15291,9 @@ func (p *PromptManageServiceCreatePromptArgs) ReadField1(iprot thrift.TProtocol) return nil } -func (p *PromptManageServiceCreatePromptArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceClonePromptArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("CreatePrompt_args"); err != nil { + if err = oprot.WriteStructBegin("ClonePrompt_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -14296,7 +15319,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *PromptManageServiceCreatePromptArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceClonePromptArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("request", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -14313,15 +15336,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *PromptManageServiceCreatePromptArgs) String() string { +func (p *PromptManageServiceClonePromptArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("PromptManageServiceCreatePromptArgs(%+v)", *p) + return fmt.Sprintf("PromptManageServiceClonePromptArgs(%+v)", *p) } -func (p *PromptManageServiceCreatePromptArgs) DeepEqual(ano *PromptManageServiceCreatePromptArgs) bool { +func (p *PromptManageServiceClonePromptArgs) DeepEqual(ano *PromptManageServiceClonePromptArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -14333,7 +15356,7 @@ func (p *PromptManageServiceCreatePromptArgs) DeepEqual(ano *PromptManageService return true } -func (p *PromptManageServiceCreatePromptArgs) Field1DeepEqual(src *CreatePromptRequest) bool { +func (p *PromptManageServiceClonePromptArgs) Field1DeepEqual(src *ClonePromptRequest) bool { if !p.Request.DeepEqual(src) { return false @@ -14341,41 +15364,41 @@ func (p *PromptManageServiceCreatePromptArgs) Field1DeepEqual(src *CreatePromptR return true } -type PromptManageServiceCreatePromptResult struct { - Success *CreatePromptResponse `thrift:"success,0,optional" frugal:"0,optional,CreatePromptResponse"` +type PromptManageServiceClonePromptResult struct { + Success *ClonePromptResponse `thrift:"success,0,optional" frugal:"0,optional,ClonePromptResponse"` } -func NewPromptManageServiceCreatePromptResult() *PromptManageServiceCreatePromptResult { - return &PromptManageServiceCreatePromptResult{} +func NewPromptManageServiceClonePromptResult() *PromptManageServiceClonePromptResult { + return &PromptManageServiceClonePromptResult{} } -func (p *PromptManageServiceCreatePromptResult) InitDefault() { +func (p *PromptManageServiceClonePromptResult) InitDefault() { } -var PromptManageServiceCreatePromptResult_Success_DEFAULT *CreatePromptResponse +var PromptManageServiceClonePromptResult_Success_DEFAULT *ClonePromptResponse -func (p *PromptManageServiceCreatePromptResult) GetSuccess() (v *CreatePromptResponse) { +func (p *PromptManageServiceClonePromptResult) GetSuccess() (v *ClonePromptResponse) { if p == nil { return } if !p.IsSetSuccess() { - return PromptManageServiceCreatePromptResult_Success_DEFAULT + return PromptManageServiceClonePromptResult_Success_DEFAULT } return p.Success } -func (p *PromptManageServiceCreatePromptResult) SetSuccess(x interface{}) { - p.Success = x.(*CreatePromptResponse) +func (p *PromptManageServiceClonePromptResult) SetSuccess(x interface{}) { + p.Success = x.(*ClonePromptResponse) } -var fieldIDToName_PromptManageServiceCreatePromptResult = map[int16]string{ +var fieldIDToName_PromptManageServiceClonePromptResult = map[int16]string{ 0: "success", } -func (p *PromptManageServiceCreatePromptResult) IsSetSuccess() bool { +func (p *PromptManageServiceClonePromptResult) IsSetSuccess() bool { return p.Success != nil } -func (p *PromptManageServiceCreatePromptResult) Read(iprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceClonePromptResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -14420,7 +15443,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptManageServiceCreatePromptResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptManageServiceClonePromptResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -14429,9 +15452,9 @@ ReadFieldEndError: ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } - -func (p *PromptManageServiceCreatePromptResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewCreatePromptResponse() + +func (p *PromptManageServiceClonePromptResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewClonePromptResponse() if err := _field.Read(iprot); err != nil { return err } @@ -14439,9 +15462,9 @@ func (p *PromptManageServiceCreatePromptResult) ReadField0(iprot thrift.TProtoco return nil } -func (p *PromptManageServiceCreatePromptResult) Write(oprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceClonePromptResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("CreatePrompt_result"); err != nil { + if err = oprot.WriteStructBegin("ClonePrompt_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -14467,7 +15490,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *PromptManageServiceCreatePromptResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceClonePromptResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -14486,15 +15509,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *PromptManageServiceCreatePromptResult) String() string { +func (p *PromptManageServiceClonePromptResult) String() string { if p == nil { return "" } - return fmt.Sprintf("PromptManageServiceCreatePromptResult(%+v)", *p) + return fmt.Sprintf("PromptManageServiceClonePromptResult(%+v)", *p) } -func (p *PromptManageServiceCreatePromptResult) DeepEqual(ano *PromptManageServiceCreatePromptResult) bool { +func (p *PromptManageServiceClonePromptResult) DeepEqual(ano *PromptManageServiceClonePromptResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -14506,7 +15529,7 @@ func (p *PromptManageServiceCreatePromptResult) DeepEqual(ano *PromptManageServi return true } -func (p *PromptManageServiceCreatePromptResult) Field0DeepEqual(src *CreatePromptResponse) bool { +func (p *PromptManageServiceClonePromptResult) Field0DeepEqual(src *ClonePromptResponse) bool { if !p.Success.DeepEqual(src) { return false @@ -14514,41 +15537,41 @@ func (p *PromptManageServiceCreatePromptResult) Field0DeepEqual(src *CreatePromp return true } -type PromptManageServiceClonePromptArgs struct { - Request *ClonePromptRequest `thrift:"request,1" frugal:"1,default,ClonePromptRequest"` +type PromptManageServiceDeletePromptArgs struct { + Request *DeletePromptRequest `thrift:"request,1" frugal:"1,default,DeletePromptRequest"` } -func NewPromptManageServiceClonePromptArgs() *PromptManageServiceClonePromptArgs { - return &PromptManageServiceClonePromptArgs{} +func NewPromptManageServiceDeletePromptArgs() *PromptManageServiceDeletePromptArgs { + return &PromptManageServiceDeletePromptArgs{} } -func (p *PromptManageServiceClonePromptArgs) InitDefault() { +func (p *PromptManageServiceDeletePromptArgs) InitDefault() { } -var PromptManageServiceClonePromptArgs_Request_DEFAULT *ClonePromptRequest +var PromptManageServiceDeletePromptArgs_Request_DEFAULT *DeletePromptRequest -func (p *PromptManageServiceClonePromptArgs) GetRequest() (v *ClonePromptRequest) { +func (p *PromptManageServiceDeletePromptArgs) GetRequest() (v *DeletePromptRequest) { if p == nil { return } if !p.IsSetRequest() { - return PromptManageServiceClonePromptArgs_Request_DEFAULT + return PromptManageServiceDeletePromptArgs_Request_DEFAULT } return p.Request } -func (p *PromptManageServiceClonePromptArgs) SetRequest(val *ClonePromptRequest) { +func (p *PromptManageServiceDeletePromptArgs) SetRequest(val *DeletePromptRequest) { p.Request = val } -var fieldIDToName_PromptManageServiceClonePromptArgs = map[int16]string{ +var fieldIDToName_PromptManageServiceDeletePromptArgs = map[int16]string{ 1: "request", } -func (p *PromptManageServiceClonePromptArgs) IsSetRequest() bool { +func (p *PromptManageServiceDeletePromptArgs) IsSetRequest() bool { return p.Request != nil } -func (p *PromptManageServiceClonePromptArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceDeletePromptArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -14593,7 +15616,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptManageServiceClonePromptArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptManageServiceDeletePromptArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -14603,8 +15626,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *PromptManageServiceClonePromptArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewClonePromptRequest() +func (p *PromptManageServiceDeletePromptArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewDeletePromptRequest() if err := _field.Read(iprot); err != nil { return err } @@ -14612,9 +15635,9 @@ func (p *PromptManageServiceClonePromptArgs) ReadField1(iprot thrift.TProtocol) return nil } -func (p *PromptManageServiceClonePromptArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceDeletePromptArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ClonePrompt_args"); err != nil { + if err = oprot.WriteStructBegin("DeletePrompt_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -14640,7 +15663,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *PromptManageServiceClonePromptArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceDeletePromptArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("request", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -14657,15 +15680,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *PromptManageServiceClonePromptArgs) String() string { +func (p *PromptManageServiceDeletePromptArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("PromptManageServiceClonePromptArgs(%+v)", *p) + return fmt.Sprintf("PromptManageServiceDeletePromptArgs(%+v)", *p) } -func (p *PromptManageServiceClonePromptArgs) DeepEqual(ano *PromptManageServiceClonePromptArgs) bool { +func (p *PromptManageServiceDeletePromptArgs) DeepEqual(ano *PromptManageServiceDeletePromptArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -14677,7 +15700,7 @@ func (p *PromptManageServiceClonePromptArgs) DeepEqual(ano *PromptManageServiceC return true } -func (p *PromptManageServiceClonePromptArgs) Field1DeepEqual(src *ClonePromptRequest) bool { +func (p *PromptManageServiceDeletePromptArgs) Field1DeepEqual(src *DeletePromptRequest) bool { if !p.Request.DeepEqual(src) { return false @@ -14685,41 +15708,41 @@ func (p *PromptManageServiceClonePromptArgs) Field1DeepEqual(src *ClonePromptReq return true } -type PromptManageServiceClonePromptResult struct { - Success *ClonePromptResponse `thrift:"success,0,optional" frugal:"0,optional,ClonePromptResponse"` +type PromptManageServiceDeletePromptResult struct { + Success *DeletePromptResponse `thrift:"success,0,optional" frugal:"0,optional,DeletePromptResponse"` } -func NewPromptManageServiceClonePromptResult() *PromptManageServiceClonePromptResult { - return &PromptManageServiceClonePromptResult{} +func NewPromptManageServiceDeletePromptResult() *PromptManageServiceDeletePromptResult { + return &PromptManageServiceDeletePromptResult{} } -func (p *PromptManageServiceClonePromptResult) InitDefault() { +func (p *PromptManageServiceDeletePromptResult) InitDefault() { } -var PromptManageServiceClonePromptResult_Success_DEFAULT *ClonePromptResponse +var PromptManageServiceDeletePromptResult_Success_DEFAULT *DeletePromptResponse -func (p *PromptManageServiceClonePromptResult) GetSuccess() (v *ClonePromptResponse) { +func (p *PromptManageServiceDeletePromptResult) GetSuccess() (v *DeletePromptResponse) { if p == nil { return } if !p.IsSetSuccess() { - return PromptManageServiceClonePromptResult_Success_DEFAULT + return PromptManageServiceDeletePromptResult_Success_DEFAULT } return p.Success } -func (p *PromptManageServiceClonePromptResult) SetSuccess(x interface{}) { - p.Success = x.(*ClonePromptResponse) +func (p *PromptManageServiceDeletePromptResult) SetSuccess(x interface{}) { + p.Success = x.(*DeletePromptResponse) } -var fieldIDToName_PromptManageServiceClonePromptResult = map[int16]string{ +var fieldIDToName_PromptManageServiceDeletePromptResult = map[int16]string{ 0: "success", } -func (p *PromptManageServiceClonePromptResult) IsSetSuccess() bool { +func (p *PromptManageServiceDeletePromptResult) IsSetSuccess() bool { return p.Success != nil } -func (p *PromptManageServiceClonePromptResult) Read(iprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceDeletePromptResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -14764,7 +15787,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptManageServiceClonePromptResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptManageServiceDeletePromptResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -14774,8 +15797,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *PromptManageServiceClonePromptResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewClonePromptResponse() +func (p *PromptManageServiceDeletePromptResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewDeletePromptResponse() if err := _field.Read(iprot); err != nil { return err } @@ -14783,9 +15806,9 @@ func (p *PromptManageServiceClonePromptResult) ReadField0(iprot thrift.TProtocol return nil } -func (p *PromptManageServiceClonePromptResult) Write(oprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceDeletePromptResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ClonePrompt_result"); err != nil { + if err = oprot.WriteStructBegin("DeletePrompt_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -14811,7 +15834,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *PromptManageServiceClonePromptResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceDeletePromptResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -14830,15 +15853,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *PromptManageServiceClonePromptResult) String() string { +func (p *PromptManageServiceDeletePromptResult) String() string { if p == nil { return "" } - return fmt.Sprintf("PromptManageServiceClonePromptResult(%+v)", *p) + return fmt.Sprintf("PromptManageServiceDeletePromptResult(%+v)", *p) } -func (p *PromptManageServiceClonePromptResult) DeepEqual(ano *PromptManageServiceClonePromptResult) bool { +func (p *PromptManageServiceDeletePromptResult) DeepEqual(ano *PromptManageServiceDeletePromptResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -14850,7 +15873,7 @@ func (p *PromptManageServiceClonePromptResult) DeepEqual(ano *PromptManageServic return true } -func (p *PromptManageServiceClonePromptResult) Field0DeepEqual(src *ClonePromptResponse) bool { +func (p *PromptManageServiceDeletePromptResult) Field0DeepEqual(src *DeletePromptResponse) bool { if !p.Success.DeepEqual(src) { return false @@ -14858,41 +15881,41 @@ func (p *PromptManageServiceClonePromptResult) Field0DeepEqual(src *ClonePromptR return true } -type PromptManageServiceDeletePromptArgs struct { - Request *DeletePromptRequest `thrift:"request,1" frugal:"1,default,DeletePromptRequest"` +type PromptManageServiceGetPromptArgs struct { + Request *GetPromptRequest `thrift:"request,1" frugal:"1,default,GetPromptRequest"` } -func NewPromptManageServiceDeletePromptArgs() *PromptManageServiceDeletePromptArgs { - return &PromptManageServiceDeletePromptArgs{} +func NewPromptManageServiceGetPromptArgs() *PromptManageServiceGetPromptArgs { + return &PromptManageServiceGetPromptArgs{} } -func (p *PromptManageServiceDeletePromptArgs) InitDefault() { +func (p *PromptManageServiceGetPromptArgs) InitDefault() { } -var PromptManageServiceDeletePromptArgs_Request_DEFAULT *DeletePromptRequest +var PromptManageServiceGetPromptArgs_Request_DEFAULT *GetPromptRequest -func (p *PromptManageServiceDeletePromptArgs) GetRequest() (v *DeletePromptRequest) { +func (p *PromptManageServiceGetPromptArgs) GetRequest() (v *GetPromptRequest) { if p == nil { return } if !p.IsSetRequest() { - return PromptManageServiceDeletePromptArgs_Request_DEFAULT + return PromptManageServiceGetPromptArgs_Request_DEFAULT } return p.Request } -func (p *PromptManageServiceDeletePromptArgs) SetRequest(val *DeletePromptRequest) { +func (p *PromptManageServiceGetPromptArgs) SetRequest(val *GetPromptRequest) { p.Request = val } -var fieldIDToName_PromptManageServiceDeletePromptArgs = map[int16]string{ +var fieldIDToName_PromptManageServiceGetPromptArgs = map[int16]string{ 1: "request", } -func (p *PromptManageServiceDeletePromptArgs) IsSetRequest() bool { +func (p *PromptManageServiceGetPromptArgs) IsSetRequest() bool { return p.Request != nil } -func (p *PromptManageServiceDeletePromptArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceGetPromptArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -14937,7 +15960,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptManageServiceDeletePromptArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptManageServiceGetPromptArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -14947,8 +15970,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *PromptManageServiceDeletePromptArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewDeletePromptRequest() +func (p *PromptManageServiceGetPromptArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewGetPromptRequest() if err := _field.Read(iprot); err != nil { return err } @@ -14956,9 +15979,9 @@ func (p *PromptManageServiceDeletePromptArgs) ReadField1(iprot thrift.TProtocol) return nil } -func (p *PromptManageServiceDeletePromptArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceGetPromptArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("DeletePrompt_args"); err != nil { + if err = oprot.WriteStructBegin("GetPrompt_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -14984,7 +16007,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *PromptManageServiceDeletePromptArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceGetPromptArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("request", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -15001,15 +16024,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *PromptManageServiceDeletePromptArgs) String() string { +func (p *PromptManageServiceGetPromptArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("PromptManageServiceDeletePromptArgs(%+v)", *p) + return fmt.Sprintf("PromptManageServiceGetPromptArgs(%+v)", *p) } -func (p *PromptManageServiceDeletePromptArgs) DeepEqual(ano *PromptManageServiceDeletePromptArgs) bool { +func (p *PromptManageServiceGetPromptArgs) DeepEqual(ano *PromptManageServiceGetPromptArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -15021,7 +16044,7 @@ func (p *PromptManageServiceDeletePromptArgs) DeepEqual(ano *PromptManageService return true } -func (p *PromptManageServiceDeletePromptArgs) Field1DeepEqual(src *DeletePromptRequest) bool { +func (p *PromptManageServiceGetPromptArgs) Field1DeepEqual(src *GetPromptRequest) bool { if !p.Request.DeepEqual(src) { return false @@ -15029,41 +16052,41 @@ func (p *PromptManageServiceDeletePromptArgs) Field1DeepEqual(src *DeletePromptR return true } -type PromptManageServiceDeletePromptResult struct { - Success *DeletePromptResponse `thrift:"success,0,optional" frugal:"0,optional,DeletePromptResponse"` +type PromptManageServiceGetPromptResult struct { + Success *GetPromptResponse `thrift:"success,0,optional" frugal:"0,optional,GetPromptResponse"` } -func NewPromptManageServiceDeletePromptResult() *PromptManageServiceDeletePromptResult { - return &PromptManageServiceDeletePromptResult{} +func NewPromptManageServiceGetPromptResult() *PromptManageServiceGetPromptResult { + return &PromptManageServiceGetPromptResult{} } -func (p *PromptManageServiceDeletePromptResult) InitDefault() { +func (p *PromptManageServiceGetPromptResult) InitDefault() { } -var PromptManageServiceDeletePromptResult_Success_DEFAULT *DeletePromptResponse +var PromptManageServiceGetPromptResult_Success_DEFAULT *GetPromptResponse -func (p *PromptManageServiceDeletePromptResult) GetSuccess() (v *DeletePromptResponse) { +func (p *PromptManageServiceGetPromptResult) GetSuccess() (v *GetPromptResponse) { if p == nil { return } if !p.IsSetSuccess() { - return PromptManageServiceDeletePromptResult_Success_DEFAULT + return PromptManageServiceGetPromptResult_Success_DEFAULT } return p.Success } -func (p *PromptManageServiceDeletePromptResult) SetSuccess(x interface{}) { - p.Success = x.(*DeletePromptResponse) +func (p *PromptManageServiceGetPromptResult) SetSuccess(x interface{}) { + p.Success = x.(*GetPromptResponse) } -var fieldIDToName_PromptManageServiceDeletePromptResult = map[int16]string{ +var fieldIDToName_PromptManageServiceGetPromptResult = map[int16]string{ 0: "success", } -func (p *PromptManageServiceDeletePromptResult) IsSetSuccess() bool { +func (p *PromptManageServiceGetPromptResult) IsSetSuccess() bool { return p.Success != nil } -func (p *PromptManageServiceDeletePromptResult) Read(iprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceGetPromptResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -15108,7 +16131,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptManageServiceDeletePromptResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptManageServiceGetPromptResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -15118,8 +16141,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *PromptManageServiceDeletePromptResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewDeletePromptResponse() +func (p *PromptManageServiceGetPromptResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewGetPromptResponse() if err := _field.Read(iprot); err != nil { return err } @@ -15127,9 +16150,9 @@ func (p *PromptManageServiceDeletePromptResult) ReadField0(iprot thrift.TProtoco return nil } -func (p *PromptManageServiceDeletePromptResult) Write(oprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceGetPromptResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("DeletePrompt_result"); err != nil { + if err = oprot.WriteStructBegin("GetPrompt_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -15155,7 +16178,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *PromptManageServiceDeletePromptResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceGetPromptResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -15174,15 +16197,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *PromptManageServiceDeletePromptResult) String() string { +func (p *PromptManageServiceGetPromptResult) String() string { if p == nil { return "" } - return fmt.Sprintf("PromptManageServiceDeletePromptResult(%+v)", *p) + return fmt.Sprintf("PromptManageServiceGetPromptResult(%+v)", *p) } -func (p *PromptManageServiceDeletePromptResult) DeepEqual(ano *PromptManageServiceDeletePromptResult) bool { +func (p *PromptManageServiceGetPromptResult) DeepEqual(ano *PromptManageServiceGetPromptResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -15194,7 +16217,7 @@ func (p *PromptManageServiceDeletePromptResult) DeepEqual(ano *PromptManageServi return true } -func (p *PromptManageServiceDeletePromptResult) Field0DeepEqual(src *DeletePromptResponse) bool { +func (p *PromptManageServiceGetPromptResult) Field0DeepEqual(src *GetPromptResponse) bool { if !p.Success.DeepEqual(src) { return false @@ -15202,41 +16225,41 @@ func (p *PromptManageServiceDeletePromptResult) Field0DeepEqual(src *DeletePromp return true } -type PromptManageServiceGetPromptArgs struct { - Request *GetPromptRequest `thrift:"request,1" frugal:"1,default,GetPromptRequest"` +type PromptManageServiceBatchGetPromptArgs struct { + Request *BatchGetPromptRequest `thrift:"request,1" frugal:"1,default,BatchGetPromptRequest"` } -func NewPromptManageServiceGetPromptArgs() *PromptManageServiceGetPromptArgs { - return &PromptManageServiceGetPromptArgs{} +func NewPromptManageServiceBatchGetPromptArgs() *PromptManageServiceBatchGetPromptArgs { + return &PromptManageServiceBatchGetPromptArgs{} } -func (p *PromptManageServiceGetPromptArgs) InitDefault() { +func (p *PromptManageServiceBatchGetPromptArgs) InitDefault() { } -var PromptManageServiceGetPromptArgs_Request_DEFAULT *GetPromptRequest +var PromptManageServiceBatchGetPromptArgs_Request_DEFAULT *BatchGetPromptRequest -func (p *PromptManageServiceGetPromptArgs) GetRequest() (v *GetPromptRequest) { +func (p *PromptManageServiceBatchGetPromptArgs) GetRequest() (v *BatchGetPromptRequest) { if p == nil { return } if !p.IsSetRequest() { - return PromptManageServiceGetPromptArgs_Request_DEFAULT + return PromptManageServiceBatchGetPromptArgs_Request_DEFAULT } return p.Request } -func (p *PromptManageServiceGetPromptArgs) SetRequest(val *GetPromptRequest) { +func (p *PromptManageServiceBatchGetPromptArgs) SetRequest(val *BatchGetPromptRequest) { p.Request = val } -var fieldIDToName_PromptManageServiceGetPromptArgs = map[int16]string{ +var fieldIDToName_PromptManageServiceBatchGetPromptArgs = map[int16]string{ 1: "request", } -func (p *PromptManageServiceGetPromptArgs) IsSetRequest() bool { +func (p *PromptManageServiceBatchGetPromptArgs) IsSetRequest() bool { return p.Request != nil } -func (p *PromptManageServiceGetPromptArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceBatchGetPromptArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -15281,7 +16304,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptManageServiceGetPromptArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptManageServiceBatchGetPromptArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -15291,8 +16314,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *PromptManageServiceGetPromptArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewGetPromptRequest() +func (p *PromptManageServiceBatchGetPromptArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewBatchGetPromptRequest() if err := _field.Read(iprot); err != nil { return err } @@ -15300,9 +16323,9 @@ func (p *PromptManageServiceGetPromptArgs) ReadField1(iprot thrift.TProtocol) er return nil } -func (p *PromptManageServiceGetPromptArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceBatchGetPromptArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("GetPrompt_args"); err != nil { + if err = oprot.WriteStructBegin("BatchGetPrompt_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -15328,7 +16351,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *PromptManageServiceGetPromptArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceBatchGetPromptArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("request", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -15345,15 +16368,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *PromptManageServiceGetPromptArgs) String() string { +func (p *PromptManageServiceBatchGetPromptArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("PromptManageServiceGetPromptArgs(%+v)", *p) + return fmt.Sprintf("PromptManageServiceBatchGetPromptArgs(%+v)", *p) } -func (p *PromptManageServiceGetPromptArgs) DeepEqual(ano *PromptManageServiceGetPromptArgs) bool { +func (p *PromptManageServiceBatchGetPromptArgs) DeepEqual(ano *PromptManageServiceBatchGetPromptArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -15365,7 +16388,7 @@ func (p *PromptManageServiceGetPromptArgs) DeepEqual(ano *PromptManageServiceGet return true } -func (p *PromptManageServiceGetPromptArgs) Field1DeepEqual(src *GetPromptRequest) bool { +func (p *PromptManageServiceBatchGetPromptArgs) Field1DeepEqual(src *BatchGetPromptRequest) bool { if !p.Request.DeepEqual(src) { return false @@ -15373,41 +16396,41 @@ func (p *PromptManageServiceGetPromptArgs) Field1DeepEqual(src *GetPromptRequest return true } -type PromptManageServiceGetPromptResult struct { - Success *GetPromptResponse `thrift:"success,0,optional" frugal:"0,optional,GetPromptResponse"` +type PromptManageServiceBatchGetPromptResult struct { + Success *BatchGetPromptResponse `thrift:"success,0,optional" frugal:"0,optional,BatchGetPromptResponse"` } -func NewPromptManageServiceGetPromptResult() *PromptManageServiceGetPromptResult { - return &PromptManageServiceGetPromptResult{} +func NewPromptManageServiceBatchGetPromptResult() *PromptManageServiceBatchGetPromptResult { + return &PromptManageServiceBatchGetPromptResult{} } -func (p *PromptManageServiceGetPromptResult) InitDefault() { +func (p *PromptManageServiceBatchGetPromptResult) InitDefault() { } -var PromptManageServiceGetPromptResult_Success_DEFAULT *GetPromptResponse +var PromptManageServiceBatchGetPromptResult_Success_DEFAULT *BatchGetPromptResponse -func (p *PromptManageServiceGetPromptResult) GetSuccess() (v *GetPromptResponse) { +func (p *PromptManageServiceBatchGetPromptResult) GetSuccess() (v *BatchGetPromptResponse) { if p == nil { return } if !p.IsSetSuccess() { - return PromptManageServiceGetPromptResult_Success_DEFAULT + return PromptManageServiceBatchGetPromptResult_Success_DEFAULT } return p.Success } -func (p *PromptManageServiceGetPromptResult) SetSuccess(x interface{}) { - p.Success = x.(*GetPromptResponse) +func (p *PromptManageServiceBatchGetPromptResult) SetSuccess(x interface{}) { + p.Success = x.(*BatchGetPromptResponse) } -var fieldIDToName_PromptManageServiceGetPromptResult = map[int16]string{ +var fieldIDToName_PromptManageServiceBatchGetPromptResult = map[int16]string{ 0: "success", } -func (p *PromptManageServiceGetPromptResult) IsSetSuccess() bool { +func (p *PromptManageServiceBatchGetPromptResult) IsSetSuccess() bool { return p.Success != nil } -func (p *PromptManageServiceGetPromptResult) Read(iprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceBatchGetPromptResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -15452,7 +16475,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptManageServiceGetPromptResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptManageServiceBatchGetPromptResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -15462,8 +16485,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *PromptManageServiceGetPromptResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewGetPromptResponse() +func (p *PromptManageServiceBatchGetPromptResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewBatchGetPromptResponse() if err := _field.Read(iprot); err != nil { return err } @@ -15471,9 +16494,9 @@ func (p *PromptManageServiceGetPromptResult) ReadField0(iprot thrift.TProtocol) return nil } -func (p *PromptManageServiceGetPromptResult) Write(oprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceBatchGetPromptResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("GetPrompt_result"); err != nil { + if err = oprot.WriteStructBegin("BatchGetPrompt_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -15499,7 +16522,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *PromptManageServiceGetPromptResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceBatchGetPromptResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -15518,15 +16541,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *PromptManageServiceGetPromptResult) String() string { +func (p *PromptManageServiceBatchGetPromptResult) String() string { if p == nil { return "" } - return fmt.Sprintf("PromptManageServiceGetPromptResult(%+v)", *p) + return fmt.Sprintf("PromptManageServiceBatchGetPromptResult(%+v)", *p) } -func (p *PromptManageServiceGetPromptResult) DeepEqual(ano *PromptManageServiceGetPromptResult) bool { +func (p *PromptManageServiceBatchGetPromptResult) DeepEqual(ano *PromptManageServiceBatchGetPromptResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -15538,7 +16561,7 @@ func (p *PromptManageServiceGetPromptResult) DeepEqual(ano *PromptManageServiceG return true } -func (p *PromptManageServiceGetPromptResult) Field0DeepEqual(src *GetPromptResponse) bool { +func (p *PromptManageServiceBatchGetPromptResult) Field0DeepEqual(src *BatchGetPromptResponse) bool { if !p.Success.DeepEqual(src) { return false @@ -15546,41 +16569,41 @@ func (p *PromptManageServiceGetPromptResult) Field0DeepEqual(src *GetPromptRespo return true } -type PromptManageServiceBatchGetPromptArgs struct { - Request *BatchGetPromptRequest `thrift:"request,1" frugal:"1,default,BatchGetPromptRequest"` +type PromptManageServiceListPromptArgs struct { + Request *ListPromptRequest `thrift:"request,1" frugal:"1,default,ListPromptRequest"` } -func NewPromptManageServiceBatchGetPromptArgs() *PromptManageServiceBatchGetPromptArgs { - return &PromptManageServiceBatchGetPromptArgs{} +func NewPromptManageServiceListPromptArgs() *PromptManageServiceListPromptArgs { + return &PromptManageServiceListPromptArgs{} } -func (p *PromptManageServiceBatchGetPromptArgs) InitDefault() { +func (p *PromptManageServiceListPromptArgs) InitDefault() { } -var PromptManageServiceBatchGetPromptArgs_Request_DEFAULT *BatchGetPromptRequest +var PromptManageServiceListPromptArgs_Request_DEFAULT *ListPromptRequest -func (p *PromptManageServiceBatchGetPromptArgs) GetRequest() (v *BatchGetPromptRequest) { +func (p *PromptManageServiceListPromptArgs) GetRequest() (v *ListPromptRequest) { if p == nil { return } if !p.IsSetRequest() { - return PromptManageServiceBatchGetPromptArgs_Request_DEFAULT + return PromptManageServiceListPromptArgs_Request_DEFAULT } return p.Request } -func (p *PromptManageServiceBatchGetPromptArgs) SetRequest(val *BatchGetPromptRequest) { +func (p *PromptManageServiceListPromptArgs) SetRequest(val *ListPromptRequest) { p.Request = val } -var fieldIDToName_PromptManageServiceBatchGetPromptArgs = map[int16]string{ +var fieldIDToName_PromptManageServiceListPromptArgs = map[int16]string{ 1: "request", } -func (p *PromptManageServiceBatchGetPromptArgs) IsSetRequest() bool { +func (p *PromptManageServiceListPromptArgs) IsSetRequest() bool { return p.Request != nil } -func (p *PromptManageServiceBatchGetPromptArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceListPromptArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -15625,7 +16648,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptManageServiceBatchGetPromptArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptManageServiceListPromptArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -15635,8 +16658,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *PromptManageServiceBatchGetPromptArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewBatchGetPromptRequest() +func (p *PromptManageServiceListPromptArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewListPromptRequest() if err := _field.Read(iprot); err != nil { return err } @@ -15644,9 +16667,9 @@ func (p *PromptManageServiceBatchGetPromptArgs) ReadField1(iprot thrift.TProtoco return nil } -func (p *PromptManageServiceBatchGetPromptArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceListPromptArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("BatchGetPrompt_args"); err != nil { + if err = oprot.WriteStructBegin("ListPrompt_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -15672,7 +16695,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *PromptManageServiceBatchGetPromptArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceListPromptArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("request", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -15689,15 +16712,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *PromptManageServiceBatchGetPromptArgs) String() string { +func (p *PromptManageServiceListPromptArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("PromptManageServiceBatchGetPromptArgs(%+v)", *p) + return fmt.Sprintf("PromptManageServiceListPromptArgs(%+v)", *p) } -func (p *PromptManageServiceBatchGetPromptArgs) DeepEqual(ano *PromptManageServiceBatchGetPromptArgs) bool { +func (p *PromptManageServiceListPromptArgs) DeepEqual(ano *PromptManageServiceListPromptArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -15709,7 +16732,7 @@ func (p *PromptManageServiceBatchGetPromptArgs) DeepEqual(ano *PromptManageServi return true } -func (p *PromptManageServiceBatchGetPromptArgs) Field1DeepEqual(src *BatchGetPromptRequest) bool { +func (p *PromptManageServiceListPromptArgs) Field1DeepEqual(src *ListPromptRequest) bool { if !p.Request.DeepEqual(src) { return false @@ -15717,41 +16740,41 @@ func (p *PromptManageServiceBatchGetPromptArgs) Field1DeepEqual(src *BatchGetPro return true } -type PromptManageServiceBatchGetPromptResult struct { - Success *BatchGetPromptResponse `thrift:"success,0,optional" frugal:"0,optional,BatchGetPromptResponse"` +type PromptManageServiceListPromptResult struct { + Success *ListPromptResponse `thrift:"success,0,optional" frugal:"0,optional,ListPromptResponse"` } -func NewPromptManageServiceBatchGetPromptResult() *PromptManageServiceBatchGetPromptResult { - return &PromptManageServiceBatchGetPromptResult{} +func NewPromptManageServiceListPromptResult() *PromptManageServiceListPromptResult { + return &PromptManageServiceListPromptResult{} } -func (p *PromptManageServiceBatchGetPromptResult) InitDefault() { +func (p *PromptManageServiceListPromptResult) InitDefault() { } -var PromptManageServiceBatchGetPromptResult_Success_DEFAULT *BatchGetPromptResponse +var PromptManageServiceListPromptResult_Success_DEFAULT *ListPromptResponse -func (p *PromptManageServiceBatchGetPromptResult) GetSuccess() (v *BatchGetPromptResponse) { +func (p *PromptManageServiceListPromptResult) GetSuccess() (v *ListPromptResponse) { if p == nil { return } if !p.IsSetSuccess() { - return PromptManageServiceBatchGetPromptResult_Success_DEFAULT + return PromptManageServiceListPromptResult_Success_DEFAULT } return p.Success } -func (p *PromptManageServiceBatchGetPromptResult) SetSuccess(x interface{}) { - p.Success = x.(*BatchGetPromptResponse) +func (p *PromptManageServiceListPromptResult) SetSuccess(x interface{}) { + p.Success = x.(*ListPromptResponse) } -var fieldIDToName_PromptManageServiceBatchGetPromptResult = map[int16]string{ +var fieldIDToName_PromptManageServiceListPromptResult = map[int16]string{ 0: "success", } -func (p *PromptManageServiceBatchGetPromptResult) IsSetSuccess() bool { +func (p *PromptManageServiceListPromptResult) IsSetSuccess() bool { return p.Success != nil } -func (p *PromptManageServiceBatchGetPromptResult) Read(iprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceListPromptResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -15796,7 +16819,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptManageServiceBatchGetPromptResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptManageServiceListPromptResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -15806,8 +16829,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *PromptManageServiceBatchGetPromptResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewBatchGetPromptResponse() +func (p *PromptManageServiceListPromptResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewListPromptResponse() if err := _field.Read(iprot); err != nil { return err } @@ -15815,9 +16838,9 @@ func (p *PromptManageServiceBatchGetPromptResult) ReadField0(iprot thrift.TProto return nil } -func (p *PromptManageServiceBatchGetPromptResult) Write(oprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceListPromptResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("BatchGetPrompt_result"); err != nil { + if err = oprot.WriteStructBegin("ListPrompt_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -15843,7 +16866,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *PromptManageServiceBatchGetPromptResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceListPromptResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -15862,15 +16885,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *PromptManageServiceBatchGetPromptResult) String() string { +func (p *PromptManageServiceListPromptResult) String() string { if p == nil { return "" } - return fmt.Sprintf("PromptManageServiceBatchGetPromptResult(%+v)", *p) + return fmt.Sprintf("PromptManageServiceListPromptResult(%+v)", *p) } -func (p *PromptManageServiceBatchGetPromptResult) DeepEqual(ano *PromptManageServiceBatchGetPromptResult) bool { +func (p *PromptManageServiceListPromptResult) DeepEqual(ano *PromptManageServiceListPromptResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -15882,7 +16905,7 @@ func (p *PromptManageServiceBatchGetPromptResult) DeepEqual(ano *PromptManageSer return true } -func (p *PromptManageServiceBatchGetPromptResult) Field0DeepEqual(src *BatchGetPromptResponse) bool { +func (p *PromptManageServiceListPromptResult) Field0DeepEqual(src *ListPromptResponse) bool { if !p.Success.DeepEqual(src) { return false @@ -15890,41 +16913,41 @@ func (p *PromptManageServiceBatchGetPromptResult) Field0DeepEqual(src *BatchGetP return true } -type PromptManageServiceListPromptArgs struct { - Request *ListPromptRequest `thrift:"request,1" frugal:"1,default,ListPromptRequest"` +type PromptManageServiceListParentPromptArgs struct { + Request *ListParentPromptRequest `thrift:"request,1" frugal:"1,default,ListParentPromptRequest"` } -func NewPromptManageServiceListPromptArgs() *PromptManageServiceListPromptArgs { - return &PromptManageServiceListPromptArgs{} +func NewPromptManageServiceListParentPromptArgs() *PromptManageServiceListParentPromptArgs { + return &PromptManageServiceListParentPromptArgs{} } -func (p *PromptManageServiceListPromptArgs) InitDefault() { +func (p *PromptManageServiceListParentPromptArgs) InitDefault() { } -var PromptManageServiceListPromptArgs_Request_DEFAULT *ListPromptRequest +var PromptManageServiceListParentPromptArgs_Request_DEFAULT *ListParentPromptRequest -func (p *PromptManageServiceListPromptArgs) GetRequest() (v *ListPromptRequest) { +func (p *PromptManageServiceListParentPromptArgs) GetRequest() (v *ListParentPromptRequest) { if p == nil { return } if !p.IsSetRequest() { - return PromptManageServiceListPromptArgs_Request_DEFAULT + return PromptManageServiceListParentPromptArgs_Request_DEFAULT } return p.Request } -func (p *PromptManageServiceListPromptArgs) SetRequest(val *ListPromptRequest) { +func (p *PromptManageServiceListParentPromptArgs) SetRequest(val *ListParentPromptRequest) { p.Request = val } -var fieldIDToName_PromptManageServiceListPromptArgs = map[int16]string{ +var fieldIDToName_PromptManageServiceListParentPromptArgs = map[int16]string{ 1: "request", } -func (p *PromptManageServiceListPromptArgs) IsSetRequest() bool { +func (p *PromptManageServiceListParentPromptArgs) IsSetRequest() bool { return p.Request != nil } -func (p *PromptManageServiceListPromptArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceListParentPromptArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -15969,7 +16992,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptManageServiceListPromptArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptManageServiceListParentPromptArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -15979,8 +17002,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *PromptManageServiceListPromptArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewListPromptRequest() +func (p *PromptManageServiceListParentPromptArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewListParentPromptRequest() if err := _field.Read(iprot); err != nil { return err } @@ -15988,9 +17011,9 @@ func (p *PromptManageServiceListPromptArgs) ReadField1(iprot thrift.TProtocol) e return nil } -func (p *PromptManageServiceListPromptArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceListParentPromptArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ListPrompt_args"); err != nil { + if err = oprot.WriteStructBegin("ListParentPrompt_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -16016,7 +17039,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *PromptManageServiceListPromptArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceListParentPromptArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("request", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -16033,15 +17056,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *PromptManageServiceListPromptArgs) String() string { +func (p *PromptManageServiceListParentPromptArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("PromptManageServiceListPromptArgs(%+v)", *p) + return fmt.Sprintf("PromptManageServiceListParentPromptArgs(%+v)", *p) } -func (p *PromptManageServiceListPromptArgs) DeepEqual(ano *PromptManageServiceListPromptArgs) bool { +func (p *PromptManageServiceListParentPromptArgs) DeepEqual(ano *PromptManageServiceListParentPromptArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -16053,7 +17076,7 @@ func (p *PromptManageServiceListPromptArgs) DeepEqual(ano *PromptManageServiceLi return true } -func (p *PromptManageServiceListPromptArgs) Field1DeepEqual(src *ListPromptRequest) bool { +func (p *PromptManageServiceListParentPromptArgs) Field1DeepEqual(src *ListParentPromptRequest) bool { if !p.Request.DeepEqual(src) { return false @@ -16061,41 +17084,41 @@ func (p *PromptManageServiceListPromptArgs) Field1DeepEqual(src *ListPromptReque return true } -type PromptManageServiceListPromptResult struct { - Success *ListPromptResponse `thrift:"success,0,optional" frugal:"0,optional,ListPromptResponse"` +type PromptManageServiceListParentPromptResult struct { + Success *ListParentPromptResponse `thrift:"success,0,optional" frugal:"0,optional,ListParentPromptResponse"` } -func NewPromptManageServiceListPromptResult() *PromptManageServiceListPromptResult { - return &PromptManageServiceListPromptResult{} +func NewPromptManageServiceListParentPromptResult() *PromptManageServiceListParentPromptResult { + return &PromptManageServiceListParentPromptResult{} } -func (p *PromptManageServiceListPromptResult) InitDefault() { +func (p *PromptManageServiceListParentPromptResult) InitDefault() { } -var PromptManageServiceListPromptResult_Success_DEFAULT *ListPromptResponse +var PromptManageServiceListParentPromptResult_Success_DEFAULT *ListParentPromptResponse -func (p *PromptManageServiceListPromptResult) GetSuccess() (v *ListPromptResponse) { +func (p *PromptManageServiceListParentPromptResult) GetSuccess() (v *ListParentPromptResponse) { if p == nil { return } if !p.IsSetSuccess() { - return PromptManageServiceListPromptResult_Success_DEFAULT + return PromptManageServiceListParentPromptResult_Success_DEFAULT } return p.Success } -func (p *PromptManageServiceListPromptResult) SetSuccess(x interface{}) { - p.Success = x.(*ListPromptResponse) +func (p *PromptManageServiceListParentPromptResult) SetSuccess(x interface{}) { + p.Success = x.(*ListParentPromptResponse) } -var fieldIDToName_PromptManageServiceListPromptResult = map[int16]string{ +var fieldIDToName_PromptManageServiceListParentPromptResult = map[int16]string{ 0: "success", } -func (p *PromptManageServiceListPromptResult) IsSetSuccess() bool { +func (p *PromptManageServiceListParentPromptResult) IsSetSuccess() bool { return p.Success != nil } -func (p *PromptManageServiceListPromptResult) Read(iprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceListParentPromptResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -16140,7 +17163,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptManageServiceListPromptResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptManageServiceListParentPromptResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -16150,8 +17173,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *PromptManageServiceListPromptResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewListPromptResponse() +func (p *PromptManageServiceListParentPromptResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewListParentPromptResponse() if err := _field.Read(iprot); err != nil { return err } @@ -16159,9 +17182,9 @@ func (p *PromptManageServiceListPromptResult) ReadField0(iprot thrift.TProtocol) return nil } -func (p *PromptManageServiceListPromptResult) Write(oprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceListParentPromptResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ListPrompt_result"); err != nil { + if err = oprot.WriteStructBegin("ListParentPrompt_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -16187,7 +17210,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *PromptManageServiceListPromptResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceListParentPromptResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -16206,15 +17229,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *PromptManageServiceListPromptResult) String() string { +func (p *PromptManageServiceListParentPromptResult) String() string { if p == nil { return "" } - return fmt.Sprintf("PromptManageServiceListPromptResult(%+v)", *p) + return fmt.Sprintf("PromptManageServiceListParentPromptResult(%+v)", *p) } -func (p *PromptManageServiceListPromptResult) DeepEqual(ano *PromptManageServiceListPromptResult) bool { +func (p *PromptManageServiceListParentPromptResult) DeepEqual(ano *PromptManageServiceListParentPromptResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -16226,7 +17249,7 @@ func (p *PromptManageServiceListPromptResult) DeepEqual(ano *PromptManageService return true } -func (p *PromptManageServiceListPromptResult) Field0DeepEqual(src *ListPromptResponse) bool { +func (p *PromptManageServiceListParentPromptResult) Field0DeepEqual(src *ListParentPromptResponse) bool { if !p.Success.DeepEqual(src) { return false @@ -16234,41 +17257,41 @@ func (p *PromptManageServiceListPromptResult) Field0DeepEqual(src *ListPromptRes return true } -type PromptManageServiceListParentPromptArgs struct { - Request *ListParentPromptRequest `thrift:"request,1" frugal:"1,default,ListParentPromptRequest"` +type PromptManageServiceBatchGetPromptBasicArgs struct { + Request *BatchGetPromptBasicRequest `thrift:"request,1" frugal:"1,default,BatchGetPromptBasicRequest"` } -func NewPromptManageServiceListParentPromptArgs() *PromptManageServiceListParentPromptArgs { - return &PromptManageServiceListParentPromptArgs{} +func NewPromptManageServiceBatchGetPromptBasicArgs() *PromptManageServiceBatchGetPromptBasicArgs { + return &PromptManageServiceBatchGetPromptBasicArgs{} } -func (p *PromptManageServiceListParentPromptArgs) InitDefault() { +func (p *PromptManageServiceBatchGetPromptBasicArgs) InitDefault() { } -var PromptManageServiceListParentPromptArgs_Request_DEFAULT *ListParentPromptRequest +var PromptManageServiceBatchGetPromptBasicArgs_Request_DEFAULT *BatchGetPromptBasicRequest -func (p *PromptManageServiceListParentPromptArgs) GetRequest() (v *ListParentPromptRequest) { +func (p *PromptManageServiceBatchGetPromptBasicArgs) GetRequest() (v *BatchGetPromptBasicRequest) { if p == nil { return } if !p.IsSetRequest() { - return PromptManageServiceListParentPromptArgs_Request_DEFAULT + return PromptManageServiceBatchGetPromptBasicArgs_Request_DEFAULT } return p.Request } -func (p *PromptManageServiceListParentPromptArgs) SetRequest(val *ListParentPromptRequest) { +func (p *PromptManageServiceBatchGetPromptBasicArgs) SetRequest(val *BatchGetPromptBasicRequest) { p.Request = val } -var fieldIDToName_PromptManageServiceListParentPromptArgs = map[int16]string{ +var fieldIDToName_PromptManageServiceBatchGetPromptBasicArgs = map[int16]string{ 1: "request", } -func (p *PromptManageServiceListParentPromptArgs) IsSetRequest() bool { +func (p *PromptManageServiceBatchGetPromptBasicArgs) IsSetRequest() bool { return p.Request != nil } -func (p *PromptManageServiceListParentPromptArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceBatchGetPromptBasicArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -16313,7 +17336,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptManageServiceListParentPromptArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptManageServiceBatchGetPromptBasicArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -16323,8 +17346,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *PromptManageServiceListParentPromptArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewListParentPromptRequest() +func (p *PromptManageServiceBatchGetPromptBasicArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewBatchGetPromptBasicRequest() if err := _field.Read(iprot); err != nil { return err } @@ -16332,9 +17355,9 @@ func (p *PromptManageServiceListParentPromptArgs) ReadField1(iprot thrift.TProto return nil } -func (p *PromptManageServiceListParentPromptArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceBatchGetPromptBasicArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ListParentPrompt_args"); err != nil { + if err = oprot.WriteStructBegin("BatchGetPromptBasic_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -16360,7 +17383,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *PromptManageServiceListParentPromptArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceBatchGetPromptBasicArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("request", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -16377,15 +17400,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *PromptManageServiceListParentPromptArgs) String() string { +func (p *PromptManageServiceBatchGetPromptBasicArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("PromptManageServiceListParentPromptArgs(%+v)", *p) + return fmt.Sprintf("PromptManageServiceBatchGetPromptBasicArgs(%+v)", *p) } -func (p *PromptManageServiceListParentPromptArgs) DeepEqual(ano *PromptManageServiceListParentPromptArgs) bool { +func (p *PromptManageServiceBatchGetPromptBasicArgs) DeepEqual(ano *PromptManageServiceBatchGetPromptBasicArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -16397,7 +17420,7 @@ func (p *PromptManageServiceListParentPromptArgs) DeepEqual(ano *PromptManageSer return true } -func (p *PromptManageServiceListParentPromptArgs) Field1DeepEqual(src *ListParentPromptRequest) bool { +func (p *PromptManageServiceBatchGetPromptBasicArgs) Field1DeepEqual(src *BatchGetPromptBasicRequest) bool { if !p.Request.DeepEqual(src) { return false @@ -16405,41 +17428,41 @@ func (p *PromptManageServiceListParentPromptArgs) Field1DeepEqual(src *ListParen return true } -type PromptManageServiceListParentPromptResult struct { - Success *ListParentPromptResponse `thrift:"success,0,optional" frugal:"0,optional,ListParentPromptResponse"` +type PromptManageServiceBatchGetPromptBasicResult struct { + Success *BatchGetPromptBasicResponse `thrift:"success,0,optional" frugal:"0,optional,BatchGetPromptBasicResponse"` } -func NewPromptManageServiceListParentPromptResult() *PromptManageServiceListParentPromptResult { - return &PromptManageServiceListParentPromptResult{} +func NewPromptManageServiceBatchGetPromptBasicResult() *PromptManageServiceBatchGetPromptBasicResult { + return &PromptManageServiceBatchGetPromptBasicResult{} } -func (p *PromptManageServiceListParentPromptResult) InitDefault() { +func (p *PromptManageServiceBatchGetPromptBasicResult) InitDefault() { } -var PromptManageServiceListParentPromptResult_Success_DEFAULT *ListParentPromptResponse +var PromptManageServiceBatchGetPromptBasicResult_Success_DEFAULT *BatchGetPromptBasicResponse -func (p *PromptManageServiceListParentPromptResult) GetSuccess() (v *ListParentPromptResponse) { +func (p *PromptManageServiceBatchGetPromptBasicResult) GetSuccess() (v *BatchGetPromptBasicResponse) { if p == nil { return } if !p.IsSetSuccess() { - return PromptManageServiceListParentPromptResult_Success_DEFAULT + return PromptManageServiceBatchGetPromptBasicResult_Success_DEFAULT } return p.Success } -func (p *PromptManageServiceListParentPromptResult) SetSuccess(x interface{}) { - p.Success = x.(*ListParentPromptResponse) +func (p *PromptManageServiceBatchGetPromptBasicResult) SetSuccess(x interface{}) { + p.Success = x.(*BatchGetPromptBasicResponse) } -var fieldIDToName_PromptManageServiceListParentPromptResult = map[int16]string{ +var fieldIDToName_PromptManageServiceBatchGetPromptBasicResult = map[int16]string{ 0: "success", } -func (p *PromptManageServiceListParentPromptResult) IsSetSuccess() bool { +func (p *PromptManageServiceBatchGetPromptBasicResult) IsSetSuccess() bool { return p.Success != nil } -func (p *PromptManageServiceListParentPromptResult) Read(iprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceBatchGetPromptBasicResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -16484,7 +17507,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptManageServiceListParentPromptResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptManageServiceBatchGetPromptBasicResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -16494,8 +17517,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *PromptManageServiceListParentPromptResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewListParentPromptResponse() +func (p *PromptManageServiceBatchGetPromptBasicResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewBatchGetPromptBasicResponse() if err := _field.Read(iprot); err != nil { return err } @@ -16503,9 +17526,9 @@ func (p *PromptManageServiceListParentPromptResult) ReadField0(iprot thrift.TPro return nil } -func (p *PromptManageServiceListParentPromptResult) Write(oprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceBatchGetPromptBasicResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ListParentPrompt_result"); err != nil { + if err = oprot.WriteStructBegin("BatchGetPromptBasic_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -16531,7 +17554,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *PromptManageServiceListParentPromptResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *PromptManageServiceBatchGetPromptBasicResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -16550,15 +17573,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *PromptManageServiceListParentPromptResult) String() string { +func (p *PromptManageServiceBatchGetPromptBasicResult) String() string { if p == nil { return "" } - return fmt.Sprintf("PromptManageServiceListParentPromptResult(%+v)", *p) + return fmt.Sprintf("PromptManageServiceBatchGetPromptBasicResult(%+v)", *p) } -func (p *PromptManageServiceListParentPromptResult) DeepEqual(ano *PromptManageServiceListParentPromptResult) bool { +func (p *PromptManageServiceBatchGetPromptBasicResult) DeepEqual(ano *PromptManageServiceBatchGetPromptBasicResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -16570,7 +17593,7 @@ func (p *PromptManageServiceListParentPromptResult) DeepEqual(ano *PromptManageS return true } -func (p *PromptManageServiceListParentPromptResult) Field0DeepEqual(src *ListParentPromptResponse) bool { +func (p *PromptManageServiceBatchGetPromptBasicResult) Field0DeepEqual(src *BatchGetPromptBasicResponse) bool { if !p.Success.DeepEqual(src) { return false diff --git a/backend/kitex_gen/coze/loop/prompt/manage/coze.loop.prompt.manage_validator.go b/backend/kitex_gen/coze/loop/prompt/manage/coze.loop.prompt.manage_validator.go index be8d6c11b..fb7b91a86 100644 --- a/backend/kitex_gen/coze/loop/prompt/manage/coze.loop.prompt.manage_validator.go +++ b/backend/kitex_gen/coze/loop/prompt/manage/coze.loop.prompt.manage_validator.go @@ -511,3 +511,25 @@ func (p *ListParentPromptResponse) IsValid() error { } return nil } +func (p *BatchGetPromptBasicRequest) IsValid() error { + if p.WorkspaceID == nil { + return fmt.Errorf("field WorkspaceID not_nil rule failed") + } + if *p.WorkspaceID <= int64(0) { + return fmt.Errorf("field WorkspaceID gt rule failed, current value: %v", *p.WorkspaceID) + } + if p.Base != nil { + if err := p.Base.IsValid(); err != nil { + return fmt.Errorf("field Base not valid, %w", err) + } + } + return nil +} +func (p *BatchGetPromptBasicResponse) IsValid() error { + if p.BaseResp != nil { + if err := p.BaseResp.IsValid(); err != nil { + return fmt.Errorf("field BaseResp not valid, %w", err) + } + } + return nil +} diff --git a/backend/kitex_gen/coze/loop/prompt/manage/k-coze.loop.prompt.manage.go b/backend/kitex_gen/coze/loop/prompt/manage/k-coze.loop.prompt.manage.go index b66c724f8..87d0af839 100644 --- a/backend/kitex_gen/coze/loop/prompt/manage/k-coze.loop.prompt.manage.go +++ b/backend/kitex_gen/coze/loop/prompt/manage/k-coze.loop.prompt.manage.go @@ -9520,6 +9520,458 @@ func (p *ListParentPromptResponse) DeepCopy(s interface{}) error { return nil } +func (p *BatchGetPromptBasicRequest) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.LIST { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 255: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField255(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_BatchGetPromptBasicRequest[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *BatchGetPromptBasicRequest) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field *int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.WorkspaceID = _field + return offset, nil +} + +func (p *BatchGetPromptBasicRequest) FastReadField2(buf []byte) (int, error) { + offset := 0 + + _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make([]int64, 0, size) + for i := 0; i < size; i++ { + var _elem int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _elem = v + } + + _field = append(_field, _elem) + } + p.PromptIds = _field + return offset, nil +} + +func (p *BatchGetPromptBasicRequest) FastReadField255(buf []byte) (int, error) { + offset := 0 + _field := base.NewBase() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Base = _field + return offset, nil +} + +func (p *BatchGetPromptBasicRequest) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *BatchGetPromptBasicRequest) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + offset += p.fastWriteField255(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *BatchGetPromptBasicRequest) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field255Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *BatchGetPromptBasicRequest) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetWorkspaceID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 1) + offset += thrift.Binary.WriteI64(buf[offset:], *p.WorkspaceID) + } + return offset +} + +func (p *BatchGetPromptBasicRequest) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetPromptIds() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 2) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.PromptIds { + length++ + offset += thrift.Binary.WriteI64(buf[offset:], v) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.I64, length) + } + return offset +} + +func (p *BatchGetPromptBasicRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetBase() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) + offset += p.Base.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *BatchGetPromptBasicRequest) field1Length() int { + l := 0 + if p.IsSetWorkspaceID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *BatchGetPromptBasicRequest) field2Length() int { + l := 0 + if p.IsSetPromptIds() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + l += + thrift.Binary.I64Length() * len(p.PromptIds) + } + return l +} + +func (p *BatchGetPromptBasicRequest) field255Length() int { + l := 0 + if p.IsSetBase() { + l += thrift.Binary.FieldBeginLength() + l += p.Base.BLength() + } + return l +} + +func (p *BatchGetPromptBasicRequest) DeepCopy(s interface{}) error { + src, ok := s.(*BatchGetPromptBasicRequest) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.WorkspaceID != nil { + tmp := *src.WorkspaceID + p.WorkspaceID = &tmp + } + + if src.PromptIds != nil { + p.PromptIds = make([]int64, 0, len(src.PromptIds)) + for _, elem := range src.PromptIds { + var _elem int64 + _elem = elem + p.PromptIds = append(p.PromptIds, _elem) + } + } + + var _base *base.Base + if src.Base != nil { + _base = &base.Base{} + if err := _base.DeepCopy(src.Base); err != nil { + return err + } + } + p.Base = _base + + return nil +} + +func (p *BatchGetPromptBasicResponse) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.LIST { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 255: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField255(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_BatchGetPromptBasicResponse[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *BatchGetPromptBasicResponse) FastReadField1(buf []byte) (int, error) { + offset := 0 + + _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make([]*prompt.Prompt, 0, size) + values := make([]prompt.Prompt, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + if l, err := _elem.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + + _field = append(_field, _elem) + } + p.Prompts = _field + return offset, nil +} + +func (p *BatchGetPromptBasicResponse) FastReadField255(buf []byte) (int, error) { + offset := 0 + _field := base.NewBaseResp() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.BaseResp = _field + return offset, nil +} + +func (p *BatchGetPromptBasicResponse) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *BatchGetPromptBasicResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField255(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *BatchGetPromptBasicResponse) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field255Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *BatchGetPromptBasicResponse) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetPrompts() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 1) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.Prompts { + length++ + offset += v.FastWriteNocopy(buf[offset:], w) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) + } + return offset +} + +func (p *BatchGetPromptBasicResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetBaseResp() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) + offset += p.BaseResp.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *BatchGetPromptBasicResponse) field1Length() int { + l := 0 + if p.IsSetPrompts() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + for _, v := range p.Prompts { + _ = v + l += v.BLength() + } + } + return l +} + +func (p *BatchGetPromptBasicResponse) field255Length() int { + l := 0 + if p.IsSetBaseResp() { + l += thrift.Binary.FieldBeginLength() + l += p.BaseResp.BLength() + } + return l +} + +func (p *BatchGetPromptBasicResponse) DeepCopy(s interface{}) error { + src, ok := s.(*BatchGetPromptBasicResponse) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.Prompts != nil { + p.Prompts = make([]*prompt.Prompt, 0, len(src.Prompts)) + for _, elem := range src.Prompts { + var _elem *prompt.Prompt + if elem != nil { + _elem = &prompt.Prompt{} + if err := _elem.DeepCopy(elem); err != nil { + return err + } + } + + p.Prompts = append(p.Prompts, _elem) + } + } + + var _baseResp *base.BaseResp + if src.BaseResp != nil { + _baseResp = &base.BaseResp{} + if err := _baseResp.DeepCopy(src.BaseResp); err != nil { + return err + } + } + p.BaseResp = _baseResp + + return nil +} + func (p *PromptManageServiceCreatePromptArgs) FastRead(buf []byte) (int, error) { var err error @@ -11158,6 +11610,240 @@ func (p *PromptManageServiceListParentPromptResult) DeepCopy(s interface{}) erro return nil } +func (p *PromptManageServiceBatchGetPromptBasicArgs) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptManageServiceBatchGetPromptBasicArgs[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *PromptManageServiceBatchGetPromptBasicArgs) FastReadField1(buf []byte) (int, error) { + offset := 0 + _field := NewBatchGetPromptBasicRequest() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Request = _field + return offset, nil +} + +func (p *PromptManageServiceBatchGetPromptBasicArgs) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *PromptManageServiceBatchGetPromptBasicArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *PromptManageServiceBatchGetPromptBasicArgs) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *PromptManageServiceBatchGetPromptBasicArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) + offset += p.Request.FastWriteNocopy(buf[offset:], w) + return offset +} + +func (p *PromptManageServiceBatchGetPromptBasicArgs) field1Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += p.Request.BLength() + return l +} + +func (p *PromptManageServiceBatchGetPromptBasicArgs) DeepCopy(s interface{}) error { + src, ok := s.(*PromptManageServiceBatchGetPromptBasicArgs) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + var _request *BatchGetPromptBasicRequest + if src.Request != nil { + _request = &BatchGetPromptBasicRequest{} + if err := _request.DeepCopy(src.Request); err != nil { + return err + } + } + p.Request = _request + + return nil +} + +func (p *PromptManageServiceBatchGetPromptBasicResult) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 0: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField0(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptManageServiceBatchGetPromptBasicResult[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *PromptManageServiceBatchGetPromptBasicResult) FastReadField0(buf []byte) (int, error) { + offset := 0 + _field := NewBatchGetPromptBasicResponse() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Success = _field + return offset, nil +} + +func (p *PromptManageServiceBatchGetPromptBasicResult) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *PromptManageServiceBatchGetPromptBasicResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField0(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *PromptManageServiceBatchGetPromptBasicResult) BLength() int { + l := 0 + if p != nil { + l += p.field0Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *PromptManageServiceBatchGetPromptBasicResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetSuccess() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) + offset += p.Success.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *PromptManageServiceBatchGetPromptBasicResult) field0Length() int { + l := 0 + if p.IsSetSuccess() { + l += thrift.Binary.FieldBeginLength() + l += p.Success.BLength() + } + return l +} + +func (p *PromptManageServiceBatchGetPromptBasicResult) DeepCopy(s interface{}) error { + src, ok := s.(*PromptManageServiceBatchGetPromptBasicResult) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + var _success *BatchGetPromptBasicResponse + if src.Success != nil { + _success = &BatchGetPromptBasicResponse{} + if err := _success.DeepCopy(src.Success); err != nil { + return err + } + } + p.Success = _success + + return nil +} + func (p *PromptManageServiceUpdatePromptArgs) FastRead(buf []byte) (int, error) { var err error @@ -13320,6 +14006,14 @@ func (p *PromptManageServiceListParentPromptResult) GetResult() interface{} { return p.Success } +func (p *PromptManageServiceBatchGetPromptBasicArgs) GetFirstArgument() interface{} { + return p.Request +} + +func (p *PromptManageServiceBatchGetPromptBasicResult) GetResult() interface{} { + return p.Success +} + func (p *PromptManageServiceUpdatePromptArgs) GetFirstArgument() interface{} { return p.Request } diff --git a/backend/kitex_gen/coze/loop/prompt/manage/promptmanageservice/client.go b/backend/kitex_gen/coze/loop/prompt/manage/promptmanageservice/client.go index 3e7b1c158..aaec1bad2 100644 --- a/backend/kitex_gen/coze/loop/prompt/manage/promptmanageservice/client.go +++ b/backend/kitex_gen/coze/loop/prompt/manage/promptmanageservice/client.go @@ -18,6 +18,7 @@ type Client interface { BatchGetPrompt(ctx context.Context, request *manage.BatchGetPromptRequest, callOptions ...callopt.Option) (r *manage.BatchGetPromptResponse, err error) ListPrompt(ctx context.Context, request *manage.ListPromptRequest, callOptions ...callopt.Option) (r *manage.ListPromptResponse, err error) ListParentPrompt(ctx context.Context, request *manage.ListParentPromptRequest, callOptions ...callopt.Option) (r *manage.ListParentPromptResponse, err error) + BatchGetPromptBasic(ctx context.Context, request *manage.BatchGetPromptBasicRequest, callOptions ...callopt.Option) (r *manage.BatchGetPromptBasicResponse, err error) UpdatePrompt(ctx context.Context, request *manage.UpdatePromptRequest, callOptions ...callopt.Option) (r *manage.UpdatePromptResponse, err error) SaveDraft(ctx context.Context, request *manage.SaveDraftRequest, callOptions ...callopt.Option) (r *manage.SaveDraftResponse, err error) CreateLabel(ctx context.Context, request *manage.CreateLabelRequest, callOptions ...callopt.Option) (r *manage.CreateLabelResponse, err error) @@ -93,6 +94,11 @@ func (p *kPromptManageServiceClient) ListParentPrompt(ctx context.Context, reque return p.kClient.ListParentPrompt(ctx, request) } +func (p *kPromptManageServiceClient) BatchGetPromptBasic(ctx context.Context, request *manage.BatchGetPromptBasicRequest, callOptions ...callopt.Option) (r *manage.BatchGetPromptBasicResponse, err error) { + ctx = client.NewCtxWithCallOptions(ctx, callOptions) + return p.kClient.BatchGetPromptBasic(ctx, request) +} + func (p *kPromptManageServiceClient) UpdatePrompt(ctx context.Context, request *manage.UpdatePromptRequest, callOptions ...callopt.Option) (r *manage.UpdatePromptResponse, err error) { ctx = client.NewCtxWithCallOptions(ctx, callOptions) return p.kClient.UpdatePrompt(ctx, request) diff --git a/backend/kitex_gen/coze/loop/prompt/manage/promptmanageservice/promptmanageservice.go b/backend/kitex_gen/coze/loop/prompt/manage/promptmanageservice/promptmanageservice.go index d8900b7be..3ef8b1cd6 100644 --- a/backend/kitex_gen/coze/loop/prompt/manage/promptmanageservice/promptmanageservice.go +++ b/backend/kitex_gen/coze/loop/prompt/manage/promptmanageservice/promptmanageservice.go @@ -62,6 +62,13 @@ var serviceMethods = map[string]kitex.MethodInfo{ false, kitex.WithStreamingMode(kitex.StreamingNone), ), + "BatchGetPromptBasic": kitex.NewMethodInfo( + batchGetPromptBasicHandler, + newPromptManageServiceBatchGetPromptBasicArgs, + newPromptManageServiceBatchGetPromptBasicResult, + false, + kitex.WithStreamingMode(kitex.StreamingNone), + ), "UpdatePrompt": kitex.NewMethodInfo( updatePromptHandler, newPromptManageServiceUpdatePromptArgs, @@ -291,6 +298,25 @@ func newPromptManageServiceListParentPromptResult() interface{} { return manage.NewPromptManageServiceListParentPromptResult() } +func batchGetPromptBasicHandler(ctx context.Context, handler interface{}, arg, result interface{}) error { + realArg := arg.(*manage.PromptManageServiceBatchGetPromptBasicArgs) + realResult := result.(*manage.PromptManageServiceBatchGetPromptBasicResult) + success, err := handler.(manage.PromptManageService).BatchGetPromptBasic(ctx, realArg.Request) + if err != nil { + return err + } + realResult.Success = success + return nil +} + +func newPromptManageServiceBatchGetPromptBasicArgs() interface{} { + return manage.NewPromptManageServiceBatchGetPromptBasicArgs() +} + +func newPromptManageServiceBatchGetPromptBasicResult() interface{} { + return manage.NewPromptManageServiceBatchGetPromptBasicResult() +} + func updatePromptHandler(ctx context.Context, handler interface{}, arg, result interface{}) error { realArg := arg.(*manage.PromptManageServiceUpdatePromptArgs) realResult := result.(*manage.PromptManageServiceUpdatePromptResult) @@ -544,6 +570,16 @@ func (p *kClient) ListParentPrompt(ctx context.Context, request *manage.ListPare return _result.GetSuccess(), nil } +func (p *kClient) BatchGetPromptBasic(ctx context.Context, request *manage.BatchGetPromptBasicRequest) (r *manage.BatchGetPromptBasicResponse, err error) { + var _args manage.PromptManageServiceBatchGetPromptBasicArgs + _args.Request = request + var _result manage.PromptManageServiceBatchGetPromptBasicResult + if err = p.c.Call(ctx, "BatchGetPromptBasic", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} + func (p *kClient) UpdatePrompt(ctx context.Context, request *manage.UpdatePromptRequest) (r *manage.UpdatePromptResponse, err error) { var _args manage.PromptManageServiceUpdatePromptArgs _args.Request = request diff --git a/backend/kitex_gen/coze/loop/prompt/promptmanageservice/client.go b/backend/kitex_gen/coze/loop/prompt/promptmanageservice/client.go index 3e7b1c158..aaec1bad2 100644 --- a/backend/kitex_gen/coze/loop/prompt/promptmanageservice/client.go +++ b/backend/kitex_gen/coze/loop/prompt/promptmanageservice/client.go @@ -18,6 +18,7 @@ type Client interface { BatchGetPrompt(ctx context.Context, request *manage.BatchGetPromptRequest, callOptions ...callopt.Option) (r *manage.BatchGetPromptResponse, err error) ListPrompt(ctx context.Context, request *manage.ListPromptRequest, callOptions ...callopt.Option) (r *manage.ListPromptResponse, err error) ListParentPrompt(ctx context.Context, request *manage.ListParentPromptRequest, callOptions ...callopt.Option) (r *manage.ListParentPromptResponse, err error) + BatchGetPromptBasic(ctx context.Context, request *manage.BatchGetPromptBasicRequest, callOptions ...callopt.Option) (r *manage.BatchGetPromptBasicResponse, err error) UpdatePrompt(ctx context.Context, request *manage.UpdatePromptRequest, callOptions ...callopt.Option) (r *manage.UpdatePromptResponse, err error) SaveDraft(ctx context.Context, request *manage.SaveDraftRequest, callOptions ...callopt.Option) (r *manage.SaveDraftResponse, err error) CreateLabel(ctx context.Context, request *manage.CreateLabelRequest, callOptions ...callopt.Option) (r *manage.CreateLabelResponse, err error) @@ -93,6 +94,11 @@ func (p *kPromptManageServiceClient) ListParentPrompt(ctx context.Context, reque return p.kClient.ListParentPrompt(ctx, request) } +func (p *kPromptManageServiceClient) BatchGetPromptBasic(ctx context.Context, request *manage.BatchGetPromptBasicRequest, callOptions ...callopt.Option) (r *manage.BatchGetPromptBasicResponse, err error) { + ctx = client.NewCtxWithCallOptions(ctx, callOptions) + return p.kClient.BatchGetPromptBasic(ctx, request) +} + func (p *kPromptManageServiceClient) UpdatePrompt(ctx context.Context, request *manage.UpdatePromptRequest, callOptions ...callopt.Option) (r *manage.UpdatePromptResponse, err error) { ctx = client.NewCtxWithCallOptions(ctx, callOptions) return p.kClient.UpdatePrompt(ctx, request) diff --git a/backend/kitex_gen/coze/loop/prompt/promptmanageservice/promptmanageservice.go b/backend/kitex_gen/coze/loop/prompt/promptmanageservice/promptmanageservice.go index f2c8b070e..d003d7ae1 100644 --- a/backend/kitex_gen/coze/loop/prompt/promptmanageservice/promptmanageservice.go +++ b/backend/kitex_gen/coze/loop/prompt/promptmanageservice/promptmanageservice.go @@ -63,6 +63,13 @@ var serviceMethods = map[string]kitex.MethodInfo{ false, kitex.WithStreamingMode(kitex.StreamingNone), ), + "BatchGetPromptBasic": kitex.NewMethodInfo( + batchGetPromptBasicHandler, + newPromptManageServiceBatchGetPromptBasicArgs, + newPromptManageServiceBatchGetPromptBasicResult, + false, + kitex.WithStreamingMode(kitex.StreamingNone), + ), "UpdatePrompt": kitex.NewMethodInfo( updatePromptHandler, newPromptManageServiceUpdatePromptArgs, @@ -292,6 +299,25 @@ func newPromptManageServiceListParentPromptResult() interface{} { return manage.NewPromptManageServiceListParentPromptResult() } +func batchGetPromptBasicHandler(ctx context.Context, handler interface{}, arg, result interface{}) error { + realArg := arg.(*manage.PromptManageServiceBatchGetPromptBasicArgs) + realResult := result.(*manage.PromptManageServiceBatchGetPromptBasicResult) + success, err := handler.(manage.PromptManageService).BatchGetPromptBasic(ctx, realArg.Request) + if err != nil { + return err + } + realResult.Success = success + return nil +} + +func newPromptManageServiceBatchGetPromptBasicArgs() interface{} { + return manage.NewPromptManageServiceBatchGetPromptBasicArgs() +} + +func newPromptManageServiceBatchGetPromptBasicResult() interface{} { + return manage.NewPromptManageServiceBatchGetPromptBasicResult() +} + func updatePromptHandler(ctx context.Context, handler interface{}, arg, result interface{}) error { realArg := arg.(*manage.PromptManageServiceUpdatePromptArgs) realResult := result.(*manage.PromptManageServiceUpdatePromptResult) @@ -545,6 +571,16 @@ func (p *kClient) ListParentPrompt(ctx context.Context, request *manage.ListPare return _result.GetSuccess(), nil } +func (p *kClient) BatchGetPromptBasic(ctx context.Context, request *manage.BatchGetPromptBasicRequest) (r *manage.BatchGetPromptBasicResponse, err error) { + var _args manage.PromptManageServiceBatchGetPromptBasicArgs + _args.Request = request + var _result manage.PromptManageServiceBatchGetPromptBasicResult + if err = p.c.Call(ctx, "BatchGetPromptBasic", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} + func (p *kClient) UpdatePrompt(ctx context.Context, request *manage.UpdatePromptRequest) (r *manage.UpdatePromptResponse, err error) { var _args manage.PromptManageServiceUpdatePromptArgs _args.Request = request diff --git a/backend/loop_gen/coze/loop/prompt/lomanage/local_promptmanageservice.go b/backend/loop_gen/coze/loop/prompt/lomanage/local_promptmanageservice.go index 74d233021..aabc63c89 100644 --- a/backend/loop_gen/coze/loop/prompt/lomanage/local_promptmanageservice.go +++ b/backend/loop_gen/coze/loop/prompt/lomanage/local_promptmanageservice.go @@ -178,6 +178,27 @@ func (l *LocalPromptManageService) ListParentPrompt(ctx context.Context, request return result.GetSuccess(), nil } +func (l *LocalPromptManageService) BatchGetPromptBasic(ctx context.Context, request *manage.BatchGetPromptBasicRequest, callOptions ...callopt.Option) (*manage.BatchGetPromptBasicResponse, error) { + chain := l.mds(func(ctx context.Context, in, out interface{}) error { + arg := in.(*manage.PromptManageServiceBatchGetPromptBasicArgs) + result := out.(*manage.PromptManageServiceBatchGetPromptBasicResult) + resp, err := l.impl.BatchGetPromptBasic(ctx, arg.Request) + if err != nil { + return err + } + result.SetSuccess(resp) + return nil + }) + + arg := &manage.PromptManageServiceBatchGetPromptBasicArgs{Request: request} + result := &manage.PromptManageServiceBatchGetPromptBasicResult{} + ctx = l.injectRPCInfo(ctx, "BatchGetPromptBasic") + if err := chain(ctx, arg, result); err != nil { + return nil, err + } + return result.GetSuccess(), nil +} + // UpdatePrompt // 改 func (l *LocalPromptManageService) UpdatePrompt(ctx context.Context, request *manage.UpdatePromptRequest, callOptions ...callopt.Option) (*manage.UpdatePromptResponse, error) { diff --git a/backend/modules/prompt/application/manage.go b/backend/modules/prompt/application/manage.go index 858c25216..981bb8f5f 100644 --- a/backend/modules/prompt/application/manage.go +++ b/backend/modules/prompt/application/manage.go @@ -958,3 +958,28 @@ func (app *PromptManageApplicationImpl) UpdateCommitLabels(ctx context.Context, return r, nil } + +func (app *PromptManageApplicationImpl) BatchGetPromptBasic(ctx context.Context, request *manage.BatchGetPromptBasicRequest) (r *manage.BatchGetPromptBasicResponse, err error) { + r = manage.NewBatchGetPromptBasicResponse() + // 用户 + userID, ok := session.UserIDInCtx(ctx) + if !ok || lo.IsEmpty(userID) { + return r, errorx.NewByCode(prompterr.CommonInvalidParamCode, errorx.WithExtraMsg("User not found")) + } + + // 权限检查 + err = app.authRPCProvider.MCheckPromptPermission(ctx, request.GetWorkspaceID(), request.GetPromptIds(), consts.ActionLoopPromptRead) + if err != nil { + return r, err + } + + // 调用domain层服务查询PromptBasic列表 + promptBasics, err := app.manageRepo.BatchGetPromptBasic(ctx, request.GetPromptIds()) + if err != nil { + return r, err + } + // 转换结果 + r.Prompts = convertor.BatchPromptDO2DTO(maps.Values(promptBasics)) + + return r, nil +} diff --git a/backend/modules/prompt/domain/repo/manage.go b/backend/modules/prompt/domain/repo/manage.go index 4ecf0e7a4..6454e96b8 100644 --- a/backend/modules/prompt/domain/repo/manage.go +++ b/backend/modules/prompt/domain/repo/manage.go @@ -23,6 +23,7 @@ type IManageRepo interface { CommitDraft(ctx context.Context, param CommitDraftParam) (err error) ListCommitInfo(ctx context.Context, param ListCommitInfoParam) (result *ListCommitResult, err error) MGetVersionsByPromptID(ctx context.Context, promptID int64) (versions []string, err error) + BatchGetPromptBasic(ctx context.Context, promptIDs []int64) (promptDOMap map[int64]*entity.Prompt, err error) } type GetPromptParam struct { diff --git a/backend/modules/prompt/domain/repo/mocks/manage_repo.go b/backend/modules/prompt/domain/repo/mocks/manage_repo.go index 09a65463d..02bcfe412 100644 --- a/backend/modules/prompt/domain/repo/mocks/manage_repo.go +++ b/backend/modules/prompt/domain/repo/mocks/manage_repo.go @@ -42,6 +42,21 @@ func (m *MockIManageRepo) EXPECT() *MockIManageRepoMockRecorder { return m.recorder } +// BatchGetPromptBasic mocks base method. +func (m *MockIManageRepo) BatchGetPromptBasic(ctx context.Context, promptIDs []int64) (map[int64]*entity.Prompt, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "BatchGetPromptBasic", ctx, promptIDs) + ret0, _ := ret[0].(map[int64]*entity.Prompt) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// BatchGetPromptBasic indicates an expected call of BatchGetPromptBasic. +func (mr *MockIManageRepoMockRecorder) BatchGetPromptBasic(ctx, promptIDs any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BatchGetPromptBasic", reflect.TypeOf((*MockIManageRepo)(nil).BatchGetPromptBasic), ctx, promptIDs) +} + // CommitDraft mocks base method. func (m *MockIManageRepo) CommitDraft(ctx context.Context, param repo.CommitDraftParam) error { m.ctrl.T.Helper() diff --git a/backend/modules/prompt/infra/repo/manage.go b/backend/modules/prompt/infra/repo/manage.go index 561ccbc3c..d741724ec 100644 --- a/backend/modules/prompt/infra/repo/manage.go +++ b/backend/modules/prompt/infra/repo/manage.go @@ -1082,3 +1082,30 @@ func (d *ManageRepoImpl) ListParentPrompt(ctx context.Context, param repo.ListPa return result, nil } + +func (d *ManageRepoImpl) BatchGetPromptBasic(ctx context.Context, promptIDs []int64) (promptDOMap map[int64]*entity.Prompt, err error) { + if len(promptIDs) == 0 { + return make(map[int64]*entity.Prompt), nil + } + promptParams := make([]repo.GetPromptParam, 0) + for _, promptID := range promptIDs { + getParam := repo.GetPromptParam{ + PromptID: promptID, + WithCommit: false, + WithDraft: false, + } + promptParams = append(promptParams, getParam) + } + promptRepoMap, err := d.MGetPrompt(ctx, promptParams) + if err != nil { + return nil, err + } + promptMap := make(map[int64]*entity.Prompt, len(promptIDs)) + for _, prompt := range promptRepoMap { + if prompt == nil { + continue + } + promptMap[prompt.ID] = prompt + } + return promptMap, nil +} diff --git a/idl/thrift/coze/loop/prompt/coze.loop.prompt.manage.thrift b/idl/thrift/coze/loop/prompt/coze.loop.prompt.manage.thrift index 9608fe966..b19e453db 100644 --- a/idl/thrift/coze/loop/prompt/coze.loop.prompt.manage.thrift +++ b/idl/thrift/coze/loop/prompt/coze.loop.prompt.manage.thrift @@ -22,6 +22,7 @@ service PromptManageService { ListPromptResponse ListPrompt(1: ListPromptRequest request) (api.post = '/api/prompt/v1/prompts/list') // 查询片段的引用记录 ListParentPromptResponse ListParentPrompt (1: ListParentPromptRequest request) (api.post = '/api/prompt/v1/prompts/list_parent') + BatchGetPromptBasicResponse BatchGetPromptBasic (1: BatchGetPromptBasicRequest request) (api.post = '/api/prompt/v1/prompts/batch_get_prompt_basic') // 改 UpdatePromptResponse UpdatePrompt(1: UpdatePromptRequest request) (api.put = '/api/prompt/v1/prompts/:prompt_id') @@ -309,5 +310,18 @@ struct ListParentPromptRequest { struct ListParentPromptResponse { 1: optional map> parent_prompts // 不同片段版本被引用的父prompt记录 + 255: optional base.BaseResp BaseResp +} + +struct BatchGetPromptBasicRequest { + 1: optional i64 workspace_id (api.js_conv='true', vt.not_nil='true', vt.gt='0', go.tag='json:"workspace_id"') + 2: optional list prompt_ids + + 255: optional base.Base Base +} + +struct BatchGetPromptBasicResponse { + 1: optional list prompts + 255: optional base.BaseResp BaseResp } \ No newline at end of file From 2c804782703bee06498fb2ee6f28d664b64abda9 Mon Sep 17 00:00:00 2001 From: lizwang11 Date: Fri, 6 Feb 2026 15:51:17 +0800 Subject: [PATCH 39/58] Feat/prompt release (#428) * feat:prompt_release * feat:prompt_release * feat:prompt_release * feat:prompt_release * Feat/dlp sync (#419) * feat: support dlp and security level for prompt * feat: add prompt commit and draft dao hook * feat: change permission check for ListParentPrompt * fix: user draft save encrypt message --------- Co-authored-by: wangluming.wlm --- .gitignore | 3 +- backend/go.sum | 1 + .../loop/prompt/domain/prompt/k-prompt.go | 53 ++++ .../coze/loop/prompt/domain/prompt/prompt.go | 123 +++++++-- .../prompt/manage/coze.loop.prompt.manage.go | 253 +++++++++++++++++- .../manage/k-coze.loop.prompt.manage.go | 162 +++++++++++ .../prompt/application/convertor/prompt.go | 34 ++- backend/modules/prompt/application/manage.go | 45 ++-- backend/modules/prompt/application/wire.go | 3 + .../modules/prompt/application/wire_gen.go | 27 +- .../prompt/domain/entity/prompt_basic.go | 28 +- backend/modules/prompt/domain/repo/manage.go | 1 + backend/modules/prompt/infra/repo/manage.go | 5 +- .../infra/repo/mysql/convertor/manage.go | 2 + .../mysql/gorm_gen/model/prompt_basic.gen.go | 1 + .../mysql/gorm_gen/model/prompt_commit.gen.go | 41 +-- .../gorm_gen/model/prompt_user_draft.gen.go | 39 +-- .../mysql/gorm_gen/query/prompt_basic.gen.go | 6 +- .../mysql/gorm_gen/query/prompt_commit.gen.go | 48 ++-- .../gorm_gen/query/prompt_user_draft.gen.go | 46 ++-- .../repo/mysql/hooks/prompt_commit_hook.go | 26 ++ .../mysql/hooks/prompt_user_draft_hook.go | 26 ++ .../prompt/infra/repo/mysql/prompt_commit.go | 20 +- .../infra/repo/mysql/prompt_user_draft.go | 49 +++- backend/modules/prompt/pkg/consts/auth.go | 1 + .../prompt/coze.loop.prompt.manage.thrift | 3 + .../coze/loop/prompt/domain/prompt.thrift | 7 + .../mysql-init/init-sql/prompt_basic.sql | 1 + .../mysql-init/init-sql/prompt_commit.sql | 1 + .../mysql-init/init-sql/prompt_user_draft.sql | 1 + .../patch-sql/prompt_basic_alter.sql | 3 +- .../patch-sql/prompt_commit_alter.sql | 3 +- .../patch-sql/prompt_user_draft_alter.sql | 3 +- .../init/mysql/init-sql/prompt_basic.sql | 1 + .../mysql/init-sql/prompt_basic_alter.sql | 3 +- .../init/mysql/init-sql/prompt_commit.sql | 1 + .../mysql/init-sql/prompt_commit_alter.sql | 3 +- .../init/mysql/init-sql/prompt_user_draft.sql | 1 + .../init-sql/prompt_user_draft_alter.sql | 3 +- 39 files changed, 909 insertions(+), 168 deletions(-) create mode 100644 backend/modules/prompt/infra/repo/mysql/hooks/prompt_commit_hook.go create mode 100644 backend/modules/prompt/infra/repo/mysql/hooks/prompt_user_draft_hook.go diff --git a/.gitignore b/.gitignore index c6b6ab2b6..1483f32a0 100644 --- a/.gitignore +++ b/.gitignore @@ -59,4 +59,5 @@ backend/script/errorx/.env .cursor/ .specify/ specs/ -.puml \ No newline at end of file +.puml +.trae \ No newline at end of file diff --git a/backend/go.sum b/backend/go.sum index 8459bd31b..a7d0e542b 100644 --- a/backend/go.sum +++ b/backend/go.sum @@ -473,6 +473,7 @@ github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5/go.mod h1:vavhavw2zAx github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/s2a-go v0.1.8 h1:zZDs9gcbt9ZPLV0ndSyQk6Kacx2g/X+SKYovpnz3SMM= github.com/google/s2a-go v0.1.8/go.mod h1:6iNWHTpQ+nfNRN5E00MSdfDwVesa8hhS32PhPO8deJA= +github.com/google/subcommands v1.2.0 h1:vWQspBTo2nEqTUFita5/KeEWlUL8kQObDFbub/EN9oE= github.com/google/subcommands v1.2.0/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= diff --git a/backend/kitex_gen/coze/loop/prompt/domain/prompt/k-prompt.go b/backend/kitex_gen/coze/loop/prompt/domain/prompt/k-prompt.go index 2c8ea22bc..c7df0e584 100644 --- a/backend/kitex_gen/coze/loop/prompt/domain/prompt/k-prompt.go +++ b/backend/kitex_gen/coze/loop/prompt/domain/prompt/k-prompt.go @@ -555,6 +555,20 @@ func (p *PromptBasic) FastRead(buf []byte) (int, error) { goto SkipFieldError } } + case 10: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField10(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } default: l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -699,6 +713,20 @@ func (p *PromptBasic) FastReadField9(buf []byte) (int, error) { return offset, nil } +func (p *PromptBasic) FastReadField10(buf []byte) (int, error) { + offset := 0 + + var _field *SecurityLevel + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.SecurityLevel = _field + return offset, nil +} + func (p *PromptBasic) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } @@ -715,6 +743,7 @@ func (p *PromptBasic) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset += p.fastWriteField4(buf[offset:], w) offset += p.fastWriteField5(buf[offset:], w) offset += p.fastWriteField9(buf[offset:], w) + offset += p.fastWriteField10(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) return offset @@ -732,6 +761,7 @@ func (p *PromptBasic) BLength() int { l += p.field7Length() l += p.field8Length() l += p.field9Length() + l += p.field10Length() } l += thrift.Binary.FieldStopLength() return l @@ -818,6 +848,15 @@ func (p *PromptBasic) fastWriteField9(buf []byte, w thrift.NocopyWriter) int { return offset } +func (p *PromptBasic) fastWriteField10(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetSecurityLevel() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 10) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.SecurityLevel) + } + return offset +} + func (p *PromptBasic) field1Length() int { l := 0 if p.IsSetDisplayName() { @@ -899,6 +938,15 @@ func (p *PromptBasic) field9Length() int { return l } +func (p *PromptBasic) field10Length() int { + l := 0 + if p.IsSetSecurityLevel() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.SecurityLevel) + } + return l +} + func (p *PromptBasic) DeepCopy(s interface{}) error { src, ok := s.(*PromptBasic) if !ok { @@ -965,6 +1013,11 @@ func (p *PromptBasic) DeepCopy(s interface{}) error { p.PromptType = &tmp } + if src.SecurityLevel != nil { + tmp := *src.SecurityLevel + p.SecurityLevel = &tmp + } + return nil } diff --git a/backend/kitex_gen/coze/loop/prompt/domain/prompt/prompt.go b/backend/kitex_gen/coze/loop/prompt/domain/prompt/prompt.go index 403002cfd..9edfd5483 100644 --- a/backend/kitex_gen/coze/loop/prompt/domain/prompt/prompt.go +++ b/backend/kitex_gen/coze/loop/prompt/domain/prompt/prompt.go @@ -15,6 +15,14 @@ const ( PromptTypeSnippet = "snippet" + SecurityLevelL1 = "L1" + + SecurityLevelL2 = "L2" + + SecurityLevelL3 = "L3" + + SecurityLevelL4 = "L4" + TemplateTypeNormal = "normal" TemplateTypeJinja2 = "jinja2" @@ -181,6 +189,8 @@ func (p *ThinkingOption) Value() (driver.Value, error) { type PromptType = string +type SecurityLevel = string + type TemplateType = string type ToolType = string @@ -738,15 +748,16 @@ func (p *Prompt) Field6DeepEqual(src *PromptCommit) bool { } type PromptBasic struct { - DisplayName *string `thrift:"display_name,1,optional" frugal:"1,optional,string" form:"display_name" json:"display_name,omitempty" query:"display_name"` - Description *string `thrift:"description,2,optional" frugal:"2,optional,string" form:"description" json:"description,omitempty" query:"description"` - LatestVersion *string `thrift:"latest_version,3,optional" frugal:"3,optional,string" form:"latest_version" json:"latest_version,omitempty" query:"latest_version"` - CreatedBy *string `thrift:"created_by,4,optional" frugal:"4,optional,string" form:"created_by" json:"created_by,omitempty" query:"created_by"` - UpdatedBy *string `thrift:"updated_by,5,optional" frugal:"5,optional,string" form:"updated_by" json:"updated_by,omitempty" query:"updated_by"` - CreatedAt *int64 `thrift:"created_at,6,optional" frugal:"6,optional,i64" json:"created_at" form:"created_at" query:"created_at"` - UpdatedAt *int64 `thrift:"updated_at,7,optional" frugal:"7,optional,i64" json:"updated_at" form:"updated_at" query:"updated_at"` - LatestCommittedAt *int64 `thrift:"latest_committed_at,8,optional" frugal:"8,optional,i64" json:"latest_committed_at" form:"latest_committed_at" query:"latest_committed_at"` - PromptType *PromptType `thrift:"prompt_type,9,optional" frugal:"9,optional,string" form:"prompt_type" json:"prompt_type,omitempty" query:"prompt_type"` + DisplayName *string `thrift:"display_name,1,optional" frugal:"1,optional,string" form:"display_name" json:"display_name,omitempty" query:"display_name"` + Description *string `thrift:"description,2,optional" frugal:"2,optional,string" form:"description" json:"description,omitempty" query:"description"` + LatestVersion *string `thrift:"latest_version,3,optional" frugal:"3,optional,string" form:"latest_version" json:"latest_version,omitempty" query:"latest_version"` + CreatedBy *string `thrift:"created_by,4,optional" frugal:"4,optional,string" form:"created_by" json:"created_by,omitempty" query:"created_by"` + UpdatedBy *string `thrift:"updated_by,5,optional" frugal:"5,optional,string" form:"updated_by" json:"updated_by,omitempty" query:"updated_by"` + CreatedAt *int64 `thrift:"created_at,6,optional" frugal:"6,optional,i64" json:"created_at" form:"created_at" query:"created_at"` + UpdatedAt *int64 `thrift:"updated_at,7,optional" frugal:"7,optional,i64" json:"updated_at" form:"updated_at" query:"updated_at"` + LatestCommittedAt *int64 `thrift:"latest_committed_at,8,optional" frugal:"8,optional,i64" json:"latest_committed_at" form:"latest_committed_at" query:"latest_committed_at"` + PromptType *PromptType `thrift:"prompt_type,9,optional" frugal:"9,optional,string" form:"prompt_type" json:"prompt_type,omitempty" query:"prompt_type"` + SecurityLevel *SecurityLevel `thrift:"security_level,10,optional" frugal:"10,optional,string" form:"security_level" json:"security_level,omitempty" query:"security_level"` } func NewPromptBasic() *PromptBasic { @@ -863,6 +874,18 @@ func (p *PromptBasic) GetPromptType() (v PromptType) { } return *p.PromptType } + +var PromptBasic_SecurityLevel_DEFAULT SecurityLevel + +func (p *PromptBasic) GetSecurityLevel() (v SecurityLevel) { + if p == nil { + return + } + if !p.IsSetSecurityLevel() { + return PromptBasic_SecurityLevel_DEFAULT + } + return *p.SecurityLevel +} func (p *PromptBasic) SetDisplayName(val *string) { p.DisplayName = val } @@ -890,17 +913,21 @@ func (p *PromptBasic) SetLatestCommittedAt(val *int64) { func (p *PromptBasic) SetPromptType(val *PromptType) { p.PromptType = val } +func (p *PromptBasic) SetSecurityLevel(val *SecurityLevel) { + p.SecurityLevel = val +} var fieldIDToName_PromptBasic = map[int16]string{ - 1: "display_name", - 2: "description", - 3: "latest_version", - 4: "created_by", - 5: "updated_by", - 6: "created_at", - 7: "updated_at", - 8: "latest_committed_at", - 9: "prompt_type", + 1: "display_name", + 2: "description", + 3: "latest_version", + 4: "created_by", + 5: "updated_by", + 6: "created_at", + 7: "updated_at", + 8: "latest_committed_at", + 9: "prompt_type", + 10: "security_level", } func (p *PromptBasic) IsSetDisplayName() bool { @@ -939,6 +966,10 @@ func (p *PromptBasic) IsSetPromptType() bool { return p.PromptType != nil } +func (p *PromptBasic) IsSetSecurityLevel() bool { + return p.SecurityLevel != nil +} + func (p *PromptBasic) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -1029,6 +1060,14 @@ func (p *PromptBasic) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 10: + if fieldTypeId == thrift.STRING { + if err = p.ReadField10(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } default: if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError @@ -1157,6 +1196,17 @@ func (p *PromptBasic) ReadField9(iprot thrift.TProtocol) error { p.PromptType = _field return nil } +func (p *PromptBasic) ReadField10(iprot thrift.TProtocol) error { + + var _field *SecurityLevel + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.SecurityLevel = _field + return nil +} func (p *PromptBasic) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 @@ -1200,6 +1250,10 @@ func (p *PromptBasic) Write(oprot thrift.TProtocol) (err error) { fieldId = 9 goto WriteFieldError } + if err = p.writeField10(oprot); err != nil { + fieldId = 10 + goto WriteFieldError + } } if err = oprot.WriteFieldStop(); err != nil { goto WriteFieldStopError @@ -1380,6 +1434,24 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 9 end error: ", p), err) } +func (p *PromptBasic) writeField10(oprot thrift.TProtocol) (err error) { + if p.IsSetSecurityLevel() { + if err = oprot.WriteFieldBegin("security_level", thrift.STRING, 10); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.SecurityLevel); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 10 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 10 end error: ", p), err) +} func (p *PromptBasic) String() string { if p == nil { @@ -1422,6 +1494,9 @@ func (p *PromptBasic) DeepEqual(ano *PromptBasic) bool { if !p.Field9DeepEqual(ano.PromptType) { return false } + if !p.Field10DeepEqual(ano.SecurityLevel) { + return false + } return true } @@ -1533,6 +1608,18 @@ func (p *PromptBasic) Field9DeepEqual(src *PromptType) bool { } return true } +func (p *PromptBasic) Field10DeepEqual(src *SecurityLevel) bool { + + if p.SecurityLevel == src { + return true + } else if p.SecurityLevel == nil || src == nil { + return false + } + if strings.Compare(*p.SecurityLevel, *src) != 0 { + return false + } + return true +} type PromptCommit struct { Detail *PromptDetail `thrift:"detail,1,optional" frugal:"1,optional,PromptDetail" form:"detail" json:"detail,omitempty" query:"detail"` diff --git a/backend/kitex_gen/coze/loop/prompt/manage/coze.loop.prompt.manage.go b/backend/kitex_gen/coze/loop/prompt/manage/coze.loop.prompt.manage.go index 5ac6b1591..9786a80c2 100644 --- a/backend/kitex_gen/coze/loop/prompt/manage/coze.loop.prompt.manage.go +++ b/backend/kitex_gen/coze/loop/prompt/manage/coze.loop.prompt.manage.go @@ -22,13 +22,14 @@ type ListPromptOrderBy = string // --------------- Prompt管理 --------------- // type CreatePromptRequest struct { - WorkspaceID *int64 `thrift:"workspace_id,1,optional" frugal:"1,optional,i64" json:"workspace_id" form:"workspace_id" query:"workspace_id"` - PromptName *string `thrift:"prompt_name,11,optional" frugal:"11,optional,string" form:"prompt_name" json:"prompt_name,omitempty" query:"prompt_name"` - PromptKey *string `thrift:"prompt_key,12,optional" frugal:"12,optional,string" form:"prompt_key" json:"prompt_key,omitempty" query:"prompt_key"` - PromptDescription *string `thrift:"prompt_description,13,optional" frugal:"13,optional,string" form:"prompt_description" json:"prompt_description,omitempty" query:"prompt_description"` - PromptType *prompt.PromptType `thrift:"prompt_type,14,optional" frugal:"14,optional,string" form:"prompt_type" json:"prompt_type,omitempty" query:"prompt_type"` - DraftDetail *prompt.PromptDetail `thrift:"draft_detail,21,optional" frugal:"21,optional,prompt.PromptDetail" form:"draft_detail" json:"draft_detail,omitempty" query:"draft_detail"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` + WorkspaceID *int64 `thrift:"workspace_id,1,optional" frugal:"1,optional,i64" json:"workspace_id" form:"workspace_id" query:"workspace_id"` + PromptName *string `thrift:"prompt_name,11,optional" frugal:"11,optional,string" form:"prompt_name" json:"prompt_name,omitempty" query:"prompt_name"` + PromptKey *string `thrift:"prompt_key,12,optional" frugal:"12,optional,string" form:"prompt_key" json:"prompt_key,omitempty" query:"prompt_key"` + PromptDescription *string `thrift:"prompt_description,13,optional" frugal:"13,optional,string" form:"prompt_description" json:"prompt_description,omitempty" query:"prompt_description"` + PromptType *prompt.PromptType `thrift:"prompt_type,14,optional" frugal:"14,optional,string" form:"prompt_type" json:"prompt_type,omitempty" query:"prompt_type"` + SecurityLevel *prompt.SecurityLevel `thrift:"security_level,15,optional" frugal:"15,optional,string" form:"security_level" json:"security_level,omitempty" query:"security_level"` + DraftDetail *prompt.PromptDetail `thrift:"draft_detail,21,optional" frugal:"21,optional,prompt.PromptDetail" form:"draft_detail" json:"draft_detail,omitempty" query:"draft_detail"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } func NewCreatePromptRequest() *CreatePromptRequest { @@ -98,6 +99,18 @@ func (p *CreatePromptRequest) GetPromptType() (v prompt.PromptType) { return *p.PromptType } +var CreatePromptRequest_SecurityLevel_DEFAULT prompt.SecurityLevel + +func (p *CreatePromptRequest) GetSecurityLevel() (v prompt.SecurityLevel) { + if p == nil { + return + } + if !p.IsSetSecurityLevel() { + return CreatePromptRequest_SecurityLevel_DEFAULT + } + return *p.SecurityLevel +} + var CreatePromptRequest_DraftDetail_DEFAULT *prompt.PromptDetail func (p *CreatePromptRequest) GetDraftDetail() (v *prompt.PromptDetail) { @@ -136,6 +149,9 @@ func (p *CreatePromptRequest) SetPromptDescription(val *string) { func (p *CreatePromptRequest) SetPromptType(val *prompt.PromptType) { p.PromptType = val } +func (p *CreatePromptRequest) SetSecurityLevel(val *prompt.SecurityLevel) { + p.SecurityLevel = val +} func (p *CreatePromptRequest) SetDraftDetail(val *prompt.PromptDetail) { p.DraftDetail = val } @@ -149,6 +165,7 @@ var fieldIDToName_CreatePromptRequest = map[int16]string{ 12: "prompt_key", 13: "prompt_description", 14: "prompt_type", + 15: "security_level", 21: "draft_detail", 255: "Base", } @@ -173,6 +190,10 @@ func (p *CreatePromptRequest) IsSetPromptType() bool { return p.PromptType != nil } +func (p *CreatePromptRequest) IsSetSecurityLevel() bool { + return p.SecurityLevel != nil +} + func (p *CreatePromptRequest) IsSetDraftDetail() bool { return p.DraftDetail != nil } @@ -239,6 +260,14 @@ func (p *CreatePromptRequest) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 15: + if fieldTypeId == thrift.STRING { + if err = p.ReadField15(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } case 21: if fieldTypeId == thrift.STRUCT { if err = p.ReadField21(iprot); err != nil { @@ -339,6 +368,17 @@ func (p *CreatePromptRequest) ReadField14(iprot thrift.TProtocol) error { p.PromptType = _field return nil } +func (p *CreatePromptRequest) ReadField15(iprot thrift.TProtocol) error { + + var _field *prompt.SecurityLevel + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.SecurityLevel = _field + return nil +} func (p *CreatePromptRequest) ReadField21(iprot thrift.TProtocol) error { _field := prompt.NewPromptDetail() if err := _field.Read(iprot); err != nil { @@ -382,6 +422,10 @@ func (p *CreatePromptRequest) Write(oprot thrift.TProtocol) (err error) { fieldId = 14 goto WriteFieldError } + if err = p.writeField15(oprot); err != nil { + fieldId = 15 + goto WriteFieldError + } if err = p.writeField21(oprot); err != nil { fieldId = 21 goto WriteFieldError @@ -498,6 +542,24 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 14 end error: ", p), err) } +func (p *CreatePromptRequest) writeField15(oprot thrift.TProtocol) (err error) { + if p.IsSetSecurityLevel() { + if err = oprot.WriteFieldBegin("security_level", thrift.STRING, 15); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.SecurityLevel); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 15 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 15 end error: ", p), err) +} func (p *CreatePromptRequest) writeField21(oprot thrift.TProtocol) (err error) { if p.IsSetDraftDetail() { if err = oprot.WriteFieldBegin("draft_detail", thrift.STRUCT, 21); err != nil { @@ -564,6 +626,9 @@ func (p *CreatePromptRequest) DeepEqual(ano *CreatePromptRequest) bool { if !p.Field14DeepEqual(ano.PromptType) { return false } + if !p.Field15DeepEqual(ano.SecurityLevel) { + return false + } if !p.Field21DeepEqual(ano.DraftDetail) { return false } @@ -633,6 +698,18 @@ func (p *CreatePromptRequest) Field14DeepEqual(src *prompt.PromptType) bool { } return true } +func (p *CreatePromptRequest) Field15DeepEqual(src *prompt.SecurityLevel) bool { + + if p.SecurityLevel == src { + return true + } else if p.SecurityLevel == nil || src == nil { + return false + } + if strings.Compare(*p.SecurityLevel, *src) != 0 { + return false + } + return true +} func (p *CreatePromptRequest) Field21DeepEqual(src *prompt.PromptDetail) bool { if !p.DraftDetail.DeepEqual(src) { @@ -5706,10 +5783,12 @@ func (p *ListPromptResponse) Field255DeepEqual(src *base.BaseResp) bool { } type UpdatePromptRequest struct { - PromptID *int64 `thrift:"prompt_id,1,optional" frugal:"1,optional,i64" json:"prompt_id" path:"prompt_id" ` - PromptName *string `thrift:"prompt_name,11,optional" frugal:"11,optional,string" form:"prompt_name" json:"prompt_name,omitempty" query:"prompt_name"` - PromptDescription *string `thrift:"prompt_description,12,optional" frugal:"12,optional,string" form:"prompt_description" json:"prompt_description,omitempty" query:"prompt_description"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` + PromptID *int64 `thrift:"prompt_id,1,optional" frugal:"1,optional,i64" json:"prompt_id" path:"prompt_id" ` + PromptName *string `thrift:"prompt_name,11,optional" frugal:"11,optional,string" form:"prompt_name" json:"prompt_name,omitempty" query:"prompt_name"` + PromptDescription *string `thrift:"prompt_description,12,optional" frugal:"12,optional,string" form:"prompt_description" json:"prompt_description,omitempty" query:"prompt_description"` + SecurityLevel *prompt.SecurityLevel `thrift:"security_level,13,optional" frugal:"13,optional,string" form:"security_level" json:"security_level,omitempty" query:"security_level"` + DowngradeReason *string `thrift:"downgrade_reason,14,optional" frugal:"14,optional,string" form:"downgrade_reason" json:"downgrade_reason,omitempty" query:"downgrade_reason"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } func NewUpdatePromptRequest() *UpdatePromptRequest { @@ -5755,6 +5834,30 @@ func (p *UpdatePromptRequest) GetPromptDescription() (v string) { return *p.PromptDescription } +var UpdatePromptRequest_SecurityLevel_DEFAULT prompt.SecurityLevel + +func (p *UpdatePromptRequest) GetSecurityLevel() (v prompt.SecurityLevel) { + if p == nil { + return + } + if !p.IsSetSecurityLevel() { + return UpdatePromptRequest_SecurityLevel_DEFAULT + } + return *p.SecurityLevel +} + +var UpdatePromptRequest_DowngradeReason_DEFAULT string + +func (p *UpdatePromptRequest) GetDowngradeReason() (v string) { + if p == nil { + return + } + if !p.IsSetDowngradeReason() { + return UpdatePromptRequest_DowngradeReason_DEFAULT + } + return *p.DowngradeReason +} + var UpdatePromptRequest_Base_DEFAULT *base.Base func (p *UpdatePromptRequest) GetBase() (v *base.Base) { @@ -5775,6 +5878,12 @@ func (p *UpdatePromptRequest) SetPromptName(val *string) { func (p *UpdatePromptRequest) SetPromptDescription(val *string) { p.PromptDescription = val } +func (p *UpdatePromptRequest) SetSecurityLevel(val *prompt.SecurityLevel) { + p.SecurityLevel = val +} +func (p *UpdatePromptRequest) SetDowngradeReason(val *string) { + p.DowngradeReason = val +} func (p *UpdatePromptRequest) SetBase(val *base.Base) { p.Base = val } @@ -5783,6 +5892,8 @@ var fieldIDToName_UpdatePromptRequest = map[int16]string{ 1: "prompt_id", 11: "prompt_name", 12: "prompt_description", + 13: "security_level", + 14: "downgrade_reason", 255: "Base", } @@ -5798,6 +5909,14 @@ func (p *UpdatePromptRequest) IsSetPromptDescription() bool { return p.PromptDescription != nil } +func (p *UpdatePromptRequest) IsSetSecurityLevel() bool { + return p.SecurityLevel != nil +} + +func (p *UpdatePromptRequest) IsSetDowngradeReason() bool { + return p.DowngradeReason != nil +} + func (p *UpdatePromptRequest) IsSetBase() bool { return p.Base != nil } @@ -5844,6 +5963,22 @@ func (p *UpdatePromptRequest) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 13: + if fieldTypeId == thrift.STRING { + if err = p.ReadField13(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 14: + if fieldTypeId == thrift.STRING { + if err = p.ReadField14(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } case 255: if fieldTypeId == thrift.STRUCT { if err = p.ReadField255(iprot); err != nil { @@ -5914,6 +6049,28 @@ func (p *UpdatePromptRequest) ReadField12(iprot thrift.TProtocol) error { p.PromptDescription = _field return nil } +func (p *UpdatePromptRequest) ReadField13(iprot thrift.TProtocol) error { + + var _field *prompt.SecurityLevel + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.SecurityLevel = _field + return nil +} +func (p *UpdatePromptRequest) ReadField14(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.DowngradeReason = _field + return nil +} func (p *UpdatePromptRequest) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBase() if err := _field.Read(iprot); err != nil { @@ -5941,6 +6098,14 @@ func (p *UpdatePromptRequest) Write(oprot thrift.TProtocol) (err error) { fieldId = 12 goto WriteFieldError } + if err = p.writeField13(oprot); err != nil { + fieldId = 13 + goto WriteFieldError + } + if err = p.writeField14(oprot); err != nil { + fieldId = 14 + goto WriteFieldError + } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -6017,6 +6182,42 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 12 end error: ", p), err) } +func (p *UpdatePromptRequest) writeField13(oprot thrift.TProtocol) (err error) { + if p.IsSetSecurityLevel() { + if err = oprot.WriteFieldBegin("security_level", thrift.STRING, 13); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.SecurityLevel); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 13 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 13 end error: ", p), err) +} +func (p *UpdatePromptRequest) writeField14(oprot thrift.TProtocol) (err error) { + if p.IsSetDowngradeReason() { + if err = oprot.WriteFieldBegin("downgrade_reason", thrift.STRING, 14); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.DowngradeReason); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 14 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 14 end error: ", p), err) +} func (p *UpdatePromptRequest) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBase() { if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { @@ -6059,6 +6260,12 @@ func (p *UpdatePromptRequest) DeepEqual(ano *UpdatePromptRequest) bool { if !p.Field12DeepEqual(ano.PromptDescription) { return false } + if !p.Field13DeepEqual(ano.SecurityLevel) { + return false + } + if !p.Field14DeepEqual(ano.DowngradeReason) { + return false + } if !p.Field255DeepEqual(ano.Base) { return false } @@ -6101,6 +6308,30 @@ func (p *UpdatePromptRequest) Field12DeepEqual(src *string) bool { } return true } +func (p *UpdatePromptRequest) Field13DeepEqual(src *prompt.SecurityLevel) bool { + + if p.SecurityLevel == src { + return true + } else if p.SecurityLevel == nil || src == nil { + return false + } + if strings.Compare(*p.SecurityLevel, *src) != 0 { + return false + } + return true +} +func (p *UpdatePromptRequest) Field14DeepEqual(src *string) bool { + + if p.DowngradeReason == src { + return true + } else if p.DowngradeReason == nil || src == nil { + return false + } + if strings.Compare(*p.DowngradeReason, *src) != 0 { + return false + } + return true +} func (p *UpdatePromptRequest) Field255DeepEqual(src *base.Base) bool { if !p.Base.DeepEqual(src) { diff --git a/backend/kitex_gen/coze/loop/prompt/manage/k-coze.loop.prompt.manage.go b/backend/kitex_gen/coze/loop/prompt/manage/k-coze.loop.prompt.manage.go index 87d0af839..5a5309b35 100644 --- a/backend/kitex_gen/coze/loop/prompt/manage/k-coze.loop.prompt.manage.go +++ b/backend/kitex_gen/coze/loop/prompt/manage/k-coze.loop.prompt.manage.go @@ -118,6 +118,20 @@ func (p *CreatePromptRequest) FastRead(buf []byte) (int, error) { goto SkipFieldError } } + case 15: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField15(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } case 21: if fieldTypeId == thrift.STRUCT { l, err = p.FastReadField21(buf[offset:]) @@ -234,6 +248,20 @@ func (p *CreatePromptRequest) FastReadField14(buf []byte) (int, error) { return offset, nil } +func (p *CreatePromptRequest) FastReadField15(buf []byte) (int, error) { + offset := 0 + + var _field *prompt.SecurityLevel + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.SecurityLevel = _field + return offset, nil +} + func (p *CreatePromptRequest) FastReadField21(buf []byte) (int, error) { offset := 0 _field := prompt.NewPromptDetail() @@ -270,6 +298,7 @@ func (p *CreatePromptRequest) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) offset += p.fastWriteField12(buf[offset:], w) offset += p.fastWriteField13(buf[offset:], w) offset += p.fastWriteField14(buf[offset:], w) + offset += p.fastWriteField15(buf[offset:], w) offset += p.fastWriteField21(buf[offset:], w) offset += p.fastWriteField255(buf[offset:], w) } @@ -285,6 +314,7 @@ func (p *CreatePromptRequest) BLength() int { l += p.field12Length() l += p.field13Length() l += p.field14Length() + l += p.field15Length() l += p.field21Length() l += p.field255Length() } @@ -337,6 +367,15 @@ func (p *CreatePromptRequest) fastWriteField14(buf []byte, w thrift.NocopyWriter return offset } +func (p *CreatePromptRequest) fastWriteField15(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetSecurityLevel() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 15) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.SecurityLevel) + } + return offset +} + func (p *CreatePromptRequest) fastWriteField21(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetDraftDetail() { @@ -400,6 +439,15 @@ func (p *CreatePromptRequest) field14Length() int { return l } +func (p *CreatePromptRequest) field15Length() int { + l := 0 + if p.IsSetSecurityLevel() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.SecurityLevel) + } + return l +} + func (p *CreatePromptRequest) field21Length() int { l := 0 if p.IsSetDraftDetail() { @@ -458,6 +506,11 @@ func (p *CreatePromptRequest) DeepCopy(s interface{}) error { p.PromptType = &tmp } + if src.SecurityLevel != nil { + tmp := *src.SecurityLevel + p.SecurityLevel = &tmp + } + var _draftDetail *prompt.PromptDetail if src.DraftDetail != nil { _draftDetail = &prompt.PromptDetail{} @@ -4145,6 +4198,34 @@ func (p *UpdatePromptRequest) FastRead(buf []byte) (int, error) { goto SkipFieldError } } + case 13: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField13(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 14: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField14(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } case 255: if fieldTypeId == thrift.STRUCT { l, err = p.FastReadField255(buf[offset:]) @@ -4219,6 +4300,34 @@ func (p *UpdatePromptRequest) FastReadField12(buf []byte) (int, error) { return offset, nil } +func (p *UpdatePromptRequest) FastReadField13(buf []byte) (int, error) { + offset := 0 + + var _field *prompt.SecurityLevel + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.SecurityLevel = _field + return offset, nil +} + +func (p *UpdatePromptRequest) FastReadField14(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.DowngradeReason = _field + return offset, nil +} + func (p *UpdatePromptRequest) FastReadField255(buf []byte) (int, error) { offset := 0 _field := base.NewBase() @@ -4241,6 +4350,8 @@ func (p *UpdatePromptRequest) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) offset += p.fastWriteField1(buf[offset:], w) offset += p.fastWriteField11(buf[offset:], w) offset += p.fastWriteField12(buf[offset:], w) + offset += p.fastWriteField13(buf[offset:], w) + offset += p.fastWriteField14(buf[offset:], w) offset += p.fastWriteField255(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) @@ -4253,6 +4364,8 @@ func (p *UpdatePromptRequest) BLength() int { l += p.field1Length() l += p.field11Length() l += p.field12Length() + l += p.field13Length() + l += p.field14Length() l += p.field255Length() } l += thrift.Binary.FieldStopLength() @@ -4286,6 +4399,24 @@ func (p *UpdatePromptRequest) fastWriteField12(buf []byte, w thrift.NocopyWriter return offset } +func (p *UpdatePromptRequest) fastWriteField13(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetSecurityLevel() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 13) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.SecurityLevel) + } + return offset +} + +func (p *UpdatePromptRequest) fastWriteField14(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetDowngradeReason() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 14) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.DowngradeReason) + } + return offset +} + func (p *UpdatePromptRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetBase() { @@ -4322,6 +4453,24 @@ func (p *UpdatePromptRequest) field12Length() int { return l } +func (p *UpdatePromptRequest) field13Length() int { + l := 0 + if p.IsSetSecurityLevel() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.SecurityLevel) + } + return l +} + +func (p *UpdatePromptRequest) field14Length() int { + l := 0 + if p.IsSetDowngradeReason() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.DowngradeReason) + } + return l +} + func (p *UpdatePromptRequest) field255Length() int { l := 0 if p.IsSetBase() { @@ -4358,6 +4507,19 @@ func (p *UpdatePromptRequest) DeepCopy(s interface{}) error { p.PromptDescription = &tmp } + if src.SecurityLevel != nil { + tmp := *src.SecurityLevel + p.SecurityLevel = &tmp + } + + if src.DowngradeReason != nil { + var tmp string + if *src.DowngradeReason != "" { + tmp = kutils.StringDeepCopy(*src.DowngradeReason) + } + p.DowngradeReason = &tmp + } + var _base *base.Base if src.Base != nil { _base = &base.Base{} diff --git a/backend/modules/prompt/application/convertor/prompt.go b/backend/modules/prompt/application/convertor/prompt.go index babcd757b..e67f6d78e 100644 --- a/backend/modules/prompt/application/convertor/prompt.go +++ b/backend/modules/prompt/application/convertor/prompt.go @@ -101,6 +101,7 @@ func PromptBasicDTO2DO(dto *prompt.PromptBasic) *entity.PromptBasic { UpdatedBy: dto.GetUpdatedBy(), CreatedAt: time.UnixMilli(dto.GetCreatedAt()), UpdatedAt: time.UnixMilli(dto.GetUpdatedAt()), + SecurityLevel: SecurityLevelDTO2DO(dto.GetSecurityLevel()), } } @@ -197,6 +198,21 @@ func PromptTypeDTO2DO(dto prompt.PromptType) entity.PromptType { } } +func SecurityLevelDTO2DO(dto prompt.SecurityLevel) entity.SecurityLevel { + switch dto { + case prompt.SecurityLevelL1: + return entity.SecurityLevelL1 + case prompt.SecurityLevelL2: + return entity.SecurityLevelL2 + case prompt.SecurityLevelL3: + return entity.SecurityLevelL3 + case prompt.SecurityLevelL4: + return entity.SecurityLevelL4 + default: + return entity.SecurityLevelL3 + } +} + func BatchMessageDTO2DO(dtos []*prompt.Message) []*entity.Message { if dtos == nil { return nil @@ -923,7 +939,8 @@ func PromptBasicDO2DTO(do *entity.PromptBasic) *prompt.PromptBasic { } return ptr.Of(do.LatestCommittedAt.UnixMilli()) }(), - PromptType: ptr.Of(PromptTypeDO2DTO(do.PromptType)), + PromptType: ptr.Of(PromptTypeDO2DTO(do.PromptType)), + SecurityLevel: SecurityLevelDO2DTO(do.SecurityLevel), } } @@ -938,6 +955,21 @@ func PromptTypeDO2DTO(do entity.PromptType) prompt.PromptType { } } +func SecurityLevelDO2DTO(level entity.SecurityLevel) *prompt.SecurityLevel { + switch level { + case entity.SecurityLevelL1: + return ptr.Of(prompt.SecurityLevelL1) + case entity.SecurityLevelL2: + return ptr.Of(prompt.SecurityLevelL2) + case entity.SecurityLevelL3: + return ptr.Of(prompt.SecurityLevelL3) + case entity.SecurityLevelL4: + return ptr.Of(prompt.SecurityLevelL4) + default: + return ptr.Of(prompt.SecurityLevelL3) + } +} + func BatchPromptCommitDO2DTO(dos []*entity.PromptCommit) []*prompt.PromptCommit { if len(dos) == 0 { return nil diff --git a/backend/modules/prompt/application/manage.go b/backend/modules/prompt/application/manage.go index 981bb8f5f..67b47f38f 100644 --- a/backend/modules/prompt/application/manage.go +++ b/backend/modules/prompt/application/manage.go @@ -67,17 +67,17 @@ func (app *PromptManageApplicationImpl) ListParentPrompt(ctx context.Context, re return r, errorx.NewByCode(prompterr.CommonInvalidParamCode, errorx.WithExtraMsg("User not found")) } - // 权限检查 - err = app.authRPCProvider.CheckSpacePermission(ctx, request.GetWorkspaceID(), consts.ActionLoopPromptRead) - if err != nil { - return r, err - } - // 参数验证 if request.GetPromptID() <= 0 { return r, errorx.NewByCode(prompterr.CommonInvalidParamCode, errorx.WithExtraMsg("Prompt ID is required")) } + // 权限检查 + err = app.authRPCProvider.MCheckPromptPermission(ctx, request.GetWorkspaceID(), []int64{request.GetPromptID()}, consts.ActionLoopPromptRead) + if err != nil { + return r, err + } + // 调用repository层查询父prompt result, err := app.manageRepo.ListParentPrompt(ctx, repo.ListParentPromptParam{ SubPromptID: request.GetPromptID(), @@ -126,16 +126,20 @@ func (app *PromptManageApplicationImpl) CreatePrompt(ctx context.Context, reques if request.PromptType == nil { request.PromptType = ptr.Of(prompt.PromptTypeNormal) } + if request.SecurityLevel == nil { + request.SecurityLevel = ptr.Of(prompt.SecurityLevelL3) + } // create prompt promptDTO := &prompt.Prompt{ WorkspaceID: request.WorkspaceID, PromptKey: request.PromptKey, PromptBasic: &prompt.PromptBasic{ - PromptType: request.PromptType, - DisplayName: request.PromptName, - Description: request.PromptDescription, - CreatedBy: ptr.Of(userID), - UpdatedBy: ptr.Of(userID), + PromptType: request.PromptType, + DisplayName: request.PromptName, + Description: request.PromptDescription, + CreatedBy: ptr.Of(userID), + UpdatedBy: ptr.Of(userID), + SecurityLevel: request.SecurityLevel, }, PromptDraft: func() *prompt.PromptDraft { if request.DraftDetail == nil { @@ -203,15 +207,18 @@ func (app *PromptManageApplicationImpl) ClonePrompt(ctx context.Context, request clonedPromptDO.PromptKey = request.GetClonedPromptKey() promptType := entity.PromptTypeNormal + securityLevel := entity.SecurityLevelL3 if promptDO.PromptBasic != nil && promptDO.PromptBasic.PromptType != "" { promptType = promptDO.PromptBasic.PromptType + securityLevel = promptDO.PromptBasic.SecurityLevel } clonedPromptDO.PromptBasic = &entity.PromptBasic{ - DisplayName: request.GetClonedPromptName(), - Description: request.GetClonedPromptDescription(), - CreatedBy: userID, - PromptType: promptType, + DisplayName: request.GetClonedPromptName(), + Description: request.GetClonedPromptDescription(), + CreatedBy: userID, + PromptType: promptType, + SecurityLevel: securityLevel, } clonedPromptDO.PromptDraft = &entity.PromptDraft{ DraftInfo: &entity.DraftInfo{ @@ -474,6 +481,13 @@ func (app *PromptManageApplicationImpl) UpdatePrompt(ctx context.Context, reques if err != nil { return r, err } + securityLevel := convertor.SecurityLevelDTO2DO(request.GetSecurityLevel()) + if promptDO.PromptBasic != nil && promptDO.PromptBasic.SecurityLevel != securityLevel { + err = app.authRPCProvider.MCheckPromptPermission(ctx, promptDO.SpaceID, []int64{request.GetPromptID()}, consts.ActionLoopPromptEditSecLevel) + if err != nil { + return r, err + } + } // 审核 err = app.auditRPCProvider.AuditPrompt(ctx, &entity.Prompt{ @@ -494,6 +508,7 @@ func (app *PromptManageApplicationImpl) UpdatePrompt(ctx context.Context, reques PromptName: request.GetPromptName(), PromptDescription: request.GetPromptDescription(), + SecurityLevel: securityLevel, } return r, app.manageRepo.UpdatePrompt(ctx, updatePromptParam) } diff --git a/backend/modules/prompt/application/wire.go b/backend/modules/prompt/application/wire.go index d05a990c3..b275cb5a3 100644 --- a/backend/modules/prompt/application/wire.go +++ b/backend/modules/prompt/application/wire.go @@ -29,6 +29,7 @@ import ( promptconf "github.com/coze-dev/coze-loop/backend/modules/prompt/infra/conf" "github.com/coze-dev/coze-loop/backend/modules/prompt/infra/repo" "github.com/coze-dev/coze-loop/backend/modules/prompt/infra/repo/mysql" + "github.com/coze-dev/coze-loop/backend/modules/prompt/infra/repo/mysql/hooks" rediscache "github.com/coze-dev/coze-loop/backend/modules/prompt/infra/repo/redis" "github.com/coze-dev/coze-loop/backend/modules/prompt/infra/rpc" "github.com/coze-dev/coze-loop/backend/pkg/conf" @@ -44,6 +45,8 @@ var ( repo.NewLabelRepo, repo.NewDebugLogRepo, repo.NewDebugContextRepo, + hooks.NewEmptyPromptCommitHook, + hooks.NewEmptyPromptUserDraftHook, mysql.NewPromptBasicDAO, mysql.NewPromptCommitDAO, mysql.NewPromptUserDraftDAO, diff --git a/backend/modules/prompt/application/wire_gen.go b/backend/modules/prompt/application/wire_gen.go index 06d11e9be..c5c88ae26 100644 --- a/backend/modules/prompt/application/wire_gen.go +++ b/backend/modules/prompt/application/wire_gen.go @@ -27,6 +27,7 @@ import ( conf2 "github.com/coze-dev/coze-loop/backend/modules/prompt/infra/conf" "github.com/coze-dev/coze-loop/backend/modules/prompt/infra/repo" "github.com/coze-dev/coze-loop/backend/modules/prompt/infra/repo/mysql" + "github.com/coze-dev/coze-loop/backend/modules/prompt/infra/repo/mysql/hooks" redis2 "github.com/coze-dev/coze-loop/backend/modules/prompt/infra/repo/redis" "github.com/coze-dev/coze-loop/backend/modules/prompt/infra/rpc" "github.com/coze-dev/coze-loop/backend/pkg/conf" @@ -37,8 +38,10 @@ import ( func InitPromptManageApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, redisCli redis.Cmdable, meter metrics.Meter, configFactory conf.IConfigLoaderFactory, llmClient llmruntimeservice.Client, authClient authservice.Client, fileClient fileservice.Client, userClient userservice.Client, auditClient audit.IAuditService) (manage.PromptManageService, error) { iPromptBasicDAO := mysql.NewPromptBasicDAO(db2, redisCli) - iPromptCommitDAO := mysql.NewPromptCommitDAO(db2, redisCli) - iPromptUserDraftDAO := mysql.NewPromptUserDraftDAO(db2, redisCli) + iPromptCommitHook := hooks.NewEmptyPromptCommitHook() + iPromptCommitDAO := mysql.NewPromptCommitDAO(db2, redisCli, iPromptCommitHook) + iPromptUserDraftHook := hooks.NewEmptyPromptUserDraftHook() + iPromptUserDraftDAO := mysql.NewPromptUserDraftDAO(db2, redisCli, iPromptUserDraftHook) iCommitLabelMappingDAO := mysql.NewCommitLabelMappingDAO(db2, redisCli) iPromptRelationDAO := mysql.NewPromptRelationDAO(db2, redisCli) redisIPromptBasicDAO := redis2.NewPromptBasicDAO() @@ -78,8 +81,10 @@ func InitPromptDebugApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, redi iToolConfigProvider := service.NewToolConfigProvider() iToolResultsCollector := service.NewToolResultsCollector() iPromptBasicDAO := mysql.NewPromptBasicDAO(db2, redisCli) - iPromptCommitDAO := mysql.NewPromptCommitDAO(db2, redisCli) - iPromptUserDraftDAO := mysql.NewPromptUserDraftDAO(db2, redisCli) + iPromptCommitHook := hooks.NewEmptyPromptCommitHook() + iPromptCommitDAO := mysql.NewPromptCommitDAO(db2, redisCli, iPromptCommitHook) + iPromptUserDraftHook := hooks.NewEmptyPromptUserDraftHook() + iPromptUserDraftDAO := mysql.NewPromptUserDraftDAO(db2, redisCli, iPromptUserDraftHook) iCommitLabelMappingDAO := mysql.NewCommitLabelMappingDAO(db2, redisCli) iPromptRelationDAO := mysql.NewPromptRelationDAO(db2, redisCli) redisIPromptBasicDAO := redis2.NewPromptBasicDAO() @@ -110,8 +115,10 @@ func InitPromptExecuteApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, re iDebugContextDAO := mysql.NewDebugContextDAO(db2) iDebugContextRepo := repo.NewDebugContextRepo(idgen2, iDebugContextDAO) iPromptBasicDAO := mysql.NewPromptBasicDAO(db2, redisCli) - iPromptCommitDAO := mysql.NewPromptCommitDAO(db2, redisCli) - iPromptUserDraftDAO := mysql.NewPromptUserDraftDAO(db2, redisCli) + iPromptCommitHook := hooks.NewEmptyPromptCommitHook() + iPromptCommitDAO := mysql.NewPromptCommitDAO(db2, redisCli, iPromptCommitHook) + iPromptUserDraftHook := hooks.NewEmptyPromptUserDraftHook() + iPromptUserDraftDAO := mysql.NewPromptUserDraftDAO(db2, redisCli, iPromptUserDraftHook) iCommitLabelMappingDAO := mysql.NewCommitLabelMappingDAO(db2, redisCli) iPromptRelationDAO := mysql.NewPromptRelationDAO(db2, redisCli) redisIPromptBasicDAO := redis2.NewPromptBasicDAO() @@ -141,8 +148,10 @@ func InitPromptOpenAPIApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, re iDebugContextDAO := mysql.NewDebugContextDAO(db2) iDebugContextRepo := repo.NewDebugContextRepo(idgen2, iDebugContextDAO) iPromptBasicDAO := mysql.NewPromptBasicDAO(db2, redisCli) - iPromptCommitDAO := mysql.NewPromptCommitDAO(db2, redisCli) - iPromptUserDraftDAO := mysql.NewPromptUserDraftDAO(db2, redisCli) + iPromptCommitHook := hooks.NewEmptyPromptCommitHook() + iPromptCommitDAO := mysql.NewPromptCommitDAO(db2, redisCli, iPromptCommitHook) + iPromptUserDraftHook := hooks.NewEmptyPromptUserDraftHook() + iPromptUserDraftDAO := mysql.NewPromptUserDraftDAO(db2, redisCli, iPromptUserDraftHook) iCommitLabelMappingDAO := mysql.NewCommitLabelMappingDAO(db2, redisCli) iPromptRelationDAO := mysql.NewPromptRelationDAO(db2, redisCli) redisIPromptBasicDAO := redis2.NewPromptBasicDAO() @@ -172,7 +181,7 @@ func InitPromptOpenAPIApplication(idgen2 idgen.IIDGenerator, db2 db.Provider, re // wire.go: var ( - promptDomainSet = wire.NewSet(service.NewPromptFormatter, service.NewToolConfigProvider, service.NewToolResultsCollector, service.NewPromptService, repo.NewManageRepo, repo.NewLabelRepo, repo.NewDebugLogRepo, repo.NewDebugContextRepo, mysql.NewPromptBasicDAO, mysql.NewPromptCommitDAO, mysql.NewPromptUserDraftDAO, mysql.NewPromptRelationDAO, mysql.NewLabelDAO, mysql.NewCommitLabelMappingDAO, mysql.NewDebugLogDAO, mysql.NewDebugContextDAO, redis2.NewPromptBasicDAO, redis2.NewPromptDAO, redis2.NewPromptLabelVersionDAO, conf2.NewPromptConfigProvider, rpc.NewLLMRPCProvider, rpc.NewAuthRPCProvider, rpc.NewFileRPCProvider, rpc.NewUserRPCProvider, rpc.NewAuditRPCProvider, collector.NewEventCollectorProvider, service.NewCozeLoopSnippetParser) + promptDomainSet = wire.NewSet(service.NewPromptFormatter, service.NewToolConfigProvider, service.NewToolResultsCollector, service.NewPromptService, repo.NewManageRepo, repo.NewLabelRepo, repo.NewDebugLogRepo, repo.NewDebugContextRepo, hooks.NewEmptyPromptCommitHook, hooks.NewEmptyPromptUserDraftHook, mysql.NewPromptBasicDAO, mysql.NewPromptCommitDAO, mysql.NewPromptUserDraftDAO, mysql.NewPromptRelationDAO, mysql.NewLabelDAO, mysql.NewCommitLabelMappingDAO, mysql.NewDebugLogDAO, mysql.NewDebugContextDAO, redis2.NewPromptBasicDAO, redis2.NewPromptDAO, redis2.NewPromptLabelVersionDAO, conf2.NewPromptConfigProvider, rpc.NewLLMRPCProvider, rpc.NewAuthRPCProvider, rpc.NewFileRPCProvider, rpc.NewUserRPCProvider, rpc.NewAuditRPCProvider, collector.NewEventCollectorProvider, service.NewCozeLoopSnippetParser) manageSet = wire.NewSet( NewPromptManageApplication, promptDomainSet, diff --git a/backend/modules/prompt/domain/entity/prompt_basic.go b/backend/modules/prompt/domain/entity/prompt_basic.go index 6c2bf277a..2f6225f30 100644 --- a/backend/modules/prompt/domain/entity/prompt_basic.go +++ b/backend/modules/prompt/domain/entity/prompt_basic.go @@ -6,15 +6,16 @@ package entity import "time" type PromptBasic struct { - PromptType PromptType `json:"prompt_type"` - DisplayName string `json:"display_name"` - Description string `json:"description"` - LatestVersion string `json:"latest_version"` - CreatedBy string `json:"created_by"` - UpdatedBy string `json:"updated_by"` - CreatedAt time.Time `json:"created_at"` - UpdatedAt time.Time `json:"updated_at"` - LatestCommittedAt *time.Time `json:"latest_committed_at"` + PromptType PromptType `json:"prompt_type"` + SecurityLevel SecurityLevel `json:"security_level"` + DisplayName string `json:"display_name"` + Description string `json:"description"` + LatestVersion string `json:"latest_version"` + CreatedBy string `json:"created_by"` + UpdatedBy string `json:"updated_by"` + CreatedAt time.Time `json:"created_at"` + UpdatedAt time.Time `json:"updated_at"` + LatestCommittedAt *time.Time `json:"latest_committed_at"` } type PromptType string @@ -23,3 +24,12 @@ const ( PromptTypeNormal PromptType = "normal" PromptTypeSnippet PromptType = "snippet" ) + +type SecurityLevel string + +const ( + SecurityLevelL1 SecurityLevel = "L1" + SecurityLevelL2 SecurityLevel = "L2" + SecurityLevelL3 SecurityLevel = "L3" + SecurityLevelL4 SecurityLevel = "L4" +) diff --git a/backend/modules/prompt/domain/repo/manage.go b/backend/modules/prompt/domain/repo/manage.go index 6454e96b8..a91f078c9 100644 --- a/backend/modules/prompt/domain/repo/manage.go +++ b/backend/modules/prompt/domain/repo/manage.go @@ -63,6 +63,7 @@ type UpdatePromptParam struct { PromptName string PromptDescription string + SecurityLevel entity.SecurityLevel } type CommitDraftParam struct { diff --git a/backend/modules/prompt/infra/repo/manage.go b/backend/modules/prompt/infra/repo/manage.go index d741724ec..aba9802c7 100644 --- a/backend/modules/prompt/infra/repo/manage.go +++ b/backend/modules/prompt/infra/repo/manage.go @@ -513,8 +513,9 @@ func (d *ManageRepoImpl) UpdatePrompt(ctx context.Context, param repo.UpdateProm updateFields := map[string]interface{}{ q.PromptBasic.UpdatedBy.ColumnName().String(): param.UpdatedBy, - q.PromptBasic.Name.ColumnName().String(): param.PromptName, - q.PromptBasic.Description.ColumnName().String(): param.PromptDescription, + q.PromptBasic.Name.ColumnName().String(): param.PromptName, + q.PromptBasic.Description.ColumnName().String(): param.PromptDescription, + q.PromptBasic.SecurityLevel.ColumnName().String(): param.SecurityLevel, } err = d.promptBasicDAO.Update(ctx, param.PromptID, updateFields) if err != nil { diff --git a/backend/modules/prompt/infra/repo/mysql/convertor/manage.go b/backend/modules/prompt/infra/repo/mysql/convertor/manage.go index 9882eee56..266f55f07 100644 --- a/backend/modules/prompt/infra/repo/mysql/convertor/manage.go +++ b/backend/modules/prompt/infra/repo/mysql/convertor/manage.go @@ -80,6 +80,7 @@ func BasicPO2DO(promptPO *model.PromptBasic) *entity.PromptBasic { CreatedAt: promptPO.CreatedAt, UpdatedAt: promptPO.UpdatedAt, LatestCommittedAt: promptPO.LatestCommitTime, + SecurityLevel: entity.SecurityLevel(promptPO.SecurityLevel), } } @@ -149,6 +150,7 @@ func PromptDO2BasicPO(do *entity.Prompt) *model.PromptBasic { CreatedAt: do.PromptBasic.CreatedAt, UpdatedAt: do.PromptBasic.UpdatedAt, PromptType: PromptTypeDO2PO(do.PromptBasic.PromptType), + SecurityLevel: string(do.PromptBasic.SecurityLevel), } } diff --git a/backend/modules/prompt/infra/repo/mysql/gorm_gen/model/prompt_basic.gen.go b/backend/modules/prompt/infra/repo/mysql/gorm_gen/model/prompt_basic.gen.go index 3845b063f..4a1018e6d 100644 --- a/backend/modules/prompt/infra/repo/mysql/gorm_gen/model/prompt_basic.gen.go +++ b/backend/modules/prompt/infra/repo/mysql/gorm_gen/model/prompt_basic.gen.go @@ -27,6 +27,7 @@ type PromptBasic struct { UpdatedAt time.Time `gorm:"column:updated_at;type:datetime;not null;default:CURRENT_TIMESTAMP;comment:更新时间" json:"updated_at"` // 更新时间 DeletedAt soft_delete.DeletedAt `gorm:"column:deleted_at;type:bigint(20);not null;uniqueIndex:uniq_space_id_prompt_key_deleted_at,priority:3;index:idx_pid_ptype_delat,priority:3;column:deleted_at;not null;default:0;softDelete:milli;comment:删除时间" json:"deleted_at"` // 删除时间 PromptType string `gorm:"column:prompt_type;type:varchar(64);not null;index:idx_pid_ptype_delat,priority:2;default:normal;comment:Prompt类型" json:"prompt_type"` // Prompt类型 + SecurityLevel string `gorm:"column:security_level;type:varchar(64);not null;default:L3;comment:security level" json:"security_level"` // security level } // TableName PromptBasic's table name diff --git a/backend/modules/prompt/infra/repo/mysql/gorm_gen/model/prompt_commit.gen.go b/backend/modules/prompt/infra/repo/mysql/gorm_gen/model/prompt_commit.gen.go index 518af502c..b92ad1727 100644 --- a/backend/modules/prompt/infra/repo/mysql/gorm_gen/model/prompt_commit.gen.go +++ b/backend/modules/prompt/infra/repo/mysql/gorm_gen/model/prompt_commit.gen.go @@ -12,26 +12,27 @@ const TableNamePromptCommit = "prompt_commit" // PromptCommit Commit表 type PromptCommit struct { - ID int64 `gorm:"column:id;type:bigint(20) unsigned;primaryKey;autoIncrement:true;comment:主键ID" json:"id"` // 主键ID - SpaceID int64 `gorm:"column:space_id;type:bigint(20) unsigned;not null;comment:空间ID" json:"space_id"` // 空间ID - PromptID int64 `gorm:"column:prompt_id;type:bigint(20) unsigned;not null;uniqueIndex:uniq_prompt_id_version,priority:1;comment:Prompt ID" json:"prompt_id"` // Prompt ID - PromptKey string `gorm:"column:prompt_key;type:varchar(128);not null;index:idx_prompt_key_version,priority:1;comment:Prompt key" json:"prompt_key"` // Prompt key - TemplateType *string `gorm:"column:template_type;type:varchar(64);default:normal;comment:模版类型" json:"template_type"` // 模版类型 - Messages *string `gorm:"column:messages;type:longtext;comment:托管消息列表" json:"messages"` // 托管消息列表 - ModelConfig *string `gorm:"column:model_config;type:text;comment:模型配置" json:"model_config"` // 模型配置 - VariableDefs *string `gorm:"column:variable_defs;type:text;comment:变量定义" json:"variable_defs"` // 变量定义 - Tools *string `gorm:"column:tools;type:longtext;comment:tools" json:"tools"` // tools - ToolCallConfig *string `gorm:"column:tool_call_config;type:text;comment:tool调用配置" json:"tool_call_config"` // tool调用配置 - Metadata *string `gorm:"column:metadata;type:text;comment:模板元信息" json:"metadata"` // 模板元信息 - McpConfig *string `gorm:"column:mcp_config;type:text;comment:mcp config info" json:"mcp_config"` // mcp config info - Version string `gorm:"column:version;type:varchar(128);not null;uniqueIndex:uniq_prompt_id_version,priority:2;index:idx_prompt_key_version,priority:2;comment:版本" json:"version"` // 版本 - BaseVersion string `gorm:"column:base_version;type:varchar(128);not null;comment:来源版本" json:"base_version"` // 来源版本 - CommittedBy string `gorm:"column:committed_by;type:varchar(128);not null;comment:提交人" json:"committed_by"` // 提交人 - Description *string `gorm:"column:description;type:text;comment:提交版本描述" json:"description"` // 提交版本描述 - ExtInfo *string `gorm:"column:ext_info;type:text;comment:扩展字段" json:"ext_info"` // 扩展字段 - CreatedAt time.Time `gorm:"column:created_at;type:datetime;not null;default:CURRENT_TIMESTAMP;comment:创建时间" json:"created_at"` // 创建时间 - UpdatedAt time.Time `gorm:"column:updated_at;type:datetime;not null;default:CURRENT_TIMESTAMP;comment:更新时间" json:"updated_at"` // 更新时间 - HasSnippets bool `gorm:"column:has_snippets;type:tinyint(1);not null;comment:是否包含prompt片段" json:"has_snippets"` // 是否包含prompt片段 + ID int64 `gorm:"column:id;type:bigint(20) unsigned;primaryKey;autoIncrement:true;comment:主键ID" json:"id"` // 主键ID + SpaceID int64 `gorm:"column:space_id;type:bigint(20) unsigned;not null;comment:空间ID" json:"space_id"` // 空间ID + PromptID int64 `gorm:"column:prompt_id;type:bigint(20) unsigned;not null;uniqueIndex:uniq_prompt_id_version,priority:1;comment:Prompt ID" json:"prompt_id"` // Prompt ID + PromptKey string `gorm:"column:prompt_key;type:varchar(128);not null;index:idx_prompt_key_version,priority:1;comment:Prompt key" json:"prompt_key"` // Prompt key + TemplateType *string `gorm:"column:template_type;type:varchar(64);default:normal;comment:模版类型" json:"template_type"` // 模版类型 + Messages *string `gorm:"column:messages;type:longtext;comment:托管消息列表" json:"messages"` // 托管消息列表 + ModelConfig *string `gorm:"column:model_config;type:text;comment:模型配置" json:"model_config"` // 模型配置 + VariableDefs *string `gorm:"column:variable_defs;type:text;comment:变量定义" json:"variable_defs"` // 变量定义 + Tools *string `gorm:"column:tools;type:longtext;comment:tools" json:"tools"` // tools + ToolCallConfig *string `gorm:"column:tool_call_config;type:text;comment:tool调用配置" json:"tool_call_config"` // tool调用配置 + Metadata *string `gorm:"column:metadata;type:text;comment:模板元信息" json:"metadata"` // 模板元信息 + McpConfig *string `gorm:"column:mcp_config;type:text;comment:mcp config info" json:"mcp_config"` // mcp config info + Version string `gorm:"column:version;type:varchar(128);not null;uniqueIndex:uniq_prompt_id_version,priority:2;index:idx_prompt_key_version,priority:2;comment:版本" json:"version"` // 版本 + BaseVersion string `gorm:"column:base_version;type:varchar(128);not null;comment:来源版本" json:"base_version"` // 来源版本 + CommittedBy string `gorm:"column:committed_by;type:varchar(128);not null;comment:提交人" json:"committed_by"` // 提交人 + Description *string `gorm:"column:description;type:text;comment:提交版本描述" json:"description"` // 提交版本描述 + ExtInfo *string `gorm:"column:ext_info;type:text;comment:扩展字段" json:"ext_info"` // 扩展字段 + CreatedAt time.Time `gorm:"column:created_at;type:datetime;not null;default:CURRENT_TIMESTAMP;comment:创建时间" json:"created_at"` // 创建时间 + UpdatedAt time.Time `gorm:"column:updated_at;type:datetime;not null;default:CURRENT_TIMESTAMP;comment:更新时间" json:"updated_at"` // 更新时间 + HasSnippets bool `gorm:"column:has_snippets;type:tinyint(1);not null;comment:是否包含prompt片段" json:"has_snippets"` // 是否包含prompt片段 + EncryptMessages *string `gorm:"column:encrypt_messages;type:longtext;comment:encrypt message list" json:"encrypt_messages"` // encrypt message list } // TableName PromptCommit's table name diff --git a/backend/modules/prompt/infra/repo/mysql/gorm_gen/model/prompt_user_draft.gen.go b/backend/modules/prompt/infra/repo/mysql/gorm_gen/model/prompt_user_draft.gen.go index 5da4d102e..fcc4f1144 100644 --- a/backend/modules/prompt/infra/repo/mysql/gorm_gen/model/prompt_user_draft.gen.go +++ b/backend/modules/prompt/infra/repo/mysql/gorm_gen/model/prompt_user_draft.gen.go @@ -14,25 +14,26 @@ const TableNamePromptUserDraft = "prompt_user_draft" // PromptUserDraft Draft表 type PromptUserDraft struct { - ID int64 `gorm:"column:id;type:bigint(20) unsigned;primaryKey;comment:主键ID" json:"id"` // 主键ID - SpaceID int64 `gorm:"column:space_id;type:bigint(20) unsigned;not null;comment:空间ID" json:"space_id"` // 空间ID - PromptID int64 `gorm:"column:prompt_id;type:bigint(20) unsigned;not null;uniqueIndex:uniq_prompt_id_user_id_deleted_at,priority:1;index:idx_prompt_id_user_id,priority:1;comment:Prompt ID" json:"prompt_id"` // Prompt ID - UserID string `gorm:"column:user_id;type:varchar(128);not null;uniqueIndex:uniq_prompt_id_user_id_deleted_at,priority:2;index:idx_prompt_id_user_id,priority:2;comment:用户ID" json:"user_id"` // 用户ID - TemplateType *string `gorm:"column:template_type;type:varchar(64);default:Normal;comment:模版类型" json:"template_type"` // 模版类型 - Messages *string `gorm:"column:messages;type:longtext;comment:托管消息列表" json:"messages"` // 托管消息列表 - ModelConfig *string `gorm:"column:model_config;type:text;comment:模型配置" json:"model_config"` // 模型配置 - VariableDefs *string `gorm:"column:variable_defs;type:text;comment:变量定义" json:"variable_defs"` // 变量定义 - Tools *string `gorm:"column:tools;type:longtext;comment:tools" json:"tools"` // tools - ToolCallConfig *string `gorm:"column:tool_call_config;type:text;comment:tool调用配置" json:"tool_call_config"` // tool调用配置 - Metadata *string `gorm:"column:metadata;type:text;comment:模板元信息" json:"metadata"` // 模板元信息 - McpConfig *string `gorm:"column:mcp_config;type:text;comment:mcp config info" json:"mcp_config"` // mcp config info - BaseVersion string `gorm:"column:base_version;type:varchar(128);not null;comment:草稿关联版本" json:"base_version"` // 草稿关联版本 - IsDraftEdited int32 `gorm:"column:is_draft_edited;type:tinyint(4);not null;comment:草稿内容是否基于BaseVersion有变更" json:"is_draft_edited"` // 草稿内容是否基于BaseVersion有变更 - ExtInfo *string `gorm:"column:ext_info;type:text;comment:扩展字段" json:"ext_info"` // 扩展字段 - CreatedAt time.Time `gorm:"column:created_at;type:datetime;not null;default:CURRENT_TIMESTAMP;comment:创建时间" json:"created_at"` // 创建时间 - UpdatedAt time.Time `gorm:"column:updated_at;type:datetime;not null;default:CURRENT_TIMESTAMP;comment:更新时间" json:"updated_at"` // 更新时间 - DeletedAt soft_delete.DeletedAt `gorm:"column:deleted_at;type:bigint(20);not null;uniqueIndex:uniq_prompt_id_user_id_deleted_at,priority:3;column:deleted_at;not null;default:0;softDelete:milli;comment:删除时间" json:"deleted_at"` // 删除时间 - HasSnippets bool `gorm:"column:has_snippets;type:tinyint(1);not null;comment:是否包含prompt片段" json:"has_snippets"` // 是否包含prompt片段 + ID int64 `gorm:"column:id;type:bigint(20) unsigned;primaryKey;comment:主键ID" json:"id"` // 主键ID + SpaceID int64 `gorm:"column:space_id;type:bigint(20) unsigned;not null;comment:空间ID" json:"space_id"` // 空间ID + PromptID int64 `gorm:"column:prompt_id;type:bigint(20) unsigned;not null;uniqueIndex:uniq_prompt_id_user_id_deleted_at,priority:1;index:idx_prompt_id_user_id,priority:1;comment:Prompt ID" json:"prompt_id"` // Prompt ID + UserID string `gorm:"column:user_id;type:varchar(128);not null;uniqueIndex:uniq_prompt_id_user_id_deleted_at,priority:2;index:idx_prompt_id_user_id,priority:2;comment:用户ID" json:"user_id"` // 用户ID + TemplateType *string `gorm:"column:template_type;type:varchar(64);default:Normal;comment:模版类型" json:"template_type"` // 模版类型 + Messages *string `gorm:"column:messages;type:longtext;comment:托管消息列表" json:"messages"` // 托管消息列表 + ModelConfig *string `gorm:"column:model_config;type:text;comment:模型配置" json:"model_config"` // 模型配置 + VariableDefs *string `gorm:"column:variable_defs;type:text;comment:变量定义" json:"variable_defs"` // 变量定义 + Tools *string `gorm:"column:tools;type:longtext;comment:tools" json:"tools"` // tools + ToolCallConfig *string `gorm:"column:tool_call_config;type:text;comment:tool调用配置" json:"tool_call_config"` // tool调用配置 + Metadata *string `gorm:"column:metadata;type:text;comment:模板元信息" json:"metadata"` // 模板元信息 + McpConfig *string `gorm:"column:mcp_config;type:text;comment:mcp config info" json:"mcp_config"` // mcp config info + BaseVersion string `gorm:"column:base_version;type:varchar(128);not null;comment:草稿关联版本" json:"base_version"` // 草稿关联版本 + IsDraftEdited int32 `gorm:"column:is_draft_edited;type:tinyint(4);not null;comment:草稿内容是否基于BaseVersion有变更" json:"is_draft_edited"` // 草稿内容是否基于BaseVersion有变更 + ExtInfo *string `gorm:"column:ext_info;type:text;comment:扩展字段" json:"ext_info"` // 扩展字段 + CreatedAt time.Time `gorm:"column:created_at;type:datetime;not null;default:CURRENT_TIMESTAMP;comment:创建时间" json:"created_at"` // 创建时间 + UpdatedAt time.Time `gorm:"column:updated_at;type:datetime;not null;default:CURRENT_TIMESTAMP;comment:更新时间" json:"updated_at"` // 更新时间 + DeletedAt soft_delete.DeletedAt `gorm:"column:deleted_at;type:bigint(20);not null;uniqueIndex:uniq_prompt_id_user_id_deleted_at,priority:3;column:deleted_at;not null;default:0;softDelete:milli;comment:删除时间" json:"deleted_at"` // 删除时间 + HasSnippets bool `gorm:"column:has_snippets;type:tinyint(1);not null;comment:是否包含prompt片段" json:"has_snippets"` // 是否包含prompt片段 + EncryptMessages *string `gorm:"column:encrypt_messages;type:longtext;comment:encrypt message list" json:"encrypt_messages"` // encrypt message list } // TableName PromptUserDraft's table name diff --git a/backend/modules/prompt/infra/repo/mysql/gorm_gen/query/prompt_basic.gen.go b/backend/modules/prompt/infra/repo/mysql/gorm_gen/query/prompt_basic.gen.go index c9a43121c..28f306402 100644 --- a/backend/modules/prompt/infra/repo/mysql/gorm_gen/query/prompt_basic.gen.go +++ b/backend/modules/prompt/infra/repo/mysql/gorm_gen/query/prompt_basic.gen.go @@ -40,6 +40,7 @@ func newPromptBasic(db *gorm.DB, opts ...gen.DOOption) promptBasic { _promptBasic.UpdatedAt = field.NewTime(tableName, "updated_at") _promptBasic.DeletedAt = field.NewField(tableName, "deleted_at") _promptBasic.PromptType = field.NewString(tableName, "prompt_type") + _promptBasic.SecurityLevel = field.NewString(tableName, "security_level") _promptBasic.fillFieldMap() @@ -64,6 +65,7 @@ type promptBasic struct { UpdatedAt field.Time // 更新时间 DeletedAt field.Field // 删除时间 PromptType field.String // Prompt类型 + SecurityLevel field.String // security level fieldMap map[string]field.Expr } @@ -93,6 +95,7 @@ func (p *promptBasic) updateTableName(table string) *promptBasic { p.UpdatedAt = field.NewTime(table, "updated_at") p.DeletedAt = field.NewField(table, "deleted_at") p.PromptType = field.NewString(table, "prompt_type") + p.SecurityLevel = field.NewString(table, "security_level") p.fillFieldMap() @@ -119,7 +122,7 @@ func (p *promptBasic) GetFieldByName(fieldName string) (field.OrderExpr, bool) { } func (p *promptBasic) fillFieldMap() { - p.fieldMap = make(map[string]field.Expr, 13) + p.fieldMap = make(map[string]field.Expr, 14) p.fieldMap["id"] = p.ID p.fieldMap["space_id"] = p.SpaceID p.fieldMap["prompt_key"] = p.PromptKey @@ -133,6 +136,7 @@ func (p *promptBasic) fillFieldMap() { p.fieldMap["updated_at"] = p.UpdatedAt p.fieldMap["deleted_at"] = p.DeletedAt p.fieldMap["prompt_type"] = p.PromptType + p.fieldMap["security_level"] = p.SecurityLevel } func (p promptBasic) clone(db *gorm.DB) promptBasic { diff --git a/backend/modules/prompt/infra/repo/mysql/gorm_gen/query/prompt_commit.gen.go b/backend/modules/prompt/infra/repo/mysql/gorm_gen/query/prompt_commit.gen.go index 33de37829..7db1b07c6 100644 --- a/backend/modules/prompt/infra/repo/mysql/gorm_gen/query/prompt_commit.gen.go +++ b/backend/modules/prompt/infra/repo/mysql/gorm_gen/query/prompt_commit.gen.go @@ -47,6 +47,7 @@ func newPromptCommit(db *gorm.DB, opts ...gen.DOOption) promptCommit { _promptCommit.CreatedAt = field.NewTime(tableName, "created_at") _promptCommit.UpdatedAt = field.NewTime(tableName, "updated_at") _promptCommit.HasSnippets = field.NewBool(tableName, "has_snippets") + _promptCommit.EncryptMessages = field.NewString(tableName, "encrypt_messages") _promptCommit.fillFieldMap() @@ -57,27 +58,28 @@ func newPromptCommit(db *gorm.DB, opts ...gen.DOOption) promptCommit { type promptCommit struct { promptCommitDo promptCommitDo - ALL field.Asterisk - ID field.Int64 // 主键ID - SpaceID field.Int64 // 空间ID - PromptID field.Int64 // Prompt ID - PromptKey field.String // Prompt key - TemplateType field.String // 模版类型 - Messages field.String // 托管消息列表 - ModelConfig field.String // 模型配置 - VariableDefs field.String // 变量定义 - Tools field.String // tools - ToolCallConfig field.String // tool调用配置 - Metadata field.String // 模板元信息 - McpConfig field.String // mcp config info - Version field.String // 版本 - BaseVersion field.String // 来源版本 - CommittedBy field.String // 提交人 - Description field.String // 提交版本描述 - ExtInfo field.String // 扩展字段 - CreatedAt field.Time // 创建时间 - UpdatedAt field.Time // 更新时间 - HasSnippets field.Bool // 是否包含prompt片段 + ALL field.Asterisk + ID field.Int64 // 主键ID + SpaceID field.Int64 // 空间ID + PromptID field.Int64 // Prompt ID + PromptKey field.String // Prompt key + TemplateType field.String // 模版类型 + Messages field.String // 托管消息列表 + ModelConfig field.String // 模型配置 + VariableDefs field.String // 变量定义 + Tools field.String // tools + ToolCallConfig field.String // tool调用配置 + Metadata field.String // 模板元信息 + McpConfig field.String // mcp config info + Version field.String // 版本 + BaseVersion field.String // 来源版本 + CommittedBy field.String // 提交人 + Description field.String // 提交版本描述 + ExtInfo field.String // 扩展字段 + CreatedAt field.Time // 创建时间 + UpdatedAt field.Time // 更新时间 + HasSnippets field.Bool // 是否包含prompt片段 + EncryptMessages field.String // encrypt message list fieldMap map[string]field.Expr } @@ -114,6 +116,7 @@ func (p *promptCommit) updateTableName(table string) *promptCommit { p.CreatedAt = field.NewTime(table, "created_at") p.UpdatedAt = field.NewTime(table, "updated_at") p.HasSnippets = field.NewBool(table, "has_snippets") + p.EncryptMessages = field.NewString(table, "encrypt_messages") p.fillFieldMap() @@ -142,7 +145,7 @@ func (p *promptCommit) GetFieldByName(fieldName string) (field.OrderExpr, bool) } func (p *promptCommit) fillFieldMap() { - p.fieldMap = make(map[string]field.Expr, 20) + p.fieldMap = make(map[string]field.Expr, 21) p.fieldMap["id"] = p.ID p.fieldMap["space_id"] = p.SpaceID p.fieldMap["prompt_id"] = p.PromptID @@ -163,6 +166,7 @@ func (p *promptCommit) fillFieldMap() { p.fieldMap["created_at"] = p.CreatedAt p.fieldMap["updated_at"] = p.UpdatedAt p.fieldMap["has_snippets"] = p.HasSnippets + p.fieldMap["encrypt_messages"] = p.EncryptMessages } func (p promptCommit) clone(db *gorm.DB) promptCommit { diff --git a/backend/modules/prompt/infra/repo/mysql/gorm_gen/query/prompt_user_draft.gen.go b/backend/modules/prompt/infra/repo/mysql/gorm_gen/query/prompt_user_draft.gen.go index ddc543753..15d9fcfb4 100644 --- a/backend/modules/prompt/infra/repo/mysql/gorm_gen/query/prompt_user_draft.gen.go +++ b/backend/modules/prompt/infra/repo/mysql/gorm_gen/query/prompt_user_draft.gen.go @@ -46,6 +46,7 @@ func newPromptUserDraft(db *gorm.DB, opts ...gen.DOOption) promptUserDraft { _promptUserDraft.UpdatedAt = field.NewTime(tableName, "updated_at") _promptUserDraft.DeletedAt = field.NewField(tableName, "deleted_at") _promptUserDraft.HasSnippets = field.NewBool(tableName, "has_snippets") + _promptUserDraft.EncryptMessages = field.NewString(tableName, "encrypt_messages") _promptUserDraft.fillFieldMap() @@ -56,26 +57,27 @@ func newPromptUserDraft(db *gorm.DB, opts ...gen.DOOption) promptUserDraft { type promptUserDraft struct { promptUserDraftDo promptUserDraftDo - ALL field.Asterisk - ID field.Int64 // 主键ID - SpaceID field.Int64 // 空间ID - PromptID field.Int64 // Prompt ID - UserID field.String // 用户ID - TemplateType field.String // 模版类型 - Messages field.String // 托管消息列表 - ModelConfig field.String // 模型配置 - VariableDefs field.String // 变量定义 - Tools field.String // tools - ToolCallConfig field.String // tool调用配置 - Metadata field.String // 模板元信息 - McpConfig field.String // mcp config info - BaseVersion field.String // 草稿关联版本 - IsDraftEdited field.Int32 // 草稿内容是否基于BaseVersion有变更 - ExtInfo field.String // 扩展字段 - CreatedAt field.Time // 创建时间 - UpdatedAt field.Time // 更新时间 - DeletedAt field.Field // 删除时间 - HasSnippets field.Bool // 是否包含prompt片段 + ALL field.Asterisk + ID field.Int64 // 主键ID + SpaceID field.Int64 // 空间ID + PromptID field.Int64 // Prompt ID + UserID field.String // 用户ID + TemplateType field.String // 模版类型 + Messages field.String // 托管消息列表 + ModelConfig field.String // 模型配置 + VariableDefs field.String // 变量定义 + Tools field.String // tools + ToolCallConfig field.String // tool调用配置 + Metadata field.String // 模板元信息 + McpConfig field.String // mcp config info + BaseVersion field.String // 草稿关联版本 + IsDraftEdited field.Int32 // 草稿内容是否基于BaseVersion有变更 + ExtInfo field.String // 扩展字段 + CreatedAt field.Time // 创建时间 + UpdatedAt field.Time // 更新时间 + DeletedAt field.Field // 删除时间 + HasSnippets field.Bool // 是否包含prompt片段 + EncryptMessages field.String // encrypt message list fieldMap map[string]field.Expr } @@ -111,6 +113,7 @@ func (p *promptUserDraft) updateTableName(table string) *promptUserDraft { p.UpdatedAt = field.NewTime(table, "updated_at") p.DeletedAt = field.NewField(table, "deleted_at") p.HasSnippets = field.NewBool(table, "has_snippets") + p.EncryptMessages = field.NewString(table, "encrypt_messages") p.fillFieldMap() @@ -139,7 +142,7 @@ func (p *promptUserDraft) GetFieldByName(fieldName string) (field.OrderExpr, boo } func (p *promptUserDraft) fillFieldMap() { - p.fieldMap = make(map[string]field.Expr, 19) + p.fieldMap = make(map[string]field.Expr, 20) p.fieldMap["id"] = p.ID p.fieldMap["space_id"] = p.SpaceID p.fieldMap["prompt_id"] = p.PromptID @@ -159,6 +162,7 @@ func (p *promptUserDraft) fillFieldMap() { p.fieldMap["updated_at"] = p.UpdatedAt p.fieldMap["deleted_at"] = p.DeletedAt p.fieldMap["has_snippets"] = p.HasSnippets + p.fieldMap["encrypt_messages"] = p.EncryptMessages } func (p promptUserDraft) clone(db *gorm.DB) promptUserDraft { diff --git a/backend/modules/prompt/infra/repo/mysql/hooks/prompt_commit_hook.go b/backend/modules/prompt/infra/repo/mysql/hooks/prompt_commit_hook.go new file mode 100644 index 000000000..31038b93e --- /dev/null +++ b/backend/modules/prompt/infra/repo/mysql/hooks/prompt_commit_hook.go @@ -0,0 +1,26 @@ +package hooks + +import ( + "context" + + "github.com/coze-dev/coze-loop/backend/modules/prompt/infra/repo/mysql/gorm_gen/model" +) + +type IPromptCommitHook interface { + BeforeSave(context.Context, *model.PromptCommit) error + AfterFind(context.Context, []*model.PromptCommit) error +} + +type EmptyPromptCommitHook struct{} + +func NewEmptyPromptCommitHook() IPromptCommitHook { + return &EmptyPromptCommitHook{} +} + +func (h *EmptyPromptCommitHook) BeforeSave(_ context.Context, _ *model.PromptCommit) error { + return nil +} + +func (h *EmptyPromptCommitHook) AfterFind(_ context.Context, _ []*model.PromptCommit) error { + return nil +} diff --git a/backend/modules/prompt/infra/repo/mysql/hooks/prompt_user_draft_hook.go b/backend/modules/prompt/infra/repo/mysql/hooks/prompt_user_draft_hook.go new file mode 100644 index 000000000..cba896698 --- /dev/null +++ b/backend/modules/prompt/infra/repo/mysql/hooks/prompt_user_draft_hook.go @@ -0,0 +1,26 @@ +package hooks + +import ( + "context" + + "github.com/coze-dev/coze-loop/backend/modules/prompt/infra/repo/mysql/gorm_gen/model" +) + +type IPromptUserDraftHook interface { + BeforeSave(context.Context, *model.PromptUserDraft) error + AfterFind(context.Context, []*model.PromptUserDraft) error +} + +type EmptyPromptUserDraftHook struct{} + +func NewEmptyPromptUserDraftHook() IPromptUserDraftHook { + return &EmptyPromptUserDraftHook{} +} + +func (h *EmptyPromptUserDraftHook) BeforeSave(_ context.Context, _ *model.PromptUserDraft) error { + return nil +} + +func (h *EmptyPromptUserDraftHook) AfterFind(_ context.Context, _ []*model.PromptUserDraft) error { + return nil +} diff --git a/backend/modules/prompt/infra/repo/mysql/prompt_commit.go b/backend/modules/prompt/infra/repo/mysql/prompt_commit.go index de0ba3b61..cd27de9eb 100644 --- a/backend/modules/prompt/infra/repo/mysql/prompt_commit.go +++ b/backend/modules/prompt/infra/repo/mysql/prompt_commit.go @@ -9,6 +9,7 @@ import ( "fmt" "time" + "github.com/coze-dev/coze-loop/backend/modules/prompt/infra/repo/mysql/hooks" "gorm.io/gorm" "github.com/coze-dev/coze-loop/backend/infra/db" @@ -41,12 +42,14 @@ type ListCommitParam struct { type PromptCommitDAOImpl struct { db db.Provider writeTracker platestwrite.ILatestWriteTracker + hook hooks.IPromptCommitHook } -func NewPromptCommitDAO(db db.Provider, redisCli redis.Cmdable) IPromptCommitDAO { +func NewPromptCommitDAO(db db.Provider, redisCli redis.Cmdable, hook hooks.IPromptCommitHook) IPromptCommitDAO { return &PromptCommitDAOImpl{ db: db, writeTracker: platestwrite.NewLatestWriteTracker(redisCli), + hook: hook, } } @@ -62,6 +65,9 @@ func (d *PromptCommitDAOImpl) Create(ctx context.Context, promptCommitPO *model. q := query.Use(d.db.NewSession(ctx, opts...)).WithContext(ctx) promptCommitPO.CreatedAt = timeNow promptCommitPO.UpdatedAt = timeNow + if err := d.hook.BeforeSave(ctx, promptCommitPO); err != nil { + return errorx.WrapByCode(err, prompterr.CommonMySqlErrorCode) + } err = q.PromptCommit.Create(promptCommitPO) if err != nil { if errors.Is(err, gorm.ErrDuplicatedKey) { @@ -90,6 +96,9 @@ func (d *PromptCommitDAOImpl) Get(ctx context.Context, promptID int64, commitVer if len(promptCommitPOs) <= 0 { return nil, nil } + if err := d.hook.AfterFind(ctx, promptCommitPOs); err != nil { + return nil, errorx.WrapByCode(err, prompterr.CommonMySqlErrorCode) + } return promptCommitPOs[0], nil } @@ -111,6 +120,9 @@ func (d *PromptCommitDAOImpl) MGet(ctx context.Context, pairs []PromptIDCommitVe if len(promptCommitPOs) <= 0 { return nil, nil } + if err := d.hook.AfterFind(ctx, promptCommitPOs); err != nil { + return nil, errorx.WrapByCode(err, prompterr.CommonMySqlErrorCode) + } pairCommitPOMap = make(map[PromptIDCommitVersionPair]*model.PromptCommit) for _, po := range promptCommitPOs { pairCommitPOMap[PromptIDCommitVersionPair{ @@ -153,6 +165,9 @@ func (d *PromptCommitDAOImpl) List(ctx context.Context, param ListCommitParam, o if len(commitPOs) <= 0 { return nil, nil } + if err := d.hook.AfterFind(ctx, commitPOs); err != nil { + return nil, errorx.WrapByCode(err, prompterr.CommonMySqlErrorCode) + } return commitPOs, nil } @@ -175,6 +190,9 @@ func (d *PromptCommitDAOImpl) MGetVersionsByPromptID(ctx context.Context, prompt if len(commitPOs) == 0 { return nil, nil } + if err := d.hook.AfterFind(ctx, commitPOs); err != nil { + return nil, errorx.WrapByCode(err, prompterr.CommonMySqlErrorCode) + } versions = make([]string, 0, len(commitPOs)) for _, po := range commitPOs { if po == nil || po.Version == "" { diff --git a/backend/modules/prompt/infra/repo/mysql/prompt_user_draft.go b/backend/modules/prompt/infra/repo/mysql/prompt_user_draft.go index 9243a9e8f..7fb45049c 100644 --- a/backend/modules/prompt/infra/repo/mysql/prompt_user_draft.go +++ b/backend/modules/prompt/infra/repo/mysql/prompt_user_draft.go @@ -8,6 +8,7 @@ import ( "fmt" "time" + "github.com/coze-dev/coze-loop/backend/modules/prompt/infra/repo/mysql/hooks" "github.com/samber/lo" "github.com/coze-dev/coze-loop/backend/infra/db" @@ -32,12 +33,14 @@ type IPromptUserDraftDAO interface { type PromptUserDraftDAOImpl struct { db db.Provider writeTracker platestwrite.ILatestWriteTracker + hook hooks.IPromptUserDraftHook } -func NewPromptUserDraftDAO(db db.Provider, redisCli redis.Cmdable) IPromptUserDraftDAO { +func NewPromptUserDraftDAO(db db.Provider, redisCli redis.Cmdable, hook hooks.IPromptUserDraftHook) IPromptUserDraftDAO { return &PromptUserDraftDAOImpl{ db: db, writeTracker: platestwrite.NewLatestWriteTracker(redisCli), + hook: hook, } } @@ -55,6 +58,11 @@ func (d *PromptUserDraftDAOImpl) Create(ctx context.Context, promptDraftPO *mode q := query.Use(d.db.NewSession(ctx, opts...)).WithContext(ctx) promptDraftPO.CreatedAt = time.Time{} promptDraftPO.UpdatedAt = time.Time{} + err = d.hook.BeforeSave(ctx, promptDraftPO) + if err != nil { + return errorx.WrapByCode(err, prompterr.CommonMySqlErrorCode) + } + err = q.PromptUserDraft.Create(promptDraftPO) if err != nil { return errorx.WrapByCode(err, prompterr.CommonMySqlErrorCode) @@ -80,6 +88,10 @@ func (d *PromptUserDraftDAOImpl) Get(ctx context.Context, promptID int64, userID if len(promptDraftPOs) <= 0 { return nil, nil } + err = d.hook.AfterFind(ctx, promptDraftPOs) + if err != nil { + return nil, errorx.WrapByCode(err, prompterr.CommonMySqlErrorCode) + } return promptDraftPOs[0], nil } @@ -97,6 +109,10 @@ func (d *PromptUserDraftDAOImpl) GetByID(ctx context.Context, draftID int64, opt if len(promptDraftPOs) <= 0 { return nil, nil } + err = d.hook.AfterFind(ctx, promptDraftPOs) + if err != nil { + return nil, errorx.WrapByCode(err, prompterr.CommonMySqlErrorCode) + } return promptDraftPOs[0], nil } @@ -120,6 +136,10 @@ func (d *PromptUserDraftDAOImpl) MGet(ctx context.Context, pairs []PromptIDUserI if len(promptDraftPOs) <= 0 { return nil, nil } + err = d.hook.AfterFind(ctx, promptDraftPOs) + if err != nil { + return nil, errorx.WrapByCode(err, prompterr.CommonMySqlErrorCode) + } pairDraftPOMap = make(map[PromptIDUserIDPair]*model.PromptUserDraft, len(promptDraftPOs)) for _, promptDraftPO := range promptDraftPOs { if promptDraftPO == nil { @@ -140,21 +160,26 @@ func (d *PromptUserDraftDAOImpl) Update(ctx context.Context, promptDraftPO *mode if promptDraftPO == nil { return errorx.New("promptDraftPO is empty") } + err = d.hook.BeforeSave(ctx, promptDraftPO) + if err != nil { + return errorx.WrapByCode(err, prompterr.CommonMySqlErrorCode) + } q := query.Use(d.db.NewSession(ctx, opts...)) _, err = q.PromptUserDraft.WithContext(ctx).Where(q.PromptUserDraft.ID.Eq(promptDraftPO.ID)). Updates(map[string]interface{}{ - q.PromptUserDraft.Messages.ColumnName().String(): promptDraftPO.Messages, - q.PromptUserDraft.ModelConfig.ColumnName().String(): promptDraftPO.ModelConfig, - q.PromptUserDraft.BaseVersion.ColumnName().String(): promptDraftPO.BaseVersion, - q.PromptUserDraft.Tools.ColumnName().String(): promptDraftPO.Tools, - q.PromptUserDraft.ToolCallConfig.ColumnName().String(): promptDraftPO.ToolCallConfig, - q.PromptUserDraft.TemplateType.ColumnName().String(): promptDraftPO.TemplateType, - q.PromptUserDraft.VariableDefs.ColumnName().String(): promptDraftPO.VariableDefs, - q.PromptUserDraft.Metadata.ColumnName().String(): promptDraftPO.Metadata, - q.PromptUserDraft.McpConfig.ColumnName().String(): promptDraftPO.McpConfig, - q.PromptUserDraft.IsDraftEdited.ColumnName().String(): promptDraftPO.IsDraftEdited, - q.PromptUserDraft.HasSnippets.ColumnName().String(): promptDraftPO.HasSnippets, + q.PromptUserDraft.Messages.ColumnName().String(): promptDraftPO.Messages, + q.PromptUserDraft.ModelConfig.ColumnName().String(): promptDraftPO.ModelConfig, + q.PromptUserDraft.BaseVersion.ColumnName().String(): promptDraftPO.BaseVersion, + q.PromptUserDraft.Tools.ColumnName().String(): promptDraftPO.Tools, + q.PromptUserDraft.ToolCallConfig.ColumnName().String(): promptDraftPO.ToolCallConfig, + q.PromptUserDraft.TemplateType.ColumnName().String(): promptDraftPO.TemplateType, + q.PromptUserDraft.VariableDefs.ColumnName().String(): promptDraftPO.VariableDefs, + q.PromptUserDraft.Metadata.ColumnName().String(): promptDraftPO.Metadata, + q.PromptUserDraft.McpConfig.ColumnName().String(): promptDraftPO.McpConfig, + q.PromptUserDraft.IsDraftEdited.ColumnName().String(): promptDraftPO.IsDraftEdited, + q.PromptUserDraft.HasSnippets.ColumnName().String(): promptDraftPO.HasSnippets, + q.PromptUserDraft.EncryptMessages.ColumnName().String(): promptDraftPO.EncryptMessages, }) if err != nil { return errorx.WrapByCode(err, prompterr.CommonMySqlErrorCode) diff --git a/backend/modules/prompt/pkg/consts/auth.go b/backend/modules/prompt/pkg/consts/auth.go index 27a845a31..8dab10862 100644 --- a/backend/modules/prompt/pkg/consts/auth.go +++ b/backend/modules/prompt/pkg/consts/auth.go @@ -8,6 +8,7 @@ const ( ActionLoopPromptEdit = "edit" ActionLoopPromptDebug = "debug" ActionLoopPromptExecute = "execute" + ActionLoopPromptEditSecLevel = "editSecLevel" ActionWorkspaceListLoopPrompt = "listLoopPrompt" ActionWorkspaceCreateLoopPrompt = "createLoopPrompt" ) diff --git a/idl/thrift/coze/loop/prompt/coze.loop.prompt.manage.thrift b/idl/thrift/coze/loop/prompt/coze.loop.prompt.manage.thrift index b19e453db..5a326f1a3 100644 --- a/idl/thrift/coze/loop/prompt/coze.loop.prompt.manage.thrift +++ b/idl/thrift/coze/loop/prompt/coze.loop.prompt.manage.thrift @@ -53,6 +53,7 @@ struct CreatePromptRequest { 12: optional string prompt_key (vt.not_nil="true", vt.min_size="1") 13: optional string prompt_description 14: optional prompt.PromptType prompt_type + 15: optional prompt.SecurityLevel security_level 21: optional prompt.PromptDetail draft_detail @@ -169,6 +170,8 @@ struct UpdatePromptRequest { 11: optional string prompt_name (vt.not_nil="true", vt.min_size="1") 12: optional string prompt_description + 13: optional prompt.SecurityLevel security_level + 14: optional string downgrade_reason 255: optional base.Base Base } diff --git a/idl/thrift/coze/loop/prompt/domain/prompt.thrift b/idl/thrift/coze/loop/prompt/domain/prompt.thrift index e349906a8..d74d3b426 100644 --- a/idl/thrift/coze/loop/prompt/domain/prompt.thrift +++ b/idl/thrift/coze/loop/prompt/domain/prompt.thrift @@ -19,6 +19,7 @@ struct PromptBasic { 7: optional i64 updated_at (api.js_conv="true", go.tag='json:"updated_at"') 8: optional i64 latest_committed_at (api.js_conv="true", go.tag='json:"latest_committed_at"') 9: optional PromptType prompt_type + 10: optional SecurityLevel security_level } @@ -26,6 +27,12 @@ typedef string PromptType (ts.enum="true") const PromptType PromptType_Normal = "normal" const PromptType PromptType_Snippet = "snippet" +typedef string SecurityLevel (ts.enum="true") +const SecurityLevel SecurityLevel_L1 = "L1" +const SecurityLevel SecurityLevel_L2 = "L2" +const SecurityLevel SecurityLevel_L3 = "L3" +const SecurityLevel SecurityLevel_L4 = "L4" + struct PromptCommit { 1: optional PromptDetail detail 2: optional CommitInfo commit_info diff --git a/release/deployment/docker-compose/bootstrap/mysql-init/init-sql/prompt_basic.sql b/release/deployment/docker-compose/bootstrap/mysql-init/init-sql/prompt_basic.sql index 55a27c93d..fe6e650d3 100644 --- a/release/deployment/docker-compose/bootstrap/mysql-init/init-sql/prompt_basic.sql +++ b/release/deployment/docker-compose/bootstrap/mysql-init/init-sql/prompt_basic.sql @@ -14,6 +14,7 @@ CREATE TABLE IF NOT EXISTS `prompt_basic` `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted_at` bigint NOT NULL DEFAULT '0' COMMENT '删除时间', `prompt_type` varchar(64) NOT NULL DEFAULT 'normal' COMMENT 'Prompt类型', + `security_level` varchar(64) NOT NULL DEFAULT 'L3' COMMENT 'security level', PRIMARY KEY (`id`), UNIQUE KEY `uniq_space_id_prompt_key_deleted_at` (`space_id`, `prompt_key`, `deleted_at`), KEY `idx_created_at` (`created_at`) USING BTREE, diff --git a/release/deployment/docker-compose/bootstrap/mysql-init/init-sql/prompt_commit.sql b/release/deployment/docker-compose/bootstrap/mysql-init/init-sql/prompt_commit.sql index 0ef0feeed..2c0150311 100644 --- a/release/deployment/docker-compose/bootstrap/mysql-init/init-sql/prompt_commit.sql +++ b/release/deployment/docker-compose/bootstrap/mysql-init/init-sql/prompt_commit.sql @@ -20,6 +20,7 @@ CREATE TABLE IF NOT EXISTS `prompt_commit` `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `has_snippets` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否包含prompt片段', + `encrypt_messages` longtext COLLATE utf8mb4_general_ci COMMENT 'encrypt message list', PRIMARY KEY (`id`), UNIQUE KEY `uniq_prompt_id_version` (`prompt_id`, `version`), KEY `idx_prompt_key_version` (`prompt_key`, `version`) USING BTREE diff --git a/release/deployment/docker-compose/bootstrap/mysql-init/init-sql/prompt_user_draft.sql b/release/deployment/docker-compose/bootstrap/mysql-init/init-sql/prompt_user_draft.sql index a85aeff79..8270ad65f 100644 --- a/release/deployment/docker-compose/bootstrap/mysql-init/init-sql/prompt_user_draft.sql +++ b/release/deployment/docker-compose/bootstrap/mysql-init/init-sql/prompt_user_draft.sql @@ -19,6 +19,7 @@ CREATE TABLE IF NOT EXISTS `prompt_user_draft` `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted_at` bigint NOT NULL DEFAULT '0' COMMENT '删除时间', `has_snippets` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否包含prompt片段', + `encrypt_messages` longtext COLLATE utf8mb4_general_ci COMMENT 'encrypt message list', PRIMARY KEY (`id`), UNIQUE KEY `uniq_prompt_id_user_id_deleted_at` (`prompt_id`, `user_id`, `deleted_at`), KEY `idx_prompt_id_user_id` (`prompt_id`, `user_id`) diff --git a/release/deployment/docker-compose/bootstrap/mysql-init/patch-sql/prompt_basic_alter.sql b/release/deployment/docker-compose/bootstrap/mysql-init/patch-sql/prompt_basic_alter.sql index a51a2becf..937fa9c76 100644 --- a/release/deployment/docker-compose/bootstrap/mysql-init/patch-sql/prompt_basic_alter.sql +++ b/release/deployment/docker-compose/bootstrap/mysql-init/patch-sql/prompt_basic_alter.sql @@ -1,2 +1,3 @@ ALTER TABLE `prompt_basic` ADD COLUMN `prompt_type` varchar(64) NOT NULL DEFAULT 'normal' COMMENT 'Prompt类型'; -ALTER TABLE `prompt_basic` ADD KEY `idx_pid_ptype_delat` (`space_id`, `prompt_type`, `deleted_at`) USING BTREE; \ No newline at end of file +ALTER TABLE `prompt_basic` ADD KEY `idx_pid_ptype_delat` (`space_id`, `prompt_type`, `deleted_at`) USING BTREE; +ALTER TABLE `prompt_basic` ADD COLUMN `security_level` varchar(64) NOT NULL DEFAULT 'L3' COMMENT 'security level'; \ No newline at end of file diff --git a/release/deployment/docker-compose/bootstrap/mysql-init/patch-sql/prompt_commit_alter.sql b/release/deployment/docker-compose/bootstrap/mysql-init/patch-sql/prompt_commit_alter.sql index 924cec27e..d1128d188 100644 --- a/release/deployment/docker-compose/bootstrap/mysql-init/patch-sql/prompt_commit_alter.sql +++ b/release/deployment/docker-compose/bootstrap/mysql-init/patch-sql/prompt_commit_alter.sql @@ -1,4 +1,5 @@ ALTER TABLE `prompt_commit` ADD COLUMN `ext_info` text COLLATE utf8mb4_general_ci COMMENT 'Extended information field'; ALTER TABLE `prompt_commit` ADD COLUMN `metadata` text COLLATE utf8mb4_general_ci COMMENT 'Template metadata field'; ALTER TABLE `prompt_commit` ADD COLUMN `has_snippets` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否包含prompt片段'; -ALTER TABLE `prompt_commit` ADD COLUMN `mcp_config` text COLLATE utf8mb4_general_ci COMMENT 'mcp config info'; \ No newline at end of file +ALTER TABLE `prompt_commit` ADD COLUMN `mcp_config` text COLLATE utf8mb4_general_ci COMMENT 'mcp config info'; +ALTER TABLE `prompt_commit` ADD COLUMN `encrypt_messages` longtext COLLATE utf8mb4_general_ci COMMENT 'encrypt message list'; diff --git a/release/deployment/docker-compose/bootstrap/mysql-init/patch-sql/prompt_user_draft_alter.sql b/release/deployment/docker-compose/bootstrap/mysql-init/patch-sql/prompt_user_draft_alter.sql index bd897e3c7..969c35bbf 100644 --- a/release/deployment/docker-compose/bootstrap/mysql-init/patch-sql/prompt_user_draft_alter.sql +++ b/release/deployment/docker-compose/bootstrap/mysql-init/patch-sql/prompt_user_draft_alter.sql @@ -1,4 +1,5 @@ ALTER TABLE `prompt_user_draft` ADD COLUMN `ext_info` text COLLATE utf8mb4_general_ci COMMENT 'Extended information field'; ALTER TABLE `prompt_user_draft` ADD COLUMN `metadata` text COLLATE utf8mb4_general_ci COMMENT 'Template metadata field'; ALTER TABLE `prompt_user_draft` ADD COLUMN `has_snippets` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否包含prompt片段'; -ALTER TABLE `prompt_user_draft` ADD COLUMN `mcp_config` text COLLATE utf8mb4_general_ci COMMENT 'mcp config info'; \ No newline at end of file +ALTER TABLE `prompt_user_draft` ADD COLUMN `mcp_config` text COLLATE utf8mb4_general_ci COMMENT 'mcp config info'; +ALTER TABLE `prompt_user_draft` ADD COLUMN `encrypt_messages` longtext COLLATE utf8mb4_general_ci COMMENT 'encrypt message list'; diff --git a/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/prompt_basic.sql b/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/prompt_basic.sql index d461043f5..da310fb51 100644 --- a/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/prompt_basic.sql +++ b/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/prompt_basic.sql @@ -14,6 +14,7 @@ CREATE TABLE IF NOT EXISTS `prompt_basic` `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted_at` bigint NOT NULL DEFAULT '0' COMMENT '删除时间', `prompt_type` varchar(64) NOT NULL DEFAULT 'normal' COMMENT 'Prompt类型', + `security_level` varchar(64) NOT NULL DEFAULT 'L3' COMMENT 'security level', PRIMARY KEY (`id`), UNIQUE KEY `uniq_space_id_prompt_key_deleted_at` (`space_id`, `prompt_key`, `deleted_at`), KEY `idx_created_at` (`created_at`) USING BTREE, diff --git a/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/prompt_basic_alter.sql b/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/prompt_basic_alter.sql index a51a2becf..937fa9c76 100644 --- a/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/prompt_basic_alter.sql +++ b/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/prompt_basic_alter.sql @@ -1,2 +1,3 @@ ALTER TABLE `prompt_basic` ADD COLUMN `prompt_type` varchar(64) NOT NULL DEFAULT 'normal' COMMENT 'Prompt类型'; -ALTER TABLE `prompt_basic` ADD KEY `idx_pid_ptype_delat` (`space_id`, `prompt_type`, `deleted_at`) USING BTREE; \ No newline at end of file +ALTER TABLE `prompt_basic` ADD KEY `idx_pid_ptype_delat` (`space_id`, `prompt_type`, `deleted_at`) USING BTREE; +ALTER TABLE `prompt_basic` ADD COLUMN `security_level` varchar(64) NOT NULL DEFAULT 'L3' COMMENT 'security level'; \ No newline at end of file diff --git a/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/prompt_commit.sql b/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/prompt_commit.sql index bbe022bad..492efbedb 100644 --- a/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/prompt_commit.sql +++ b/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/prompt_commit.sql @@ -19,6 +19,7 @@ CREATE TABLE IF NOT EXISTS `prompt_commit` `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `has_snippets` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否包含prompt片段', + `encrypt_messages` longtext COLLATE utf8mb4_general_ci COMMENT 'encrypt message list', PRIMARY KEY (`id`), UNIQUE KEY `uniq_prompt_id_version` (`prompt_id`, `version`), KEY `idx_prompt_key_version` (`prompt_key`, `version`) USING BTREE diff --git a/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/prompt_commit_alter.sql b/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/prompt_commit_alter.sql index d4919bfee..a39593938 100644 --- a/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/prompt_commit_alter.sql +++ b/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/prompt_commit_alter.sql @@ -1,3 +1,4 @@ ALTER TABLE `prompt_commit` ADD COLUMN `ext_info` text COLLATE utf8mb4_general_ci COMMENT 'Extended information field'; ALTER TABLE `prompt_commit` ADD COLUMN `metadata` text COLLATE utf8mb4_general_ci COMMENT 'Template metadata field'; -ALTER TABLE `prompt_commit` ADD COLUMN `has_snippets` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否包含prompt片段'; \ No newline at end of file +ALTER TABLE `prompt_commit` ADD COLUMN `has_snippets` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否包含prompt片段'; +ALTER TABLE `prompt_commit` ADD COLUMN `encrypt_messages` longtext COLLATE utf8mb4_general_ci COMMENT 'encrypt message list'; \ No newline at end of file diff --git a/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/prompt_user_draft.sql b/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/prompt_user_draft.sql index be460369f..fd642119b 100644 --- a/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/prompt_user_draft.sql +++ b/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/prompt_user_draft.sql @@ -18,6 +18,7 @@ CREATE TABLE IF NOT EXISTS `prompt_user_draft` `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted_at` bigint NOT NULL DEFAULT '0' COMMENT '删除时间', `has_snippets` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否包含prompt片段', + `encrypt_messages` longtext COLLATE utf8mb4_general_ci COMMENT 'encrypt message list', PRIMARY KEY (`id`), UNIQUE KEY `uniq_prompt_id_user_id_deleted_at` (`prompt_id`, `user_id`, `deleted_at`), KEY `idx_prompt_id_user_id` (`prompt_id`, `user_id`) diff --git a/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/prompt_user_draft_alter.sql b/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/prompt_user_draft_alter.sql index 8ecb3d12e..9a5ea9e21 100644 --- a/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/prompt_user_draft_alter.sql +++ b/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/prompt_user_draft_alter.sql @@ -1,3 +1,4 @@ ALTER TABLE `prompt_user_draft` ADD COLUMN `ext_info` text COLLATE utf8mb4_general_ci COMMENT 'Extended information field'; ALTER TABLE `prompt_user_draft` ADD COLUMN `metadata` text COLLATE utf8mb4_general_ci COMMENT 'Template metadata field'; -ALTER TABLE `prompt_user_draft` ADD COLUMN `has_snippets` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否包含prompt片段'; \ No newline at end of file +ALTER TABLE `prompt_user_draft` ADD COLUMN `has_snippets` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否包含prompt片段'; +ALTER TABLE `prompt_user_draft` ADD COLUMN `encrypt_messages` longtext COLLATE utf8mb4_general_ci COMMENT 'encrypt message list'; \ No newline at end of file From 0c967a5ac4809f1df752138bfaa6b5811fb5c519 Mon Sep 17 00:00:00 2001 From: "wanglizhi.pro" Date: Mon, 9 Feb 2026 12:49:30 +0800 Subject: [PATCH 40/58] fix: prompt idl with js conv --- .../coze/loop/prompt/coze.loop.prompt.openapi.thrift | 6 +++--- idl/thrift/coze/loop/prompt/domain/prompt.thrift | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift b/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift index b4197825c..b47bf18b2 100644 --- a/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift +++ b/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift @@ -301,7 +301,7 @@ struct ListPromptBasicData { struct PromptPublishInfo { 1: string publisher // 发布者 2: string publish_description // 发布描述 - 3: optional i64 publish_at // 发布时间 + 3: optional i64 publish_at (api.js_conv='true', go.tag='json:"publish_at"') // 发布时间 } enum PublishStatus { @@ -319,7 +319,7 @@ enum SecurityLevel { } struct ThinkingConfig { - 1: optional i64 budget_tokens (agw.key="budget_tokens") // thinking内容的最大输出token + 1: optional i64 budget_tokens (agw.key="budget_tokens", api.js_conv='true', go.tag='json:"budget_tokens"') // thinking内容的最大输出token 2: optional ThinkingOption thinking_option (agw.key="thinking_option") 3: optional ReasoningEffort reasoning_effort (agw.key="reasoning_effort") // 思考长度 } @@ -367,4 +367,4 @@ struct ParamConfigValue { struct ParamOption { 1: optional string value // 实际值 2: optional string label // 展示值 -} \ No newline at end of file +} diff --git a/idl/thrift/coze/loop/prompt/domain/prompt.thrift b/idl/thrift/coze/loop/prompt/domain/prompt.thrift index d74d3b426..57c5b1346 100644 --- a/idl/thrift/coze/loop/prompt/domain/prompt.thrift +++ b/idl/thrift/coze/loop/prompt/domain/prompt.thrift @@ -76,8 +76,8 @@ struct McpConfig { } struct McpServerCombine { - 1: optional i64 mcp_server_id - 2: optional i64 access_point_id + 1: optional i64 mcp_server_id (api.js_conv="true", go.tag='json:"mcp_server_id"') + 2: optional i64 access_point_id (api.js_conv="true", go.tag='json:"access_point_id"') 3: optional list disabled_tools 4: optional list enabled_tools 5: optional bool is_enabled_tools @@ -145,7 +145,7 @@ struct ModelConfig { } struct ThinkingConfig { - 1: optional i64 budget_tokens (agw.key="budget_tokens") // thinking内容的最大输出token + 1: optional i64 budget_tokens (agw.key="budget_tokens", api.js_conv="true", go.tag='json:"budget_tokens"') // thinking内容的最大输出token 2: optional ThinkingOption thinking_option (agw.key="thinking_option") 3: optional ReasoningEffort reasoning_effort (agw.key="reasoning_effort") // 思考长度 } @@ -356,4 +356,4 @@ struct PromptCommitVersions { 3: optional string prompt_key 4: optional PromptBasic prompt_basic 5: optional list commit_versions -} \ No newline at end of file +} From a806256e5adb63a639a429bc67e6be127099a884 Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Mon, 2 Mar 2026 20:57:56 +0800 Subject: [PATCH 41/58] Fix prompt openapi draft fetch flow --- backend/modules/prompt/application/openapi.go | 70 +++++++++++++------ 1 file changed, 48 insertions(+), 22 deletions(-) diff --git a/backend/modules/prompt/application/openapi.go b/backend/modules/prompt/application/openapi.go index c574fd310..8e1b967da 100644 --- a/backend/modules/prompt/application/openapi.go +++ b/backend/modules/prompt/application/openapi.go @@ -178,9 +178,6 @@ func (p *PromptOpenAPIApplicationImpl) BatchGetPromptByPromptKey(ctx context.Con // fetchPromptResults 构建返回结果 func (p *PromptOpenAPIApplicationImpl) fetchPromptResults(ctx context.Context, req *openapi.BatchGetPromptByPromptKeyRequest, promptKeyIDMap map[string]int64) (*openapi.BatchGetPromptByPromptKeyResponse, error) { - // 准备查询参数 - var mgetParams []repo.GetPromptParam - // 构建统一的查询参数 var queryParams []service.PromptQueryParam for _, q := range req.Queries { @@ -191,12 +188,13 @@ func (p *PromptOpenAPIApplicationImpl) fetchPromptResults(ctx context.Context, r if !exists { continue // 如果找不到对应的 prompt ID,跳过该查询 } - queryParams = append(queryParams, service.PromptQueryParam{ + queryParam := service.PromptQueryParam{ PromptID: promptID, PromptKey: q.GetPromptKey(), Version: q.GetVersion(), Label: q.GetLabel(), - }) + } + queryParams = append(queryParams, queryParam) } // 使用统一的方法解析版本信息 @@ -204,6 +202,10 @@ func (p *PromptOpenAPIApplicationImpl) fetchPromptResults(ctx context.Context, r if err != nil { return nil, err } + + // 准备查询参数 + var commitParams []repo.GetPromptParam + var draftParams []repo.GetPromptParam for _, query := range req.Queries { if query == nil { continue @@ -229,41 +231,65 @@ func (p *PromptOpenAPIApplicationImpl) fetchPromptResults(ctx context.Context, r if commitVersion != consts.PromptPersonalDraftVersion { param.WithCommit = true param.CommitVersion = commitVersion + commitParams = append(commitParams, param) } else { param.WithDraft = true - if userID, ok := p.user.GetUserIdInCtx(ctx); ok { - param.UserID = userID + userID, ok := p.user.GetUserIdInCtx(ctx) + if !ok || userID == "" { + return nil, errorx.NewByCode(prompterr.CommonNoPermissionCode, errorx.WithExtraMsg("user not found")) } + param.UserID = userID + draftParams = append(draftParams, param) } - mgetParams = append(mgetParams, param) } // 获取prompt详细信息 - prompts, err := p.promptManageRepo.MGetPrompt(ctx, mgetParams, repo.WithPromptCacheEnable()) - if err != nil { - if bizErr, ok := errorx.FromStatusError(err); ok && bizErr.Code() == prompterr.PromptVersionNotExistCode { - extra := bizErr.Extra() - for promptKey, promptID := range promptKeyIDMap { - if extra["prompt_id"] == strconv.FormatInt(promptID, 10) { - extra["prompt_key"] = promptKey - break + prompts := make(map[repo.GetPromptParam]*entity.Prompt) + if len(commitParams) > 0 { + commitPromptMap, err := p.promptManageRepo.MGetPrompt(ctx, commitParams, repo.WithPromptCacheEnable()) + if err != nil { + if bizErr, ok := errorx.FromStatusError(err); ok && bizErr.Code() == prompterr.PromptVersionNotExistCode { + extra := bizErr.Extra() + for promptKey, promptID := range promptKeyIDMap { + if extra["prompt_id"] == strconv.FormatInt(promptID, 10) { + extra["prompt_key"] = promptKey + break + } } + bizErr.WithExtra(extra) } - bizErr.WithExtra(extra) + return nil, err + } + for queryParam, prompt := range commitPromptMap { + prompts[queryParam] = prompt + } + } + if len(draftParams) > 0 { + draftPromptMap, err := p.promptManageRepo.MGetPrompt(ctx, draftParams) + if err != nil { + return nil, err + } + for queryParam, prompt := range draftPromptMap { + prompts[queryParam] = prompt } - return nil, err } // 展开片段内容(若有),构建版本映射 promptMap := make(map[service.PromptKeyVersionPair]*entity.Prompt) - for _, prompt := range maps.Values(prompts) { - err = p.promptService.ExpandSnippets(ctx, prompt) - if err != nil { + for queryParam, prompt := range prompts { + if prompt == nil { + continue + } + if err := p.promptService.ExpandSnippets(ctx, prompt); err != nil { return nil, err } + version := queryParam.CommitVersion + if queryParam.WithDraft { + version = consts.PromptPersonalDraftVersion + } promptMap[service.PromptKeyVersionPair{ PromptKey: prompt.PromptKey, - Version: prompt.GetVersion(), + Version: version, }] = prompt } From ad35ad18a02acdebe1cc5e3f447570ff8ff12e8d Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Thu, 5 Mar 2026 17:32:36 +0800 Subject: [PATCH 42/58] feat(prompt-openapi): add execute compatibility fields and align behavior --- .../openapi/coze.loop.prompt.openapi.go | 1483 ++++++++++++++++- .../coze.loop.prompt.openapi_validator.go | 24 + .../openapi/k-coze.loop.prompt.openapi.go | 941 +++++++++++ backend/modules/prompt/application/openapi.go | 145 +- .../openapi_custom_overrides_test.go | 48 + .../openapi_request_normalize_test.go | 61 + .../prompt/coze.loop.prompt.openapi.thrift | 36 + 7 files changed, 2705 insertions(+), 33 deletions(-) create mode 100644 backend/modules/prompt/application/openapi_request_normalize_test.go diff --git a/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi.go b/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi.go index 37cf07fea..8739c53cb 100644 --- a/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi.go +++ b/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi.go @@ -286,6 +286,112 @@ func (p *ThinkingOption) Value() (driver.Value, error) { return int64(*p), nil } +type AccountMode int64 + +const ( + // 使用共享模型账号 + AccountMode_SharedAccount AccountMode = 1 + // 使用自定义模型账号 + AccountMode_CustomAccount AccountMode = 2 +) + +func (p AccountMode) String() string { + switch p { + case AccountMode_SharedAccount: + return "SharedAccount" + case AccountMode_CustomAccount: + return "CustomAccount" + } + return "" +} + +func AccountModeFromString(s string) (AccountMode, error) { + switch s { + case "SharedAccount": + return AccountMode_SharedAccount, nil + case "CustomAccount": + return AccountMode_CustomAccount, nil + } + return AccountMode(0), fmt.Errorf("not a valid AccountMode string") +} + +func AccountModePtr(v AccountMode) *AccountMode { return &v } +func (p *AccountMode) Scan(value interface{}) (err error) { + var result sql.NullInt64 + err = result.Scan(value) + *p = AccountMode(result.Int64) + return +} + +func (p *AccountMode) Value() (driver.Value, error) { + if p == nil { + return nil, nil + } + return int64(*p), nil +} + +type UsageScenario int64 + +const ( + UsageScenario_Default UsageScenario = 1 + UsageScenario_Evaluation UsageScenario = 2 + UsageScenario_PromptAsAService UsageScenario = 3 + UsageScenario_AIAnnotate UsageScenario = 4 + UsageScenario_AIScore UsageScenario = 5 + UsageScenario_AITag UsageScenario = 6 +) + +func (p UsageScenario) String() string { + switch p { + case UsageScenario_Default: + return "Default" + case UsageScenario_Evaluation: + return "Evaluation" + case UsageScenario_PromptAsAService: + return "PromptAsAService" + case UsageScenario_AIAnnotate: + return "AIAnnotate" + case UsageScenario_AIScore: + return "AIScore" + case UsageScenario_AITag: + return "AITag" + } + return "" +} + +func UsageScenarioFromString(s string) (UsageScenario, error) { + switch s { + case "Default": + return UsageScenario_Default, nil + case "Evaluation": + return UsageScenario_Evaluation, nil + case "PromptAsAService": + return UsageScenario_PromptAsAService, nil + case "AIAnnotate": + return UsageScenario_AIAnnotate, nil + case "AIScore": + return UsageScenario_AIScore, nil + case "AITag": + return UsageScenario_AITag, nil + } + return UsageScenario(0), fmt.Errorf("not a valid UsageScenario string") +} + +func UsageScenarioPtr(v UsageScenario) *UsageScenario { return &v } +func (p *UsageScenario) Scan(value interface{}) (err error) { + var result sql.NullInt64 + err = result.Scan(value) + *p = UsageScenario(result.Int64) + return +} + +func (p *UsageScenario) Value() (driver.Value, error) { + if p == nil { + return nil, nil + } + return int64(*p), nil +} + type PromptType = string type TemplateType = string @@ -1263,7 +1369,19 @@ type ExecuteRequest struct { CustomModelConfig *ModelConfig `thrift:"custom_model_config,22,optional" frugal:"22,optional,ModelConfig" form:"custom_model_config" json:"custom_model_config,omitempty"` // response api 配置 ResponseAPIConfig *ResponseAPIConfig `thrift:"response_api_config,23,optional" frugal:"23,optional,ResponseAPIConfig" form:"response_api_config" json:"response_api_config,omitempty"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` + // 账号模式(兼容字段) + AccountMode *AccountMode `thrift:"account_mode,24,optional" frugal:"24,optional,AccountMode" form:"account_mode" json:"account_mode,omitempty"` + // 自定义模型账号(兼容字段) + CustomAccounts []*CustomAccount `thrift:"custom_accounts,25,optional" frugal:"25,optional,list" form:"custom_accounts" json:"custom_accounts,omitempty"` + // 使用场景(兼容字段) + UsageScenario *UsageScenario `thrift:"usage_scenario,26,optional" frugal:"26,optional,UsageScenario" form:"usage_scenario" json:"usage_scenario,omitempty"` + // 请求额外参数(兼容字段) + RequestExtra *RequestExtra `thrift:"request_extra,27,optional" frugal:"27,optional,RequestExtra" form:"request_extra" json:"request_extra,omitempty"` + // 发布标签(兼容字段) + ReleaseLabel *string `thrift:"release_label,28,optional" frugal:"28,optional,string" form:"release_label" json:"release_label,omitempty"` + // 自定义工具配置(兼容字段) + CustomToolConfig *ToolCallConfig `thrift:"custom_tool_config,29,optional" frugal:"29,optional,ToolCallConfig" form:"custom_tool_config" json:"custom_tool_config,omitempty"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } func NewExecuteRequest() *ExecuteRequest { @@ -1369,6 +1487,78 @@ func (p *ExecuteRequest) GetResponseAPIConfig() (v *ResponseAPIConfig) { return p.ResponseAPIConfig } +var ExecuteRequest_AccountMode_DEFAULT AccountMode + +func (p *ExecuteRequest) GetAccountMode() (v AccountMode) { + if p == nil { + return + } + if !p.IsSetAccountMode() { + return ExecuteRequest_AccountMode_DEFAULT + } + return *p.AccountMode +} + +var ExecuteRequest_CustomAccounts_DEFAULT []*CustomAccount + +func (p *ExecuteRequest) GetCustomAccounts() (v []*CustomAccount) { + if p == nil { + return + } + if !p.IsSetCustomAccounts() { + return ExecuteRequest_CustomAccounts_DEFAULT + } + return p.CustomAccounts +} + +var ExecuteRequest_UsageScenario_DEFAULT UsageScenario + +func (p *ExecuteRequest) GetUsageScenario() (v UsageScenario) { + if p == nil { + return + } + if !p.IsSetUsageScenario() { + return ExecuteRequest_UsageScenario_DEFAULT + } + return *p.UsageScenario +} + +var ExecuteRequest_RequestExtra_DEFAULT *RequestExtra + +func (p *ExecuteRequest) GetRequestExtra() (v *RequestExtra) { + if p == nil { + return + } + if !p.IsSetRequestExtra() { + return ExecuteRequest_RequestExtra_DEFAULT + } + return p.RequestExtra +} + +var ExecuteRequest_ReleaseLabel_DEFAULT string + +func (p *ExecuteRequest) GetReleaseLabel() (v string) { + if p == nil { + return + } + if !p.IsSetReleaseLabel() { + return ExecuteRequest_ReleaseLabel_DEFAULT + } + return *p.ReleaseLabel +} + +var ExecuteRequest_CustomToolConfig_DEFAULT *ToolCallConfig + +func (p *ExecuteRequest) GetCustomToolConfig() (v *ToolCallConfig) { + if p == nil { + return + } + if !p.IsSetCustomToolConfig() { + return ExecuteRequest_CustomToolConfig_DEFAULT + } + return p.CustomToolConfig +} + var ExecuteRequest_Base_DEFAULT *base.Base func (p *ExecuteRequest) GetBase() (v *base.Base) { @@ -1404,6 +1594,24 @@ func (p *ExecuteRequest) SetCustomModelConfig(val *ModelConfig) { func (p *ExecuteRequest) SetResponseAPIConfig(val *ResponseAPIConfig) { p.ResponseAPIConfig = val } +func (p *ExecuteRequest) SetAccountMode(val *AccountMode) { + p.AccountMode = val +} +func (p *ExecuteRequest) SetCustomAccounts(val []*CustomAccount) { + p.CustomAccounts = val +} +func (p *ExecuteRequest) SetUsageScenario(val *UsageScenario) { + p.UsageScenario = val +} +func (p *ExecuteRequest) SetRequestExtra(val *RequestExtra) { + p.RequestExtra = val +} +func (p *ExecuteRequest) SetReleaseLabel(val *string) { + p.ReleaseLabel = val +} +func (p *ExecuteRequest) SetCustomToolConfig(val *ToolCallConfig) { + p.CustomToolConfig = val +} func (p *ExecuteRequest) SetBase(val *base.Base) { p.Base = val } @@ -1417,6 +1625,12 @@ var fieldIDToName_ExecuteRequest = map[int16]string{ 21: "custom_tool_call_config", 22: "custom_model_config", 23: "response_api_config", + 24: "account_mode", + 25: "custom_accounts", + 26: "usage_scenario", + 27: "request_extra", + 28: "release_label", + 29: "custom_tool_config", 255: "Base", } @@ -1452,6 +1666,30 @@ func (p *ExecuteRequest) IsSetResponseAPIConfig() bool { return p.ResponseAPIConfig != nil } +func (p *ExecuteRequest) IsSetAccountMode() bool { + return p.AccountMode != nil +} + +func (p *ExecuteRequest) IsSetCustomAccounts() bool { + return p.CustomAccounts != nil +} + +func (p *ExecuteRequest) IsSetUsageScenario() bool { + return p.UsageScenario != nil +} + +func (p *ExecuteRequest) IsSetRequestExtra() bool { + return p.RequestExtra != nil +} + +func (p *ExecuteRequest) IsSetReleaseLabel() bool { + return p.ReleaseLabel != nil +} + +func (p *ExecuteRequest) IsSetCustomToolConfig() bool { + return p.CustomToolConfig != nil +} + func (p *ExecuteRequest) IsSetBase() bool { return p.Base != nil } @@ -1538,6 +1776,54 @@ func (p *ExecuteRequest) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 24: + if fieldTypeId == thrift.I32 { + if err = p.ReadField24(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 25: + if fieldTypeId == thrift.LIST { + if err = p.ReadField25(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 26: + if fieldTypeId == thrift.I32 { + if err = p.ReadField26(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 27: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField27(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 28: + if fieldTypeId == thrift.STRING { + if err = p.ReadField28(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 29: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField29(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } case 255: if fieldTypeId == thrift.STRUCT { if err = p.ReadField255(iprot); err != nil { @@ -1687,6 +1973,80 @@ func (p *ExecuteRequest) ReadField23(iprot thrift.TProtocol) error { p.ResponseAPIConfig = _field return nil } +func (p *ExecuteRequest) ReadField24(iprot thrift.TProtocol) error { + + var _field *AccountMode + if v, err := iprot.ReadI32(); err != nil { + return err + } else { + tmp := AccountMode(v) + _field = &tmp + } + p.AccountMode = _field + return nil +} +func (p *ExecuteRequest) ReadField25(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*CustomAccount, 0, size) + values := make([]CustomAccount, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + + if err := _elem.Read(iprot); err != nil { + return err + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { + return err + } + p.CustomAccounts = _field + return nil +} +func (p *ExecuteRequest) ReadField26(iprot thrift.TProtocol) error { + + var _field *UsageScenario + if v, err := iprot.ReadI32(); err != nil { + return err + } else { + tmp := UsageScenario(v) + _field = &tmp + } + p.UsageScenario = _field + return nil +} +func (p *ExecuteRequest) ReadField27(iprot thrift.TProtocol) error { + _field := NewRequestExtra() + if err := _field.Read(iprot); err != nil { + return err + } + p.RequestExtra = _field + return nil +} +func (p *ExecuteRequest) ReadField28(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.ReleaseLabel = _field + return nil +} +func (p *ExecuteRequest) ReadField29(iprot thrift.TProtocol) error { + _field := NewToolCallConfig() + if err := _field.Read(iprot); err != nil { + return err + } + p.CustomToolConfig = _field + return nil +} func (p *ExecuteRequest) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBase() if err := _field.Read(iprot); err != nil { @@ -1734,6 +2094,30 @@ func (p *ExecuteRequest) Write(oprot thrift.TProtocol) (err error) { fieldId = 23 goto WriteFieldError } + if err = p.writeField24(oprot); err != nil { + fieldId = 24 + goto WriteFieldError + } + if err = p.writeField25(oprot); err != nil { + fieldId = 25 + goto WriteFieldError + } + if err = p.writeField26(oprot); err != nil { + fieldId = 26 + goto WriteFieldError + } + if err = p.writeField27(oprot); err != nil { + fieldId = 27 + goto WriteFieldError + } + if err = p.writeField28(oprot); err != nil { + fieldId = 28 + goto WriteFieldError + } + if err = p.writeField29(oprot); err != nil { + fieldId = 29 + goto WriteFieldError + } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -1924,12 +2308,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 23 end error: ", p), err) } -func (p *ExecuteRequest) writeField255(oprot thrift.TProtocol) (err error) { - if p.IsSetBase() { - if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { +func (p *ExecuteRequest) writeField24(oprot thrift.TProtocol) (err error) { + if p.IsSetAccountMode() { + if err = oprot.WriteFieldBegin("account_mode", thrift.I32, 24); err != nil { goto WriteFieldBeginError } - if err := p.Base.Write(oprot); err != nil { + if err := oprot.WriteI32(int32(*p.AccountMode)); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -1938,30 +2322,146 @@ func (p *ExecuteRequest) writeField255(oprot thrift.TProtocol) (err error) { } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 255 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 24 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 24 end error: ", p), err) } - -func (p *ExecuteRequest) String() string { - if p == nil { - return "" +func (p *ExecuteRequest) writeField25(oprot thrift.TProtocol) (err error) { + if p.IsSetCustomAccounts() { + if err = oprot.WriteFieldBegin("custom_accounts", thrift.LIST, 25); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.CustomAccounts)); err != nil { + return err + } + for _, v := range p.CustomAccounts { + if err := v.Write(oprot); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } - return fmt.Sprintf("ExecuteRequest(%+v)", *p) - + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 25 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 25 end error: ", p), err) } - -func (p *ExecuteRequest) DeepEqual(ano *ExecuteRequest) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.WorkspaceID) { - return false - } - if !p.Field2DeepEqual(ano.PromptIdentifier) { - return false +func (p *ExecuteRequest) writeField26(oprot thrift.TProtocol) (err error) { + if p.IsSetUsageScenario() { + if err = oprot.WriteFieldBegin("usage_scenario", thrift.I32, 26); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(int32(*p.UsageScenario)); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 26 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 26 end error: ", p), err) +} +func (p *ExecuteRequest) writeField27(oprot thrift.TProtocol) (err error) { + if p.IsSetRequestExtra() { + if err = oprot.WriteFieldBegin("request_extra", thrift.STRUCT, 27); err != nil { + goto WriteFieldBeginError + } + if err := p.RequestExtra.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 27 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 27 end error: ", p), err) +} +func (p *ExecuteRequest) writeField28(oprot thrift.TProtocol) (err error) { + if p.IsSetReleaseLabel() { + if err = oprot.WriteFieldBegin("release_label", thrift.STRING, 28); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.ReleaseLabel); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 28 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 28 end error: ", p), err) +} +func (p *ExecuteRequest) writeField29(oprot thrift.TProtocol) (err error) { + if p.IsSetCustomToolConfig() { + if err = oprot.WriteFieldBegin("custom_tool_config", thrift.STRUCT, 29); err != nil { + goto WriteFieldBeginError + } + if err := p.CustomToolConfig.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 29 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 29 end error: ", p), err) +} +func (p *ExecuteRequest) writeField255(oprot thrift.TProtocol) (err error) { + if p.IsSetBase() { + if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { + goto WriteFieldBeginError + } + if err := p.Base.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) +} + +func (p *ExecuteRequest) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("ExecuteRequest(%+v)", *p) + +} + +func (p *ExecuteRequest) DeepEqual(ano *ExecuteRequest) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.WorkspaceID) { + return false + } + if !p.Field2DeepEqual(ano.PromptIdentifier) { + return false } if !p.Field10DeepEqual(ano.VariableVals) { return false @@ -1981,6 +2481,24 @@ func (p *ExecuteRequest) DeepEqual(ano *ExecuteRequest) bool { if !p.Field23DeepEqual(ano.ResponseAPIConfig) { return false } + if !p.Field24DeepEqual(ano.AccountMode) { + return false + } + if !p.Field25DeepEqual(ano.CustomAccounts) { + return false + } + if !p.Field26DeepEqual(ano.UsageScenario) { + return false + } + if !p.Field27DeepEqual(ano.RequestExtra) { + return false + } + if !p.Field28DeepEqual(ano.ReleaseLabel) { + return false + } + if !p.Field29DeepEqual(ano.CustomToolConfig) { + return false + } if !p.Field255DeepEqual(ano.Base) { return false } @@ -2066,6 +2584,69 @@ func (p *ExecuteRequest) Field23DeepEqual(src *ResponseAPIConfig) bool { } return true } +func (p *ExecuteRequest) Field24DeepEqual(src *AccountMode) bool { + + if p.AccountMode == src { + return true + } else if p.AccountMode == nil || src == nil { + return false + } + if *p.AccountMode != *src { + return false + } + return true +} +func (p *ExecuteRequest) Field25DeepEqual(src []*CustomAccount) bool { + + if len(p.CustomAccounts) != len(src) { + return false + } + for i, v := range p.CustomAccounts { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } + return true +} +func (p *ExecuteRequest) Field26DeepEqual(src *UsageScenario) bool { + + if p.UsageScenario == src { + return true + } else if p.UsageScenario == nil || src == nil { + return false + } + if *p.UsageScenario != *src { + return false + } + return true +} +func (p *ExecuteRequest) Field27DeepEqual(src *RequestExtra) bool { + + if !p.RequestExtra.DeepEqual(src) { + return false + } + return true +} +func (p *ExecuteRequest) Field28DeepEqual(src *string) bool { + + if p.ReleaseLabel == src { + return true + } else if p.ReleaseLabel == nil || src == nil { + return false + } + if strings.Compare(*p.ReleaseLabel, *src) != 0 { + return false + } + return true +} +func (p *ExecuteRequest) Field29DeepEqual(src *ToolCallConfig) bool { + + if !p.CustomToolConfig.DeepEqual(src) { + return false + } + return true +} func (p *ExecuteRequest) Field255DeepEqual(src *base.Base) bool { if !p.Base.DeepEqual(src) { @@ -14450,7 +15031,7 @@ type PromptPublishInfo struct { // 发布描述 PublishDescription string `thrift:"publish_description,2" frugal:"2,default,string" form:"publish_description" json:"publish_description" query:"publish_description"` // 发布时间 - PublishAt *int64 `thrift:"publish_at,3,optional" frugal:"3,optional,i64" form:"publish_at" json:"publish_at,omitempty" query:"publish_at"` + PublishAt *int64 `thrift:"publish_at,3,optional" frugal:"3,optional,i64" json:"publish_at" form:"publish_at" query:"publish_at"` } func NewPromptPublishInfo() *PromptPublishInfo { @@ -14752,7 +15333,7 @@ func (p *PromptPublishInfo) Field3DeepEqual(src *int64) bool { type ThinkingConfig struct { // thinking内容的最大输出token - BudgetTokens *int64 `thrift:"budget_tokens,1,optional" frugal:"1,optional,i64" form:"budget_tokens" json:"budget_tokens,omitempty" query:"budget_tokens"` + BudgetTokens *int64 `thrift:"budget_tokens,1,optional" frugal:"1,optional,i64" json:"budget_tokens" form:"budget_tokens" query:"budget_tokens"` ThinkingOption *ThinkingOption `thrift:"thinking_option,2,optional" frugal:"2,optional,ThinkingOption" form:"thinking_option" json:"thinking_option,omitempty" query:"thinking_option"` // 思考长度 ReasoningEffort *ReasoningEffort `thrift:"reasoning_effort,3,optional" frugal:"3,optional,ReasoningEffort" form:"reasoning_effort" json:"reasoning_effort,omitempty" query:"reasoning_effort"` @@ -16391,6 +16972,854 @@ func (p *ResponseAPIConfig) Field3DeepEqual(src *string) bool { return true } +type RequestExtra struct { + // GPT OpenAPI 平台透传参数 + GptOpenAPIExtra *string `thrift:"gpt_open_api_extra,1,optional" frugal:"1,optional,string" form:"gpt_open_api_extra" json:"gpt_open_api_extra,omitempty" query:"gpt_open_api_extra"` +} + +func NewRequestExtra() *RequestExtra { + return &RequestExtra{} +} + +func (p *RequestExtra) InitDefault() { +} + +var RequestExtra_GptOpenAPIExtra_DEFAULT string + +func (p *RequestExtra) GetGptOpenAPIExtra() (v string) { + if p == nil { + return + } + if !p.IsSetGptOpenAPIExtra() { + return RequestExtra_GptOpenAPIExtra_DEFAULT + } + return *p.GptOpenAPIExtra +} +func (p *RequestExtra) SetGptOpenAPIExtra(val *string) { + p.GptOpenAPIExtra = val +} + +var fieldIDToName_RequestExtra = map[int16]string{ + 1: "gpt_open_api_extra", +} + +func (p *RequestExtra) IsSetGptOpenAPIExtra() bool { + return p.GptOpenAPIExtra != nil +} + +func (p *RequestExtra) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_RequestExtra[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *RequestExtra) ReadField1(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.GptOpenAPIExtra = _field + return nil +} + +func (p *RequestExtra) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("RequestExtra"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *RequestExtra) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetGptOpenAPIExtra() { + if err = oprot.WriteFieldBegin("gpt_open_api_extra", thrift.STRING, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.GptOpenAPIExtra); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} + +func (p *RequestExtra) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("RequestExtra(%+v)", *p) + +} + +func (p *RequestExtra) DeepEqual(ano *RequestExtra) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.GptOpenAPIExtra) { + return false + } + return true +} + +func (p *RequestExtra) Field1DeepEqual(src *string) bool { + + if p.GptOpenAPIExtra == src { + return true + } else if p.GptOpenAPIExtra == nil || src == nil { + return false + } + if strings.Compare(*p.GptOpenAPIExtra, *src) != 0 { + return false + } + return true +} + +type SkyLarkAccountExtra struct { + AccessKey *string `thrift:"access_key,1,optional" frugal:"1,optional,string" form:"access_key" json:"access_key,omitempty" query:"access_key"` + SecretKey *string `thrift:"secret_key,2,optional" frugal:"2,optional,string" form:"secret_key" json:"secret_key,omitempty" query:"secret_key"` +} + +func NewSkyLarkAccountExtra() *SkyLarkAccountExtra { + return &SkyLarkAccountExtra{} +} + +func (p *SkyLarkAccountExtra) InitDefault() { +} + +var SkyLarkAccountExtra_AccessKey_DEFAULT string + +func (p *SkyLarkAccountExtra) GetAccessKey() (v string) { + if p == nil { + return + } + if !p.IsSetAccessKey() { + return SkyLarkAccountExtra_AccessKey_DEFAULT + } + return *p.AccessKey +} + +var SkyLarkAccountExtra_SecretKey_DEFAULT string + +func (p *SkyLarkAccountExtra) GetSecretKey() (v string) { + if p == nil { + return + } + if !p.IsSetSecretKey() { + return SkyLarkAccountExtra_SecretKey_DEFAULT + } + return *p.SecretKey +} +func (p *SkyLarkAccountExtra) SetAccessKey(val *string) { + p.AccessKey = val +} +func (p *SkyLarkAccountExtra) SetSecretKey(val *string) { + p.SecretKey = val +} + +var fieldIDToName_SkyLarkAccountExtra = map[int16]string{ + 1: "access_key", + 2: "secret_key", +} + +func (p *SkyLarkAccountExtra) IsSetAccessKey() bool { + return p.AccessKey != nil +} + +func (p *SkyLarkAccountExtra) IsSetSecretKey() bool { + return p.SecretKey != nil +} + +func (p *SkyLarkAccountExtra) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.STRING { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_SkyLarkAccountExtra[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *SkyLarkAccountExtra) ReadField1(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.AccessKey = _field + return nil +} +func (p *SkyLarkAccountExtra) ReadField2(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.SecretKey = _field + return nil +} + +func (p *SkyLarkAccountExtra) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("SkyLarkAccountExtra"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *SkyLarkAccountExtra) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetAccessKey() { + if err = oprot.WriteFieldBegin("access_key", thrift.STRING, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.AccessKey); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *SkyLarkAccountExtra) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetSecretKey() { + if err = oprot.WriteFieldBegin("secret_key", thrift.STRING, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.SecretKey); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} + +func (p *SkyLarkAccountExtra) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("SkyLarkAccountExtra(%+v)", *p) + +} + +func (p *SkyLarkAccountExtra) DeepEqual(ano *SkyLarkAccountExtra) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.AccessKey) { + return false + } + if !p.Field2DeepEqual(ano.SecretKey) { + return false + } + return true +} + +func (p *SkyLarkAccountExtra) Field1DeepEqual(src *string) bool { + + if p.AccessKey == src { + return true + } else if p.AccessKey == nil || src == nil { + return false + } + if strings.Compare(*p.AccessKey, *src) != 0 { + return false + } + return true +} +func (p *SkyLarkAccountExtra) Field2DeepEqual(src *string) bool { + + if p.SecretKey == src { + return true + } else if p.SecretKey == nil || src == nil { + return false + } + if strings.Compare(*p.SecretKey, *src) != 0 { + return false + } + return true +} + +type CustomAccount struct { + // 模型名称 + ModelName *string `thrift:"model_name,1,optional" frugal:"1,optional,string" form:"model_name" json:"model_name,omitempty" query:"model_name"` + // 模型账号 + APIKey *string `thrift:"api_key,2,optional" frugal:"2,optional,string" form:"api_key" json:"api_key,omitempty" query:"api_key"` + // SkyLark账号扩展 + SkyLarkAccountExtra *SkyLarkAccountExtra `thrift:"sky_lark_account_extra,3,optional" frugal:"3,optional,SkyLarkAccountExtra" form:"sky_lark_account_extra" json:"sky_lark_account_extra,omitempty" query:"sky_lark_account_extra"` + // connector id + ConnectorID *int64 `thrift:"connector_id,4,optional" frugal:"4,optional,i64" json:"connector_id" form:"connector_id" query:"connector_id"` +} + +func NewCustomAccount() *CustomAccount { + return &CustomAccount{} +} + +func (p *CustomAccount) InitDefault() { +} + +var CustomAccount_ModelName_DEFAULT string + +func (p *CustomAccount) GetModelName() (v string) { + if p == nil { + return + } + if !p.IsSetModelName() { + return CustomAccount_ModelName_DEFAULT + } + return *p.ModelName +} + +var CustomAccount_APIKey_DEFAULT string + +func (p *CustomAccount) GetAPIKey() (v string) { + if p == nil { + return + } + if !p.IsSetAPIKey() { + return CustomAccount_APIKey_DEFAULT + } + return *p.APIKey +} + +var CustomAccount_SkyLarkAccountExtra_DEFAULT *SkyLarkAccountExtra + +func (p *CustomAccount) GetSkyLarkAccountExtra() (v *SkyLarkAccountExtra) { + if p == nil { + return + } + if !p.IsSetSkyLarkAccountExtra() { + return CustomAccount_SkyLarkAccountExtra_DEFAULT + } + return p.SkyLarkAccountExtra +} + +var CustomAccount_ConnectorID_DEFAULT int64 + +func (p *CustomAccount) GetConnectorID() (v int64) { + if p == nil { + return + } + if !p.IsSetConnectorID() { + return CustomAccount_ConnectorID_DEFAULT + } + return *p.ConnectorID +} +func (p *CustomAccount) SetModelName(val *string) { + p.ModelName = val +} +func (p *CustomAccount) SetAPIKey(val *string) { + p.APIKey = val +} +func (p *CustomAccount) SetSkyLarkAccountExtra(val *SkyLarkAccountExtra) { + p.SkyLarkAccountExtra = val +} +func (p *CustomAccount) SetConnectorID(val *int64) { + p.ConnectorID = val +} + +var fieldIDToName_CustomAccount = map[int16]string{ + 1: "model_name", + 2: "api_key", + 3: "sky_lark_account_extra", + 4: "connector_id", +} + +func (p *CustomAccount) IsSetModelName() bool { + return p.ModelName != nil +} + +func (p *CustomAccount) IsSetAPIKey() bool { + return p.APIKey != nil +} + +func (p *CustomAccount) IsSetSkyLarkAccountExtra() bool { + return p.SkyLarkAccountExtra != nil +} + +func (p *CustomAccount) IsSetConnectorID() bool { + return p.ConnectorID != nil +} + +func (p *CustomAccount) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.STRING { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 4: + if fieldTypeId == thrift.I64 { + if err = p.ReadField4(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_CustomAccount[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *CustomAccount) ReadField1(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.ModelName = _field + return nil +} +func (p *CustomAccount) ReadField2(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.APIKey = _field + return nil +} +func (p *CustomAccount) ReadField3(iprot thrift.TProtocol) error { + _field := NewSkyLarkAccountExtra() + if err := _field.Read(iprot); err != nil { + return err + } + p.SkyLarkAccountExtra = _field + return nil +} +func (p *CustomAccount) ReadField4(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.ConnectorID = _field + return nil +} + +func (p *CustomAccount) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("CustomAccount"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } + if err = p.writeField4(oprot); err != nil { + fieldId = 4 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *CustomAccount) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetModelName() { + if err = oprot.WriteFieldBegin("model_name", thrift.STRING, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.ModelName); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *CustomAccount) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetAPIKey() { + if err = oprot.WriteFieldBegin("api_key", thrift.STRING, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.APIKey); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} +func (p *CustomAccount) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetSkyLarkAccountExtra() { + if err = oprot.WriteFieldBegin("sky_lark_account_extra", thrift.STRUCT, 3); err != nil { + goto WriteFieldBeginError + } + if err := p.SkyLarkAccountExtra.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) +} +func (p *CustomAccount) writeField4(oprot thrift.TProtocol) (err error) { + if p.IsSetConnectorID() { + if err = oprot.WriteFieldBegin("connector_id", thrift.I64, 4); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.ConnectorID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) +} + +func (p *CustomAccount) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("CustomAccount(%+v)", *p) + +} + +func (p *CustomAccount) DeepEqual(ano *CustomAccount) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.ModelName) { + return false + } + if !p.Field2DeepEqual(ano.APIKey) { + return false + } + if !p.Field3DeepEqual(ano.SkyLarkAccountExtra) { + return false + } + if !p.Field4DeepEqual(ano.ConnectorID) { + return false + } + return true +} + +func (p *CustomAccount) Field1DeepEqual(src *string) bool { + + if p.ModelName == src { + return true + } else if p.ModelName == nil || src == nil { + return false + } + if strings.Compare(*p.ModelName, *src) != 0 { + return false + } + return true +} +func (p *CustomAccount) Field2DeepEqual(src *string) bool { + + if p.APIKey == src { + return true + } else if p.APIKey == nil || src == nil { + return false + } + if strings.Compare(*p.APIKey, *src) != 0 { + return false + } + return true +} +func (p *CustomAccount) Field3DeepEqual(src *SkyLarkAccountExtra) bool { + + if !p.SkyLarkAccountExtra.DeepEqual(src) { + return false + } + return true +} +func (p *CustomAccount) Field4DeepEqual(src *int64) bool { + + if p.ConnectorID == src { + return true + } else if p.ConnectorID == nil || src == nil { + return false + } + if *p.ConnectorID != *src { + return false + } + return true +} + type ParamConfigValue struct { // 传给下游模型的key,与ParamSchema.name对齐 Name *string `thrift:"name,1,optional" frugal:"1,optional,string" form:"name" json:"name,omitempty" query:"name"` diff --git a/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi_validator.go b/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi_validator.go index 42d066830..8a7642b2d 100644 --- a/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi_validator.go +++ b/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi_validator.go @@ -66,6 +66,16 @@ func (p *ExecuteRequest) IsValid() error { return fmt.Errorf("field ResponseAPIConfig not valid, %w", err) } } + if p.RequestExtra != nil { + if err := p.RequestExtra.IsValid(); err != nil { + return fmt.Errorf("field RequestExtra not valid, %w", err) + } + } + if p.CustomToolConfig != nil { + if err := p.CustomToolConfig.IsValid(); err != nil { + return fmt.Errorf("field CustomToolConfig not valid, %w", err) + } + } if p.Base != nil { if err := p.Base.IsValid(); err != nil { return fmt.Errorf("field Base not valid, %w", err) @@ -296,6 +306,20 @@ func (p *ModelConfig) IsValid() error { func (p *ResponseAPIConfig) IsValid() error { return nil } +func (p *RequestExtra) IsValid() error { + return nil +} +func (p *SkyLarkAccountExtra) IsValid() error { + return nil +} +func (p *CustomAccount) IsValid() error { + if p.SkyLarkAccountExtra != nil { + if err := p.SkyLarkAccountExtra.IsValid(); err != nil { + return fmt.Errorf("field SkyLarkAccountExtra not valid, %w", err) + } + } + return nil +} func (p *ParamConfigValue) IsValid() error { if p.Value != nil { if err := p.Value.IsValid(); err != nil { diff --git a/backend/kitex_gen/coze/loop/prompt/openapi/k-coze.loop.prompt.openapi.go b/backend/kitex_gen/coze/loop/prompt/openapi/k-coze.loop.prompt.openapi.go index f2b854311..84ba446e9 100644 --- a/backend/kitex_gen/coze/loop/prompt/openapi/k-coze.loop.prompt.openapi.go +++ b/backend/kitex_gen/coze/loop/prompt/openapi/k-coze.loop.prompt.openapi.go @@ -847,6 +847,90 @@ func (p *ExecuteRequest) FastRead(buf []byte) (int, error) { goto SkipFieldError } } + case 24: + if fieldTypeId == thrift.I32 { + l, err = p.FastReadField24(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 25: + if fieldTypeId == thrift.LIST { + l, err = p.FastReadField25(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 26: + if fieldTypeId == thrift.I32 { + l, err = p.FastReadField26(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 27: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField27(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 28: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField28(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 29: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField29(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } case 255: if fieldTypeId == thrift.STRUCT { l, err = p.FastReadField255(buf[offset:]) @@ -1016,6 +1100,101 @@ func (p *ExecuteRequest) FastReadField23(buf []byte) (int, error) { return offset, nil } +func (p *ExecuteRequest) FastReadField24(buf []byte) (int, error) { + offset := 0 + + var _field *AccountMode + if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + + tmp := AccountMode(v) + _field = &tmp + } + p.AccountMode = _field + return offset, nil +} + +func (p *ExecuteRequest) FastReadField25(buf []byte) (int, error) { + offset := 0 + + _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make([]*CustomAccount, 0, size) + values := make([]CustomAccount, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + if l, err := _elem.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + + _field = append(_field, _elem) + } + p.CustomAccounts = _field + return offset, nil +} + +func (p *ExecuteRequest) FastReadField26(buf []byte) (int, error) { + offset := 0 + + var _field *UsageScenario + if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + + tmp := UsageScenario(v) + _field = &tmp + } + p.UsageScenario = _field + return offset, nil +} + +func (p *ExecuteRequest) FastReadField27(buf []byte) (int, error) { + offset := 0 + _field := NewRequestExtra() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.RequestExtra = _field + return offset, nil +} + +func (p *ExecuteRequest) FastReadField28(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.ReleaseLabel = _field + return offset, nil +} + +func (p *ExecuteRequest) FastReadField29(buf []byte) (int, error) { + offset := 0 + _field := NewToolCallConfig() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.CustomToolConfig = _field + return offset, nil +} + func (p *ExecuteRequest) FastReadField255(buf []byte) (int, error) { offset := 0 _field := base.NewBase() @@ -1043,6 +1222,12 @@ func (p *ExecuteRequest) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int offset += p.fastWriteField21(buf[offset:], w) offset += p.fastWriteField22(buf[offset:], w) offset += p.fastWriteField23(buf[offset:], w) + offset += p.fastWriteField24(buf[offset:], w) + offset += p.fastWriteField25(buf[offset:], w) + offset += p.fastWriteField26(buf[offset:], w) + offset += p.fastWriteField27(buf[offset:], w) + offset += p.fastWriteField28(buf[offset:], w) + offset += p.fastWriteField29(buf[offset:], w) offset += p.fastWriteField255(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) @@ -1060,6 +1245,12 @@ func (p *ExecuteRequest) BLength() int { l += p.field21Length() l += p.field22Length() l += p.field23Length() + l += p.field24Length() + l += p.field25Length() + l += p.field26Length() + l += p.field27Length() + l += p.field28Length() + l += p.field29Length() l += p.field255Length() } l += thrift.Binary.FieldStopLength() @@ -1159,6 +1350,67 @@ func (p *ExecuteRequest) fastWriteField23(buf []byte, w thrift.NocopyWriter) int return offset } +func (p *ExecuteRequest) fastWriteField24(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetAccountMode() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 24) + offset += thrift.Binary.WriteI32(buf[offset:], int32(*p.AccountMode)) + } + return offset +} + +func (p *ExecuteRequest) fastWriteField25(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetCustomAccounts() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 25) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.CustomAccounts { + length++ + offset += v.FastWriteNocopy(buf[offset:], w) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) + } + return offset +} + +func (p *ExecuteRequest) fastWriteField26(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetUsageScenario() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 26) + offset += thrift.Binary.WriteI32(buf[offset:], int32(*p.UsageScenario)) + } + return offset +} + +func (p *ExecuteRequest) fastWriteField27(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetRequestExtra() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 27) + offset += p.RequestExtra.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *ExecuteRequest) fastWriteField28(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetReleaseLabel() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 28) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.ReleaseLabel) + } + return offset +} + +func (p *ExecuteRequest) fastWriteField29(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetCustomToolConfig() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 29) + offset += p.CustomToolConfig.FastWriteNocopy(buf[offset:], w) + } + return offset +} + func (p *ExecuteRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetBase() { @@ -1252,6 +1504,64 @@ func (p *ExecuteRequest) field23Length() int { return l } +func (p *ExecuteRequest) field24Length() int { + l := 0 + if p.IsSetAccountMode() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I32Length() + } + return l +} + +func (p *ExecuteRequest) field25Length() int { + l := 0 + if p.IsSetCustomAccounts() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + for _, v := range p.CustomAccounts { + _ = v + l += v.BLength() + } + } + return l +} + +func (p *ExecuteRequest) field26Length() int { + l := 0 + if p.IsSetUsageScenario() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I32Length() + } + return l +} + +func (p *ExecuteRequest) field27Length() int { + l := 0 + if p.IsSetRequestExtra() { + l += thrift.Binary.FieldBeginLength() + l += p.RequestExtra.BLength() + } + return l +} + +func (p *ExecuteRequest) field28Length() int { + l := 0 + if p.IsSetReleaseLabel() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.ReleaseLabel) + } + return l +} + +func (p *ExecuteRequest) field29Length() int { + l := 0 + if p.IsSetCustomToolConfig() { + l += thrift.Binary.FieldBeginLength() + l += p.CustomToolConfig.BLength() + } + return l +} + func (p *ExecuteRequest) field255Length() int { l := 0 if p.IsSetBase() { @@ -1353,6 +1663,57 @@ func (p *ExecuteRequest) DeepCopy(s interface{}) error { } p.ResponseAPIConfig = _responseAPIConfig + if src.AccountMode != nil { + tmp := *src.AccountMode + p.AccountMode = &tmp + } + + if src.CustomAccounts != nil { + p.CustomAccounts = make([]*CustomAccount, 0, len(src.CustomAccounts)) + for _, elem := range src.CustomAccounts { + var _elem *CustomAccount + if elem != nil { + _elem = &CustomAccount{} + if err := _elem.DeepCopy(elem); err != nil { + return err + } + } + + p.CustomAccounts = append(p.CustomAccounts, _elem) + } + } + + if src.UsageScenario != nil { + tmp := *src.UsageScenario + p.UsageScenario = &tmp + } + + var _requestExtra *RequestExtra + if src.RequestExtra != nil { + _requestExtra = &RequestExtra{} + if err := _requestExtra.DeepCopy(src.RequestExtra); err != nil { + return err + } + } + p.RequestExtra = _requestExtra + + if src.ReleaseLabel != nil { + var tmp string + if *src.ReleaseLabel != "" { + tmp = kutils.StringDeepCopy(*src.ReleaseLabel) + } + p.ReleaseLabel = &tmp + } + + var _customToolConfig *ToolCallConfig + if src.CustomToolConfig != nil { + _customToolConfig = &ToolCallConfig{} + if err := _customToolConfig.DeepCopy(src.CustomToolConfig); err != nil { + return err + } + } + p.CustomToolConfig = _customToolConfig + var _base *base.Base if src.Base != nil { _base = &base.Base{} @@ -11529,6 +11890,586 @@ func (p *ResponseAPIConfig) DeepCopy(s interface{}) error { return nil } +func (p *RequestExtra) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_RequestExtra[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *RequestExtra) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.GptOpenAPIExtra = _field + return offset, nil +} + +func (p *RequestExtra) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *RequestExtra) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *RequestExtra) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *RequestExtra) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetGptOpenAPIExtra() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.GptOpenAPIExtra) + } + return offset +} + +func (p *RequestExtra) field1Length() int { + l := 0 + if p.IsSetGptOpenAPIExtra() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.GptOpenAPIExtra) + } + return l +} + +func (p *RequestExtra) DeepCopy(s interface{}) error { + src, ok := s.(*RequestExtra) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.GptOpenAPIExtra != nil { + var tmp string + if *src.GptOpenAPIExtra != "" { + tmp = kutils.StringDeepCopy(*src.GptOpenAPIExtra) + } + p.GptOpenAPIExtra = &tmp + } + + return nil +} + +func (p *SkyLarkAccountExtra) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_SkyLarkAccountExtra[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *SkyLarkAccountExtra) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.AccessKey = _field + return offset, nil +} + +func (p *SkyLarkAccountExtra) FastReadField2(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.SecretKey = _field + return offset, nil +} + +func (p *SkyLarkAccountExtra) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *SkyLarkAccountExtra) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *SkyLarkAccountExtra) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *SkyLarkAccountExtra) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetAccessKey() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.AccessKey) + } + return offset +} + +func (p *SkyLarkAccountExtra) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetSecretKey() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.SecretKey) + } + return offset +} + +func (p *SkyLarkAccountExtra) field1Length() int { + l := 0 + if p.IsSetAccessKey() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.AccessKey) + } + return l +} + +func (p *SkyLarkAccountExtra) field2Length() int { + l := 0 + if p.IsSetSecretKey() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.SecretKey) + } + return l +} + +func (p *SkyLarkAccountExtra) DeepCopy(s interface{}) error { + src, ok := s.(*SkyLarkAccountExtra) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.AccessKey != nil { + var tmp string + if *src.AccessKey != "" { + tmp = kutils.StringDeepCopy(*src.AccessKey) + } + p.AccessKey = &tmp + } + + if src.SecretKey != nil { + var tmp string + if *src.SecretKey != "" { + tmp = kutils.StringDeepCopy(*src.SecretKey) + } + p.SecretKey = &tmp + } + + return nil +} + +func (p *CustomAccount) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 3: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField3(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 4: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField4(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_CustomAccount[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *CustomAccount) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.ModelName = _field + return offset, nil +} + +func (p *CustomAccount) FastReadField2(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.APIKey = _field + return offset, nil +} + +func (p *CustomAccount) FastReadField3(buf []byte) (int, error) { + offset := 0 + _field := NewSkyLarkAccountExtra() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.SkyLarkAccountExtra = _field + return offset, nil +} + +func (p *CustomAccount) FastReadField4(buf []byte) (int, error) { + offset := 0 + + var _field *int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.ConnectorID = _field + return offset, nil +} + +func (p *CustomAccount) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *CustomAccount) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField4(buf[offset:], w) + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + offset += p.fastWriteField3(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *CustomAccount) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() + l += p.field4Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *CustomAccount) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetModelName() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.ModelName) + } + return offset +} + +func (p *CustomAccount) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetAPIKey() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.APIKey) + } + return offset +} + +func (p *CustomAccount) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetSkyLarkAccountExtra() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 3) + offset += p.SkyLarkAccountExtra.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *CustomAccount) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetConnectorID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 4) + offset += thrift.Binary.WriteI64(buf[offset:], *p.ConnectorID) + } + return offset +} + +func (p *CustomAccount) field1Length() int { + l := 0 + if p.IsSetModelName() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.ModelName) + } + return l +} + +func (p *CustomAccount) field2Length() int { + l := 0 + if p.IsSetAPIKey() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.APIKey) + } + return l +} + +func (p *CustomAccount) field3Length() int { + l := 0 + if p.IsSetSkyLarkAccountExtra() { + l += thrift.Binary.FieldBeginLength() + l += p.SkyLarkAccountExtra.BLength() + } + return l +} + +func (p *CustomAccount) field4Length() int { + l := 0 + if p.IsSetConnectorID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *CustomAccount) DeepCopy(s interface{}) error { + src, ok := s.(*CustomAccount) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.ModelName != nil { + var tmp string + if *src.ModelName != "" { + tmp = kutils.StringDeepCopy(*src.ModelName) + } + p.ModelName = &tmp + } + + if src.APIKey != nil { + var tmp string + if *src.APIKey != "" { + tmp = kutils.StringDeepCopy(*src.APIKey) + } + p.APIKey = &tmp + } + + var _skyLarkAccountExtra *SkyLarkAccountExtra + if src.SkyLarkAccountExtra != nil { + _skyLarkAccountExtra = &SkyLarkAccountExtra{} + if err := _skyLarkAccountExtra.DeepCopy(src.SkyLarkAccountExtra); err != nil { + return err + } + } + p.SkyLarkAccountExtra = _skyLarkAccountExtra + + if src.ConnectorID != nil { + tmp := *src.ConnectorID + p.ConnectorID = &tmp + } + + return nil +} + func (p *ParamConfigValue) FastRead(buf []byte) (int, error) { var err error diff --git a/backend/modules/prompt/application/openapi.go b/backend/modules/prompt/application/openapi.go index 8e1b967da..edd66ddad 100644 --- a/backend/modules/prompt/application/openapi.go +++ b/backend/modules/prompt/application/openapi.go @@ -358,6 +358,8 @@ func (p *PromptOpenAPIApplicationImpl) promptHubAllowBySpace(ctx context.Context } func (p *PromptOpenAPIApplicationImpl) Execute(ctx context.Context, req *openapi.ExecuteRequest) (r *openapi.ExecuteResponse, err error) { + ctx = promptmetrics.NewPaasMetricsCtx(ctx) + req = normalizeExecuteRequest(req) var promptDO *entity.Prompt var reply *entity.Reply startTime := time.Now() @@ -380,9 +382,10 @@ func (p *PromptOpenAPIApplicationImpl) Execute(ctx context.Context, req *openapi intputTokens = reply.Item.TokenUsage.InputTokens outputTokens = reply.Item.TokenUsage.OutputTokens } + p.emitExecuteMetrics(ctx, req, promptDO, reply, err, "Execute") p.collector.CollectPTaaSEvent(ctx, &collector.ExecuteLog{ SpaceID: req.GetWorkspaceID(), - PromptKey: req.GetPromptIdentifier().GetPromptKey(), + PromptKey: getRequestPromptKey(req), Version: version, Stream: false, InputTokens: intputTokens, @@ -480,6 +483,8 @@ func (p *PromptOpenAPIApplicationImpl) doExecute(ctx context.Context, req *opena } func (p *PromptOpenAPIApplicationImpl) ExecuteStreaming(ctx context.Context, req *openapi.ExecuteRequest, stream openapi.PromptOpenAPIService_ExecuteStreamingServer) (err error) { + ctx = promptmetrics.NewPaasMetricsCtx(ctx) + req = normalizeExecuteRequest(req) var promptDO *entity.Prompt var aggregatedReply *entity.Reply startTime := time.Now() @@ -502,11 +507,12 @@ func (p *PromptOpenAPIApplicationImpl) ExecuteStreaming(ctx context.Context, req intputTokens = aggregatedReply.Item.TokenUsage.InputTokens outputTokens = aggregatedReply.Item.TokenUsage.OutputTokens } + p.emitExecuteMetrics(ctx, req, promptDO, aggregatedReply, err, "ExecuteStreaming") p.collector.CollectPTaaSEvent(ctx, &collector.ExecuteLog{ SpaceID: req.GetWorkspaceID(), - PromptKey: req.GetPromptIdentifier().GetPromptKey(), + PromptKey: getRequestPromptKey(req), Version: version, - Stream: false, + Stream: true, InputTokens: intputTokens, OutputTokens: outputTokens, StartedAt: startTime, @@ -566,6 +572,7 @@ func (p *PromptOpenAPIApplicationImpl) doExecuteStreaming(ctx context.Context, r // 执行prompt流式调用 resultStream := make(chan *entity.Reply) + receivedFirstToken := false type replyResult struct { Reply *entity.Reply Err error @@ -608,6 +615,10 @@ func (p *PromptOpenAPIApplicationImpl) doExecuteStreaming(ctx context.Context, r if reply == nil || reply.Item == nil { continue } + if !receivedFirstToken { + receivedFirstToken = true + promptmetrics.WithPaasFirstTokenTime(ctx) + } // Convert base64 files to download URLs if reply.Item.Message != nil { if err := p.promptService.MConvertBase64DataURLToFileURL(ctx, []*entity.Message{reply.Item.Message}, req.GetWorkspaceID()); err != nil { @@ -801,6 +812,118 @@ func (p *PromptOpenAPIApplicationImpl) finishPromptExecutorSpan(ctx context.Cont span.Finish(ctx) } +func normalizeExecuteRequest(req *openapi.ExecuteRequest) *openapi.ExecuteRequest { + if req == nil { + return req + } + needNormalize := req.GetReleaseLabel() != "" || req.CustomToolConfig != nil || (len(req.CustomTools) > 0 && req.CustomToolCallConfig == nil) + if !needNormalize { + return req + } + + normalizedReq := openapi.NewExecuteRequest() + if err := normalizedReq.DeepCopy(req); err != nil { + // deep copy 失败时回退到原始请求,避免影响主流程 + return req + } + + if normalizedReq.GetReleaseLabel() != "" { + if normalizedReq.PromptIdentifier == nil { + normalizedReq.PromptIdentifier = openapi.NewPromptQuery() + } + if normalizedReq.PromptIdentifier.GetLabel() == "" { + normalizedReq.PromptIdentifier.Label = ptr.Of(normalizedReq.GetReleaseLabel()) + } + } + + if normalizedReq.CustomToolCallConfig == nil { + if normalizedReq.CustomToolConfig != nil { + // custom_tool_config 兼容字段优先级低于 custom_tool_call_config + normalizedReq.CustomToolCallConfig = normalizedReq.CustomToolConfig + } else if len(normalizedReq.CustomTools) > 0 { + normalizedReq.CustomToolCallConfig = &openapi.ToolCallConfig{ + ToolChoice: ptr.Of(openapi.ToolChoiceTypeAuto), + } + } + } + + return normalizedReq +} + +func getRequestPromptKey(req *openapi.ExecuteRequest) string { + if req == nil || req.GetPromptIdentifier() == nil { + return "" + } + return req.GetPromptIdentifier().GetPromptKey() +} + +func (p *PromptOpenAPIApplicationImpl) emitExecuteMetrics( + ctx context.Context, + req *openapi.ExecuteRequest, + promptDO *entity.Prompt, + reply *entity.Reply, + err error, + method string, +) { + if req == nil { + return + } + + promptmetrics.WithPaasSpace(ctx, req.GetWorkspaceID()) + promptmetrics.WithPaasStatus(ctx, err) + promptmetrics.WithPaasMethod(ctx, method) + + if req.GetPromptIdentifier() != nil && req.GetPromptIdentifier().GetPromptKey() != "" { + promptmetrics.WithPaasPromptKey(ctx, req.GetPromptIdentifier().GetPromptKey()) + } + if req.AccountMode != nil { + promptmetrics.WithPaaSAccountMode(ctx, req.GetAccountMode().String()) + } + if req.UsageScenario != nil { + promptmetrics.WithPaasUsageScenario(ctx, req.GetUsageScenario().String()) + } + + // OpenAPI 使用 messages 承载上下文与当前提问,兼容 legacy tags 语义 + hasMessage := len(req.Messages) > 0 + hasContexts := len(req.Messages) > 1 + promptmetrics.WithHasMessage(ctx, hasMessage) + promptmetrics.WithHasContexts(ctx, hasContexts) + + if promptDO != nil { + promptmetrics.WithPaasPromptKey(ctx, promptDO.PromptKey) + promptmetrics.WithPaasVersion(ctx, promptDO.GetVersion()) + promptmetrics.WithPaasSpace(ctx, promptDO.SpaceID) + if promptDO.PromptBasic != nil { + promptmetrics.WithPaasPromptType(ctx, promptTypeToMetricValue(promptDO.PromptBasic.PromptType)) + } + if promptDO.PromptCommit != nil && promptDO.PromptCommit.PromptDetail != nil { + detail := promptDO.PromptCommit.PromptDetail + if detail.ModelConfig != nil { + if detail.ModelConfig.MaxTokens != nil { + promptmetrics.WithPaasMaxToken(ctx, *detail.ModelConfig.MaxTokens) + } + promptmetrics.WithPaaSModel(ctx, strconv.FormatInt(detail.ModelConfig.ModelID, 10)) + } + } + } + + if reply != nil && reply.Item != nil && reply.Item.TokenUsage != nil { + promptmetrics.WithPaasTokenConsumption(ctx, reply.Item.TokenUsage.InputTokens, reply.Item.TokenUsage.OutputTokens) + } + promptmetrics.EmitPaasMetric(ctx) +} + +func promptTypeToMetricValue(promptType entity.PromptType) int64 { + switch promptType { + case entity.PromptTypeNormal: + return 1 + case entity.PromptTypeSnippet: + return 2 + default: + return 0 + } +} + func validateExecuteRequest(req *openapi.ExecuteRequest) error { err := req.IsValid() if err != nil { @@ -849,7 +972,7 @@ func (p *PromptOpenAPIApplicationImpl) applyCustomOverrides(promptDO *entity.Pro } // 检查是否需要应用任何自定义覆盖 - needsOverride := req.CustomTools != nil || req.CustomToolCallConfig != nil || req.CustomModelConfig != nil + needsOverride := req.CustomTools != nil || req.CustomToolCallConfig != nil || req.CustomToolConfig != nil || req.CustomModelConfig != nil if !needsOverride { return promptDO, nil } @@ -877,9 +1000,19 @@ func (p *PromptOpenAPIApplicationImpl) applyCustomOverrides(promptDO *entity.Pro } // 覆盖自定义工具调用配置 - if req.CustomToolCallConfig != nil { - customToolCallConfig := convertor.OpenAPIToolCallConfigDTO2DO(req.CustomToolCallConfig) + customToolCallConfigDTO := req.CustomToolCallConfig + if customToolCallConfigDTO == nil { + // custom_tool_config 兼容字段优先级低于 custom_tool_call_config + customToolCallConfigDTO = req.CustomToolConfig + } + if customToolCallConfigDTO != nil { + customToolCallConfig := convertor.OpenAPIToolCallConfigDTO2DO(customToolCallConfigDTO) clonedPrompt.PromptCommit.PromptDetail.ToolCallConfig = customToolCallConfig + } else if len(req.CustomTools) > 0 { + // 与 legacy Execute 行为保持一致:仅传 custom_tools 时,默认 auto + clonedPrompt.PromptCommit.PromptDetail.ToolCallConfig = &entity.ToolCallConfig{ + ToolChoice: entity.ToolChoiceTypeAuto, + } } // 覆盖自定义模型配置(带验证) diff --git a/backend/modules/prompt/application/openapi_custom_overrides_test.go b/backend/modules/prompt/application/openapi_custom_overrides_test.go index 96851f7ff..06105d2c4 100644 --- a/backend/modules/prompt/application/openapi_custom_overrides_test.go +++ b/backend/modules/prompt/application/openapi_custom_overrides_test.go @@ -138,6 +138,54 @@ func TestPromptOpenAPIApplicationImpl_applyCustomOverrides(t *testing.T) { assert.Equal(t, ptr.Of(0.7), got.PromptCommit.PromptDetail.ModelConfig.Temperature) }) + t.Run("use custom_tool_config as compatibility field", func(t *testing.T) { + t.Parallel() + + original := &entity.Prompt{ + ID: 1, + SpaceID: 2, + PromptKey: "k", + PromptCommit: &entity.PromptCommit{ + PromptDetail: &entity.PromptDetail{ + ToolCallConfig: &entity.ToolCallConfig{ToolChoice: entity.ToolChoiceTypeNone}, + }, + }, + } + req := &openapi.ExecuteRequest{ + CustomToolConfig: &openapi.ToolCallConfig{ + ToolChoice: ptr.Of(openapi.ToolChoiceTypeAuto), + }, + } + + got, err := app.applyCustomOverrides(original, req) + assert.NoError(t, err) + assert.NotNil(t, got.PromptCommit.PromptDetail.ToolCallConfig) + assert.Equal(t, entity.ToolChoiceTypeAuto, got.PromptCommit.PromptDetail.ToolCallConfig.ToolChoice) + }) + + t.Run("custom tools without config defaults to auto", func(t *testing.T) { + t.Parallel() + + original := &entity.Prompt{ + ID: 1, + SpaceID: 2, + PromptKey: "k", + PromptCommit: &entity.PromptCommit{ + PromptDetail: &entity.PromptDetail{}, + }, + } + req := &openapi.ExecuteRequest{ + CustomTools: []*openapi.Tool{ + {Type: ptr.Of(openapi.ToolTypeFunction)}, + }, + } + + got, err := app.applyCustomOverrides(original, req) + assert.NoError(t, err) + assert.NotNil(t, got.PromptCommit.PromptDetail.ToolCallConfig) + assert.Equal(t, entity.ToolChoiceTypeAuto, got.PromptCommit.PromptDetail.ToolCallConfig.ToolChoice) + }) + t.Run("custom model config with model_id unset/0 does not override", func(t *testing.T) { t.Parallel() diff --git a/backend/modules/prompt/application/openapi_request_normalize_test.go b/backend/modules/prompt/application/openapi_request_normalize_test.go new file mode 100644 index 000000000..0718bc786 --- /dev/null +++ b/backend/modules/prompt/application/openapi_request_normalize_test.go @@ -0,0 +1,61 @@ +// Copyright (c) 2025 coze-dev Authors +// SPDX-License-Identifier: Apache-2.0 + +package application + +import ( + "testing" + + "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/prompt/openapi" + "github.com/coze-dev/coze-loop/backend/pkg/lang/ptr" + "github.com/stretchr/testify/assert" +) + +func TestNormalizeExecuteRequest(t *testing.T) { + t.Parallel() + + t.Run("nil request", func(t *testing.T) { + t.Parallel() + assert.Nil(t, normalizeExecuteRequest(nil)) + }) + + t.Run("release_label fills prompt_identifier.label", func(t *testing.T) { + t.Parallel() + req := &openapi.ExecuteRequest{ + PromptIdentifier: &openapi.PromptQuery{ + PromptKey: ptr.Of("p1"), + }, + ReleaseLabel: ptr.Of("prod"), + } + normalized := normalizeExecuteRequest(req) + assert.Equal(t, "prod", normalized.GetPromptIdentifier().GetLabel()) + assert.Equal(t, "prod", normalized.GetReleaseLabel()) + }) + + t.Run("custom_tool_config fallback to custom_tool_call_config", func(t *testing.T) { + t.Parallel() + req := &openapi.ExecuteRequest{ + CustomToolConfig: &openapi.ToolCallConfig{ + ToolChoice: ptr.Of(openapi.ToolChoiceTypeAuto), + }, + } + normalized := normalizeExecuteRequest(req) + assert.NotNil(t, normalized.CustomToolCallConfig) + assert.Equal(t, openapi.ToolChoiceTypeAuto, normalized.CustomToolCallConfig.GetToolChoice()) + }) + + t.Run("custom_tools without config defaults to auto", func(t *testing.T) { + t.Parallel() + req := &openapi.ExecuteRequest{ + CustomTools: []*openapi.Tool{ + { + Type: ptr.Of(openapi.ToolTypeFunction), + }, + }, + } + normalized := normalizeExecuteRequest(req) + assert.NotNil(t, normalized.CustomToolCallConfig) + assert.Equal(t, openapi.ToolChoiceTypeAuto, normalized.CustomToolCallConfig.GetToolChoice()) + }) +} + diff --git a/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift b/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift index b47bf18b2..2038dae7e 100644 --- a/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift +++ b/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift @@ -40,6 +40,12 @@ struct ExecuteRequest { 21: optional ToolCallConfig custom_tool_call_config (api.body="custom_tool_call_config") // 自定义工具调用配置 22: optional ModelConfig custom_model_config (api.body="custom_model_config") // 自定义模型配置 23: optional ResponseAPIConfig response_api_config (api.body="response_api_config") // response api 配置 + 24: optional AccountMode account_mode (api.body="account_mode") // 账号模式(兼容字段) + 25: optional list custom_accounts (api.body="custom_accounts") // 自定义模型账号(兼容字段) + 26: optional UsageScenario usage_scenario (api.body="usage_scenario") // 使用场景(兼容字段) + 27: optional RequestExtra request_extra (api.body="request_extra") // 请求额外参数(兼容字段) + 28: optional string release_label (api.body="release_label") // 发布标签(兼容字段) + 29: optional ToolCallConfig custom_tool_config (api.body="custom_tool_config") // 自定义工具配置(兼容字段) 255: optional base.Base Base } @@ -358,6 +364,36 @@ struct ResponseAPIConfig { 3: optional string session_id // 一轮会话的唯一标识 } +enum AccountMode { + SharedAccount = 1 // 使用共享模型账号 + CustomAccount = 2 // 使用自定义模型账号 +} + +enum UsageScenario { + Default = 1 + Evaluation = 2 + PromptAsAService = 3 + AIAnnotate = 4 + AIScore = 5 + AITag = 6 +} + +struct RequestExtra { + 1: optional string gpt_open_api_extra // GPT OpenAPI 平台透传参数 +} + +struct SkyLarkAccountExtra { + 1: optional string access_key + 2: optional string secret_key +} + +struct CustomAccount { + 1: optional string model_name // 模型名称 + 2: optional string api_key // 模型账号 + 3: optional SkyLarkAccountExtra sky_lark_account_extra // SkyLark账号扩展 + 4: optional i64 connector_id (api.js_conv='true', go.tag='json:"connector_id"') // connector id +} + struct ParamConfigValue { 1: optional string name // 传给下游模型的key,与ParamSchema.name对齐 2: optional string label // 展示名称 From e960f3058431bd781c38c7ef02539a3e86112190 Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Thu, 5 Mar 2026 18:03:31 +0800 Subject: [PATCH 43/58] refactor(prompt-openapi): reduce fornax-only execute compatibility fields --- .../openapi/coze.loop.prompt.openapi.go | 1017 ----------------- .../coze.loop.prompt.openapi_validator.go | 19 - .../openapi/k-coze.loop.prompt.openapi.go | 720 ------------ .../prompt/coze.loop.prompt.openapi.thrift | 18 - 4 files changed, 1774 deletions(-) diff --git a/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi.go b/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi.go index 8739c53cb..c3c1ed18b 100644 --- a/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi.go +++ b/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi.go @@ -1371,12 +1371,8 @@ type ExecuteRequest struct { ResponseAPIConfig *ResponseAPIConfig `thrift:"response_api_config,23,optional" frugal:"23,optional,ResponseAPIConfig" form:"response_api_config" json:"response_api_config,omitempty"` // 账号模式(兼容字段) AccountMode *AccountMode `thrift:"account_mode,24,optional" frugal:"24,optional,AccountMode" form:"account_mode" json:"account_mode,omitempty"` - // 自定义模型账号(兼容字段) - CustomAccounts []*CustomAccount `thrift:"custom_accounts,25,optional" frugal:"25,optional,list" form:"custom_accounts" json:"custom_accounts,omitempty"` // 使用场景(兼容字段) UsageScenario *UsageScenario `thrift:"usage_scenario,26,optional" frugal:"26,optional,UsageScenario" form:"usage_scenario" json:"usage_scenario,omitempty"` - // 请求额外参数(兼容字段) - RequestExtra *RequestExtra `thrift:"request_extra,27,optional" frugal:"27,optional,RequestExtra" form:"request_extra" json:"request_extra,omitempty"` // 发布标签(兼容字段) ReleaseLabel *string `thrift:"release_label,28,optional" frugal:"28,optional,string" form:"release_label" json:"release_label,omitempty"` // 自定义工具配置(兼容字段) @@ -1499,18 +1495,6 @@ func (p *ExecuteRequest) GetAccountMode() (v AccountMode) { return *p.AccountMode } -var ExecuteRequest_CustomAccounts_DEFAULT []*CustomAccount - -func (p *ExecuteRequest) GetCustomAccounts() (v []*CustomAccount) { - if p == nil { - return - } - if !p.IsSetCustomAccounts() { - return ExecuteRequest_CustomAccounts_DEFAULT - } - return p.CustomAccounts -} - var ExecuteRequest_UsageScenario_DEFAULT UsageScenario func (p *ExecuteRequest) GetUsageScenario() (v UsageScenario) { @@ -1523,18 +1507,6 @@ func (p *ExecuteRequest) GetUsageScenario() (v UsageScenario) { return *p.UsageScenario } -var ExecuteRequest_RequestExtra_DEFAULT *RequestExtra - -func (p *ExecuteRequest) GetRequestExtra() (v *RequestExtra) { - if p == nil { - return - } - if !p.IsSetRequestExtra() { - return ExecuteRequest_RequestExtra_DEFAULT - } - return p.RequestExtra -} - var ExecuteRequest_ReleaseLabel_DEFAULT string func (p *ExecuteRequest) GetReleaseLabel() (v string) { @@ -1597,15 +1569,9 @@ func (p *ExecuteRequest) SetResponseAPIConfig(val *ResponseAPIConfig) { func (p *ExecuteRequest) SetAccountMode(val *AccountMode) { p.AccountMode = val } -func (p *ExecuteRequest) SetCustomAccounts(val []*CustomAccount) { - p.CustomAccounts = val -} func (p *ExecuteRequest) SetUsageScenario(val *UsageScenario) { p.UsageScenario = val } -func (p *ExecuteRequest) SetRequestExtra(val *RequestExtra) { - p.RequestExtra = val -} func (p *ExecuteRequest) SetReleaseLabel(val *string) { p.ReleaseLabel = val } @@ -1626,9 +1592,7 @@ var fieldIDToName_ExecuteRequest = map[int16]string{ 22: "custom_model_config", 23: "response_api_config", 24: "account_mode", - 25: "custom_accounts", 26: "usage_scenario", - 27: "request_extra", 28: "release_label", 29: "custom_tool_config", 255: "Base", @@ -1670,18 +1634,10 @@ func (p *ExecuteRequest) IsSetAccountMode() bool { return p.AccountMode != nil } -func (p *ExecuteRequest) IsSetCustomAccounts() bool { - return p.CustomAccounts != nil -} - func (p *ExecuteRequest) IsSetUsageScenario() bool { return p.UsageScenario != nil } -func (p *ExecuteRequest) IsSetRequestExtra() bool { - return p.RequestExtra != nil -} - func (p *ExecuteRequest) IsSetReleaseLabel() bool { return p.ReleaseLabel != nil } @@ -1784,14 +1740,6 @@ func (p *ExecuteRequest) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } - case 25: - if fieldTypeId == thrift.LIST { - if err = p.ReadField25(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } case 26: if fieldTypeId == thrift.I32 { if err = p.ReadField26(iprot); err != nil { @@ -1800,14 +1748,6 @@ func (p *ExecuteRequest) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } - case 27: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField27(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } case 28: if fieldTypeId == thrift.STRING { if err = p.ReadField28(iprot); err != nil { @@ -1985,29 +1925,6 @@ func (p *ExecuteRequest) ReadField24(iprot thrift.TProtocol) error { p.AccountMode = _field return nil } -func (p *ExecuteRequest) ReadField25(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { - return err - } - _field := make([]*CustomAccount, 0, size) - values := make([]CustomAccount, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - - if err := _elem.Read(iprot); err != nil { - return err - } - - _field = append(_field, _elem) - } - if err := iprot.ReadListEnd(); err != nil { - return err - } - p.CustomAccounts = _field - return nil -} func (p *ExecuteRequest) ReadField26(iprot thrift.TProtocol) error { var _field *UsageScenario @@ -2020,14 +1937,6 @@ func (p *ExecuteRequest) ReadField26(iprot thrift.TProtocol) error { p.UsageScenario = _field return nil } -func (p *ExecuteRequest) ReadField27(iprot thrift.TProtocol) error { - _field := NewRequestExtra() - if err := _field.Read(iprot); err != nil { - return err - } - p.RequestExtra = _field - return nil -} func (p *ExecuteRequest) ReadField28(iprot thrift.TProtocol) error { var _field *string @@ -2098,18 +2007,10 @@ func (p *ExecuteRequest) Write(oprot thrift.TProtocol) (err error) { fieldId = 24 goto WriteFieldError } - if err = p.writeField25(oprot); err != nil { - fieldId = 25 - goto WriteFieldError - } if err = p.writeField26(oprot); err != nil { fieldId = 26 goto WriteFieldError } - if err = p.writeField27(oprot); err != nil { - fieldId = 27 - goto WriteFieldError - } if err = p.writeField28(oprot); err != nil { fieldId = 28 goto WriteFieldError @@ -2326,32 +2227,6 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 24 end error: ", p), err) } -func (p *ExecuteRequest) writeField25(oprot thrift.TProtocol) (err error) { - if p.IsSetCustomAccounts() { - if err = oprot.WriteFieldBegin("custom_accounts", thrift.LIST, 25); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.CustomAccounts)); err != nil { - return err - } - for _, v := range p.CustomAccounts { - if err := v.Write(oprot); err != nil { - return err - } - } - if err := oprot.WriteListEnd(); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 25 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 25 end error: ", p), err) -} func (p *ExecuteRequest) writeField26(oprot thrift.TProtocol) (err error) { if p.IsSetUsageScenario() { if err = oprot.WriteFieldBegin("usage_scenario", thrift.I32, 26); err != nil { @@ -2370,24 +2245,6 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 26 end error: ", p), err) } -func (p *ExecuteRequest) writeField27(oprot thrift.TProtocol) (err error) { - if p.IsSetRequestExtra() { - if err = oprot.WriteFieldBegin("request_extra", thrift.STRUCT, 27); err != nil { - goto WriteFieldBeginError - } - if err := p.RequestExtra.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 27 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 27 end error: ", p), err) -} func (p *ExecuteRequest) writeField28(oprot thrift.TProtocol) (err error) { if p.IsSetReleaseLabel() { if err = oprot.WriteFieldBegin("release_label", thrift.STRING, 28); err != nil { @@ -2484,15 +2341,9 @@ func (p *ExecuteRequest) DeepEqual(ano *ExecuteRequest) bool { if !p.Field24DeepEqual(ano.AccountMode) { return false } - if !p.Field25DeepEqual(ano.CustomAccounts) { - return false - } if !p.Field26DeepEqual(ano.UsageScenario) { return false } - if !p.Field27DeepEqual(ano.RequestExtra) { - return false - } if !p.Field28DeepEqual(ano.ReleaseLabel) { return false } @@ -2596,19 +2447,6 @@ func (p *ExecuteRequest) Field24DeepEqual(src *AccountMode) bool { } return true } -func (p *ExecuteRequest) Field25DeepEqual(src []*CustomAccount) bool { - - if len(p.CustomAccounts) != len(src) { - return false - } - for i, v := range p.CustomAccounts { - _src := src[i] - if !v.DeepEqual(_src) { - return false - } - } - return true -} func (p *ExecuteRequest) Field26DeepEqual(src *UsageScenario) bool { if p.UsageScenario == src { @@ -2621,13 +2459,6 @@ func (p *ExecuteRequest) Field26DeepEqual(src *UsageScenario) bool { } return true } -func (p *ExecuteRequest) Field27DeepEqual(src *RequestExtra) bool { - - if !p.RequestExtra.DeepEqual(src) { - return false - } - return true -} func (p *ExecuteRequest) Field28DeepEqual(src *string) bool { if p.ReleaseLabel == src { @@ -16972,854 +16803,6 @@ func (p *ResponseAPIConfig) Field3DeepEqual(src *string) bool { return true } -type RequestExtra struct { - // GPT OpenAPI 平台透传参数 - GptOpenAPIExtra *string `thrift:"gpt_open_api_extra,1,optional" frugal:"1,optional,string" form:"gpt_open_api_extra" json:"gpt_open_api_extra,omitempty" query:"gpt_open_api_extra"` -} - -func NewRequestExtra() *RequestExtra { - return &RequestExtra{} -} - -func (p *RequestExtra) InitDefault() { -} - -var RequestExtra_GptOpenAPIExtra_DEFAULT string - -func (p *RequestExtra) GetGptOpenAPIExtra() (v string) { - if p == nil { - return - } - if !p.IsSetGptOpenAPIExtra() { - return RequestExtra_GptOpenAPIExtra_DEFAULT - } - return *p.GptOpenAPIExtra -} -func (p *RequestExtra) SetGptOpenAPIExtra(val *string) { - p.GptOpenAPIExtra = val -} - -var fieldIDToName_RequestExtra = map[int16]string{ - 1: "gpt_open_api_extra", -} - -func (p *RequestExtra) IsSetGptOpenAPIExtra() bool { - return p.GptOpenAPIExtra != nil -} - -func (p *RequestExtra) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_RequestExtra[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *RequestExtra) ReadField1(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.GptOpenAPIExtra = _field - return nil -} - -func (p *RequestExtra) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("RequestExtra"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *RequestExtra) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetGptOpenAPIExtra() { - if err = oprot.WriteFieldBegin("gpt_open_api_extra", thrift.STRING, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.GptOpenAPIExtra); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} - -func (p *RequestExtra) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("RequestExtra(%+v)", *p) - -} - -func (p *RequestExtra) DeepEqual(ano *RequestExtra) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.GptOpenAPIExtra) { - return false - } - return true -} - -func (p *RequestExtra) Field1DeepEqual(src *string) bool { - - if p.GptOpenAPIExtra == src { - return true - } else if p.GptOpenAPIExtra == nil || src == nil { - return false - } - if strings.Compare(*p.GptOpenAPIExtra, *src) != 0 { - return false - } - return true -} - -type SkyLarkAccountExtra struct { - AccessKey *string `thrift:"access_key,1,optional" frugal:"1,optional,string" form:"access_key" json:"access_key,omitempty" query:"access_key"` - SecretKey *string `thrift:"secret_key,2,optional" frugal:"2,optional,string" form:"secret_key" json:"secret_key,omitempty" query:"secret_key"` -} - -func NewSkyLarkAccountExtra() *SkyLarkAccountExtra { - return &SkyLarkAccountExtra{} -} - -func (p *SkyLarkAccountExtra) InitDefault() { -} - -var SkyLarkAccountExtra_AccessKey_DEFAULT string - -func (p *SkyLarkAccountExtra) GetAccessKey() (v string) { - if p == nil { - return - } - if !p.IsSetAccessKey() { - return SkyLarkAccountExtra_AccessKey_DEFAULT - } - return *p.AccessKey -} - -var SkyLarkAccountExtra_SecretKey_DEFAULT string - -func (p *SkyLarkAccountExtra) GetSecretKey() (v string) { - if p == nil { - return - } - if !p.IsSetSecretKey() { - return SkyLarkAccountExtra_SecretKey_DEFAULT - } - return *p.SecretKey -} -func (p *SkyLarkAccountExtra) SetAccessKey(val *string) { - p.AccessKey = val -} -func (p *SkyLarkAccountExtra) SetSecretKey(val *string) { - p.SecretKey = val -} - -var fieldIDToName_SkyLarkAccountExtra = map[int16]string{ - 1: "access_key", - 2: "secret_key", -} - -func (p *SkyLarkAccountExtra) IsSetAccessKey() bool { - return p.AccessKey != nil -} - -func (p *SkyLarkAccountExtra) IsSetSecretKey() bool { - return p.SecretKey != nil -} - -func (p *SkyLarkAccountExtra) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.STRING { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_SkyLarkAccountExtra[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *SkyLarkAccountExtra) ReadField1(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.AccessKey = _field - return nil -} -func (p *SkyLarkAccountExtra) ReadField2(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.SecretKey = _field - return nil -} - -func (p *SkyLarkAccountExtra) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("SkyLarkAccountExtra"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *SkyLarkAccountExtra) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetAccessKey() { - if err = oprot.WriteFieldBegin("access_key", thrift.STRING, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.AccessKey); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *SkyLarkAccountExtra) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetSecretKey() { - if err = oprot.WriteFieldBegin("secret_key", thrift.STRING, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.SecretKey); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} - -func (p *SkyLarkAccountExtra) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("SkyLarkAccountExtra(%+v)", *p) - -} - -func (p *SkyLarkAccountExtra) DeepEqual(ano *SkyLarkAccountExtra) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.AccessKey) { - return false - } - if !p.Field2DeepEqual(ano.SecretKey) { - return false - } - return true -} - -func (p *SkyLarkAccountExtra) Field1DeepEqual(src *string) bool { - - if p.AccessKey == src { - return true - } else if p.AccessKey == nil || src == nil { - return false - } - if strings.Compare(*p.AccessKey, *src) != 0 { - return false - } - return true -} -func (p *SkyLarkAccountExtra) Field2DeepEqual(src *string) bool { - - if p.SecretKey == src { - return true - } else if p.SecretKey == nil || src == nil { - return false - } - if strings.Compare(*p.SecretKey, *src) != 0 { - return false - } - return true -} - -type CustomAccount struct { - // 模型名称 - ModelName *string `thrift:"model_name,1,optional" frugal:"1,optional,string" form:"model_name" json:"model_name,omitempty" query:"model_name"` - // 模型账号 - APIKey *string `thrift:"api_key,2,optional" frugal:"2,optional,string" form:"api_key" json:"api_key,omitempty" query:"api_key"` - // SkyLark账号扩展 - SkyLarkAccountExtra *SkyLarkAccountExtra `thrift:"sky_lark_account_extra,3,optional" frugal:"3,optional,SkyLarkAccountExtra" form:"sky_lark_account_extra" json:"sky_lark_account_extra,omitempty" query:"sky_lark_account_extra"` - // connector id - ConnectorID *int64 `thrift:"connector_id,4,optional" frugal:"4,optional,i64" json:"connector_id" form:"connector_id" query:"connector_id"` -} - -func NewCustomAccount() *CustomAccount { - return &CustomAccount{} -} - -func (p *CustomAccount) InitDefault() { -} - -var CustomAccount_ModelName_DEFAULT string - -func (p *CustomAccount) GetModelName() (v string) { - if p == nil { - return - } - if !p.IsSetModelName() { - return CustomAccount_ModelName_DEFAULT - } - return *p.ModelName -} - -var CustomAccount_APIKey_DEFAULT string - -func (p *CustomAccount) GetAPIKey() (v string) { - if p == nil { - return - } - if !p.IsSetAPIKey() { - return CustomAccount_APIKey_DEFAULT - } - return *p.APIKey -} - -var CustomAccount_SkyLarkAccountExtra_DEFAULT *SkyLarkAccountExtra - -func (p *CustomAccount) GetSkyLarkAccountExtra() (v *SkyLarkAccountExtra) { - if p == nil { - return - } - if !p.IsSetSkyLarkAccountExtra() { - return CustomAccount_SkyLarkAccountExtra_DEFAULT - } - return p.SkyLarkAccountExtra -} - -var CustomAccount_ConnectorID_DEFAULT int64 - -func (p *CustomAccount) GetConnectorID() (v int64) { - if p == nil { - return - } - if !p.IsSetConnectorID() { - return CustomAccount_ConnectorID_DEFAULT - } - return *p.ConnectorID -} -func (p *CustomAccount) SetModelName(val *string) { - p.ModelName = val -} -func (p *CustomAccount) SetAPIKey(val *string) { - p.APIKey = val -} -func (p *CustomAccount) SetSkyLarkAccountExtra(val *SkyLarkAccountExtra) { - p.SkyLarkAccountExtra = val -} -func (p *CustomAccount) SetConnectorID(val *int64) { - p.ConnectorID = val -} - -var fieldIDToName_CustomAccount = map[int16]string{ - 1: "model_name", - 2: "api_key", - 3: "sky_lark_account_extra", - 4: "connector_id", -} - -func (p *CustomAccount) IsSetModelName() bool { - return p.ModelName != nil -} - -func (p *CustomAccount) IsSetAPIKey() bool { - return p.APIKey != nil -} - -func (p *CustomAccount) IsSetSkyLarkAccountExtra() bool { - return p.SkyLarkAccountExtra != nil -} - -func (p *CustomAccount) IsSetConnectorID() bool { - return p.ConnectorID != nil -} - -func (p *CustomAccount) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.STRING { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 4: - if fieldTypeId == thrift.I64 { - if err = p.ReadField4(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_CustomAccount[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *CustomAccount) ReadField1(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.ModelName = _field - return nil -} -func (p *CustomAccount) ReadField2(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.APIKey = _field - return nil -} -func (p *CustomAccount) ReadField3(iprot thrift.TProtocol) error { - _field := NewSkyLarkAccountExtra() - if err := _field.Read(iprot); err != nil { - return err - } - p.SkyLarkAccountExtra = _field - return nil -} -func (p *CustomAccount) ReadField4(iprot thrift.TProtocol) error { - - var _field *int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _field = &v - } - p.ConnectorID = _field - return nil -} - -func (p *CustomAccount) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("CustomAccount"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } - if err = p.writeField4(oprot); err != nil { - fieldId = 4 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *CustomAccount) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetModelName() { - if err = oprot.WriteFieldBegin("model_name", thrift.STRING, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.ModelName); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *CustomAccount) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetAPIKey() { - if err = oprot.WriteFieldBegin("api_key", thrift.STRING, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.APIKey); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *CustomAccount) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetSkyLarkAccountExtra() { - if err = oprot.WriteFieldBegin("sky_lark_account_extra", thrift.STRUCT, 3); err != nil { - goto WriteFieldBeginError - } - if err := p.SkyLarkAccountExtra.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} -func (p *CustomAccount) writeField4(oprot thrift.TProtocol) (err error) { - if p.IsSetConnectorID() { - if err = oprot.WriteFieldBegin("connector_id", thrift.I64, 4); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(*p.ConnectorID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) -} - -func (p *CustomAccount) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("CustomAccount(%+v)", *p) - -} - -func (p *CustomAccount) DeepEqual(ano *CustomAccount) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.ModelName) { - return false - } - if !p.Field2DeepEqual(ano.APIKey) { - return false - } - if !p.Field3DeepEqual(ano.SkyLarkAccountExtra) { - return false - } - if !p.Field4DeepEqual(ano.ConnectorID) { - return false - } - return true -} - -func (p *CustomAccount) Field1DeepEqual(src *string) bool { - - if p.ModelName == src { - return true - } else if p.ModelName == nil || src == nil { - return false - } - if strings.Compare(*p.ModelName, *src) != 0 { - return false - } - return true -} -func (p *CustomAccount) Field2DeepEqual(src *string) bool { - - if p.APIKey == src { - return true - } else if p.APIKey == nil || src == nil { - return false - } - if strings.Compare(*p.APIKey, *src) != 0 { - return false - } - return true -} -func (p *CustomAccount) Field3DeepEqual(src *SkyLarkAccountExtra) bool { - - if !p.SkyLarkAccountExtra.DeepEqual(src) { - return false - } - return true -} -func (p *CustomAccount) Field4DeepEqual(src *int64) bool { - - if p.ConnectorID == src { - return true - } else if p.ConnectorID == nil || src == nil { - return false - } - if *p.ConnectorID != *src { - return false - } - return true -} - type ParamConfigValue struct { // 传给下游模型的key,与ParamSchema.name对齐 Name *string `thrift:"name,1,optional" frugal:"1,optional,string" form:"name" json:"name,omitempty" query:"name"` diff --git a/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi_validator.go b/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi_validator.go index 8a7642b2d..205ff428f 100644 --- a/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi_validator.go +++ b/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi_validator.go @@ -66,11 +66,6 @@ func (p *ExecuteRequest) IsValid() error { return fmt.Errorf("field ResponseAPIConfig not valid, %w", err) } } - if p.RequestExtra != nil { - if err := p.RequestExtra.IsValid(); err != nil { - return fmt.Errorf("field RequestExtra not valid, %w", err) - } - } if p.CustomToolConfig != nil { if err := p.CustomToolConfig.IsValid(); err != nil { return fmt.Errorf("field CustomToolConfig not valid, %w", err) @@ -306,20 +301,6 @@ func (p *ModelConfig) IsValid() error { func (p *ResponseAPIConfig) IsValid() error { return nil } -func (p *RequestExtra) IsValid() error { - return nil -} -func (p *SkyLarkAccountExtra) IsValid() error { - return nil -} -func (p *CustomAccount) IsValid() error { - if p.SkyLarkAccountExtra != nil { - if err := p.SkyLarkAccountExtra.IsValid(); err != nil { - return fmt.Errorf("field SkyLarkAccountExtra not valid, %w", err) - } - } - return nil -} func (p *ParamConfigValue) IsValid() error { if p.Value != nil { if err := p.Value.IsValid(); err != nil { diff --git a/backend/kitex_gen/coze/loop/prompt/openapi/k-coze.loop.prompt.openapi.go b/backend/kitex_gen/coze/loop/prompt/openapi/k-coze.loop.prompt.openapi.go index 84ba446e9..5c68e1f5f 100644 --- a/backend/kitex_gen/coze/loop/prompt/openapi/k-coze.loop.prompt.openapi.go +++ b/backend/kitex_gen/coze/loop/prompt/openapi/k-coze.loop.prompt.openapi.go @@ -861,20 +861,6 @@ func (p *ExecuteRequest) FastRead(buf []byte) (int, error) { goto SkipFieldError } } - case 25: - if fieldTypeId == thrift.LIST { - l, err = p.FastReadField25(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } case 26: if fieldTypeId == thrift.I32 { l, err = p.FastReadField26(buf[offset:]) @@ -889,20 +875,6 @@ func (p *ExecuteRequest) FastRead(buf []byte) (int, error) { goto SkipFieldError } } - case 27: - if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField27(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } case 28: if fieldTypeId == thrift.STRING { l, err = p.FastReadField28(buf[offset:]) @@ -1116,31 +1088,6 @@ func (p *ExecuteRequest) FastReadField24(buf []byte) (int, error) { return offset, nil } -func (p *ExecuteRequest) FastReadField25(buf []byte) (int, error) { - offset := 0 - - _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) - offset += l - if err != nil { - return offset, err - } - _field := make([]*CustomAccount, 0, size) - values := make([]CustomAccount, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - if l, err := _elem.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - - _field = append(_field, _elem) - } - p.CustomAccounts = _field - return offset, nil -} - func (p *ExecuteRequest) FastReadField26(buf []byte) (int, error) { offset := 0 @@ -1157,18 +1104,6 @@ func (p *ExecuteRequest) FastReadField26(buf []byte) (int, error) { return offset, nil } -func (p *ExecuteRequest) FastReadField27(buf []byte) (int, error) { - offset := 0 - _field := NewRequestExtra() - if l, err := _field.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - p.RequestExtra = _field - return offset, nil -} - func (p *ExecuteRequest) FastReadField28(buf []byte) (int, error) { offset := 0 @@ -1223,9 +1158,7 @@ func (p *ExecuteRequest) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int offset += p.fastWriteField22(buf[offset:], w) offset += p.fastWriteField23(buf[offset:], w) offset += p.fastWriteField24(buf[offset:], w) - offset += p.fastWriteField25(buf[offset:], w) offset += p.fastWriteField26(buf[offset:], w) - offset += p.fastWriteField27(buf[offset:], w) offset += p.fastWriteField28(buf[offset:], w) offset += p.fastWriteField29(buf[offset:], w) offset += p.fastWriteField255(buf[offset:], w) @@ -1246,9 +1179,7 @@ func (p *ExecuteRequest) BLength() int { l += p.field22Length() l += p.field23Length() l += p.field24Length() - l += p.field25Length() l += p.field26Length() - l += p.field27Length() l += p.field28Length() l += p.field29Length() l += p.field255Length() @@ -1359,22 +1290,6 @@ func (p *ExecuteRequest) fastWriteField24(buf []byte, w thrift.NocopyWriter) int return offset } -func (p *ExecuteRequest) fastWriteField25(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetCustomAccounts() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 25) - listBeginOffset := offset - offset += thrift.Binary.ListBeginLength() - var length int - for _, v := range p.CustomAccounts { - length++ - offset += v.FastWriteNocopy(buf[offset:], w) - } - thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) - } - return offset -} - func (p *ExecuteRequest) fastWriteField26(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetUsageScenario() { @@ -1384,15 +1299,6 @@ func (p *ExecuteRequest) fastWriteField26(buf []byte, w thrift.NocopyWriter) int return offset } -func (p *ExecuteRequest) fastWriteField27(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetRequestExtra() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 27) - offset += p.RequestExtra.FastWriteNocopy(buf[offset:], w) - } - return offset -} - func (p *ExecuteRequest) fastWriteField28(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetReleaseLabel() { @@ -1513,19 +1419,6 @@ func (p *ExecuteRequest) field24Length() int { return l } -func (p *ExecuteRequest) field25Length() int { - l := 0 - if p.IsSetCustomAccounts() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.ListBeginLength() - for _, v := range p.CustomAccounts { - _ = v - l += v.BLength() - } - } - return l -} - func (p *ExecuteRequest) field26Length() int { l := 0 if p.IsSetUsageScenario() { @@ -1535,15 +1428,6 @@ func (p *ExecuteRequest) field26Length() int { return l } -func (p *ExecuteRequest) field27Length() int { - l := 0 - if p.IsSetRequestExtra() { - l += thrift.Binary.FieldBeginLength() - l += p.RequestExtra.BLength() - } - return l -} - func (p *ExecuteRequest) field28Length() int { l := 0 if p.IsSetReleaseLabel() { @@ -1668,35 +1552,11 @@ func (p *ExecuteRequest) DeepCopy(s interface{}) error { p.AccountMode = &tmp } - if src.CustomAccounts != nil { - p.CustomAccounts = make([]*CustomAccount, 0, len(src.CustomAccounts)) - for _, elem := range src.CustomAccounts { - var _elem *CustomAccount - if elem != nil { - _elem = &CustomAccount{} - if err := _elem.DeepCopy(elem); err != nil { - return err - } - } - - p.CustomAccounts = append(p.CustomAccounts, _elem) - } - } - if src.UsageScenario != nil { tmp := *src.UsageScenario p.UsageScenario = &tmp } - var _requestExtra *RequestExtra - if src.RequestExtra != nil { - _requestExtra = &RequestExtra{} - if err := _requestExtra.DeepCopy(src.RequestExtra); err != nil { - return err - } - } - p.RequestExtra = _requestExtra - if src.ReleaseLabel != nil { var tmp string if *src.ReleaseLabel != "" { @@ -11890,586 +11750,6 @@ func (p *ResponseAPIConfig) DeepCopy(s interface{}) error { return nil } -func (p *RequestExtra) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_RequestExtra[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *RequestExtra) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.GptOpenAPIExtra = _field - return offset, nil -} - -func (p *RequestExtra) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *RequestExtra) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *RequestExtra) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *RequestExtra) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetGptOpenAPIExtra() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.GptOpenAPIExtra) - } - return offset -} - -func (p *RequestExtra) field1Length() int { - l := 0 - if p.IsSetGptOpenAPIExtra() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.GptOpenAPIExtra) - } - return l -} - -func (p *RequestExtra) DeepCopy(s interface{}) error { - src, ok := s.(*RequestExtra) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.GptOpenAPIExtra != nil { - var tmp string - if *src.GptOpenAPIExtra != "" { - tmp = kutils.StringDeepCopy(*src.GptOpenAPIExtra) - } - p.GptOpenAPIExtra = &tmp - } - - return nil -} - -func (p *SkyLarkAccountExtra) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_SkyLarkAccountExtra[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *SkyLarkAccountExtra) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.AccessKey = _field - return offset, nil -} - -func (p *SkyLarkAccountExtra) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.SecretKey = _field - return offset, nil -} - -func (p *SkyLarkAccountExtra) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *SkyLarkAccountExtra) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *SkyLarkAccountExtra) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *SkyLarkAccountExtra) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetAccessKey() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.AccessKey) - } - return offset -} - -func (p *SkyLarkAccountExtra) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetSecretKey() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.SecretKey) - } - return offset -} - -func (p *SkyLarkAccountExtra) field1Length() int { - l := 0 - if p.IsSetAccessKey() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.AccessKey) - } - return l -} - -func (p *SkyLarkAccountExtra) field2Length() int { - l := 0 - if p.IsSetSecretKey() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.SecretKey) - } - return l -} - -func (p *SkyLarkAccountExtra) DeepCopy(s interface{}) error { - src, ok := s.(*SkyLarkAccountExtra) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.AccessKey != nil { - var tmp string - if *src.AccessKey != "" { - tmp = kutils.StringDeepCopy(*src.AccessKey) - } - p.AccessKey = &tmp - } - - if src.SecretKey != nil { - var tmp string - if *src.SecretKey != "" { - tmp = kutils.StringDeepCopy(*src.SecretKey) - } - p.SecretKey = &tmp - } - - return nil -} - -func (p *CustomAccount) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 3: - if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField3(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 4: - if fieldTypeId == thrift.I64 { - l, err = p.FastReadField4(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_CustomAccount[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *CustomAccount) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.ModelName = _field - return offset, nil -} - -func (p *CustomAccount) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.APIKey = _field - return offset, nil -} - -func (p *CustomAccount) FastReadField3(buf []byte) (int, error) { - offset := 0 - _field := NewSkyLarkAccountExtra() - if l, err := _field.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - p.SkyLarkAccountExtra = _field - return offset, nil -} - -func (p *CustomAccount) FastReadField4(buf []byte) (int, error) { - offset := 0 - - var _field *int64 - if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.ConnectorID = _field - return offset, nil -} - -func (p *CustomAccount) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *CustomAccount) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField4(buf[offset:], w) - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - offset += p.fastWriteField3(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *CustomAccount) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - l += p.field3Length() - l += p.field4Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *CustomAccount) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetModelName() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.ModelName) - } - return offset -} - -func (p *CustomAccount) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetAPIKey() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.APIKey) - } - return offset -} - -func (p *CustomAccount) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetSkyLarkAccountExtra() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 3) - offset += p.SkyLarkAccountExtra.FastWriteNocopy(buf[offset:], w) - } - return offset -} - -func (p *CustomAccount) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetConnectorID() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 4) - offset += thrift.Binary.WriteI64(buf[offset:], *p.ConnectorID) - } - return offset -} - -func (p *CustomAccount) field1Length() int { - l := 0 - if p.IsSetModelName() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.ModelName) - } - return l -} - -func (p *CustomAccount) field2Length() int { - l := 0 - if p.IsSetAPIKey() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.APIKey) - } - return l -} - -func (p *CustomAccount) field3Length() int { - l := 0 - if p.IsSetSkyLarkAccountExtra() { - l += thrift.Binary.FieldBeginLength() - l += p.SkyLarkAccountExtra.BLength() - } - return l -} - -func (p *CustomAccount) field4Length() int { - l := 0 - if p.IsSetConnectorID() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() - } - return l -} - -func (p *CustomAccount) DeepCopy(s interface{}) error { - src, ok := s.(*CustomAccount) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.ModelName != nil { - var tmp string - if *src.ModelName != "" { - tmp = kutils.StringDeepCopy(*src.ModelName) - } - p.ModelName = &tmp - } - - if src.APIKey != nil { - var tmp string - if *src.APIKey != "" { - tmp = kutils.StringDeepCopy(*src.APIKey) - } - p.APIKey = &tmp - } - - var _skyLarkAccountExtra *SkyLarkAccountExtra - if src.SkyLarkAccountExtra != nil { - _skyLarkAccountExtra = &SkyLarkAccountExtra{} - if err := _skyLarkAccountExtra.DeepCopy(src.SkyLarkAccountExtra); err != nil { - return err - } - } - p.SkyLarkAccountExtra = _skyLarkAccountExtra - - if src.ConnectorID != nil { - tmp := *src.ConnectorID - p.ConnectorID = &tmp - } - - return nil -} - func (p *ParamConfigValue) FastRead(buf []byte) (int, error) { var err error diff --git a/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift b/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift index 2038dae7e..c0055776d 100644 --- a/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift +++ b/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift @@ -41,9 +41,7 @@ struct ExecuteRequest { 22: optional ModelConfig custom_model_config (api.body="custom_model_config") // 自定义模型配置 23: optional ResponseAPIConfig response_api_config (api.body="response_api_config") // response api 配置 24: optional AccountMode account_mode (api.body="account_mode") // 账号模式(兼容字段) - 25: optional list custom_accounts (api.body="custom_accounts") // 自定义模型账号(兼容字段) 26: optional UsageScenario usage_scenario (api.body="usage_scenario") // 使用场景(兼容字段) - 27: optional RequestExtra request_extra (api.body="request_extra") // 请求额外参数(兼容字段) 28: optional string release_label (api.body="release_label") // 发布标签(兼容字段) 29: optional ToolCallConfig custom_tool_config (api.body="custom_tool_config") // 自定义工具配置(兼容字段) @@ -378,22 +376,6 @@ enum UsageScenario { AITag = 6 } -struct RequestExtra { - 1: optional string gpt_open_api_extra // GPT OpenAPI 平台透传参数 -} - -struct SkyLarkAccountExtra { - 1: optional string access_key - 2: optional string secret_key -} - -struct CustomAccount { - 1: optional string model_name // 模型名称 - 2: optional string api_key // 模型账号 - 3: optional SkyLarkAccountExtra sky_lark_account_extra // SkyLark账号扩展 - 4: optional i64 connector_id (api.js_conv='true', go.tag='json:"connector_id"') // connector id -} - struct ParamConfigValue { 1: optional string name // 传给下游模型的key,与ParamSchema.name对齐 2: optional string label // 展示名称 From 40599b12197f4c60e1a427f9d797e54fb29057b3 Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Thu, 5 Mar 2026 19:15:48 +0800 Subject: [PATCH 44/58] feat(prompt): align openapi execute metrics and ptaas event fields --- backend/modules/prompt/application/openapi.go | 104 ++++++++++++------ .../prompt/infra/collector/event_collector.go | 23 ++-- 2 files changed, 85 insertions(+), 42 deletions(-) diff --git a/backend/modules/prompt/application/openapi.go b/backend/modules/prompt/application/openapi.go index edd66ddad..2334dfc1a 100644 --- a/backend/modules/prompt/application/openapi.go +++ b/backend/modules/prompt/application/openapi.go @@ -378,21 +378,23 @@ func (p *PromptOpenAPIApplicationImpl) Execute(ctx context.Context, req *openapi if promptDO != nil { version = promptDO.GetVersion() } - if reply != nil && reply.Item != nil { - intputTokens = reply.Item.TokenUsage.InputTokens - outputTokens = reply.Item.TokenUsage.OutputTokens - } + intputTokens, outputTokens = getReplyTokenUsage(reply) p.emitExecuteMetrics(ctx, req, promptDO, reply, err, "Execute") p.collector.CollectPTaaSEvent(ctx, &collector.ExecuteLog{ - SpaceID: req.GetWorkspaceID(), - PromptKey: getRequestPromptKey(req), - Version: version, - Stream: false, - InputTokens: intputTokens, - OutputTokens: outputTokens, - StartedAt: startTime, - EndedAt: time.Now(), - StatusCode: errCode, + SpaceID: req.GetWorkspaceID(), + PromptKey: getRequestPromptKey(req), + Version: version, + Method: "Execute", + Stream: false, + HasMessage: len(req.Messages) > 0, + HasContexts: len(req.Messages) > 1, + AccountMode: getRequestAccountMode(req).String(), + UsageScenario: getRequestUsageScenario(req).String(), + InputTokens: intputTokens, + OutputTokens: outputTokens, + StartedAt: startTime, + EndedAt: time.Now(), + StatusCode: errCode, }) }() r = openapi.NewExecuteResponse() @@ -503,21 +505,23 @@ func (p *PromptOpenAPIApplicationImpl) ExecuteStreaming(ctx context.Context, req if promptDO != nil { version = promptDO.GetVersion() } - if aggregatedReply != nil && aggregatedReply.Item != nil { - intputTokens = aggregatedReply.Item.TokenUsage.InputTokens - outputTokens = aggregatedReply.Item.TokenUsage.OutputTokens - } - p.emitExecuteMetrics(ctx, req, promptDO, aggregatedReply, err, "ExecuteStreaming") + intputTokens, outputTokens = getReplyTokenUsage(aggregatedReply) + p.emitExecuteMetrics(ctx, req, promptDO, aggregatedReply, err, "StreamingExecute") p.collector.CollectPTaaSEvent(ctx, &collector.ExecuteLog{ - SpaceID: req.GetWorkspaceID(), - PromptKey: getRequestPromptKey(req), - Version: version, - Stream: true, - InputTokens: intputTokens, - OutputTokens: outputTokens, - StartedAt: startTime, - EndedAt: time.Now(), - StatusCode: errCode, + SpaceID: req.GetWorkspaceID(), + PromptKey: getRequestPromptKey(req), + Version: version, + Method: "StreamingExecute", + Stream: true, + HasMessage: len(req.Messages) > 0, + HasContexts: len(req.Messages) > 1, + AccountMode: getRequestAccountMode(req).String(), + UsageScenario: getRequestUsageScenario(req).String(), + InputTokens: intputTokens, + OutputTokens: outputTokens, + StartedAt: startTime, + EndedAt: time.Now(), + StatusCode: errCode, }) }() err = validateExecuteRequest(req) @@ -573,6 +577,7 @@ func (p *PromptOpenAPIApplicationImpl) doExecuteStreaming(ctx context.Context, r // 执行prompt流式调用 resultStream := make(chan *entity.Reply) receivedFirstToken := false + var latestInputTokens, latestOutputTokens int64 type replyResult struct { Reply *entity.Reply Err error @@ -615,6 +620,9 @@ func (p *PromptOpenAPIApplicationImpl) doExecuteStreaming(ctx context.Context, r if reply == nil || reply.Item == nil { continue } + chunkInputTokens, chunkOutputTokens := getReplyTokenUsage(reply) + latestInputTokens = chunkInputTokens + latestOutputTokens = chunkOutputTokens if !receivedFirstToken { receivedFirstToken = true promptmetrics.WithPaasFirstTokenTime(ctx) @@ -638,9 +646,11 @@ func (p *PromptOpenAPIApplicationImpl) doExecuteStreaming(ctx context.Context, r if st, ok := status.FromError(err); (ok && st.Code() == codes.Canceled) || errors.Is(err, context.Canceled) { err = nil logs.CtxWarn(ctx, "execute streaming canceled") + return promptDO, buildTokenUsageReply(latestInputTokens, latestOutputTokens), err } else if errors.Is(err, context.DeadlineExceeded) { err = nil logs.CtxWarn(ctx, "execute streaming ctx deadline exceeded") + return promptDO, buildTokenUsageReply(latestInputTokens, latestOutputTokens), err } else { logs.CtxError(ctx, "send chunk failed, err=%v", err) } @@ -857,6 +867,38 @@ func getRequestPromptKey(req *openapi.ExecuteRequest) string { return req.GetPromptIdentifier().GetPromptKey() } +func getRequestAccountMode(req *openapi.ExecuteRequest) openapi.AccountMode { + if req == nil || req.AccountMode == nil { + return openapi.AccountMode_SharedAccount + } + return req.GetAccountMode() +} + +func getRequestUsageScenario(req *openapi.ExecuteRequest) openapi.UsageScenario { + if req == nil || req.UsageScenario == nil { + return openapi.UsageScenario_PromptAsAService + } + return req.GetUsageScenario() +} + +func getReplyTokenUsage(reply *entity.Reply) (inputTokens int64, outputTokens int64) { + if reply == nil || reply.Item == nil || reply.Item.TokenUsage == nil { + return 0, 0 + } + return reply.Item.TokenUsage.InputTokens, reply.Item.TokenUsage.OutputTokens +} + +func buildTokenUsageReply(inputTokens int64, outputTokens int64) *entity.Reply { + return &entity.Reply{ + Item: &entity.ReplyItem{ + TokenUsage: &entity.TokenUsage{ + InputTokens: inputTokens, + OutputTokens: outputTokens, + }, + }, + } +} + func (p *PromptOpenAPIApplicationImpl) emitExecuteMetrics( ctx context.Context, req *openapi.ExecuteRequest, @@ -876,12 +918,8 @@ func (p *PromptOpenAPIApplicationImpl) emitExecuteMetrics( if req.GetPromptIdentifier() != nil && req.GetPromptIdentifier().GetPromptKey() != "" { promptmetrics.WithPaasPromptKey(ctx, req.GetPromptIdentifier().GetPromptKey()) } - if req.AccountMode != nil { - promptmetrics.WithPaaSAccountMode(ctx, req.GetAccountMode().String()) - } - if req.UsageScenario != nil { - promptmetrics.WithPaasUsageScenario(ctx, req.GetUsageScenario().String()) - } + promptmetrics.WithPaaSAccountMode(ctx, getRequestAccountMode(req).String()) + promptmetrics.WithPaasUsageScenario(ctx, getRequestUsageScenario(req).String()) // OpenAPI 使用 messages 承载上下文与当前提问,兼容 legacy tags 语义 hasMessage := len(req.Messages) > 0 diff --git a/backend/modules/prompt/infra/collector/event_collector.go b/backend/modules/prompt/infra/collector/event_collector.go index e6f2c0556..cf7f1599b 100644 --- a/backend/modules/prompt/infra/collector/event_collector.go +++ b/backend/modules/prompt/infra/collector/event_collector.go @@ -17,15 +17,20 @@ type ICollectorProvider interface { } type ExecuteLog struct { - SpaceID int64 `json:"space_id,omitempty"` - PromptKey string `json:"prompt_key,omitempty"` - Version string `json:"version,omitempty"` - Stream bool `json:"stream,omitempty"` - InputTokens int64 `json:"input_tokens,omitempty"` - OutputTokens int64 `json:"output_tokens,omitempty"` - StartedAt time.Time `json:"started_at,omitempty"` - EndedAt time.Time `json:"ended_at,omitempty"` - StatusCode int32 `json:"status_code,omitempty"` + SpaceID int64 `json:"space_id,omitempty"` + PromptKey string `json:"prompt_key,omitempty"` + Version string `json:"version,omitempty"` + Method string `json:"method,omitempty"` + Stream bool `json:"stream,omitempty"` + HasMessage bool `json:"has_message,omitempty"` + HasContexts bool `json:"has_contexts,omitempty"` + AccountMode string `json:"account_mode,omitempty"` + UsageScenario string `json:"usage_scenario,omitempty"` + InputTokens int64 `json:"input_tokens,omitempty"` + OutputTokens int64 `json:"output_tokens,omitempty"` + StartedAt time.Time `json:"started_at,omitempty"` + EndedAt time.Time `json:"ended_at,omitempty"` + StatusCode int32 `json:"status_code,omitempty"` } type EventCollectorProviderImpl struct{} From 644825d88924b24c293332d2d30b22a849653c61 Mon Sep 17 00:00:00 2001 From: "wanglizhi.pro" Date: Thu, 12 Mar 2026 21:19:02 +0800 Subject: [PATCH 45/58] feat: fix the data race of debug --- backend/modules/prompt/application/debug.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/backend/modules/prompt/application/debug.go b/backend/modules/prompt/application/debug.go index f9e96d65c..3106a8e4b 100644 --- a/backend/modules/prompt/application/debug.go +++ b/backend/modules/prompt/application/debug.go @@ -234,8 +234,10 @@ func (p *PromptDebugApplicationImpl) doDebugStreaming(ctx context.Context, req * // execute resultStream := make(chan *entity.Reply) errChan := make(chan error) + replyChan := make(chan *entity.Reply, 1) goroutine.GoSafe(ctx, func() { var executeErr error + var localReply *entity.Reply defer func() { e := recover() if e != nil { @@ -243,6 +245,8 @@ func (p *PromptDebugApplicationImpl) doDebugStreaming(ctx context.Context, req * } // 确保errChan和resultStream被关闭 close(resultStream) + replyChan <- localReply + close(replyChan) if executeErr != nil { errChan <- executeErr } @@ -253,7 +257,7 @@ func (p *PromptDebugApplicationImpl) doDebugStreaming(ctx context.Context, req * logErr := p.saveDebugLog(context.WithoutCancel(ctx), saveDebugLogParam{ prompt: prompt, startTime: startTime, - result: aggregatedReply, + result: localReply, err: executeErr, singleStepDebug: req.GetSingleStepDebug(), }) @@ -269,7 +273,7 @@ func (p *PromptDebugApplicationImpl) doDebugStreaming(ctx context.Context, req * if executeErr != nil { return } - aggregatedReply, executeErr = p.promptService.ExecuteStreaming(ctx, service.ExecuteStreamingParam{ + localReply, executeErr = p.promptService.ExecuteStreaming(ctx, service.ExecuteStreamingParam{ ExecuteParam: service.ExecuteParam{ Prompt: prompt, Messages: messages, @@ -318,6 +322,7 @@ func (p *PromptDebugApplicationImpl) doDebugStreaming(ctx context.Context, req * return nil, err } } + aggregatedReply = <-replyChan select { //nolint:staticcheck case err, ok = <-errChan: if !ok { From 471205f31283351011b0de8d3b8e20ff221a3573 Mon Sep 17 00:00:00 2001 From: "wangluming.wlm" Date: Tue, 17 Mar 2026 20:17:39 +0800 Subject: [PATCH 46/58] bugfix:Copyright --- .../prompt/infra/repo/mysql/hooks/prompt_commit_hook.go | 3 +++ .../prompt/infra/repo/mysql/hooks/prompt_user_draft_hook.go | 3 +++ backend/modules/prompt/pkg/consts/prompt.go | 3 +++ 3 files changed, 9 insertions(+) diff --git a/backend/modules/prompt/infra/repo/mysql/hooks/prompt_commit_hook.go b/backend/modules/prompt/infra/repo/mysql/hooks/prompt_commit_hook.go index 31038b93e..8157fe955 100644 --- a/backend/modules/prompt/infra/repo/mysql/hooks/prompt_commit_hook.go +++ b/backend/modules/prompt/infra/repo/mysql/hooks/prompt_commit_hook.go @@ -1,3 +1,6 @@ +// Copyright (c) 2025 coze-dev Authors +// SPDX-License-Identifier: Apache-2.0 + package hooks import ( diff --git a/backend/modules/prompt/infra/repo/mysql/hooks/prompt_user_draft_hook.go b/backend/modules/prompt/infra/repo/mysql/hooks/prompt_user_draft_hook.go index cba896698..f935ee548 100644 --- a/backend/modules/prompt/infra/repo/mysql/hooks/prompt_user_draft_hook.go +++ b/backend/modules/prompt/infra/repo/mysql/hooks/prompt_user_draft_hook.go @@ -1,3 +1,6 @@ +// Copyright (c) 2025 coze-dev Authors +// SPDX-License-Identifier: Apache-2.0 + package hooks import ( diff --git a/backend/modules/prompt/pkg/consts/prompt.go b/backend/modules/prompt/pkg/consts/prompt.go index 273501ad0..df50a6340 100644 --- a/backend/modules/prompt/pkg/consts/prompt.go +++ b/backend/modules/prompt/pkg/consts/prompt.go @@ -1,3 +1,6 @@ +// Copyright (c) 2025 coze-dev Authors +// SPDX-License-Identifier: Apache-2.0 + package consts const PromptPersonalDraftVersion = "$Draft" From 09d8b7bd1c86c7ed987cced5a49cc54c04c323d7 Mon Sep 17 00:00:00 2001 From: "wangluming.wlm" Date: Tue, 17 Mar 2026 20:41:21 +0800 Subject: [PATCH 47/58] =?UTF-8?q?fix=EF=BC=9Amissing=20method=20BatchGetPr?= =?UTF-8?q?omptBasic?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rpc/prompt/mocks/prompt_manage_client.go | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/backend/modules/evaluation/infra/rpc/prompt/mocks/prompt_manage_client.go b/backend/modules/evaluation/infra/rpc/prompt/mocks/prompt_manage_client.go index 9eb57e767..ee4f0557c 100644 --- a/backend/modules/evaluation/infra/rpc/prompt/mocks/prompt_manage_client.go +++ b/backend/modules/evaluation/infra/rpc/prompt/mocks/prompt_manage_client.go @@ -82,6 +82,26 @@ func (mr *MockPromptManageClientMockRecorder) BatchGetPrompt(ctx, request any, c return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BatchGetPrompt", reflect.TypeOf((*MockPromptManageClient)(nil).BatchGetPrompt), varargs...) } +// BatchGetPromptBasic mocks base method. +func (m *MockPromptManageClient) BatchGetPromptBasic(ctx context.Context, request *manage.BatchGetPromptBasicRequest, callOptions ...callopt.Option) (*manage.BatchGetPromptBasicResponse, error) { + m.ctrl.T.Helper() + varargs := []any{ctx, request} + for _, a := range callOptions { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "BatchGetPromptBasic", varargs...) + ret0, _ := ret[0].(*manage.BatchGetPromptBasicResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// BatchGetPromptBasic indicates an expected call of BatchGetPromptBasic. +func (mr *MockPromptManageClientMockRecorder) BatchGetPromptBasic(ctx, request any, callOptions ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{ctx, request}, callOptions...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BatchGetPromptBasic", reflect.TypeOf((*MockPromptManageClient)(nil).BatchGetPromptBasic), varargs...) +} + // ClonePrompt mocks base method. func (m *MockPromptManageClient) ClonePrompt(ctx context.Context, request *manage.ClonePromptRequest, callOptions ...callopt.Option) (*manage.ClonePromptResponse, error) { m.ctrl.T.Helper() From 5e799527f44e2ef07299ce5c4e53b4399b319a29 Mon Sep 17 00:00:00 2001 From: "wangluming.wlm" Date: Tue, 17 Mar 2026 20:50:04 +0800 Subject: [PATCH 48/58] =?UTF-8?q?fix=EF=BC=9AuserClient?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/api/handler/coze/loop/apis/wire_gen.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/backend/api/handler/coze/loop/apis/wire_gen.go b/backend/api/handler/coze/loop/apis/wire_gen.go index 966af231a..d0370a99d 100644 --- a/backend/api/handler/coze/loop/apis/wire_gen.go +++ b/backend/api/handler/coze/loop/apis/wire_gen.go @@ -8,7 +8,6 @@ package apis import ( "context" - "github.com/cloudwego/kitex/pkg/endpoint" "github.com/coze-dev/coze-loop/backend/infra/ck" "github.com/coze-dev/coze-loop/backend/infra/db" @@ -100,7 +99,7 @@ func InitPromptHandler(ctx context.Context, idgen2 idgen.IIDGenerator, db2 db.Pr if err != nil { return nil, err } - promptOpenAPIService, err := application2.InitPromptOpenAPIApplication(idgen2, db2, redisCli, meter, configFactory, limiterFactory, llmClient, authClient, fileClient) + promptOpenAPIService, err := application2.InitPromptOpenAPIApplication(idgen2, db2, redisCli, meter, configFactory, limiterFactory, llmClient, authClient, fileClient, userClient) if err != nil { return nil, err } From fe23bb767b67680894e1e74028fed5a7a2a02739 Mon Sep 17 00:00:00 2001 From: "wangluming.wlm" Date: Tue, 17 Mar 2026 22:01:49 +0800 Subject: [PATCH 49/58] =?UTF-8?q?fix=EF=BC=9Atest?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/convertor/prompt_test.go | 6 ++++ .../modules/prompt/application/manage_test.go | 28 +++++++++++-------- .../openapi_request_normalize_test.go | 1 - .../prompt/application/openapi_test.go | 2 +- 4 files changed, 23 insertions(+), 14 deletions(-) diff --git a/backend/modules/prompt/application/convertor/prompt_test.go b/backend/modules/prompt/application/convertor/prompt_test.go index dd6378937..399777cf7 100644 --- a/backend/modules/prompt/application/convertor/prompt_test.go +++ b/backend/modules/prompt/application/convertor/prompt_test.go @@ -64,6 +64,7 @@ func mockPromptCases() []promptTestCase { PromptKey: ptr.Of("test_prompt"), PromptBasic: &prompt.PromptBasic{ PromptType: ptr.Of(prompt.PromptTypeNormal), + SecurityLevel: ptr.Of(string(entity.SecurityLevelL3)), DisplayName: ptr.Of("Test Prompt"), Description: ptr.Of("Test PromptDescription"), LatestVersion: ptr.Of("1.0.0"), @@ -180,6 +181,7 @@ func mockPromptCases() []promptTestCase { PromptKey: "test_prompt", PromptBasic: &entity.PromptBasic{ PromptType: entity.PromptTypeNormal, + SecurityLevel: entity.SecurityLevelL3, DisplayName: "Test Prompt", Description: "Test PromptDescription", LatestVersion: "1.0.0", @@ -297,6 +299,7 @@ func mockPromptCases() []promptTestCase { PromptKey: ptr.Of("test_prompt"), PromptBasic: &prompt.PromptBasic{ PromptType: ptr.Of(prompt.PromptTypeNormal), + SecurityLevel: ptr.Of(string(entity.SecurityLevelL3)), DisplayName: ptr.Of("Test Prompt"), Description: ptr.Of("Test PromptDescription"), LatestVersion: ptr.Of("1.0.0"), @@ -312,6 +315,7 @@ func mockPromptCases() []promptTestCase { PromptKey: "test_prompt", PromptBasic: &entity.PromptBasic{ PromptType: entity.PromptTypeNormal, + SecurityLevel: entity.SecurityLevelL3, DisplayName: "Test Prompt", Description: "Test PromptDescription", LatestVersion: "1.0.0", @@ -438,6 +442,7 @@ func mockPromptCases() []promptTestCase { PromptKey: ptr.Of("snippet_prompt"), PromptBasic: &prompt.PromptBasic{ PromptType: ptr.Of(prompt.PromptTypeSnippet), + SecurityLevel: ptr.Of(string(entity.SecurityLevelL3)), DisplayName: ptr.Of("Snippet Prompt"), Description: ptr.Of("Snippet description"), LatestVersion: ptr.Of("2.0.0"), @@ -495,6 +500,7 @@ func mockPromptCases() []promptTestCase { PromptKey: "snippet_prompt", PromptBasic: &entity.PromptBasic{ PromptType: entity.PromptTypeSnippet, + SecurityLevel: entity.SecurityLevelL3, DisplayName: "Snippet Prompt", Description: "Snippet description", LatestVersion: "2.0.0", diff --git a/backend/modules/prompt/application/manage_test.go b/backend/modules/prompt/application/manage_test.go index 74ffa7199..4433513aa 100644 --- a/backend/modules/prompt/application/manage_test.go +++ b/backend/modules/prompt/application/manage_test.go @@ -753,6 +753,7 @@ func TestPromptManageApplicationImpl_GetPrompt(t *testing.T) { CreatedAt: ptr.Of(baseTime.UnixMilli()), UpdatedAt: ptr.Of(baseTime.UnixMilli()), PromptType: ptr.Of(prompt.PromptTypeNormal), + SecurityLevel: ptr.Of(string(entity.SecurityLevelL3)), }, PromptCommit: &prompt.PromptCommit{ Detail: &prompt.PromptDetail{ @@ -870,6 +871,7 @@ func TestPromptManageApplicationImpl_GetPrompt(t *testing.T) { CreatedAt: ptr.Of(draftTime.UnixMilli()), UpdatedAt: ptr.Of(draftTime.UnixMilli()), PromptType: ptr.Of(prompt.PromptTypeNormal), + SecurityLevel: ptr.Of(string(entity.SecurityLevelL3)), }, PromptDraft: &prompt.PromptDraft{ Detail: &prompt.PromptDetail{ @@ -1027,6 +1029,7 @@ func TestPromptManageApplicationImpl_GetPrompt(t *testing.T) { CreatedAt: ptr.Of(snippetTime.UnixMilli()), UpdatedAt: ptr.Of(snippetTime.UnixMilli()), PromptType: ptr.Of(prompt.PromptTypeSnippet), + SecurityLevel: ptr.Of(string(entity.SecurityLevelL3)), }, } resp.TotalParentReferences = ptr.Of(int32(5)) @@ -1198,6 +1201,7 @@ func TestPromptManageApplicationImpl_ListPrompt(t *testing.T) { UpdatedAt: ptr.Of(now.UnixMilli()), LatestCommittedAt: ptr.Of(now.UnixMilli()), PromptType: ptr.Of(prompt.PromptTypeNormal), + SecurityLevel: ptr.Of(string(entity.SecurityLevelL3)), }, }, }, @@ -1316,6 +1320,7 @@ func TestPromptManageApplicationImpl_ListPrompt(t *testing.T) { UpdatedAt: ptr.Of(now.UnixMilli()), LatestCommittedAt: ptr.Of(now.UnixMilli()), PromptType: ptr.Of(prompt.PromptTypeNormal), + SecurityLevel: ptr.Of(string(entity.SecurityLevelL3)), }, }, { @@ -1331,6 +1336,7 @@ func TestPromptManageApplicationImpl_ListPrompt(t *testing.T) { CreatedAt: ptr.Of(now.UnixMilli()), UpdatedAt: ptr.Of(now.UnixMilli()), PromptType: ptr.Of(prompt.PromptTypeNormal), + SecurityLevel: ptr.Of(string(entity.SecurityLevelL3)), }, }, }, @@ -1455,6 +1461,7 @@ func TestPromptManageApplicationImpl_ListPrompt(t *testing.T) { UpdatedAt: ptr.Of(now.UnixMilli()), LatestCommittedAt: ptr.Of(now.UnixMilli()), PromptType: ptr.Of(prompt.PromptTypeNormal), + SecurityLevel: ptr.Of(string(entity.SecurityLevelL3)), }, PromptDraft: &prompt.PromptDraft{ Detail: &prompt.PromptDetail{ @@ -1611,6 +1618,7 @@ func TestPromptManageApplicationImpl_ListPrompt(t *testing.T) { UpdatedAt: ptr.Of(now.UnixMilli()), LatestCommittedAt: ptr.Of(now.UnixMilli()), PromptType: ptr.Of(prompt.PromptTypeSnippet), + SecurityLevel: ptr.Of(string(entity.SecurityLevelL3)), }, }, }, @@ -2179,8 +2187,7 @@ func TestPromptManageApplicationImpl_ListParentPrompt(t *testing.T) { name: "permission denied", fieldsGetter: func(ctrl *gomock.Controller) fields { mockAuth := mocks.NewMockIAuthProvider(ctrl) - mockAuth.EXPECT().CheckSpacePermission(gomock.Any(), int64(1), consts.ActionLoopPromptRead). - Return(errorx.NewByCode(prompterr.CommonNoPermissionCode)) + mockAuth.EXPECT().MCheckPromptPermission(gomock.Any(), int64(1), []int64{1}, consts.ActionLoopPromptRead).Return(errorx.NewByCode(prompterr.CommonNoPermissionCode)) return fields{ authRPCProvider: mockAuth, @@ -2199,12 +2206,8 @@ func TestPromptManageApplicationImpl_ListParentPrompt(t *testing.T) { { name: "invalid prompt ID", fieldsGetter: func(ctrl *gomock.Controller) fields { - mockAuth := mocks.NewMockIAuthProvider(ctrl) - mockAuth.EXPECT().CheckSpacePermission(gomock.Any(), int64(1), consts.ActionLoopPromptRead). - Return(nil) - return fields{ - authRPCProvider: mockAuth, + authRPCProvider: nil, manageRepo: nil, promptService: nil, userRPCProvider: nil, @@ -2227,8 +2230,7 @@ func TestPromptManageApplicationImpl_ListParentPrompt(t *testing.T) { name: "successful list parent prompts", fieldsGetter: func(ctrl *gomock.Controller) fields { mockAuth := mocks.NewMockIAuthProvider(ctrl) - mockAuth.EXPECT().CheckSpacePermission(gomock.Any(), int64(1), consts.ActionLoopPromptRead). - Return(nil) + mockAuth.EXPECT().MCheckPromptPermission(gomock.Any(), int64(1), []int64{1}, consts.ActionLoopPromptRead).Return(nil) mockRepo := repomocks.NewMockIManageRepo(ctrl) mockRepo.EXPECT().ListParentPrompt(gomock.Any(), repo.ListParentPromptParam{ @@ -2281,6 +2283,7 @@ func TestPromptManageApplicationImpl_ListParentPrompt(t *testing.T) { Description: ptr.Of("parent description"), LatestVersion: ptr.Of("2.0.0"), PromptType: ptr.Of(prompt.PromptTypeSnippet), + SecurityLevel: ptr.Of(string(entity.SecurityLevelL3)), CreatedBy: ptr.Of(""), UpdatedBy: ptr.Of(""), CreatedAt: ptr.Of(time.Time{}.UnixMilli()), @@ -2297,8 +2300,7 @@ func TestPromptManageApplicationImpl_ListParentPrompt(t *testing.T) { name: "repository error", fieldsGetter: func(ctrl *gomock.Controller) fields { mockAuth := mocks.NewMockIAuthProvider(ctrl) - mockAuth.EXPECT().CheckSpacePermission(gomock.Any(), int64(1), consts.ActionLoopPromptRead). - Return(nil) + mockAuth.EXPECT().MCheckPromptPermission(gomock.Any(), int64(1), []int64{1}, consts.ActionLoopPromptRead).Return(nil) mockRepo := repomocks.NewMockIManageRepo(ctrl) mockRepo.EXPECT().ListParentPrompt(gomock.Any(), repo.ListParentPromptParam{ @@ -2392,9 +2394,11 @@ func TestPromptManageApplicationImpl_UpdatePrompt(t *testing.T) { UpdatedBy: "user", PromptName: "name", PromptDescription: "desc", + SecurityLevel: entity.SecurityLevelL3, }).Return(nil) auth := mocks.NewMockIAuthProvider(ctrl) - auth.EXPECT().MCheckPromptPermission(gomock.Any(), int64(20), []int64{int64(2)}, consts.ActionLoopPromptEdit).Return(nil) + auth.EXPECT().MCheckPromptPermission(gomock.Any(), int64(20), []int64{int64(2)}, consts.ActionLoopPromptEditSecLevel).Return(nil).AnyTimes() + auth.EXPECT().MCheckPromptPermission(gomock.Any(), int64(20), []int64{int64(2)}, consts.ActionLoopPromptEdit).Return(nil).AnyTimes() audit := mocks.NewMockIAuditProvider(ctrl) audit.EXPECT().AuditPrompt(gomock.Any(), gomock.Any()).DoAndReturn(func(_ context.Context, promptDO *entity.Prompt) error { assert.Equal(t, int64(2), promptDO.ID) diff --git a/backend/modules/prompt/application/openapi_request_normalize_test.go b/backend/modules/prompt/application/openapi_request_normalize_test.go index 0718bc786..7165aa5c5 100644 --- a/backend/modules/prompt/application/openapi_request_normalize_test.go +++ b/backend/modules/prompt/application/openapi_request_normalize_test.go @@ -58,4 +58,3 @@ func TestNormalizeExecuteRequest(t *testing.T) { assert.Equal(t, openapi.ToolChoiceTypeAuto, normalized.CustomToolCallConfig.GetToolChoice()) }) } - diff --git a/backend/modules/prompt/application/openapi_test.go b/backend/modules/prompt/application/openapi_test.go index a01da4380..27226bcc8 100644 --- a/backend/modules/prompt/application/openapi_test.go +++ b/backend/modules/prompt/application/openapi_test.go @@ -3421,7 +3421,7 @@ func TestPromptOpenAPIApplicationImpl_ExecuteStreaming(t *testing.T) { mockPromptService.EXPECT().ExpandSnippets(gomock.Any(), gomock.Any()).Return(nil) mockPromptService.EXPECT().ExecuteStreaming(gomock.Any(), gomock.Any()).DoAndReturn( func(ctx context.Context, param service.ExecuteStreamingParam) (*entity.Reply, error) { - assert.Equal(t, expectedResponseAPIConfig, param.ExecuteParam.ResponseAPIConfig) + assert.Equal(t, expectedResponseAPIConfig, param.ResponseAPIConfig) // 模拟发送多个流式响应 - 使用同步方式避免竞争条件 // 发送第一个chunk param.ResultStream <- &entity.Reply{ From cc3f3af57ed4af5a869245724f90e384305739e3 Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Wed, 18 Mar 2026 11:26:22 +0800 Subject: [PATCH 50/58] [feat][prompt]: fix enum --- .../coze/loop/apis/prompt_manage_service.go | 7 +- .../api/handler/coze/loop/apis/wire_gen.go | 1 + .../router/coze/loop/apis/coze.loop.apis.go | 1 + .../api/router/coze/loop/apis/middleware.go | 5 + .../coze/loop/prompt/domain/prompt/prompt.go | 6 +- .../openapi/coze.loop.prompt.openapi.go | 415 ++++-------------- .../openapi/k-coze.loop.prompt.openapi.go | 84 ++-- .../prompt/application/convertor/openapi.go | 52 ++- .../application/convertor/openapi_test.go | 16 +- backend/modules/prompt/application/openapi.go | 16 +- .../prompt/coze.loop.prompt.openapi.thrift | 77 ++-- 11 files changed, 228 insertions(+), 452 deletions(-) diff --git a/backend/api/handler/coze/loop/apis/prompt_manage_service.go b/backend/api/handler/coze/loop/apis/prompt_manage_service.go index 388b0d4a8..8999ea230 100644 --- a/backend/api/handler/coze/loop/apis/prompt_manage_service.go +++ b/backend/api/handler/coze/loop/apis/prompt_manage_service.go @@ -9,7 +9,6 @@ import ( "context" "github.com/cloudwego/hertz/pkg/app" - "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/prompt/manage/promptmanageservice" ) @@ -104,3 +103,9 @@ func BatchGetLabel(ctx context.Context, c *app.RequestContext) { func ListParentPrompt(ctx context.Context, c *app.RequestContext) { invokeAndRender(ctx, c, promptManageSvc.ListParentPrompt) } + +// BatchGetPromptBasic . +// @router /api/prompt/v1/prompts/batch_get_prompt_basic [POST] +func BatchGetPromptBasic(ctx context.Context, c *app.RequestContext) { + invokeAndRender(ctx, c, promptManageSvc.BatchGetPromptBasic) +} diff --git a/backend/api/handler/coze/loop/apis/wire_gen.go b/backend/api/handler/coze/loop/apis/wire_gen.go index d0370a99d..c2c5d144f 100644 --- a/backend/api/handler/coze/loop/apis/wire_gen.go +++ b/backend/api/handler/coze/loop/apis/wire_gen.go @@ -8,6 +8,7 @@ package apis import ( "context" + "github.com/cloudwego/kitex/pkg/endpoint" "github.com/coze-dev/coze-loop/backend/infra/ck" "github.com/coze-dev/coze-loop/backend/infra/db" diff --git a/backend/api/router/coze/loop/apis/coze.loop.apis.go b/backend/api/router/coze/loop/apis/coze.loop.apis.go index 48eee9c29..1a372833b 100644 --- a/backend/api/router/coze/loop/apis/coze.loop.apis.go +++ b/backend/api/router/coze/loop/apis/coze.loop.apis.go @@ -382,6 +382,7 @@ func Register(r *server.Hertz, handler *apis.APIHandler) { _labels.POST("/list", append(_listlabelMw(handler), apis.ListLabel)...) _v15.POST("/prompts", append(_promptsMw(handler), apis.CreatePrompt)...) _prompts := _v15.Group("/prompts", _promptsMw(handler)...) + _prompts.POST("/batch_get_prompt_basic", append(_batchgetpromptbasicMw(handler), apis.BatchGetPromptBasic)...) _prompts.POST("/list", append(_listpromptMw(handler), apis.ListPrompt)...) _prompts.POST("/list_parent", append(_listparentpromptMw(handler), apis.ListParentPrompt)...) _prompts.DELETE("/:prompt_id", append(_prompt_idMw(handler), apis.DeletePrompt)...) diff --git a/backend/api/router/coze/loop/apis/middleware.go b/backend/api/router/coze/loop/apis/middleware.go index 1072c860c..3459073b0 100644 --- a/backend/api/router/coze/loop/apis/middleware.go +++ b/backend/api/router/coze/loop/apis/middleware.go @@ -1999,3 +1999,8 @@ func _reportevaluatorinvokeprogressMw(handler *apis.APIHandler) []app.HandlerFun // your code... return nil } + +func _batchgetpromptbasicMw(handler *apis.APIHandler) []app.HandlerFunc { + // your code... + return nil +} diff --git a/backend/kitex_gen/coze/loop/prompt/domain/prompt/prompt.go b/backend/kitex_gen/coze/loop/prompt/domain/prompt/prompt.go index 9edfd5483..9d636ffbd 100644 --- a/backend/kitex_gen/coze/loop/prompt/domain/prompt/prompt.go +++ b/backend/kitex_gen/coze/loop/prompt/domain/prompt/prompt.go @@ -3948,8 +3948,8 @@ func (p *McpConfig) Field2DeepEqual(src []*McpServerCombine) bool { } type McpServerCombine struct { - McpServerID *int64 `thrift:"mcp_server_id,1,optional" frugal:"1,optional,i64" form:"mcp_server_id" json:"mcp_server_id,omitempty" query:"mcp_server_id"` - AccessPointID *int64 `thrift:"access_point_id,2,optional" frugal:"2,optional,i64" form:"access_point_id" json:"access_point_id,omitempty" query:"access_point_id"` + McpServerID *int64 `thrift:"mcp_server_id,1,optional" frugal:"1,optional,i64" json:"mcp_server_id" form:"mcp_server_id" query:"mcp_server_id"` + AccessPointID *int64 `thrift:"access_point_id,2,optional" frugal:"2,optional,i64" json:"access_point_id" form:"access_point_id" query:"access_point_id"` DisabledTools []string `thrift:"disabled_tools,3,optional" frugal:"3,optional,list" form:"disabled_tools" json:"disabled_tools,omitempty" query:"disabled_tools"` EnabledTools []string `thrift:"enabled_tools,4,optional" frugal:"4,optional,list" form:"enabled_tools" json:"enabled_tools,omitempty" query:"enabled_tools"` IsEnabledTools *bool `thrift:"is_enabled_tools,5,optional" frugal:"5,optional,bool" form:"is_enabled_tools" json:"is_enabled_tools,omitempty" query:"is_enabled_tools"` @@ -7196,7 +7196,7 @@ func (p *ModelConfig) Field100DeepEqual(src []*ParamConfigValue) bool { type ThinkingConfig struct { // thinking内容的最大输出token - BudgetTokens *int64 `thrift:"budget_tokens,1,optional" frugal:"1,optional,i64" form:"budget_tokens" json:"budget_tokens,omitempty" query:"budget_tokens"` + BudgetTokens *int64 `thrift:"budget_tokens,1,optional" frugal:"1,optional,i64" json:"budget_tokens" form:"budget_tokens" query:"budget_tokens"` ThinkingOption *ThinkingOption `thrift:"thinking_option,2,optional" frugal:"2,optional,ThinkingOption" form:"thinking_option" json:"thinking_option,omitempty" query:"thinking_option"` // 思考长度 ReasoningEffort *ReasoningEffort `thrift:"reasoning_effort,3,optional" frugal:"3,optional,ReasoningEffort" form:"reasoning_effort" json:"reasoning_effort,omitempty" query:"reasoning_effort"` diff --git a/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi.go b/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi.go index c3c1ed18b..434de716e 100644 --- a/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi.go +++ b/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi.go @@ -4,8 +4,6 @@ package openapi import ( "context" - "database/sql" - "database/sql/driver" "fmt" "github.com/apache/thrift/lib/go/thrift" "github.com/cloudwego/kitex/pkg/streaming" @@ -79,319 +77,54 @@ const ( ToolTypeFunction = "function" ToolTypeGoogleSearch = "google_search" -) -type PublishStatus int64 + PublishStatusUndefined = "undefined" -const ( - PublishStatus_Undefined PublishStatus = 0 - // 未发布 - PublishStatus_UnPublish PublishStatus = 1 - // 已发布 - PublishStatus_Published PublishStatus = 2 -) + PublishStatusUnPublish = "unpublish" -func (p PublishStatus) String() string { - switch p { - case PublishStatus_Undefined: - return "Undefined" - case PublishStatus_UnPublish: - return "UnPublish" - case PublishStatus_Published: - return "Published" - } - return "" -} + PublishStatusPublished = "published" -func PublishStatusFromString(s string) (PublishStatus, error) { - switch s { - case "Undefined": - return PublishStatus_Undefined, nil - case "UnPublish": - return PublishStatus_UnPublish, nil - case "Published": - return PublishStatus_Published, nil - } - return PublishStatus(0), fmt.Errorf("not a valid PublishStatus string") -} + SecurityLevelUndefined = "undefined" -func PublishStatusPtr(v PublishStatus) *PublishStatus { return &v } -func (p *PublishStatus) Scan(value interface{}) (err error) { - var result sql.NullInt64 - err = result.Scan(value) - *p = PublishStatus(result.Int64) - return -} + SecurityLevelL1 = "L1" -func (p *PublishStatus) Value() (driver.Value, error) { - if p == nil { - return nil, nil - } - return int64(*p), nil -} + SecurityLevelL2 = "L2" -type SecurityLevel int64 + SecurityLevelL3 = "L3" -const ( - SecurityLevel_Undefined SecurityLevel = 0 - SecurityLevel_L1 SecurityLevel = 1 - SecurityLevel_L2 SecurityLevel = 2 - SecurityLevel_L3 SecurityLevel = 3 - SecurityLevel_L4 SecurityLevel = 4 -) + SecurityLevelL4 = "L4" -func (p SecurityLevel) String() string { - switch p { - case SecurityLevel_Undefined: - return "Undefined" - case SecurityLevel_L1: - return "L1" - case SecurityLevel_L2: - return "L2" - case SecurityLevel_L3: - return "L3" - case SecurityLevel_L4: - return "L4" - } - return "" -} - -func SecurityLevelFromString(s string) (SecurityLevel, error) { - switch s { - case "Undefined": - return SecurityLevel_Undefined, nil - case "L1": - return SecurityLevel_L1, nil - case "L2": - return SecurityLevel_L2, nil - case "L3": - return SecurityLevel_L3, nil - case "L4": - return SecurityLevel_L4, nil - } - return SecurityLevel(0), fmt.Errorf("not a valid SecurityLevel string") -} - -func SecurityLevelPtr(v SecurityLevel) *SecurityLevel { return &v } -func (p *SecurityLevel) Scan(value interface{}) (err error) { - var result sql.NullInt64 - err = result.Scan(value) - *p = SecurityLevel(result.Int64) - return -} + ReasoningEffortMinimal = "minimal" -func (p *SecurityLevel) Value() (driver.Value, error) { - if p == nil { - return nil, nil - } - return int64(*p), nil -} + ReasoningEffortLow = "low" -type ReasoningEffort int64 + ReasoningEffortMedium = "medium" -const ( - ReasoningEffort_Minimal ReasoningEffort = 1 - ReasoningEffort_Low ReasoningEffort = 2 - ReasoningEffort_Medium ReasoningEffort = 3 - ReasoningEffort_High ReasoningEffort = 4 -) + ReasoningEffortHigh = "high" -func (p ReasoningEffort) String() string { - switch p { - case ReasoningEffort_Minimal: - return "Minimal" - case ReasoningEffort_Low: - return "Low" - case ReasoningEffort_Medium: - return "Medium" - case ReasoningEffort_High: - return "High" - } - return "" -} - -func ReasoningEffortFromString(s string) (ReasoningEffort, error) { - switch s { - case "Minimal": - return ReasoningEffort_Minimal, nil - case "Low": - return ReasoningEffort_Low, nil - case "Medium": - return ReasoningEffort_Medium, nil - case "High": - return ReasoningEffort_High, nil - } - return ReasoningEffort(0), fmt.Errorf("not a valid ReasoningEffort string") -} - -func ReasoningEffortPtr(v ReasoningEffort) *ReasoningEffort { return &v } -func (p *ReasoningEffort) Scan(value interface{}) (err error) { - var result sql.NullInt64 - err = result.Scan(value) - *p = ReasoningEffort(result.Int64) - return -} + ThinkingOptionDisabled = "disabled" -func (p *ReasoningEffort) Value() (driver.Value, error) { - if p == nil { - return nil, nil - } - return int64(*p), nil -} - -type ThinkingOption int64 - -const ( - ThinkingOption_Disabled ThinkingOption = 1 - ThinkingOption_Enabled ThinkingOption = 2 - ThinkingOption_Auto ThinkingOption = 3 -) - -func (p ThinkingOption) String() string { - switch p { - case ThinkingOption_Disabled: - return "Disabled" - case ThinkingOption_Enabled: - return "Enabled" - case ThinkingOption_Auto: - return "Auto" - } - return "" -} + ThinkingOptionEnabled = "enabled" -func ThinkingOptionFromString(s string) (ThinkingOption, error) { - switch s { - case "Disabled": - return ThinkingOption_Disabled, nil - case "Enabled": - return ThinkingOption_Enabled, nil - case "Auto": - return ThinkingOption_Auto, nil - } - return ThinkingOption(0), fmt.Errorf("not a valid ThinkingOption string") -} + ThinkingOptionAuto = "auto" -func ThinkingOptionPtr(v ThinkingOption) *ThinkingOption { return &v } -func (p *ThinkingOption) Scan(value interface{}) (err error) { - var result sql.NullInt64 - err = result.Scan(value) - *p = ThinkingOption(result.Int64) - return -} + AccountModeSharedAccount = "shared_account" -func (p *ThinkingOption) Value() (driver.Value, error) { - if p == nil { - return nil, nil - } - return int64(*p), nil -} + AccountModeCustomAccount = "custom_account" -type AccountMode int64 + UsageScenarioDefault = "default" -const ( - // 使用共享模型账号 - AccountMode_SharedAccount AccountMode = 1 - // 使用自定义模型账号 - AccountMode_CustomAccount AccountMode = 2 -) + UsageScenarioEvaluation = "evaluation" -func (p AccountMode) String() string { - switch p { - case AccountMode_SharedAccount: - return "SharedAccount" - case AccountMode_CustomAccount: - return "CustomAccount" - } - return "" -} + UsageScenarioPromptAsAService = "prompt_as_a_service" -func AccountModeFromString(s string) (AccountMode, error) { - switch s { - case "SharedAccount": - return AccountMode_SharedAccount, nil - case "CustomAccount": - return AccountMode_CustomAccount, nil - } - return AccountMode(0), fmt.Errorf("not a valid AccountMode string") -} + UsageScenarioAIAnnotate = "ai_annotate" -func AccountModePtr(v AccountMode) *AccountMode { return &v } -func (p *AccountMode) Scan(value interface{}) (err error) { - var result sql.NullInt64 - err = result.Scan(value) - *p = AccountMode(result.Int64) - return -} + UsageScenarioAIScore = "ai_score" -func (p *AccountMode) Value() (driver.Value, error) { - if p == nil { - return nil, nil - } - return int64(*p), nil -} - -type UsageScenario int64 - -const ( - UsageScenario_Default UsageScenario = 1 - UsageScenario_Evaluation UsageScenario = 2 - UsageScenario_PromptAsAService UsageScenario = 3 - UsageScenario_AIAnnotate UsageScenario = 4 - UsageScenario_AIScore UsageScenario = 5 - UsageScenario_AITag UsageScenario = 6 + UsageScenarioAITag = "ai_tag" ) -func (p UsageScenario) String() string { - switch p { - case UsageScenario_Default: - return "Default" - case UsageScenario_Evaluation: - return "Evaluation" - case UsageScenario_PromptAsAService: - return "PromptAsAService" - case UsageScenario_AIAnnotate: - return "AIAnnotate" - case UsageScenario_AIScore: - return "AIScore" - case UsageScenario_AITag: - return "AITag" - } - return "" -} - -func UsageScenarioFromString(s string) (UsageScenario, error) { - switch s { - case "Default": - return UsageScenario_Default, nil - case "Evaluation": - return UsageScenario_Evaluation, nil - case "PromptAsAService": - return UsageScenario_PromptAsAService, nil - case "AIAnnotate": - return UsageScenario_AIAnnotate, nil - case "AIScore": - return UsageScenario_AIScore, nil - case "AITag": - return UsageScenario_AITag, nil - } - return UsageScenario(0), fmt.Errorf("not a valid UsageScenario string") -} - -func UsageScenarioPtr(v UsageScenario) *UsageScenario { return &v } -func (p *UsageScenario) Scan(value interface{}) (err error) { - var result sql.NullInt64 - err = result.Scan(value) - *p = UsageScenario(result.Int64) - return -} - -func (p *UsageScenario) Value() (driver.Value, error) { - if p == nil { - return nil, nil - } - return int64(*p), nil -} - type PromptType = string type TemplateType = string @@ -406,6 +139,18 @@ type Role = string type ToolType = string +type PublishStatus = string + +type SecurityLevel = string + +type ReasoningEffort = string + +type ThinkingOption = string + +type AccountMode = string + +type UsageScenario = string + type BatchGetPromptByPromptKeyRequest struct { WorkspaceID *int64 `thrift:"workspace_id,1,optional" frugal:"1,optional,i64" json:"workspace_id" form:"workspace_id" ` Queries []*PromptQuery `thrift:"queries,2,optional" frugal:"2,optional,list" form:"queries" json:"queries,omitempty"` @@ -1370,9 +1115,9 @@ type ExecuteRequest struct { // response api 配置 ResponseAPIConfig *ResponseAPIConfig `thrift:"response_api_config,23,optional" frugal:"23,optional,ResponseAPIConfig" form:"response_api_config" json:"response_api_config,omitempty"` // 账号模式(兼容字段) - AccountMode *AccountMode `thrift:"account_mode,24,optional" frugal:"24,optional,AccountMode" form:"account_mode" json:"account_mode,omitempty"` + AccountMode *AccountMode `thrift:"account_mode,24,optional" frugal:"24,optional,string" form:"account_mode" json:"account_mode,omitempty"` // 使用场景(兼容字段) - UsageScenario *UsageScenario `thrift:"usage_scenario,26,optional" frugal:"26,optional,UsageScenario" form:"usage_scenario" json:"usage_scenario,omitempty"` + UsageScenario *UsageScenario `thrift:"usage_scenario,26,optional" frugal:"26,optional,string" form:"usage_scenario" json:"usage_scenario,omitempty"` // 发布标签(兼容字段) ReleaseLabel *string `thrift:"release_label,28,optional" frugal:"28,optional,string" form:"release_label" json:"release_label,omitempty"` // 自定义工具配置(兼容字段) @@ -1733,7 +1478,7 @@ func (p *ExecuteRequest) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 24: - if fieldTypeId == thrift.I32 { + if fieldTypeId == thrift.STRING { if err = p.ReadField24(iprot); err != nil { goto ReadFieldError } @@ -1741,7 +1486,7 @@ func (p *ExecuteRequest) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 26: - if fieldTypeId == thrift.I32 { + if fieldTypeId == thrift.STRING { if err = p.ReadField26(iprot); err != nil { goto ReadFieldError } @@ -1916,11 +1661,10 @@ func (p *ExecuteRequest) ReadField23(iprot thrift.TProtocol) error { func (p *ExecuteRequest) ReadField24(iprot thrift.TProtocol) error { var _field *AccountMode - if v, err := iprot.ReadI32(); err != nil { + if v, err := iprot.ReadString(); err != nil { return err } else { - tmp := AccountMode(v) - _field = &tmp + _field = &v } p.AccountMode = _field return nil @@ -1928,11 +1672,10 @@ func (p *ExecuteRequest) ReadField24(iprot thrift.TProtocol) error { func (p *ExecuteRequest) ReadField26(iprot thrift.TProtocol) error { var _field *UsageScenario - if v, err := iprot.ReadI32(); err != nil { + if v, err := iprot.ReadString(); err != nil { return err } else { - tmp := UsageScenario(v) - _field = &tmp + _field = &v } p.UsageScenario = _field return nil @@ -2211,10 +1954,10 @@ WriteFieldEndError: } func (p *ExecuteRequest) writeField24(oprot thrift.TProtocol) (err error) { if p.IsSetAccountMode() { - if err = oprot.WriteFieldBegin("account_mode", thrift.I32, 24); err != nil { + if err = oprot.WriteFieldBegin("account_mode", thrift.STRING, 24); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI32(int32(*p.AccountMode)); err != nil { + if err := oprot.WriteString(*p.AccountMode); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -2229,10 +1972,10 @@ WriteFieldEndError: } func (p *ExecuteRequest) writeField26(oprot thrift.TProtocol) (err error) { if p.IsSetUsageScenario() { - if err = oprot.WriteFieldBegin("usage_scenario", thrift.I32, 26); err != nil { + if err = oprot.WriteFieldBegin("usage_scenario", thrift.STRING, 26); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI32(int32(*p.UsageScenario)); err != nil { + if err := oprot.WriteString(*p.UsageScenario); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -2442,7 +2185,7 @@ func (p *ExecuteRequest) Field24DeepEqual(src *AccountMode) bool { } else if p.AccountMode == nil || src == nil { return false } - if *p.AccountMode != *src { + if strings.Compare(*p.AccountMode, *src) != 0 { return false } return true @@ -2454,7 +2197,7 @@ func (p *ExecuteRequest) Field26DeepEqual(src *UsageScenario) bool { } else if p.UsageScenario == nil || src == nil { return false } - if *p.UsageScenario != *src { + if strings.Compare(*p.UsageScenario, *src) != 0 { return false } return true @@ -4760,11 +4503,11 @@ type Prompt struct { CreatedAt *int64 `thrift:"created_at,14,optional" frugal:"14,optional,i64" json:"created_at" form:"created_at" query:"created_at"` UpdatedAt *int64 `thrift:"updated_at,15,optional" frugal:"15,optional,i64" json:"updated_at" form:"updated_at" query:"updated_at"` // 发布状态 - Status *PublishStatus `thrift:"status,16,optional" frugal:"16,optional,PublishStatus" form:"status" json:"status,omitempty" query:"status"` + Status *PublishStatus `thrift:"status,16,optional" frugal:"16,optional,string" form:"status" json:"status,omitempty" query:"status"` // 发布信息 PublishInfo *PromptPublishInfo `thrift:"PublishInfo,17,optional" frugal:"17,optional,PromptPublishInfo" form:"PublishInfo" json:"PublishInfo,omitempty" query:"PublishInfo"` // 密级标签 - SecurityLevel *SecurityLevel `thrift:"security_level,18,optional" frugal:"18,optional,SecurityLevel" form:"security_level" json:"security_level,omitempty" query:"security_level"` + SecurityLevel *SecurityLevel `thrift:"security_level,18,optional" frugal:"18,optional,string" form:"security_level" json:"security_level,omitempty" query:"security_level"` } func NewPrompt() *Prompt { @@ -5248,7 +4991,7 @@ func (p *Prompt) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 16: - if fieldTypeId == thrift.I32 { + if fieldTypeId == thrift.STRING { if err = p.ReadField16(iprot); err != nil { goto ReadFieldError } @@ -5264,7 +5007,7 @@ func (p *Prompt) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 18: - if fieldTypeId == thrift.I32 { + if fieldTypeId == thrift.STRING { if err = p.ReadField18(iprot); err != nil { goto ReadFieldError } @@ -5460,11 +5203,10 @@ func (p *Prompt) ReadField15(iprot thrift.TProtocol) error { func (p *Prompt) ReadField16(iprot thrift.TProtocol) error { var _field *PublishStatus - if v, err := iprot.ReadI32(); err != nil { + if v, err := iprot.ReadString(); err != nil { return err } else { - tmp := PublishStatus(v) - _field = &tmp + _field = &v } p.Status = _field return nil @@ -5480,11 +5222,10 @@ func (p *Prompt) ReadField17(iprot thrift.TProtocol) error { func (p *Prompt) ReadField18(iprot thrift.TProtocol) error { var _field *SecurityLevel - if v, err := iprot.ReadI32(); err != nil { + if v, err := iprot.ReadString(); err != nil { return err } else { - tmp := SecurityLevel(v) - _field = &tmp + _field = &v } p.SecurityLevel = _field return nil @@ -5844,10 +5585,10 @@ WriteFieldEndError: } func (p *Prompt) writeField16(oprot thrift.TProtocol) (err error) { if p.IsSetStatus() { - if err = oprot.WriteFieldBegin("status", thrift.I32, 16); err != nil { + if err = oprot.WriteFieldBegin("status", thrift.STRING, 16); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI32(int32(*p.Status)); err != nil { + if err := oprot.WriteString(*p.Status); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -5880,10 +5621,10 @@ WriteFieldEndError: } func (p *Prompt) writeField18(oprot thrift.TProtocol) (err error) { if p.IsSetSecurityLevel() { - if err = oprot.WriteFieldBegin("security_level", thrift.I32, 18); err != nil { + if err = oprot.WriteFieldBegin("security_level", thrift.STRING, 18); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI32(int32(*p.SecurityLevel)); err != nil { + if err := oprot.WriteString(*p.SecurityLevel); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -6126,7 +5867,7 @@ func (p *Prompt) Field16DeepEqual(src *PublishStatus) bool { } else if p.Status == nil || src == nil { return false } - if *p.Status != *src { + if strings.Compare(*p.Status, *src) != 0 { return false } return true @@ -6145,7 +5886,7 @@ func (p *Prompt) Field18DeepEqual(src *SecurityLevel) bool { } else if p.SecurityLevel == nil || src == nil { return false } - if *p.SecurityLevel != *src { + if strings.Compare(*p.SecurityLevel, *src) != 0 { return false } return true @@ -15165,9 +14906,9 @@ func (p *PromptPublishInfo) Field3DeepEqual(src *int64) bool { type ThinkingConfig struct { // thinking内容的最大输出token BudgetTokens *int64 `thrift:"budget_tokens,1,optional" frugal:"1,optional,i64" json:"budget_tokens" form:"budget_tokens" query:"budget_tokens"` - ThinkingOption *ThinkingOption `thrift:"thinking_option,2,optional" frugal:"2,optional,ThinkingOption" form:"thinking_option" json:"thinking_option,omitempty" query:"thinking_option"` + ThinkingOption *ThinkingOption `thrift:"thinking_option,2,optional" frugal:"2,optional,string" form:"thinking_option" json:"thinking_option,omitempty" query:"thinking_option"` // 思考长度 - ReasoningEffort *ReasoningEffort `thrift:"reasoning_effort,3,optional" frugal:"3,optional,ReasoningEffort" form:"reasoning_effort" json:"reasoning_effort,omitempty" query:"reasoning_effort"` + ReasoningEffort *ReasoningEffort `thrift:"reasoning_effort,3,optional" frugal:"3,optional,string" form:"reasoning_effort" json:"reasoning_effort,omitempty" query:"reasoning_effort"` } func NewThinkingConfig() *ThinkingConfig { @@ -15267,7 +15008,7 @@ func (p *ThinkingConfig) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 2: - if fieldTypeId == thrift.I32 { + if fieldTypeId == thrift.STRING { if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } @@ -15275,7 +15016,7 @@ func (p *ThinkingConfig) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 3: - if fieldTypeId == thrift.I32 { + if fieldTypeId == thrift.STRING { if err = p.ReadField3(iprot); err != nil { goto ReadFieldError } @@ -15325,11 +15066,10 @@ func (p *ThinkingConfig) ReadField1(iprot thrift.TProtocol) error { func (p *ThinkingConfig) ReadField2(iprot thrift.TProtocol) error { var _field *ThinkingOption - if v, err := iprot.ReadI32(); err != nil { + if v, err := iprot.ReadString(); err != nil { return err } else { - tmp := ThinkingOption(v) - _field = &tmp + _field = &v } p.ThinkingOption = _field return nil @@ -15337,11 +15077,10 @@ func (p *ThinkingConfig) ReadField2(iprot thrift.TProtocol) error { func (p *ThinkingConfig) ReadField3(iprot thrift.TProtocol) error { var _field *ReasoningEffort - if v, err := iprot.ReadI32(); err != nil { + if v, err := iprot.ReadString(); err != nil { return err } else { - tmp := ReasoningEffort(v) - _field = &tmp + _field = &v } p.ReasoningEffort = _field return nil @@ -15403,10 +15142,10 @@ WriteFieldEndError: } func (p *ThinkingConfig) writeField2(oprot thrift.TProtocol) (err error) { if p.IsSetThinkingOption() { - if err = oprot.WriteFieldBegin("thinking_option", thrift.I32, 2); err != nil { + if err = oprot.WriteFieldBegin("thinking_option", thrift.STRING, 2); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI32(int32(*p.ThinkingOption)); err != nil { + if err := oprot.WriteString(*p.ThinkingOption); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -15421,10 +15160,10 @@ WriteFieldEndError: } func (p *ThinkingConfig) writeField3(oprot thrift.TProtocol) (err error) { if p.IsSetReasoningEffort() { - if err = oprot.WriteFieldBegin("reasoning_effort", thrift.I32, 3); err != nil { + if err = oprot.WriteFieldBegin("reasoning_effort", thrift.STRING, 3); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI32(int32(*p.ReasoningEffort)); err != nil { + if err := oprot.WriteString(*p.ReasoningEffort); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -15483,7 +15222,7 @@ func (p *ThinkingConfig) Field2DeepEqual(src *ThinkingOption) bool { } else if p.ThinkingOption == nil || src == nil { return false } - if *p.ThinkingOption != *src { + if strings.Compare(*p.ThinkingOption, *src) != 0 { return false } return true @@ -15495,7 +15234,7 @@ func (p *ThinkingConfig) Field3DeepEqual(src *ReasoningEffort) bool { } else if p.ReasoningEffort == nil || src == nil { return false } - if *p.ReasoningEffort != *src { + if strings.Compare(*p.ReasoningEffort, *src) != 0 { return false } return true diff --git a/backend/kitex_gen/coze/loop/prompt/openapi/k-coze.loop.prompt.openapi.go b/backend/kitex_gen/coze/loop/prompt/openapi/k-coze.loop.prompt.openapi.go index 5c68e1f5f..243a197cf 100644 --- a/backend/kitex_gen/coze/loop/prompt/openapi/k-coze.loop.prompt.openapi.go +++ b/backend/kitex_gen/coze/loop/prompt/openapi/k-coze.loop.prompt.openapi.go @@ -848,7 +848,7 @@ func (p *ExecuteRequest) FastRead(buf []byte) (int, error) { } } case 24: - if fieldTypeId == thrift.I32 { + if fieldTypeId == thrift.STRING { l, err = p.FastReadField24(buf[offset:]) offset += l if err != nil { @@ -862,7 +862,7 @@ func (p *ExecuteRequest) FastRead(buf []byte) (int, error) { } } case 26: - if fieldTypeId == thrift.I32 { + if fieldTypeId == thrift.STRING { l, err = p.FastReadField26(buf[offset:]) offset += l if err != nil { @@ -1076,13 +1076,11 @@ func (p *ExecuteRequest) FastReadField24(buf []byte) (int, error) { offset := 0 var _field *AccountMode - if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { return offset, err } else { offset += l - - tmp := AccountMode(v) - _field = &tmp + _field = &v } p.AccountMode = _field return offset, nil @@ -1092,13 +1090,11 @@ func (p *ExecuteRequest) FastReadField26(buf []byte) (int, error) { offset := 0 var _field *UsageScenario - if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { return offset, err } else { offset += l - - tmp := UsageScenario(v) - _field = &tmp + _field = &v } p.UsageScenario = _field return offset, nil @@ -1284,8 +1280,8 @@ func (p *ExecuteRequest) fastWriteField23(buf []byte, w thrift.NocopyWriter) int func (p *ExecuteRequest) fastWriteField24(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetAccountMode() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 24) - offset += thrift.Binary.WriteI32(buf[offset:], int32(*p.AccountMode)) + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 24) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.AccountMode) } return offset } @@ -1293,8 +1289,8 @@ func (p *ExecuteRequest) fastWriteField24(buf []byte, w thrift.NocopyWriter) int func (p *ExecuteRequest) fastWriteField26(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetUsageScenario() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 26) - offset += thrift.Binary.WriteI32(buf[offset:], int32(*p.UsageScenario)) + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 26) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.UsageScenario) } return offset } @@ -1414,7 +1410,7 @@ func (p *ExecuteRequest) field24Length() int { l := 0 if p.IsSetAccountMode() { l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I32Length() + l += thrift.Binary.StringLengthNocopy(*p.AccountMode) } return l } @@ -1423,7 +1419,7 @@ func (p *ExecuteRequest) field26Length() int { l := 0 if p.IsSetUsageScenario() { l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I32Length() + l += thrift.Binary.StringLengthNocopy(*p.UsageScenario) } return l } @@ -3397,7 +3393,7 @@ func (p *Prompt) FastRead(buf []byte) (int, error) { } } case 16: - if fieldTypeId == thrift.I32 { + if fieldTypeId == thrift.STRING { l, err = p.FastReadField16(buf[offset:]) offset += l if err != nil { @@ -3425,7 +3421,7 @@ func (p *Prompt) FastRead(buf []byte) (int, error) { } } case 18: - if fieldTypeId == thrift.I32 { + if fieldTypeId == thrift.STRING { l, err = p.FastReadField18(buf[offset:]) offset += l if err != nil { @@ -3661,13 +3657,11 @@ func (p *Prompt) FastReadField16(buf []byte) (int, error) { offset := 0 var _field *PublishStatus - if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { return offset, err } else { offset += l - - tmp := PublishStatus(v) - _field = &tmp + _field = &v } p.Status = _field return offset, nil @@ -3689,13 +3683,11 @@ func (p *Prompt) FastReadField18(buf []byte) (int, error) { offset := 0 var _field *SecurityLevel - if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { return offset, err } else { offset += l - - tmp := SecurityLevel(v) - _field = &tmp + _field = &v } p.SecurityLevel = _field return offset, nil @@ -3891,8 +3883,8 @@ func (p *Prompt) fastWriteField15(buf []byte, w thrift.NocopyWriter) int { func (p *Prompt) fastWriteField16(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetStatus() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 16) - offset += thrift.Binary.WriteI32(buf[offset:], int32(*p.Status)) + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 16) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Status) } return offset } @@ -3909,8 +3901,8 @@ func (p *Prompt) fastWriteField17(buf []byte, w thrift.NocopyWriter) int { func (p *Prompt) fastWriteField18(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetSecurityLevel() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 18) - offset += thrift.Binary.WriteI32(buf[offset:], int32(*p.SecurityLevel)) + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 18) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.SecurityLevel) } return offset } @@ -4049,7 +4041,7 @@ func (p *Prompt) field16Length() int { l := 0 if p.IsSetStatus() { l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I32Length() + l += thrift.Binary.StringLengthNocopy(*p.Status) } return l } @@ -4067,7 +4059,7 @@ func (p *Prompt) field18Length() int { l := 0 if p.IsSetSecurityLevel() { l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I32Length() + l += thrift.Binary.StringLengthNocopy(*p.SecurityLevel) } return l } @@ -10642,7 +10634,7 @@ func (p *ThinkingConfig) FastRead(buf []byte) (int, error) { } } case 2: - if fieldTypeId == thrift.I32 { + if fieldTypeId == thrift.STRING { l, err = p.FastReadField2(buf[offset:]) offset += l if err != nil { @@ -10656,7 +10648,7 @@ func (p *ThinkingConfig) FastRead(buf []byte) (int, error) { } } case 3: - if fieldTypeId == thrift.I32 { + if fieldTypeId == thrift.STRING { l, err = p.FastReadField3(buf[offset:]) offset += l if err != nil { @@ -10705,13 +10697,11 @@ func (p *ThinkingConfig) FastReadField2(buf []byte) (int, error) { offset := 0 var _field *ThinkingOption - if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { return offset, err } else { offset += l - - tmp := ThinkingOption(v) - _field = &tmp + _field = &v } p.ThinkingOption = _field return offset, nil @@ -10721,13 +10711,11 @@ func (p *ThinkingConfig) FastReadField3(buf []byte) (int, error) { offset := 0 var _field *ReasoningEffort - if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { return offset, err } else { offset += l - - tmp := ReasoningEffort(v) - _field = &tmp + _field = &v } p.ReasoningEffort = _field return offset, nil @@ -10771,8 +10759,8 @@ func (p *ThinkingConfig) fastWriteField1(buf []byte, w thrift.NocopyWriter) int func (p *ThinkingConfig) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetThinkingOption() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 2) - offset += thrift.Binary.WriteI32(buf[offset:], int32(*p.ThinkingOption)) + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.ThinkingOption) } return offset } @@ -10780,8 +10768,8 @@ func (p *ThinkingConfig) fastWriteField2(buf []byte, w thrift.NocopyWriter) int func (p *ThinkingConfig) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetReasoningEffort() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 3) - offset += thrift.Binary.WriteI32(buf[offset:], int32(*p.ReasoningEffort)) + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 3) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.ReasoningEffort) } return offset } @@ -10799,7 +10787,7 @@ func (p *ThinkingConfig) field2Length() int { l := 0 if p.IsSetThinkingOption() { l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I32Length() + l += thrift.Binary.StringLengthNocopy(*p.ThinkingOption) } return l } @@ -10808,7 +10796,7 @@ func (p *ThinkingConfig) field3Length() int { l := 0 if p.IsSetReasoningEffort() { l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I32Length() + l += thrift.Binary.StringLengthNocopy(*p.ReasoningEffort) } return l } diff --git a/backend/modules/prompt/application/convertor/openapi.go b/backend/modules/prompt/application/convertor/openapi.go index 72a231a93..0bf5b8ce7 100644 --- a/backend/modules/prompt/application/convertor/openapi.go +++ b/backend/modules/prompt/application/convertor/openapi.go @@ -605,7 +605,17 @@ func OpenAPIThinkingOptionDTO2DO(dto *openapi.ThinkingOption) *entity.ThinkingOp if dto == nil { return nil } - result := entity.ThinkingOption(*dto) + var result entity.ThinkingOption + switch *dto { + case openapi.ThinkingOptionDisabled: + result = entity.ThinkingOptionDisabled + case openapi.ThinkingOptionEnabled: + result = entity.ThinkingOptionEnabled + case openapi.ThinkingOptionAuto: + result = entity.ThinkingOptionAuto + default: + return nil + } return &result } @@ -614,7 +624,19 @@ func OpenAPIReasoningEffortDTO2DO(dto *openapi.ReasoningEffort) *entity.Reasonin if dto == nil { return nil } - result := entity.ReasoningEffort(*dto) + var result entity.ReasoningEffort + switch *dto { + case openapi.ReasoningEffortMinimal: + result = entity.ReasoningEffortMinimal + case openapi.ReasoningEffortLow: + result = entity.ReasoningEffortLow + case openapi.ReasoningEffortMedium: + result = entity.ReasoningEffortMedium + case openapi.ReasoningEffortHigh: + result = entity.ReasoningEffortHigh + default: + return nil + } return &result } @@ -635,7 +657,17 @@ func OpenAPIThinkingOptionDO2DTO(do *entity.ThinkingOption) *openapi.ThinkingOpt if do == nil { return nil } - result := openapi.ThinkingOption(*do) + var result openapi.ThinkingOption + switch *do { + case entity.ThinkingOptionDisabled: + result = openapi.ThinkingOptionDisabled + case entity.ThinkingOptionEnabled: + result = openapi.ThinkingOptionEnabled + case entity.ThinkingOptionAuto: + result = openapi.ThinkingOptionAuto + default: + return nil + } return &result } @@ -644,7 +676,19 @@ func OpenAPIReasoningEffortDO2DTO(do *entity.ReasoningEffort) *openapi.Reasoning if do == nil { return nil } - result := openapi.ReasoningEffort(*do) + var result openapi.ReasoningEffort + switch *do { + case entity.ReasoningEffortMinimal: + result = openapi.ReasoningEffortMinimal + case entity.ReasoningEffortLow: + result = openapi.ReasoningEffortLow + case entity.ReasoningEffortMedium: + result = openapi.ReasoningEffortMedium + case entity.ReasoningEffortHigh: + result = openapi.ReasoningEffortHigh + default: + return nil + } return &result } diff --git a/backend/modules/prompt/application/convertor/openapi_test.go b/backend/modules/prompt/application/convertor/openapi_test.go index 4cc1b2997..5d7cd2302 100755 --- a/backend/modules/prompt/application/convertor/openapi_test.go +++ b/backend/modules/prompt/application/convertor/openapi_test.go @@ -509,8 +509,8 @@ func TestOpenAPIModelConfigDO2DTO(t *testing.T) { Extra: ptr.Of(`{"trace":"on"}`), Thinking: &openapi.ThinkingConfig{ BudgetTokens: ptr.Of(int64(128)), - ThinkingOption: ptr.Of(openapi.ThinkingOption_Enabled), - ReasoningEffort: ptr.Of(openapi.ReasoningEffort_Low), + ThinkingOption: ptr.Of(openapi.ThinkingOptionEnabled), + ReasoningEffort: ptr.Of(openapi.ReasoningEffortLow), }, }, }, @@ -2316,7 +2316,7 @@ func TestOpenAPIToolCallConfigDO2DTO_WithSpecification(t *testing.T) { want: &openapi.ToolCallConfig{ ToolChoice: ptr.Of(prompt.ToolChoiceTypeSpecific), ToolChoiceSpecification: &openapi.ToolChoiceSpecification{ - Type: ptr.Of(prompt.ToolTypeFunction), + Type: ptr.Of(openapi.ToolTypeFunction), Name: ptr.Of("get_weather"), }, }, @@ -2331,7 +2331,7 @@ func TestOpenAPIToolCallConfigDO2DTO_WithSpecification(t *testing.T) { }, }, want: &openapi.ToolCallConfig{ - ToolChoice: ptr.Of(prompt.ToolChoiceTypeSpecific), + ToolChoice: ptr.Of(openapi.ToolChoiceTypeSpecific), ToolChoiceSpecification: &openapi.ToolChoiceSpecification{ Type: ptr.Of(prompt.ToolTypeGoogleSearch), Name: ptr.Of("search"), @@ -2405,9 +2405,9 @@ func TestOpenAPIToolCallConfigDTO2DO(t *testing.T) { { name: "specific tool choice with specification", dto: &openapi.ToolCallConfig{ - ToolChoice: ptr.Of(openapi.ToolChoiceTypeSpecific), + ToolChoice: ptr.Of(prompt.ToolChoiceTypeSpecific), ToolChoiceSpecification: &openapi.ToolChoiceSpecification{ - Type: ptr.Of(openapi.ToolTypeFunction), + Type: ptr.Of(prompt.ToolTypeFunction), Name: ptr.Of("tool_a"), }, }, @@ -2435,8 +2435,8 @@ func TestOpenAPIModelConfigDTO2DO(t *testing.T) { Temperature: ptr.Of(0.8), Thinking: &openapi.ThinkingConfig{ BudgetTokens: ptr.Of(int64(256)), - ThinkingOption: ptr.Of(openapi.ThinkingOption_Enabled), - ReasoningEffort: ptr.Of(openapi.ReasoningEffort_High), + ThinkingOption: ptr.Of(openapi.ThinkingOptionEnabled), + ReasoningEffort: ptr.Of(openapi.ReasoningEffortHigh), }, ParamConfigValues: []*openapi.ParamConfigValue{ { diff --git a/backend/modules/prompt/application/openapi.go b/backend/modules/prompt/application/openapi.go index 2334dfc1a..e9fd06566 100644 --- a/backend/modules/prompt/application/openapi.go +++ b/backend/modules/prompt/application/openapi.go @@ -388,8 +388,8 @@ func (p *PromptOpenAPIApplicationImpl) Execute(ctx context.Context, req *openapi Stream: false, HasMessage: len(req.Messages) > 0, HasContexts: len(req.Messages) > 1, - AccountMode: getRequestAccountMode(req).String(), - UsageScenario: getRequestUsageScenario(req).String(), + AccountMode: getRequestAccountMode(req), + UsageScenario: getRequestUsageScenario(req), InputTokens: intputTokens, OutputTokens: outputTokens, StartedAt: startTime, @@ -515,8 +515,8 @@ func (p *PromptOpenAPIApplicationImpl) ExecuteStreaming(ctx context.Context, req Stream: true, HasMessage: len(req.Messages) > 0, HasContexts: len(req.Messages) > 1, - AccountMode: getRequestAccountMode(req).String(), - UsageScenario: getRequestUsageScenario(req).String(), + AccountMode: getRequestAccountMode(req), + UsageScenario: getRequestUsageScenario(req), InputTokens: intputTokens, OutputTokens: outputTokens, StartedAt: startTime, @@ -869,14 +869,14 @@ func getRequestPromptKey(req *openapi.ExecuteRequest) string { func getRequestAccountMode(req *openapi.ExecuteRequest) openapi.AccountMode { if req == nil || req.AccountMode == nil { - return openapi.AccountMode_SharedAccount + return openapi.AccountModeSharedAccount } return req.GetAccountMode() } func getRequestUsageScenario(req *openapi.ExecuteRequest) openapi.UsageScenario { if req == nil || req.UsageScenario == nil { - return openapi.UsageScenario_PromptAsAService + return openapi.UsageScenarioPromptAsAService } return req.GetUsageScenario() } @@ -918,8 +918,8 @@ func (p *PromptOpenAPIApplicationImpl) emitExecuteMetrics( if req.GetPromptIdentifier() != nil && req.GetPromptIdentifier().GetPromptKey() != "" { promptmetrics.WithPaasPromptKey(ctx, req.GetPromptIdentifier().GetPromptKey()) } - promptmetrics.WithPaaSAccountMode(ctx, getRequestAccountMode(req).String()) - promptmetrics.WithPaasUsageScenario(ctx, getRequestUsageScenario(req).String()) + promptmetrics.WithPaaSAccountMode(ctx, getRequestAccountMode(req)) + promptmetrics.WithPaasUsageScenario(ctx, getRequestUsageScenario(req)) // OpenAPI 使用 messages 承载上下文与当前提问,兼容 legacy tags 语义 hasMessage := len(req.Messages) > 0 diff --git a/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift b/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift index c0055776d..18bef999a 100644 --- a/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift +++ b/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift @@ -122,18 +122,12 @@ struct PromptTemplate { 100: optional map metadata // 模板级元信息 } -typedef string TemplateType +typedef string TemplateType (ts.enum="true") const TemplateType TemplateType_Normal = "normal" const TemplateType TemplateType_Jinja2 = "jinja2" const TemplateType TemplateType_GoTemplate = "go_template" const TemplateType TemplateType_CustomTemplate_M = "custom_template_m" - -typedef string ToolChoiceType -const ToolChoiceType ToolChoiceType_Auto = "auto" -const ToolChoiceType ToolChoiceType_None = "none" -const ToolChoiceType ToolChoiceType_Specific = "specific" - struct ToolCallConfig { 1: optional ToolChoiceType tool_choice 2: optional ToolChoiceSpecification tool_choice_specification @@ -144,6 +138,11 @@ struct ToolChoiceSpecification { 2: optional string name } +typedef string ToolChoiceType (ts.enum="true") +const ToolChoiceType ToolChoiceType_Auto = "auto" +const ToolChoiceType ToolChoiceType_None = "none" +const ToolChoiceType ToolChoiceType_Specific = "specific" + struct Message { 1: optional Role role // 角色 2: optional string content // 消息内容 @@ -308,19 +307,17 @@ struct PromptPublishInfo { 3: optional i64 publish_at (api.js_conv='true', go.tag='json:"publish_at"') // 发布时间 } -enum PublishStatus { - Undefined = 0 - UnPublish // 未发布 - Published // 已发布 -} +typedef string PublishStatus (ts.enum="true") +const PublishStatus PublishStatus_Undefined = "undefined" +const PublishStatus PublishStatus_UnPublish = "unpublish" +const PublishStatus PublishStatus_Published = "published" -enum SecurityLevel { - Undefined = 0 - L1 = 1 - L2 = 2 - L3 = 3 - L4 = 4 -} +typedef string SecurityLevel (ts.enum="true") +const SecurityLevel SecurityLevel_Undefined = "undefined" +const SecurityLevel SecurityLevel_L1 = "L1" +const SecurityLevel SecurityLevel_L2 = "L2" +const SecurityLevel SecurityLevel_L3 = "L3" +const SecurityLevel SecurityLevel_L4 = "L4" struct ThinkingConfig { 1: optional i64 budget_tokens (agw.key="budget_tokens", api.js_conv='true', go.tag='json:"budget_tokens"') // thinking内容的最大输出token @@ -328,18 +325,16 @@ struct ThinkingConfig { 3: optional ReasoningEffort reasoning_effort (agw.key="reasoning_effort") // 思考长度 } -enum ReasoningEffort { - Minimal = 1 - Low = 2 - Medium = 3 - High = 4 -} +typedef string ReasoningEffort (ts.enum="true") +const ReasoningEffort ReasoningEffort_Minimal = "minimal" +const ReasoningEffort ReasoningEffort_Low = "low" +const ReasoningEffort ReasoningEffort_Medium = "medium" +const ReasoningEffort ReasoningEffort_High = "high" -enum ThinkingOption { - Disabled = 1 - Enabled = 2 - Auto = 3 -} +typedef string ThinkingOption (ts.enum="true") +const ThinkingOption ThinkingOption_Disabled = "disabled" +const ThinkingOption ThinkingOption_Enabled = "enabled" +const ThinkingOption ThinkingOption_Auto = "auto" struct ModelConfig { 1: optional i64 model_id (api.js_conv="true", go.tag='json:"model_id"') @@ -362,19 +357,17 @@ struct ResponseAPIConfig { 3: optional string session_id // 一轮会话的唯一标识 } -enum AccountMode { - SharedAccount = 1 // 使用共享模型账号 - CustomAccount = 2 // 使用自定义模型账号 -} +typedef string AccountMode (ts.enum="true") +const AccountMode AccountMode_SharedAccount = "shared_account" // 使用共享模型账号 +const AccountMode AccountMode_CustomAccount = "custom_account" // 使用自定义模型账号 -enum UsageScenario { - Default = 1 - Evaluation = 2 - PromptAsAService = 3 - AIAnnotate = 4 - AIScore = 5 - AITag = 6 -} +typedef string UsageScenario (ts.enum="true") +const UsageScenario UsageScenario_Default = "default" +const UsageScenario UsageScenario_Evaluation = "evaluation" +const UsageScenario UsageScenario_PromptAsAService = "prompt_as_a_service" +const UsageScenario UsageScenario_AIAnnotate = "ai_annotate" +const UsageScenario UsageScenario_AIScore = "ai_score" +const UsageScenario UsageScenario_AITag = "ai_tag" struct ParamConfigValue { 1: optional string name // 传给下游模型的key,与ParamSchema.name对齐 From 8804ca8d53d694e1232384d7c4c01658e8baaed2 Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Wed, 18 Mar 2026 15:20:16 +0800 Subject: [PATCH 51/58] [feat][prompt]: fix enum --- .../loop/prompt/domain/prompt/k-prompt.go | 28 +- .../prompt/domain_openapi/prompt/k-consts.go | 4 + .../prompt/domain_openapi/prompt/k-prompt.go | 9342 ++++++++++ .../prompt/domain_openapi/prompt/prompt.go | 13321 ++++++++++++++ .../domain_openapi/prompt/prompt_validator.go | 200 + .../openapi/coze.loop.prompt.openapi.go | 14769 +--------------- .../coze.loop.prompt.openapi_validator.go | 177 - .../openapi/k-coze.loop.prompt.openapi.go | 10318 +---------- .../prompt/application/convertor/openapi.go | 219 +- backend/modules/prompt/application/openapi.go | 37 +- .../prompt/domain/entity/prompt_detail.go | 18 +- .../prompt/coze.loop.prompt.openapi.thrift | 332 +- .../coze/loop/prompt/domain/prompt.thrift | 22 +- .../loop/prompt/domain_openapi/prompt.thrift | 301 + 14 files changed, 24571 insertions(+), 24517 deletions(-) create mode 100644 backend/kitex_gen/coze/loop/prompt/domain_openapi/prompt/k-consts.go create mode 100644 backend/kitex_gen/coze/loop/prompt/domain_openapi/prompt/k-prompt.go create mode 100644 backend/kitex_gen/coze/loop/prompt/domain_openapi/prompt/prompt.go create mode 100644 backend/kitex_gen/coze/loop/prompt/domain_openapi/prompt/prompt_validator.go create mode 100644 idl/thrift/coze/loop/prompt/domain_openapi/prompt.thrift diff --git a/backend/kitex_gen/coze/loop/prompt/domain/prompt/k-prompt.go b/backend/kitex_gen/coze/loop/prompt/domain/prompt/k-prompt.go index c7df0e584..8d5c6e644 100644 --- a/backend/kitex_gen/coze/loop/prompt/domain/prompt/k-prompt.go +++ b/backend/kitex_gen/coze/loop/prompt/domain/prompt/k-prompt.go @@ -5083,7 +5083,7 @@ func (p *ThinkingConfig) FastRead(buf []byte) (int, error) { } } case 2: - if fieldTypeId == thrift.I32 { + if fieldTypeId == thrift.STRING { l, err = p.FastReadField2(buf[offset:]) offset += l if err != nil { @@ -5097,7 +5097,7 @@ func (p *ThinkingConfig) FastRead(buf []byte) (int, error) { } } case 3: - if fieldTypeId == thrift.I32 { + if fieldTypeId == thrift.STRING { l, err = p.FastReadField3(buf[offset:]) offset += l if err != nil { @@ -5146,13 +5146,11 @@ func (p *ThinkingConfig) FastReadField2(buf []byte) (int, error) { offset := 0 var _field *ThinkingOption - if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { return offset, err } else { offset += l - - tmp := ThinkingOption(v) - _field = &tmp + _field = &v } p.ThinkingOption = _field return offset, nil @@ -5162,13 +5160,11 @@ func (p *ThinkingConfig) FastReadField3(buf []byte) (int, error) { offset := 0 var _field *ReasoningEffort - if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { return offset, err } else { offset += l - - tmp := ReasoningEffort(v) - _field = &tmp + _field = &v } p.ReasoningEffort = _field return offset, nil @@ -5212,8 +5208,8 @@ func (p *ThinkingConfig) fastWriteField1(buf []byte, w thrift.NocopyWriter) int func (p *ThinkingConfig) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetThinkingOption() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 2) - offset += thrift.Binary.WriteI32(buf[offset:], int32(*p.ThinkingOption)) + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.ThinkingOption) } return offset } @@ -5221,8 +5217,8 @@ func (p *ThinkingConfig) fastWriteField2(buf []byte, w thrift.NocopyWriter) int func (p *ThinkingConfig) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetReasoningEffort() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 3) - offset += thrift.Binary.WriteI32(buf[offset:], int32(*p.ReasoningEffort)) + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 3) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.ReasoningEffort) } return offset } @@ -5240,7 +5236,7 @@ func (p *ThinkingConfig) field2Length() int { l := 0 if p.IsSetThinkingOption() { l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I32Length() + l += thrift.Binary.StringLengthNocopy(*p.ThinkingOption) } return l } @@ -5249,7 +5245,7 @@ func (p *ThinkingConfig) field3Length() int { l := 0 if p.IsSetReasoningEffort() { l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I32Length() + l += thrift.Binary.StringLengthNocopy(*p.ReasoningEffort) } return l } diff --git a/backend/kitex_gen/coze/loop/prompt/domain_openapi/prompt/k-consts.go b/backend/kitex_gen/coze/loop/prompt/domain_openapi/prompt/k-consts.go new file mode 100644 index 000000000..4059b7f28 --- /dev/null +++ b/backend/kitex_gen/coze/loop/prompt/domain_openapi/prompt/k-consts.go @@ -0,0 +1,4 @@ +package prompt + +// KitexUnusedProtection is used to prevent 'imported and not used' error. +var KitexUnusedProtection = struct{}{} diff --git a/backend/kitex_gen/coze/loop/prompt/domain_openapi/prompt/k-prompt.go b/backend/kitex_gen/coze/loop/prompt/domain_openapi/prompt/k-prompt.go new file mode 100644 index 000000000..e9ef01a77 --- /dev/null +++ b/backend/kitex_gen/coze/loop/prompt/domain_openapi/prompt/k-prompt.go @@ -0,0 +1,9342 @@ +// Code generated by Kitex v0.13.1. DO NOT EDIT. + +package prompt + +import ( + "bytes" + "fmt" + "reflect" + "strings" + + "github.com/cloudwego/gopkg/protocol/thrift" + kutils "github.com/cloudwego/kitex/pkg/utils" +) + +// unused protection +var ( + _ = fmt.Formatter(nil) + _ = (*bytes.Buffer)(nil) + _ = (*strings.Builder)(nil) + _ = reflect.Type(nil) + _ = thrift.STOP +) + +func (p *PromptQuery) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 3: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField3(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptQuery[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *PromptQuery) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.PromptKey = _field + return offset, nil +} + +func (p *PromptQuery) FastReadField2(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Version = _field + return offset, nil +} + +func (p *PromptQuery) FastReadField3(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Label = _field + return offset, nil +} + +func (p *PromptQuery) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *PromptQuery) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + offset += p.fastWriteField3(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *PromptQuery) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *PromptQuery) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetPromptKey() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.PromptKey) + } + return offset +} + +func (p *PromptQuery) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetVersion() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Version) + } + return offset +} + +func (p *PromptQuery) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetLabel() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 3) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Label) + } + return offset +} + +func (p *PromptQuery) field1Length() int { + l := 0 + if p.IsSetPromptKey() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.PromptKey) + } + return l +} + +func (p *PromptQuery) field2Length() int { + l := 0 + if p.IsSetVersion() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Version) + } + return l +} + +func (p *PromptQuery) field3Length() int { + l := 0 + if p.IsSetLabel() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Label) + } + return l +} + +func (p *PromptQuery) DeepCopy(s interface{}) error { + src, ok := s.(*PromptQuery) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.PromptKey != nil { + var tmp string + if *src.PromptKey != "" { + tmp = kutils.StringDeepCopy(*src.PromptKey) + } + p.PromptKey = &tmp + } + + if src.Version != nil { + var tmp string + if *src.Version != "" { + tmp = kutils.StringDeepCopy(*src.Version) + } + p.Version = &tmp + } + + if src.Label != nil { + var tmp string + if *src.Label != "" { + tmp = kutils.StringDeepCopy(*src.Label) + } + p.Label = &tmp + } + + return nil +} + +func (p *PromptResultData) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.LIST { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptResultData[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *PromptResultData) FastReadField1(buf []byte) (int, error) { + offset := 0 + + _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make([]*PromptResult_, 0, size) + values := make([]PromptResult_, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + if l, err := _elem.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + + _field = append(_field, _elem) + } + p.Items = _field + return offset, nil +} + +func (p *PromptResultData) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *PromptResultData) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *PromptResultData) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *PromptResultData) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetItems() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 1) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.Items { + length++ + offset += v.FastWriteNocopy(buf[offset:], w) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) + } + return offset +} + +func (p *PromptResultData) field1Length() int { + l := 0 + if p.IsSetItems() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + for _, v := range p.Items { + _ = v + l += v.BLength() + } + } + return l +} + +func (p *PromptResultData) DeepCopy(s interface{}) error { + src, ok := s.(*PromptResultData) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.Items != nil { + p.Items = make([]*PromptResult_, 0, len(src.Items)) + for _, elem := range src.Items { + var _elem *PromptResult_ + if elem != nil { + _elem = &PromptResult_{} + if err := _elem.DeepCopy(elem); err != nil { + return err + } + } + + p.Items = append(p.Items, _elem) + } + } + + return nil +} + +func (p *PromptResult_) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptResult_[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *PromptResult_) FastReadField1(buf []byte) (int, error) { + offset := 0 + _field := NewPromptQuery() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Query = _field + return offset, nil +} + +func (p *PromptResult_) FastReadField2(buf []byte) (int, error) { + offset := 0 + _field := NewPrompt() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Prompt = _field + return offset, nil +} + +func (p *PromptResult_) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *PromptResult_) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *PromptResult_) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *PromptResult_) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetQuery() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) + offset += p.Query.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *PromptResult_) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetPrompt() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 2) + offset += p.Prompt.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *PromptResult_) field1Length() int { + l := 0 + if p.IsSetQuery() { + l += thrift.Binary.FieldBeginLength() + l += p.Query.BLength() + } + return l +} + +func (p *PromptResult_) field2Length() int { + l := 0 + if p.IsSetPrompt() { + l += thrift.Binary.FieldBeginLength() + l += p.Prompt.BLength() + } + return l +} + +func (p *PromptResult_) DeepCopy(s interface{}) error { + src, ok := s.(*PromptResult_) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + var _query *PromptQuery + if src.Query != nil { + _query = &PromptQuery{} + if err := _query.DeepCopy(src.Query); err != nil { + return err + } + } + p.Query = _query + + var _prompt *Prompt + if src.Prompt != nil { + _prompt = &Prompt{} + if err := _prompt.DeepCopy(src.Prompt); err != nil { + return err + } + } + p.Prompt = _prompt + + return nil +} + +func (p *Prompt) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 3: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField3(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 4: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField4(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 5: + if fieldTypeId == thrift.LIST { + l, err = p.FastReadField5(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 6: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField6(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 7: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField7(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 8: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField8(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 9: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField9(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 10: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField10(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 11: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField11(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 12: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField12(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 14: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField14(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 15: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField15(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 16: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField16(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 17: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField17(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 18: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField18(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_Prompt[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *Prompt) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field *int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.WorkspaceID = _field + return offset, nil +} + +func (p *Prompt) FastReadField2(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.PromptKey = _field + return offset, nil +} + +func (p *Prompt) FastReadField3(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Version = _field + return offset, nil +} + +func (p *Prompt) FastReadField4(buf []byte) (int, error) { + offset := 0 + _field := NewPromptTemplate() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.PromptTemplate = _field + return offset, nil +} + +func (p *Prompt) FastReadField5(buf []byte) (int, error) { + offset := 0 + + _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make([]*Tool, 0, size) + values := make([]Tool, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + if l, err := _elem.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + + _field = append(_field, _elem) + } + p.Tools = _field + return offset, nil +} + +func (p *Prompt) FastReadField6(buf []byte) (int, error) { + offset := 0 + _field := NewToolCallConfig() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.ToolCallConfig = _field + return offset, nil +} + +func (p *Prompt) FastReadField7(buf []byte) (int, error) { + offset := 0 + _field := NewLLMConfig() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.LlmConfig = _field + return offset, nil +} + +func (p *Prompt) FastReadField8(buf []byte) (int, error) { + offset := 0 + + var _field *int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.ID = _field + return offset, nil +} + +func (p *Prompt) FastReadField9(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.DisplayName = _field + return offset, nil +} + +func (p *Prompt) FastReadField10(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Description = _field + return offset, nil +} + +func (p *Prompt) FastReadField11(buf []byte) (int, error) { + offset := 0 + + var _field *PromptType + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.PromptType = _field + return offset, nil +} + +func (p *Prompt) FastReadField12(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.CreatedBy = _field + return offset, nil +} + +func (p *Prompt) FastReadField14(buf []byte) (int, error) { + offset := 0 + + var _field *int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.CreatedAt = _field + return offset, nil +} + +func (p *Prompt) FastReadField15(buf []byte) (int, error) { + offset := 0 + + var _field *int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.UpdatedAt = _field + return offset, nil +} + +func (p *Prompt) FastReadField16(buf []byte) (int, error) { + offset := 0 + + var _field *PublishStatus + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Status = _field + return offset, nil +} + +func (p *Prompt) FastReadField17(buf []byte) (int, error) { + offset := 0 + _field := NewPromptPublishInfo() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.PublishInfo = _field + return offset, nil +} + +func (p *Prompt) FastReadField18(buf []byte) (int, error) { + offset := 0 + + var _field *SecurityLevel + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.SecurityLevel = _field + return offset, nil +} + +func (p *Prompt) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *Prompt) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField8(buf[offset:], w) + offset += p.fastWriteField14(buf[offset:], w) + offset += p.fastWriteField15(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + offset += p.fastWriteField3(buf[offset:], w) + offset += p.fastWriteField4(buf[offset:], w) + offset += p.fastWriteField5(buf[offset:], w) + offset += p.fastWriteField6(buf[offset:], w) + offset += p.fastWriteField7(buf[offset:], w) + offset += p.fastWriteField9(buf[offset:], w) + offset += p.fastWriteField10(buf[offset:], w) + offset += p.fastWriteField11(buf[offset:], w) + offset += p.fastWriteField12(buf[offset:], w) + offset += p.fastWriteField16(buf[offset:], w) + offset += p.fastWriteField17(buf[offset:], w) + offset += p.fastWriteField18(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *Prompt) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() + l += p.field4Length() + l += p.field5Length() + l += p.field6Length() + l += p.field7Length() + l += p.field8Length() + l += p.field9Length() + l += p.field10Length() + l += p.field11Length() + l += p.field12Length() + l += p.field14Length() + l += p.field15Length() + l += p.field16Length() + l += p.field17Length() + l += p.field18Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *Prompt) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetWorkspaceID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 1) + offset += thrift.Binary.WriteI64(buf[offset:], *p.WorkspaceID) + } + return offset +} + +func (p *Prompt) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetPromptKey() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.PromptKey) + } + return offset +} + +func (p *Prompt) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetVersion() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 3) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Version) + } + return offset +} + +func (p *Prompt) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetPromptTemplate() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 4) + offset += p.PromptTemplate.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *Prompt) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetTools() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 5) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.Tools { + length++ + offset += v.FastWriteNocopy(buf[offset:], w) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) + } + return offset +} + +func (p *Prompt) fastWriteField6(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetToolCallConfig() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 6) + offset += p.ToolCallConfig.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *Prompt) fastWriteField7(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetLlmConfig() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 7) + offset += p.LlmConfig.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *Prompt) fastWriteField8(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 8) + offset += thrift.Binary.WriteI64(buf[offset:], *p.ID) + } + return offset +} + +func (p *Prompt) fastWriteField9(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetDisplayName() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 9) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.DisplayName) + } + return offset +} + +func (p *Prompt) fastWriteField10(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetDescription() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 10) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Description) + } + return offset +} + +func (p *Prompt) fastWriteField11(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetPromptType() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 11) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.PromptType) + } + return offset +} + +func (p *Prompt) fastWriteField12(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetCreatedBy() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 12) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.CreatedBy) + } + return offset +} + +func (p *Prompt) fastWriteField14(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetCreatedAt() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 14) + offset += thrift.Binary.WriteI64(buf[offset:], *p.CreatedAt) + } + return offset +} + +func (p *Prompt) fastWriteField15(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetUpdatedAt() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 15) + offset += thrift.Binary.WriteI64(buf[offset:], *p.UpdatedAt) + } + return offset +} + +func (p *Prompt) fastWriteField16(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetStatus() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 16) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Status) + } + return offset +} + +func (p *Prompt) fastWriteField17(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetPublishInfo() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 17) + offset += p.PublishInfo.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *Prompt) fastWriteField18(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetSecurityLevel() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 18) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.SecurityLevel) + } + return offset +} + +func (p *Prompt) field1Length() int { + l := 0 + if p.IsSetWorkspaceID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *Prompt) field2Length() int { + l := 0 + if p.IsSetPromptKey() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.PromptKey) + } + return l +} + +func (p *Prompt) field3Length() int { + l := 0 + if p.IsSetVersion() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Version) + } + return l +} + +func (p *Prompt) field4Length() int { + l := 0 + if p.IsSetPromptTemplate() { + l += thrift.Binary.FieldBeginLength() + l += p.PromptTemplate.BLength() + } + return l +} + +func (p *Prompt) field5Length() int { + l := 0 + if p.IsSetTools() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + for _, v := range p.Tools { + _ = v + l += v.BLength() + } + } + return l +} + +func (p *Prompt) field6Length() int { + l := 0 + if p.IsSetToolCallConfig() { + l += thrift.Binary.FieldBeginLength() + l += p.ToolCallConfig.BLength() + } + return l +} + +func (p *Prompt) field7Length() int { + l := 0 + if p.IsSetLlmConfig() { + l += thrift.Binary.FieldBeginLength() + l += p.LlmConfig.BLength() + } + return l +} + +func (p *Prompt) field8Length() int { + l := 0 + if p.IsSetID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *Prompt) field9Length() int { + l := 0 + if p.IsSetDisplayName() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.DisplayName) + } + return l +} + +func (p *Prompt) field10Length() int { + l := 0 + if p.IsSetDescription() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Description) + } + return l +} + +func (p *Prompt) field11Length() int { + l := 0 + if p.IsSetPromptType() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.PromptType) + } + return l +} + +func (p *Prompt) field12Length() int { + l := 0 + if p.IsSetCreatedBy() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.CreatedBy) + } + return l +} + +func (p *Prompt) field14Length() int { + l := 0 + if p.IsSetCreatedAt() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *Prompt) field15Length() int { + l := 0 + if p.IsSetUpdatedAt() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *Prompt) field16Length() int { + l := 0 + if p.IsSetStatus() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Status) + } + return l +} + +func (p *Prompt) field17Length() int { + l := 0 + if p.IsSetPublishInfo() { + l += thrift.Binary.FieldBeginLength() + l += p.PublishInfo.BLength() + } + return l +} + +func (p *Prompt) field18Length() int { + l := 0 + if p.IsSetSecurityLevel() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.SecurityLevel) + } + return l +} + +func (p *Prompt) DeepCopy(s interface{}) error { + src, ok := s.(*Prompt) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.WorkspaceID != nil { + tmp := *src.WorkspaceID + p.WorkspaceID = &tmp + } + + if src.PromptKey != nil { + var tmp string + if *src.PromptKey != "" { + tmp = kutils.StringDeepCopy(*src.PromptKey) + } + p.PromptKey = &tmp + } + + if src.Version != nil { + var tmp string + if *src.Version != "" { + tmp = kutils.StringDeepCopy(*src.Version) + } + p.Version = &tmp + } + + var _promptTemplate *PromptTemplate + if src.PromptTemplate != nil { + _promptTemplate = &PromptTemplate{} + if err := _promptTemplate.DeepCopy(src.PromptTemplate); err != nil { + return err + } + } + p.PromptTemplate = _promptTemplate + + if src.Tools != nil { + p.Tools = make([]*Tool, 0, len(src.Tools)) + for _, elem := range src.Tools { + var _elem *Tool + if elem != nil { + _elem = &Tool{} + if err := _elem.DeepCopy(elem); err != nil { + return err + } + } + + p.Tools = append(p.Tools, _elem) + } + } + + var _toolCallConfig *ToolCallConfig + if src.ToolCallConfig != nil { + _toolCallConfig = &ToolCallConfig{} + if err := _toolCallConfig.DeepCopy(src.ToolCallConfig); err != nil { + return err + } + } + p.ToolCallConfig = _toolCallConfig + + var _llmConfig *LLMConfig + if src.LlmConfig != nil { + _llmConfig = &LLMConfig{} + if err := _llmConfig.DeepCopy(src.LlmConfig); err != nil { + return err + } + } + p.LlmConfig = _llmConfig + + if src.ID != nil { + tmp := *src.ID + p.ID = &tmp + } + + if src.DisplayName != nil { + var tmp string + if *src.DisplayName != "" { + tmp = kutils.StringDeepCopy(*src.DisplayName) + } + p.DisplayName = &tmp + } + + if src.Description != nil { + var tmp string + if *src.Description != "" { + tmp = kutils.StringDeepCopy(*src.Description) + } + p.Description = &tmp + } + + if src.PromptType != nil { + tmp := *src.PromptType + p.PromptType = &tmp + } + + if src.CreatedBy != nil { + var tmp string + if *src.CreatedBy != "" { + tmp = kutils.StringDeepCopy(*src.CreatedBy) + } + p.CreatedBy = &tmp + } + + if src.CreatedAt != nil { + tmp := *src.CreatedAt + p.CreatedAt = &tmp + } + + if src.UpdatedAt != nil { + tmp := *src.UpdatedAt + p.UpdatedAt = &tmp + } + + if src.Status != nil { + tmp := *src.Status + p.Status = &tmp + } + + var _publishInfo *PromptPublishInfo + if src.PublishInfo != nil { + _publishInfo = &PromptPublishInfo{} + if err := _publishInfo.DeepCopy(src.PublishInfo); err != nil { + return err + } + } + p.PublishInfo = _publishInfo + + if src.SecurityLevel != nil { + tmp := *src.SecurityLevel + p.SecurityLevel = &tmp + } + + return nil +} + +func (p *PromptTemplate) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.LIST { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 3: + if fieldTypeId == thrift.LIST { + l, err = p.FastReadField3(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 100: + if fieldTypeId == thrift.MAP { + l, err = p.FastReadField100(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptTemplate[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *PromptTemplate) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field *TemplateType + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.TemplateType = _field + return offset, nil +} + +func (p *PromptTemplate) FastReadField2(buf []byte) (int, error) { + offset := 0 + + _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make([]*Message, 0, size) + values := make([]Message, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + if l, err := _elem.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + + _field = append(_field, _elem) + } + p.Messages = _field + return offset, nil +} + +func (p *PromptTemplate) FastReadField3(buf []byte) (int, error) { + offset := 0 + + _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make([]*VariableDef, 0, size) + values := make([]VariableDef, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + if l, err := _elem.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + + _field = append(_field, _elem) + } + p.VariableDefs = _field + return offset, nil +} + +func (p *PromptTemplate) FastReadField100(buf []byte) (int, error) { + offset := 0 + + _, _, size, l, err := thrift.Binary.ReadMapBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make(map[string]string, size) + for i := 0; i < size; i++ { + var _key string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _key = v + } + + var _val string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _val = v + } + + _field[_key] = _val + } + p.Metadata = _field + return offset, nil +} + +func (p *PromptTemplate) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *PromptTemplate) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + offset += p.fastWriteField3(buf[offset:], w) + offset += p.fastWriteField100(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *PromptTemplate) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() + l += p.field100Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *PromptTemplate) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetTemplateType() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.TemplateType) + } + return offset +} + +func (p *PromptTemplate) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetMessages() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 2) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.Messages { + length++ + offset += v.FastWriteNocopy(buf[offset:], w) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) + } + return offset +} + +func (p *PromptTemplate) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetVariableDefs() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 3) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.VariableDefs { + length++ + offset += v.FastWriteNocopy(buf[offset:], w) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) + } + return offset +} + +func (p *PromptTemplate) fastWriteField100(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetMetadata() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.MAP, 100) + mapBeginOffset := offset + offset += thrift.Binary.MapBeginLength() + var length int + for k, v := range p.Metadata { + length++ + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, k) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, v) + } + thrift.Binary.WriteMapBegin(buf[mapBeginOffset:], thrift.STRING, thrift.STRING, length) + } + return offset +} + +func (p *PromptTemplate) field1Length() int { + l := 0 + if p.IsSetTemplateType() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.TemplateType) + } + return l +} + +func (p *PromptTemplate) field2Length() int { + l := 0 + if p.IsSetMessages() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + for _, v := range p.Messages { + _ = v + l += v.BLength() + } + } + return l +} + +func (p *PromptTemplate) field3Length() int { + l := 0 + if p.IsSetVariableDefs() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + for _, v := range p.VariableDefs { + _ = v + l += v.BLength() + } + } + return l +} + +func (p *PromptTemplate) field100Length() int { + l := 0 + if p.IsSetMetadata() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.MapBeginLength() + for k, v := range p.Metadata { + _, _ = k, v + + l += thrift.Binary.StringLengthNocopy(k) + l += thrift.Binary.StringLengthNocopy(v) + } + } + return l +} + +func (p *PromptTemplate) DeepCopy(s interface{}) error { + src, ok := s.(*PromptTemplate) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.TemplateType != nil { + tmp := *src.TemplateType + p.TemplateType = &tmp + } + + if src.Messages != nil { + p.Messages = make([]*Message, 0, len(src.Messages)) + for _, elem := range src.Messages { + var _elem *Message + if elem != nil { + _elem = &Message{} + if err := _elem.DeepCopy(elem); err != nil { + return err + } + } + + p.Messages = append(p.Messages, _elem) + } + } + + if src.VariableDefs != nil { + p.VariableDefs = make([]*VariableDef, 0, len(src.VariableDefs)) + for _, elem := range src.VariableDefs { + var _elem *VariableDef + if elem != nil { + _elem = &VariableDef{} + if err := _elem.DeepCopy(elem); err != nil { + return err + } + } + + p.VariableDefs = append(p.VariableDefs, _elem) + } + } + + if src.Metadata != nil { + p.Metadata = make(map[string]string, len(src.Metadata)) + for key, val := range src.Metadata { + var _key string + if key != "" { + _key = kutils.StringDeepCopy(key) + } + + var _val string + if val != "" { + _val = kutils.StringDeepCopy(val) + } + + p.Metadata[_key] = _val + } + } + + return nil +} + +func (p *ToolCallConfig) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ToolCallConfig[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *ToolCallConfig) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field *ToolChoiceType + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.ToolChoice = _field + return offset, nil +} + +func (p *ToolCallConfig) FastReadField2(buf []byte) (int, error) { + offset := 0 + _field := NewToolChoiceSpecification() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.ToolChoiceSpecification = _field + return offset, nil +} + +func (p *ToolCallConfig) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ToolCallConfig) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *ToolCallConfig) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *ToolCallConfig) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetToolChoice() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.ToolChoice) + } + return offset +} + +func (p *ToolCallConfig) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetToolChoiceSpecification() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 2) + offset += p.ToolChoiceSpecification.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *ToolCallConfig) field1Length() int { + l := 0 + if p.IsSetToolChoice() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.ToolChoice) + } + return l +} + +func (p *ToolCallConfig) field2Length() int { + l := 0 + if p.IsSetToolChoiceSpecification() { + l += thrift.Binary.FieldBeginLength() + l += p.ToolChoiceSpecification.BLength() + } + return l +} + +func (p *ToolCallConfig) DeepCopy(s interface{}) error { + src, ok := s.(*ToolCallConfig) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.ToolChoice != nil { + tmp := *src.ToolChoice + p.ToolChoice = &tmp + } + + var _toolChoiceSpecification *ToolChoiceSpecification + if src.ToolChoiceSpecification != nil { + _toolChoiceSpecification = &ToolChoiceSpecification{} + if err := _toolChoiceSpecification.DeepCopy(src.ToolChoiceSpecification); err != nil { + return err + } + } + p.ToolChoiceSpecification = _toolChoiceSpecification + + return nil +} + +func (p *ToolChoiceSpecification) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ToolChoiceSpecification[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *ToolChoiceSpecification) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field *ToolType + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Type = _field + return offset, nil +} + +func (p *ToolChoiceSpecification) FastReadField2(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Name = _field + return offset, nil +} + +func (p *ToolChoiceSpecification) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ToolChoiceSpecification) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *ToolChoiceSpecification) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *ToolChoiceSpecification) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetType() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Type) + } + return offset +} + +func (p *ToolChoiceSpecification) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetName() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Name) + } + return offset +} + +func (p *ToolChoiceSpecification) field1Length() int { + l := 0 + if p.IsSetType() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Type) + } + return l +} + +func (p *ToolChoiceSpecification) field2Length() int { + l := 0 + if p.IsSetName() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Name) + } + return l +} + +func (p *ToolChoiceSpecification) DeepCopy(s interface{}) error { + src, ok := s.(*ToolChoiceSpecification) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.Type != nil { + tmp := *src.Type + p.Type = &tmp + } + + if src.Name != nil { + var tmp string + if *src.Name != "" { + tmp = kutils.StringDeepCopy(*src.Name) + } + p.Name = &tmp + } + + return nil +} + +func (p *Message) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 3: + if fieldTypeId == thrift.LIST { + l, err = p.FastReadField3(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 4: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField4(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 5: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField5(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 6: + if fieldTypeId == thrift.LIST { + l, err = p.FastReadField6(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 7: + if fieldTypeId == thrift.BOOL { + l, err = p.FastReadField7(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 8: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField8(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 100: + if fieldTypeId == thrift.MAP { + l, err = p.FastReadField100(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_Message[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *Message) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field *Role + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Role = _field + return offset, nil +} + +func (p *Message) FastReadField2(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Content = _field + return offset, nil +} + +func (p *Message) FastReadField3(buf []byte) (int, error) { + offset := 0 + + _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make([]*ContentPart, 0, size) + values := make([]ContentPart, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + if l, err := _elem.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + + _field = append(_field, _elem) + } + p.Parts = _field + return offset, nil +} + +func (p *Message) FastReadField4(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.ReasoningContent = _field + return offset, nil +} + +func (p *Message) FastReadField5(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.ToolCallID = _field + return offset, nil +} + +func (p *Message) FastReadField6(buf []byte) (int, error) { + offset := 0 + + _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make([]*ToolCall, 0, size) + values := make([]ToolCall, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + if l, err := _elem.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + + _field = append(_field, _elem) + } + p.ToolCalls = _field + return offset, nil +} + +func (p *Message) FastReadField7(buf []byte) (int, error) { + offset := 0 + + var _field *bool + if v, l, err := thrift.Binary.ReadBool(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.SkipRender = _field + return offset, nil +} + +func (p *Message) FastReadField8(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Signature = _field + return offset, nil +} + +func (p *Message) FastReadField100(buf []byte) (int, error) { + offset := 0 + + _, _, size, l, err := thrift.Binary.ReadMapBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make(map[string]string, size) + for i := 0; i < size; i++ { + var _key string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _key = v + } + + var _val string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _val = v + } + + _field[_key] = _val + } + p.Metadata = _field + return offset, nil +} + +func (p *Message) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *Message) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField7(buf[offset:], w) + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + offset += p.fastWriteField3(buf[offset:], w) + offset += p.fastWriteField4(buf[offset:], w) + offset += p.fastWriteField5(buf[offset:], w) + offset += p.fastWriteField6(buf[offset:], w) + offset += p.fastWriteField8(buf[offset:], w) + offset += p.fastWriteField100(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *Message) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() + l += p.field4Length() + l += p.field5Length() + l += p.field6Length() + l += p.field7Length() + l += p.field8Length() + l += p.field100Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *Message) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetRole() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Role) + } + return offset +} + +func (p *Message) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetContent() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Content) + } + return offset +} + +func (p *Message) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetParts() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 3) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.Parts { + length++ + offset += v.FastWriteNocopy(buf[offset:], w) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) + } + return offset +} + +func (p *Message) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetReasoningContent() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 4) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.ReasoningContent) + } + return offset +} + +func (p *Message) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetToolCallID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 5) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.ToolCallID) + } + return offset +} + +func (p *Message) fastWriteField6(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetToolCalls() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 6) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.ToolCalls { + length++ + offset += v.FastWriteNocopy(buf[offset:], w) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) + } + return offset +} + +func (p *Message) fastWriteField7(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetSkipRender() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.BOOL, 7) + offset += thrift.Binary.WriteBool(buf[offset:], *p.SkipRender) + } + return offset +} + +func (p *Message) fastWriteField8(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetSignature() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 8) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Signature) + } + return offset +} + +func (p *Message) fastWriteField100(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetMetadata() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.MAP, 100) + mapBeginOffset := offset + offset += thrift.Binary.MapBeginLength() + var length int + for k, v := range p.Metadata { + length++ + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, k) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, v) + } + thrift.Binary.WriteMapBegin(buf[mapBeginOffset:], thrift.STRING, thrift.STRING, length) + } + return offset +} + +func (p *Message) field1Length() int { + l := 0 + if p.IsSetRole() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Role) + } + return l +} + +func (p *Message) field2Length() int { + l := 0 + if p.IsSetContent() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Content) + } + return l +} + +func (p *Message) field3Length() int { + l := 0 + if p.IsSetParts() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + for _, v := range p.Parts { + _ = v + l += v.BLength() + } + } + return l +} + +func (p *Message) field4Length() int { + l := 0 + if p.IsSetReasoningContent() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.ReasoningContent) + } + return l +} + +func (p *Message) field5Length() int { + l := 0 + if p.IsSetToolCallID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.ToolCallID) + } + return l +} + +func (p *Message) field6Length() int { + l := 0 + if p.IsSetToolCalls() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + for _, v := range p.ToolCalls { + _ = v + l += v.BLength() + } + } + return l +} + +func (p *Message) field7Length() int { + l := 0 + if p.IsSetSkipRender() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.BoolLength() + } + return l +} + +func (p *Message) field8Length() int { + l := 0 + if p.IsSetSignature() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Signature) + } + return l +} + +func (p *Message) field100Length() int { + l := 0 + if p.IsSetMetadata() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.MapBeginLength() + for k, v := range p.Metadata { + _, _ = k, v + + l += thrift.Binary.StringLengthNocopy(k) + l += thrift.Binary.StringLengthNocopy(v) + } + } + return l +} + +func (p *Message) DeepCopy(s interface{}) error { + src, ok := s.(*Message) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.Role != nil { + tmp := *src.Role + p.Role = &tmp + } + + if src.Content != nil { + var tmp string + if *src.Content != "" { + tmp = kutils.StringDeepCopy(*src.Content) + } + p.Content = &tmp + } + + if src.Parts != nil { + p.Parts = make([]*ContentPart, 0, len(src.Parts)) + for _, elem := range src.Parts { + var _elem *ContentPart + if elem != nil { + _elem = &ContentPart{} + if err := _elem.DeepCopy(elem); err != nil { + return err + } + } + + p.Parts = append(p.Parts, _elem) + } + } + + if src.ReasoningContent != nil { + var tmp string + if *src.ReasoningContent != "" { + tmp = kutils.StringDeepCopy(*src.ReasoningContent) + } + p.ReasoningContent = &tmp + } + + if src.ToolCallID != nil { + var tmp string + if *src.ToolCallID != "" { + tmp = kutils.StringDeepCopy(*src.ToolCallID) + } + p.ToolCallID = &tmp + } + + if src.ToolCalls != nil { + p.ToolCalls = make([]*ToolCall, 0, len(src.ToolCalls)) + for _, elem := range src.ToolCalls { + var _elem *ToolCall + if elem != nil { + _elem = &ToolCall{} + if err := _elem.DeepCopy(elem); err != nil { + return err + } + } + + p.ToolCalls = append(p.ToolCalls, _elem) + } + } + + if src.SkipRender != nil { + tmp := *src.SkipRender + p.SkipRender = &tmp + } + + if src.Signature != nil { + var tmp string + if *src.Signature != "" { + tmp = kutils.StringDeepCopy(*src.Signature) + } + p.Signature = &tmp + } + + if src.Metadata != nil { + p.Metadata = make(map[string]string, len(src.Metadata)) + for key, val := range src.Metadata { + var _key string + if key != "" { + _key = kutils.StringDeepCopy(key) + } + + var _val string + if val != "" { + _val = kutils.StringDeepCopy(val) + } + + p.Metadata[_key] = _val + } + } + + return nil +} + +func (p *ContentPart) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 3: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField3(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 4: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField4(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 5: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField5(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 6: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField6(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 7: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField7(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 8: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField8(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 9: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField9(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ContentPart[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *ContentPart) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field *ContentType + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Type = _field + return offset, nil +} + +func (p *ContentPart) FastReadField2(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Text = _field + return offset, nil +} + +func (p *ContentPart) FastReadField3(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.ImageURL = _field + return offset, nil +} + +func (p *ContentPart) FastReadField4(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Base64Data = _field + return offset, nil +} + +func (p *ContentPart) FastReadField5(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.VideoURL = _field + return offset, nil +} + +func (p *ContentPart) FastReadField6(buf []byte) (int, error) { + offset := 0 + _field := NewMediaConfig() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Config = _field + return offset, nil +} + +func (p *ContentPart) FastReadField7(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Signature = _field + return offset, nil +} + +func (p *ContentPart) FastReadField8(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.ImageURI = _field + return offset, nil +} + +func (p *ContentPart) FastReadField9(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.VideoURI = _field + return offset, nil +} + +func (p *ContentPart) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ContentPart) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + offset += p.fastWriteField3(buf[offset:], w) + offset += p.fastWriteField4(buf[offset:], w) + offset += p.fastWriteField5(buf[offset:], w) + offset += p.fastWriteField6(buf[offset:], w) + offset += p.fastWriteField7(buf[offset:], w) + offset += p.fastWriteField8(buf[offset:], w) + offset += p.fastWriteField9(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *ContentPart) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() + l += p.field4Length() + l += p.field5Length() + l += p.field6Length() + l += p.field7Length() + l += p.field8Length() + l += p.field9Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *ContentPart) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetType() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Type) + } + return offset +} + +func (p *ContentPart) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetText() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Text) + } + return offset +} + +func (p *ContentPart) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetImageURL() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 3) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.ImageURL) + } + return offset +} + +func (p *ContentPart) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetBase64Data() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 4) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Base64Data) + } + return offset +} + +func (p *ContentPart) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetVideoURL() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 5) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.VideoURL) + } + return offset +} + +func (p *ContentPart) fastWriteField6(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetConfig() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 6) + offset += p.Config.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *ContentPart) fastWriteField7(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetSignature() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 7) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Signature) + } + return offset +} + +func (p *ContentPart) fastWriteField8(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetImageURI() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 8) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.ImageURI) + } + return offset +} + +func (p *ContentPart) fastWriteField9(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetVideoURI() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 9) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.VideoURI) + } + return offset +} + +func (p *ContentPart) field1Length() int { + l := 0 + if p.IsSetType() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Type) + } + return l +} + +func (p *ContentPart) field2Length() int { + l := 0 + if p.IsSetText() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Text) + } + return l +} + +func (p *ContentPart) field3Length() int { + l := 0 + if p.IsSetImageURL() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.ImageURL) + } + return l +} + +func (p *ContentPart) field4Length() int { + l := 0 + if p.IsSetBase64Data() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Base64Data) + } + return l +} + +func (p *ContentPart) field5Length() int { + l := 0 + if p.IsSetVideoURL() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.VideoURL) + } + return l +} + +func (p *ContentPart) field6Length() int { + l := 0 + if p.IsSetConfig() { + l += thrift.Binary.FieldBeginLength() + l += p.Config.BLength() + } + return l +} + +func (p *ContentPart) field7Length() int { + l := 0 + if p.IsSetSignature() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Signature) + } + return l +} + +func (p *ContentPart) field8Length() int { + l := 0 + if p.IsSetImageURI() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.ImageURI) + } + return l +} + +func (p *ContentPart) field9Length() int { + l := 0 + if p.IsSetVideoURI() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.VideoURI) + } + return l +} + +func (p *ContentPart) DeepCopy(s interface{}) error { + src, ok := s.(*ContentPart) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.Type != nil { + tmp := *src.Type + p.Type = &tmp + } + + if src.Text != nil { + var tmp string + if *src.Text != "" { + tmp = kutils.StringDeepCopy(*src.Text) + } + p.Text = &tmp + } + + if src.ImageURL != nil { + var tmp string + if *src.ImageURL != "" { + tmp = kutils.StringDeepCopy(*src.ImageURL) + } + p.ImageURL = &tmp + } + + if src.Base64Data != nil { + var tmp string + if *src.Base64Data != "" { + tmp = kutils.StringDeepCopy(*src.Base64Data) + } + p.Base64Data = &tmp + } + + if src.VideoURL != nil { + var tmp string + if *src.VideoURL != "" { + tmp = kutils.StringDeepCopy(*src.VideoURL) + } + p.VideoURL = &tmp + } + + var _config *MediaConfig + if src.Config != nil { + _config = &MediaConfig{} + if err := _config.DeepCopy(src.Config); err != nil { + return err + } + } + p.Config = _config + + if src.Signature != nil { + var tmp string + if *src.Signature != "" { + tmp = kutils.StringDeepCopy(*src.Signature) + } + p.Signature = &tmp + } + + if src.ImageURI != nil { + var tmp string + if *src.ImageURI != "" { + tmp = kutils.StringDeepCopy(*src.ImageURI) + } + p.ImageURI = &tmp + } + + if src.VideoURI != nil { + var tmp string + if *src.VideoURI != "" { + tmp = kutils.StringDeepCopy(*src.VideoURI) + } + p.VideoURI = &tmp + } + + return nil +} + +func (p *MediaConfig) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.DOUBLE { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_MediaConfig[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *MediaConfig) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field *float64 + if v, l, err := thrift.Binary.ReadDouble(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Fps = _field + return offset, nil +} + +func (p *MediaConfig) FastReadField2(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.ImageResolution = _field + return offset, nil +} + +func (p *MediaConfig) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *MediaConfig) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *MediaConfig) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *MediaConfig) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetFps() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.DOUBLE, 1) + offset += thrift.Binary.WriteDouble(buf[offset:], *p.Fps) + } + return offset +} + +func (p *MediaConfig) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetImageResolution() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.ImageResolution) + } + return offset +} + +func (p *MediaConfig) field1Length() int { + l := 0 + if p.IsSetFps() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.DoubleLength() + } + return l +} + +func (p *MediaConfig) field2Length() int { + l := 0 + if p.IsSetImageResolution() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.ImageResolution) + } + return l +} + +func (p *MediaConfig) DeepCopy(s interface{}) error { + src, ok := s.(*MediaConfig) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.Fps != nil { + tmp := *src.Fps + p.Fps = &tmp + } + + if src.ImageResolution != nil { + var tmp string + if *src.ImageResolution != "" { + tmp = kutils.StringDeepCopy(*src.ImageResolution) + } + p.ImageResolution = &tmp + } + + return nil +} + +func (p *VariableDef) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 3: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField3(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_VariableDef[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *VariableDef) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Key = _field + return offset, nil +} + +func (p *VariableDef) FastReadField2(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Desc = _field + return offset, nil +} + +func (p *VariableDef) FastReadField3(buf []byte) (int, error) { + offset := 0 + + var _field *VariableType + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Type = _field + return offset, nil +} + +func (p *VariableDef) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *VariableDef) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + offset += p.fastWriteField3(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *VariableDef) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *VariableDef) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetKey() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Key) + } + return offset +} + +func (p *VariableDef) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetDesc() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Desc) + } + return offset +} + +func (p *VariableDef) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetType() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 3) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Type) + } + return offset +} + +func (p *VariableDef) field1Length() int { + l := 0 + if p.IsSetKey() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Key) + } + return l +} + +func (p *VariableDef) field2Length() int { + l := 0 + if p.IsSetDesc() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Desc) + } + return l +} + +func (p *VariableDef) field3Length() int { + l := 0 + if p.IsSetType() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Type) + } + return l +} + +func (p *VariableDef) DeepCopy(s interface{}) error { + src, ok := s.(*VariableDef) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.Key != nil { + var tmp string + if *src.Key != "" { + tmp = kutils.StringDeepCopy(*src.Key) + } + p.Key = &tmp + } + + if src.Desc != nil { + var tmp string + if *src.Desc != "" { + tmp = kutils.StringDeepCopy(*src.Desc) + } + p.Desc = &tmp + } + + if src.Type != nil { + tmp := *src.Type + p.Type = &tmp + } + + return nil +} + +func (p *Tool) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 3: + if fieldTypeId == thrift.BOOL { + l, err = p.FastReadField3(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_Tool[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *Tool) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field *ToolType + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Type = _field + return offset, nil +} + +func (p *Tool) FastReadField2(buf []byte) (int, error) { + offset := 0 + _field := NewFunction() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Function = _field + return offset, nil +} + +func (p *Tool) FastReadField3(buf []byte) (int, error) { + offset := 0 + + var _field *bool + if v, l, err := thrift.Binary.ReadBool(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Disable = _field + return offset, nil +} + +func (p *Tool) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *Tool) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField3(buf[offset:], w) + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *Tool) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *Tool) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetType() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Type) + } + return offset +} + +func (p *Tool) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetFunction() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 2) + offset += p.Function.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *Tool) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetDisable() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.BOOL, 3) + offset += thrift.Binary.WriteBool(buf[offset:], *p.Disable) + } + return offset +} + +func (p *Tool) field1Length() int { + l := 0 + if p.IsSetType() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Type) + } + return l +} + +func (p *Tool) field2Length() int { + l := 0 + if p.IsSetFunction() { + l += thrift.Binary.FieldBeginLength() + l += p.Function.BLength() + } + return l +} + +func (p *Tool) field3Length() int { + l := 0 + if p.IsSetDisable() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.BoolLength() + } + return l +} + +func (p *Tool) DeepCopy(s interface{}) error { + src, ok := s.(*Tool) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.Type != nil { + tmp := *src.Type + p.Type = &tmp + } + + var _function *Function + if src.Function != nil { + _function = &Function{} + if err := _function.DeepCopy(src.Function); err != nil { + return err + } + } + p.Function = _function + + if src.Disable != nil { + tmp := *src.Disable + p.Disable = &tmp + } + + return nil +} + +func (p *Function) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 3: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField3(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_Function[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *Function) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Name = _field + return offset, nil +} + +func (p *Function) FastReadField2(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Description = _field + return offset, nil +} + +func (p *Function) FastReadField3(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Parameters = _field + return offset, nil +} + +func (p *Function) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *Function) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + offset += p.fastWriteField3(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *Function) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *Function) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetName() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Name) + } + return offset +} + +func (p *Function) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetDescription() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Description) + } + return offset +} + +func (p *Function) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetParameters() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 3) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Parameters) + } + return offset +} + +func (p *Function) field1Length() int { + l := 0 + if p.IsSetName() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Name) + } + return l +} + +func (p *Function) field2Length() int { + l := 0 + if p.IsSetDescription() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Description) + } + return l +} + +func (p *Function) field3Length() int { + l := 0 + if p.IsSetParameters() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Parameters) + } + return l +} + +func (p *Function) DeepCopy(s interface{}) error { + src, ok := s.(*Function) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.Name != nil { + var tmp string + if *src.Name != "" { + tmp = kutils.StringDeepCopy(*src.Name) + } + p.Name = &tmp + } + + if src.Description != nil { + var tmp string + if *src.Description != "" { + tmp = kutils.StringDeepCopy(*src.Description) + } + p.Description = &tmp + } + + if src.Parameters != nil { + var tmp string + if *src.Parameters != "" { + tmp = kutils.StringDeepCopy(*src.Parameters) + } + p.Parameters = &tmp + } + + return nil +} + +func (p *ToolCall) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.I32 { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 3: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField3(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 4: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField4(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 5: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField5(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 6: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField6(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ToolCall[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *ToolCall) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field *int32 + if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Index = _field + return offset, nil +} + +func (p *ToolCall) FastReadField2(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.ID = _field + return offset, nil +} + +func (p *ToolCall) FastReadField3(buf []byte) (int, error) { + offset := 0 + + var _field *ToolType + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Type = _field + return offset, nil +} + +func (p *ToolCall) FastReadField4(buf []byte) (int, error) { + offset := 0 + _field := NewFunctionCall() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.FunctionCall = _field + return offset, nil +} + +func (p *ToolCall) FastReadField5(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.OutputID = _field + return offset, nil +} + +func (p *ToolCall) FastReadField6(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Signature = _field + return offset, nil +} + +func (p *ToolCall) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ToolCall) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + offset += p.fastWriteField3(buf[offset:], w) + offset += p.fastWriteField4(buf[offset:], w) + offset += p.fastWriteField5(buf[offset:], w) + offset += p.fastWriteField6(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *ToolCall) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() + l += p.field4Length() + l += p.field5Length() + l += p.field6Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *ToolCall) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetIndex() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 1) + offset += thrift.Binary.WriteI32(buf[offset:], *p.Index) + } + return offset +} + +func (p *ToolCall) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.ID) + } + return offset +} + +func (p *ToolCall) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetType() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 3) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Type) + } + return offset +} + +func (p *ToolCall) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetFunctionCall() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 4) + offset += p.FunctionCall.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *ToolCall) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetOutputID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 5) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.OutputID) + } + return offset +} + +func (p *ToolCall) fastWriteField6(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetSignature() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 6) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Signature) + } + return offset +} + +func (p *ToolCall) field1Length() int { + l := 0 + if p.IsSetIndex() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I32Length() + } + return l +} + +func (p *ToolCall) field2Length() int { + l := 0 + if p.IsSetID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.ID) + } + return l +} + +func (p *ToolCall) field3Length() int { + l := 0 + if p.IsSetType() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Type) + } + return l +} + +func (p *ToolCall) field4Length() int { + l := 0 + if p.IsSetFunctionCall() { + l += thrift.Binary.FieldBeginLength() + l += p.FunctionCall.BLength() + } + return l +} + +func (p *ToolCall) field5Length() int { + l := 0 + if p.IsSetOutputID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.OutputID) + } + return l +} + +func (p *ToolCall) field6Length() int { + l := 0 + if p.IsSetSignature() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Signature) + } + return l +} + +func (p *ToolCall) DeepCopy(s interface{}) error { + src, ok := s.(*ToolCall) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.Index != nil { + tmp := *src.Index + p.Index = &tmp + } + + if src.ID != nil { + var tmp string + if *src.ID != "" { + tmp = kutils.StringDeepCopy(*src.ID) + } + p.ID = &tmp + } + + if src.Type != nil { + tmp := *src.Type + p.Type = &tmp + } + + var _functionCall *FunctionCall + if src.FunctionCall != nil { + _functionCall = &FunctionCall{} + if err := _functionCall.DeepCopy(src.FunctionCall); err != nil { + return err + } + } + p.FunctionCall = _functionCall + + if src.OutputID != nil { + var tmp string + if *src.OutputID != "" { + tmp = kutils.StringDeepCopy(*src.OutputID) + } + p.OutputID = &tmp + } + + if src.Signature != nil { + var tmp string + if *src.Signature != "" { + tmp = kutils.StringDeepCopy(*src.Signature) + } + p.Signature = &tmp + } + + return nil +} + +func (p *FunctionCall) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_FunctionCall[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *FunctionCall) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Name = _field + return offset, nil +} + +func (p *FunctionCall) FastReadField2(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Arguments = _field + return offset, nil +} + +func (p *FunctionCall) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *FunctionCall) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *FunctionCall) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *FunctionCall) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetName() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Name) + } + return offset +} + +func (p *FunctionCall) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetArguments() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Arguments) + } + return offset +} + +func (p *FunctionCall) field1Length() int { + l := 0 + if p.IsSetName() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Name) + } + return l +} + +func (p *FunctionCall) field2Length() int { + l := 0 + if p.IsSetArguments() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Arguments) + } + return l +} + +func (p *FunctionCall) DeepCopy(s interface{}) error { + src, ok := s.(*FunctionCall) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.Name != nil { + var tmp string + if *src.Name != "" { + tmp = kutils.StringDeepCopy(*src.Name) + } + p.Name = &tmp + } + + if src.Arguments != nil { + var tmp string + if *src.Arguments != "" { + tmp = kutils.StringDeepCopy(*src.Arguments) + } + p.Arguments = &tmp + } + + return nil +} + +func (p *LLMConfig) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.DOUBLE { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.I32 { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 3: + if fieldTypeId == thrift.I32 { + l, err = p.FastReadField3(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 4: + if fieldTypeId == thrift.DOUBLE { + l, err = p.FastReadField4(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 5: + if fieldTypeId == thrift.DOUBLE { + l, err = p.FastReadField5(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 6: + if fieldTypeId == thrift.DOUBLE { + l, err = p.FastReadField6(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 7: + if fieldTypeId == thrift.BOOL { + l, err = p.FastReadField7(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 8: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField8(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 9: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField9(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 10: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField10(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 11: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField11(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_LLMConfig[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *LLMConfig) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field *float64 + if v, l, err := thrift.Binary.ReadDouble(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Temperature = _field + return offset, nil +} + +func (p *LLMConfig) FastReadField2(buf []byte) (int, error) { + offset := 0 + + var _field *int32 + if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.MaxTokens = _field + return offset, nil +} + +func (p *LLMConfig) FastReadField3(buf []byte) (int, error) { + offset := 0 + + var _field *int32 + if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.TopK = _field + return offset, nil +} + +func (p *LLMConfig) FastReadField4(buf []byte) (int, error) { + offset := 0 + + var _field *float64 + if v, l, err := thrift.Binary.ReadDouble(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.TopP = _field + return offset, nil +} + +func (p *LLMConfig) FastReadField5(buf []byte) (int, error) { + offset := 0 + + var _field *float64 + if v, l, err := thrift.Binary.ReadDouble(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.PresencePenalty = _field + return offset, nil +} + +func (p *LLMConfig) FastReadField6(buf []byte) (int, error) { + offset := 0 + + var _field *float64 + if v, l, err := thrift.Binary.ReadDouble(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.FrequencyPenalty = _field + return offset, nil +} + +func (p *LLMConfig) FastReadField7(buf []byte) (int, error) { + offset := 0 + + var _field *bool + if v, l, err := thrift.Binary.ReadBool(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.JSONMode = _field + return offset, nil +} + +func (p *LLMConfig) FastReadField8(buf []byte) (int, error) { + offset := 0 + + var _field *int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.ID = _field + return offset, nil +} + +func (p *LLMConfig) FastReadField9(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Name = _field + return offset, nil +} + +func (p *LLMConfig) FastReadField10(buf []byte) (int, error) { + offset := 0 + _field := NewThinkingConfig() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Thinking = _field + return offset, nil +} + +func (p *LLMConfig) FastReadField11(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Extra = _field + return offset, nil +} + +func (p *LLMConfig) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *LLMConfig) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + offset += p.fastWriteField3(buf[offset:], w) + offset += p.fastWriteField4(buf[offset:], w) + offset += p.fastWriteField5(buf[offset:], w) + offset += p.fastWriteField6(buf[offset:], w) + offset += p.fastWriteField7(buf[offset:], w) + offset += p.fastWriteField8(buf[offset:], w) + offset += p.fastWriteField9(buf[offset:], w) + offset += p.fastWriteField10(buf[offset:], w) + offset += p.fastWriteField11(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *LLMConfig) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() + l += p.field4Length() + l += p.field5Length() + l += p.field6Length() + l += p.field7Length() + l += p.field8Length() + l += p.field9Length() + l += p.field10Length() + l += p.field11Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *LLMConfig) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetTemperature() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.DOUBLE, 1) + offset += thrift.Binary.WriteDouble(buf[offset:], *p.Temperature) + } + return offset +} + +func (p *LLMConfig) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetMaxTokens() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 2) + offset += thrift.Binary.WriteI32(buf[offset:], *p.MaxTokens) + } + return offset +} + +func (p *LLMConfig) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetTopK() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 3) + offset += thrift.Binary.WriteI32(buf[offset:], *p.TopK) + } + return offset +} + +func (p *LLMConfig) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetTopP() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.DOUBLE, 4) + offset += thrift.Binary.WriteDouble(buf[offset:], *p.TopP) + } + return offset +} + +func (p *LLMConfig) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetPresencePenalty() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.DOUBLE, 5) + offset += thrift.Binary.WriteDouble(buf[offset:], *p.PresencePenalty) + } + return offset +} + +func (p *LLMConfig) fastWriteField6(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetFrequencyPenalty() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.DOUBLE, 6) + offset += thrift.Binary.WriteDouble(buf[offset:], *p.FrequencyPenalty) + } + return offset +} + +func (p *LLMConfig) fastWriteField7(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetJSONMode() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.BOOL, 7) + offset += thrift.Binary.WriteBool(buf[offset:], *p.JSONMode) + } + return offset +} + +func (p *LLMConfig) fastWriteField8(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 8) + offset += thrift.Binary.WriteI64(buf[offset:], *p.ID) + } + return offset +} + +func (p *LLMConfig) fastWriteField9(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetName() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 9) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Name) + } + return offset +} + +func (p *LLMConfig) fastWriteField10(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetThinking() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 10) + offset += p.Thinking.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *LLMConfig) fastWriteField11(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetExtra() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 11) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Extra) + } + return offset +} + +func (p *LLMConfig) field1Length() int { + l := 0 + if p.IsSetTemperature() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.DoubleLength() + } + return l +} + +func (p *LLMConfig) field2Length() int { + l := 0 + if p.IsSetMaxTokens() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I32Length() + } + return l +} + +func (p *LLMConfig) field3Length() int { + l := 0 + if p.IsSetTopK() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I32Length() + } + return l +} + +func (p *LLMConfig) field4Length() int { + l := 0 + if p.IsSetTopP() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.DoubleLength() + } + return l +} + +func (p *LLMConfig) field5Length() int { + l := 0 + if p.IsSetPresencePenalty() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.DoubleLength() + } + return l +} + +func (p *LLMConfig) field6Length() int { + l := 0 + if p.IsSetFrequencyPenalty() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.DoubleLength() + } + return l +} + +func (p *LLMConfig) field7Length() int { + l := 0 + if p.IsSetJSONMode() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.BoolLength() + } + return l +} + +func (p *LLMConfig) field8Length() int { + l := 0 + if p.IsSetID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *LLMConfig) field9Length() int { + l := 0 + if p.IsSetName() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Name) + } + return l +} + +func (p *LLMConfig) field10Length() int { + l := 0 + if p.IsSetThinking() { + l += thrift.Binary.FieldBeginLength() + l += p.Thinking.BLength() + } + return l +} + +func (p *LLMConfig) field11Length() int { + l := 0 + if p.IsSetExtra() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Extra) + } + return l +} + +func (p *LLMConfig) DeepCopy(s interface{}) error { + src, ok := s.(*LLMConfig) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.Temperature != nil { + tmp := *src.Temperature + p.Temperature = &tmp + } + + if src.MaxTokens != nil { + tmp := *src.MaxTokens + p.MaxTokens = &tmp + } + + if src.TopK != nil { + tmp := *src.TopK + p.TopK = &tmp + } + + if src.TopP != nil { + tmp := *src.TopP + p.TopP = &tmp + } + + if src.PresencePenalty != nil { + tmp := *src.PresencePenalty + p.PresencePenalty = &tmp + } + + if src.FrequencyPenalty != nil { + tmp := *src.FrequencyPenalty + p.FrequencyPenalty = &tmp + } + + if src.JSONMode != nil { + tmp := *src.JSONMode + p.JSONMode = &tmp + } + + if src.ID != nil { + tmp := *src.ID + p.ID = &tmp + } + + if src.Name != nil { + var tmp string + if *src.Name != "" { + tmp = kutils.StringDeepCopy(*src.Name) + } + p.Name = &tmp + } + + var _thinking *ThinkingConfig + if src.Thinking != nil { + _thinking = &ThinkingConfig{} + if err := _thinking.DeepCopy(src.Thinking); err != nil { + return err + } + } + p.Thinking = _thinking + + if src.Extra != nil { + var tmp string + if *src.Extra != "" { + tmp = kutils.StringDeepCopy(*src.Extra) + } + p.Extra = &tmp + } + + return nil +} + +func (p *VariableVal) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 3: + if fieldTypeId == thrift.LIST { + l, err = p.FastReadField3(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 4: + if fieldTypeId == thrift.LIST { + l, err = p.FastReadField4(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_VariableVal[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *VariableVal) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Key = _field + return offset, nil +} + +func (p *VariableVal) FastReadField2(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Value = _field + return offset, nil +} + +func (p *VariableVal) FastReadField3(buf []byte) (int, error) { + offset := 0 + + _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make([]*Message, 0, size) + values := make([]Message, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + if l, err := _elem.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + + _field = append(_field, _elem) + } + p.PlaceholderMessages = _field + return offset, nil +} + +func (p *VariableVal) FastReadField4(buf []byte) (int, error) { + offset := 0 + + _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make([]*ContentPart, 0, size) + values := make([]ContentPart, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + if l, err := _elem.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + + _field = append(_field, _elem) + } + p.MultiPartValues = _field + return offset, nil +} + +func (p *VariableVal) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *VariableVal) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + offset += p.fastWriteField3(buf[offset:], w) + offset += p.fastWriteField4(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *VariableVal) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() + l += p.field4Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *VariableVal) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetKey() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Key) + } + return offset +} + +func (p *VariableVal) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetValue() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Value) + } + return offset +} + +func (p *VariableVal) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetPlaceholderMessages() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 3) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.PlaceholderMessages { + length++ + offset += v.FastWriteNocopy(buf[offset:], w) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) + } + return offset +} + +func (p *VariableVal) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetMultiPartValues() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 4) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.MultiPartValues { + length++ + offset += v.FastWriteNocopy(buf[offset:], w) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) + } + return offset +} + +func (p *VariableVal) field1Length() int { + l := 0 + if p.IsSetKey() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Key) + } + return l +} + +func (p *VariableVal) field2Length() int { + l := 0 + if p.IsSetValue() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Value) + } + return l +} + +func (p *VariableVal) field3Length() int { + l := 0 + if p.IsSetPlaceholderMessages() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + for _, v := range p.PlaceholderMessages { + _ = v + l += v.BLength() + } + } + return l +} + +func (p *VariableVal) field4Length() int { + l := 0 + if p.IsSetMultiPartValues() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + for _, v := range p.MultiPartValues { + _ = v + l += v.BLength() + } + } + return l +} + +func (p *VariableVal) DeepCopy(s interface{}) error { + src, ok := s.(*VariableVal) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.Key != nil { + var tmp string + if *src.Key != "" { + tmp = kutils.StringDeepCopy(*src.Key) + } + p.Key = &tmp + } + + if src.Value != nil { + var tmp string + if *src.Value != "" { + tmp = kutils.StringDeepCopy(*src.Value) + } + p.Value = &tmp + } + + if src.PlaceholderMessages != nil { + p.PlaceholderMessages = make([]*Message, 0, len(src.PlaceholderMessages)) + for _, elem := range src.PlaceholderMessages { + var _elem *Message + if elem != nil { + _elem = &Message{} + if err := _elem.DeepCopy(elem); err != nil { + return err + } + } + + p.PlaceholderMessages = append(p.PlaceholderMessages, _elem) + } + } + + if src.MultiPartValues != nil { + p.MultiPartValues = make([]*ContentPart, 0, len(src.MultiPartValues)) + for _, elem := range src.MultiPartValues { + var _elem *ContentPart + if elem != nil { + _elem = &ContentPart{} + if err := _elem.DeepCopy(elem); err != nil { + return err + } + } + + p.MultiPartValues = append(p.MultiPartValues, _elem) + } + } + + return nil +} + +func (p *TokenUsage) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.I32 { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.I32 { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_TokenUsage[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *TokenUsage) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field *int32 + if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.InputTokens = _field + return offset, nil +} + +func (p *TokenUsage) FastReadField2(buf []byte) (int, error) { + offset := 0 + + var _field *int32 + if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.OutputTokens = _field + return offset, nil +} + +func (p *TokenUsage) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *TokenUsage) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *TokenUsage) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *TokenUsage) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetInputTokens() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 1) + offset += thrift.Binary.WriteI32(buf[offset:], *p.InputTokens) + } + return offset +} + +func (p *TokenUsage) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetOutputTokens() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 2) + offset += thrift.Binary.WriteI32(buf[offset:], *p.OutputTokens) + } + return offset +} + +func (p *TokenUsage) field1Length() int { + l := 0 + if p.IsSetInputTokens() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I32Length() + } + return l +} + +func (p *TokenUsage) field2Length() int { + l := 0 + if p.IsSetOutputTokens() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I32Length() + } + return l +} + +func (p *TokenUsage) DeepCopy(s interface{}) error { + src, ok := s.(*TokenUsage) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.InputTokens != nil { + tmp := *src.InputTokens + p.InputTokens = &tmp + } + + if src.OutputTokens != nil { + tmp := *src.OutputTokens + p.OutputTokens = &tmp + } + + return nil +} + +func (p *PromptBasic) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 3: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField3(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 4: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField4(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 5: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField5(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 6: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField6(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 7: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField7(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 8: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField8(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 9: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField9(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 10: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField10(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 11: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField11(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptBasic[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *PromptBasic) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field *int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.ID = _field + return offset, nil +} + +func (p *PromptBasic) FastReadField2(buf []byte) (int, error) { + offset := 0 + + var _field *int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.WorkspaceID = _field + return offset, nil +} + +func (p *PromptBasic) FastReadField3(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.PromptKey = _field + return offset, nil +} + +func (p *PromptBasic) FastReadField4(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.DisplayName = _field + return offset, nil +} + +func (p *PromptBasic) FastReadField5(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Description = _field + return offset, nil +} + +func (p *PromptBasic) FastReadField6(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.LatestVersion = _field + return offset, nil +} + +func (p *PromptBasic) FastReadField7(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.CreatedBy = _field + return offset, nil +} + +func (p *PromptBasic) FastReadField8(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.UpdatedBy = _field + return offset, nil +} + +func (p *PromptBasic) FastReadField9(buf []byte) (int, error) { + offset := 0 + + var _field *int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.CreatedAt = _field + return offset, nil +} + +func (p *PromptBasic) FastReadField10(buf []byte) (int, error) { + offset := 0 + + var _field *int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.UpdatedAt = _field + return offset, nil +} + +func (p *PromptBasic) FastReadField11(buf []byte) (int, error) { + offset := 0 + + var _field *int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.LatestCommittedAt = _field + return offset, nil +} + +func (p *PromptBasic) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *PromptBasic) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + offset += p.fastWriteField9(buf[offset:], w) + offset += p.fastWriteField10(buf[offset:], w) + offset += p.fastWriteField11(buf[offset:], w) + offset += p.fastWriteField3(buf[offset:], w) + offset += p.fastWriteField4(buf[offset:], w) + offset += p.fastWriteField5(buf[offset:], w) + offset += p.fastWriteField6(buf[offset:], w) + offset += p.fastWriteField7(buf[offset:], w) + offset += p.fastWriteField8(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *PromptBasic) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() + l += p.field4Length() + l += p.field5Length() + l += p.field6Length() + l += p.field7Length() + l += p.field8Length() + l += p.field9Length() + l += p.field10Length() + l += p.field11Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *PromptBasic) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 1) + offset += thrift.Binary.WriteI64(buf[offset:], *p.ID) + } + return offset +} + +func (p *PromptBasic) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetWorkspaceID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 2) + offset += thrift.Binary.WriteI64(buf[offset:], *p.WorkspaceID) + } + return offset +} + +func (p *PromptBasic) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetPromptKey() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 3) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.PromptKey) + } + return offset +} + +func (p *PromptBasic) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetDisplayName() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 4) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.DisplayName) + } + return offset +} + +func (p *PromptBasic) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetDescription() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 5) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Description) + } + return offset +} + +func (p *PromptBasic) fastWriteField6(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetLatestVersion() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 6) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.LatestVersion) + } + return offset +} + +func (p *PromptBasic) fastWriteField7(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetCreatedBy() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 7) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.CreatedBy) + } + return offset +} + +func (p *PromptBasic) fastWriteField8(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetUpdatedBy() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 8) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.UpdatedBy) + } + return offset +} + +func (p *PromptBasic) fastWriteField9(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetCreatedAt() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 9) + offset += thrift.Binary.WriteI64(buf[offset:], *p.CreatedAt) + } + return offset +} + +func (p *PromptBasic) fastWriteField10(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetUpdatedAt() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 10) + offset += thrift.Binary.WriteI64(buf[offset:], *p.UpdatedAt) + } + return offset +} + +func (p *PromptBasic) fastWriteField11(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetLatestCommittedAt() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 11) + offset += thrift.Binary.WriteI64(buf[offset:], *p.LatestCommittedAt) + } + return offset +} + +func (p *PromptBasic) field1Length() int { + l := 0 + if p.IsSetID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *PromptBasic) field2Length() int { + l := 0 + if p.IsSetWorkspaceID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *PromptBasic) field3Length() int { + l := 0 + if p.IsSetPromptKey() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.PromptKey) + } + return l +} + +func (p *PromptBasic) field4Length() int { + l := 0 + if p.IsSetDisplayName() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.DisplayName) + } + return l +} + +func (p *PromptBasic) field5Length() int { + l := 0 + if p.IsSetDescription() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Description) + } + return l +} + +func (p *PromptBasic) field6Length() int { + l := 0 + if p.IsSetLatestVersion() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.LatestVersion) + } + return l +} + +func (p *PromptBasic) field7Length() int { + l := 0 + if p.IsSetCreatedBy() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.CreatedBy) + } + return l +} + +func (p *PromptBasic) field8Length() int { + l := 0 + if p.IsSetUpdatedBy() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.UpdatedBy) + } + return l +} + +func (p *PromptBasic) field9Length() int { + l := 0 + if p.IsSetCreatedAt() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *PromptBasic) field10Length() int { + l := 0 + if p.IsSetUpdatedAt() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *PromptBasic) field11Length() int { + l := 0 + if p.IsSetLatestCommittedAt() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *PromptBasic) DeepCopy(s interface{}) error { + src, ok := s.(*PromptBasic) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.ID != nil { + tmp := *src.ID + p.ID = &tmp + } + + if src.WorkspaceID != nil { + tmp := *src.WorkspaceID + p.WorkspaceID = &tmp + } + + if src.PromptKey != nil { + var tmp string + if *src.PromptKey != "" { + tmp = kutils.StringDeepCopy(*src.PromptKey) + } + p.PromptKey = &tmp + } + + if src.DisplayName != nil { + var tmp string + if *src.DisplayName != "" { + tmp = kutils.StringDeepCopy(*src.DisplayName) + } + p.DisplayName = &tmp + } + + if src.Description != nil { + var tmp string + if *src.Description != "" { + tmp = kutils.StringDeepCopy(*src.Description) + } + p.Description = &tmp + } + + if src.LatestVersion != nil { + var tmp string + if *src.LatestVersion != "" { + tmp = kutils.StringDeepCopy(*src.LatestVersion) + } + p.LatestVersion = &tmp + } + + if src.CreatedBy != nil { + var tmp string + if *src.CreatedBy != "" { + tmp = kutils.StringDeepCopy(*src.CreatedBy) + } + p.CreatedBy = &tmp + } + + if src.UpdatedBy != nil { + var tmp string + if *src.UpdatedBy != "" { + tmp = kutils.StringDeepCopy(*src.UpdatedBy) + } + p.UpdatedBy = &tmp + } + + if src.CreatedAt != nil { + tmp := *src.CreatedAt + p.CreatedAt = &tmp + } + + if src.UpdatedAt != nil { + tmp := *src.UpdatedAt + p.UpdatedAt = &tmp + } + + if src.LatestCommittedAt != nil { + tmp := *src.LatestCommittedAt + p.LatestCommittedAt = &tmp + } + + return nil +} + +func (p *ListPromptBasicData) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.LIST { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.I32 { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListPromptBasicData[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *ListPromptBasicData) FastReadField1(buf []byte) (int, error) { + offset := 0 + + _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make([]*PromptBasic, 0, size) + values := make([]PromptBasic, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + if l, err := _elem.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + + _field = append(_field, _elem) + } + p.Prompts = _field + return offset, nil +} + +func (p *ListPromptBasicData) FastReadField2(buf []byte) (int, error) { + offset := 0 + + var _field *int32 + if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Total = _field + return offset, nil +} + +func (p *ListPromptBasicData) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ListPromptBasicData) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField2(buf[offset:], w) + offset += p.fastWriteField1(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *ListPromptBasicData) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *ListPromptBasicData) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetPrompts() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 1) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.Prompts { + length++ + offset += v.FastWriteNocopy(buf[offset:], w) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) + } + return offset +} + +func (p *ListPromptBasicData) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetTotal() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 2) + offset += thrift.Binary.WriteI32(buf[offset:], *p.Total) + } + return offset +} + +func (p *ListPromptBasicData) field1Length() int { + l := 0 + if p.IsSetPrompts() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + for _, v := range p.Prompts { + _ = v + l += v.BLength() + } + } + return l +} + +func (p *ListPromptBasicData) field2Length() int { + l := 0 + if p.IsSetTotal() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I32Length() + } + return l +} + +func (p *ListPromptBasicData) DeepCopy(s interface{}) error { + src, ok := s.(*ListPromptBasicData) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.Prompts != nil { + p.Prompts = make([]*PromptBasic, 0, len(src.Prompts)) + for _, elem := range src.Prompts { + var _elem *PromptBasic + if elem != nil { + _elem = &PromptBasic{} + if err := _elem.DeepCopy(elem); err != nil { + return err + } + } + + p.Prompts = append(p.Prompts, _elem) + } + } + + if src.Total != nil { + tmp := *src.Total + p.Total = &tmp + } + + return nil +} + +func (p *PromptPublishInfo) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 3: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField3(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptPublishInfo[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *PromptPublishInfo) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = v + } + p.Publisher = _field + return offset, nil +} + +func (p *PromptPublishInfo) FastReadField2(buf []byte) (int, error) { + offset := 0 + + var _field string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = v + } + p.PublishDescription = _field + return offset, nil +} + +func (p *PromptPublishInfo) FastReadField3(buf []byte) (int, error) { + offset := 0 + + var _field *int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.PublishAt = _field + return offset, nil +} + +func (p *PromptPublishInfo) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *PromptPublishInfo) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField3(buf[offset:], w) + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *PromptPublishInfo) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *PromptPublishInfo) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, p.Publisher) + return offset +} + +func (p *PromptPublishInfo) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, p.PublishDescription) + return offset +} + +func (p *PromptPublishInfo) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetPublishAt() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 3) + offset += thrift.Binary.WriteI64(buf[offset:], *p.PublishAt) + } + return offset +} + +func (p *PromptPublishInfo) field1Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(p.Publisher) + return l +} + +func (p *PromptPublishInfo) field2Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(p.PublishDescription) + return l +} + +func (p *PromptPublishInfo) field3Length() int { + l := 0 + if p.IsSetPublishAt() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *PromptPublishInfo) DeepCopy(s interface{}) error { + src, ok := s.(*PromptPublishInfo) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.Publisher != "" { + p.Publisher = kutils.StringDeepCopy(src.Publisher) + } + + if src.PublishDescription != "" { + p.PublishDescription = kutils.StringDeepCopy(src.PublishDescription) + } + + if src.PublishAt != nil { + tmp := *src.PublishAt + p.PublishAt = &tmp + } + + return nil +} + +func (p *ThinkingConfig) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 3: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField3(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ThinkingConfig[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *ThinkingConfig) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field *int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.BudgetTokens = _field + return offset, nil +} + +func (p *ThinkingConfig) FastReadField2(buf []byte) (int, error) { + offset := 0 + + var _field *ThinkingOption + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.ThinkingOption = _field + return offset, nil +} + +func (p *ThinkingConfig) FastReadField3(buf []byte) (int, error) { + offset := 0 + + var _field *ReasoningEffort + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.ReasoningEffort = _field + return offset, nil +} + +func (p *ThinkingConfig) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ThinkingConfig) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + offset += p.fastWriteField3(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *ThinkingConfig) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *ThinkingConfig) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetBudgetTokens() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 1) + offset += thrift.Binary.WriteI64(buf[offset:], *p.BudgetTokens) + } + return offset +} + +func (p *ThinkingConfig) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetThinkingOption() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.ThinkingOption) + } + return offset +} + +func (p *ThinkingConfig) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetReasoningEffort() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 3) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.ReasoningEffort) + } + return offset +} + +func (p *ThinkingConfig) field1Length() int { + l := 0 + if p.IsSetBudgetTokens() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *ThinkingConfig) field2Length() int { + l := 0 + if p.IsSetThinkingOption() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.ThinkingOption) + } + return l +} + +func (p *ThinkingConfig) field3Length() int { + l := 0 + if p.IsSetReasoningEffort() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.ReasoningEffort) + } + return l +} + +func (p *ThinkingConfig) DeepCopy(s interface{}) error { + src, ok := s.(*ThinkingConfig) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.BudgetTokens != nil { + tmp := *src.BudgetTokens + p.BudgetTokens = &tmp + } + + if src.ThinkingOption != nil { + tmp := *src.ThinkingOption + p.ThinkingOption = &tmp + } + + if src.ReasoningEffort != nil { + tmp := *src.ReasoningEffort + p.ReasoningEffort = &tmp + } + + return nil +} + +func (p *ModelConfig) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.I32 { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 3: + if fieldTypeId == thrift.DOUBLE { + l, err = p.FastReadField3(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 4: + if fieldTypeId == thrift.I32 { + l, err = p.FastReadField4(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 5: + if fieldTypeId == thrift.DOUBLE { + l, err = p.FastReadField5(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 6: + if fieldTypeId == thrift.DOUBLE { + l, err = p.FastReadField6(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 7: + if fieldTypeId == thrift.DOUBLE { + l, err = p.FastReadField7(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 8: + if fieldTypeId == thrift.BOOL { + l, err = p.FastReadField8(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 9: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField9(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 10: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField10(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 100: + if fieldTypeId == thrift.LIST { + l, err = p.FastReadField100(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ModelConfig[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *ModelConfig) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field *int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.ModelID = _field + return offset, nil +} + +func (p *ModelConfig) FastReadField2(buf []byte) (int, error) { + offset := 0 + + var _field *int32 + if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.MaxTokens = _field + return offset, nil +} + +func (p *ModelConfig) FastReadField3(buf []byte) (int, error) { + offset := 0 + + var _field *float64 + if v, l, err := thrift.Binary.ReadDouble(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Temperature = _field + return offset, nil +} + +func (p *ModelConfig) FastReadField4(buf []byte) (int, error) { + offset := 0 + + var _field *int32 + if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.TopK = _field + return offset, nil +} + +func (p *ModelConfig) FastReadField5(buf []byte) (int, error) { + offset := 0 + + var _field *float64 + if v, l, err := thrift.Binary.ReadDouble(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.TopP = _field + return offset, nil +} + +func (p *ModelConfig) FastReadField6(buf []byte) (int, error) { + offset := 0 + + var _field *float64 + if v, l, err := thrift.Binary.ReadDouble(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.PresencePenalty = _field + return offset, nil +} + +func (p *ModelConfig) FastReadField7(buf []byte) (int, error) { + offset := 0 + + var _field *float64 + if v, l, err := thrift.Binary.ReadDouble(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.FrequencyPenalty = _field + return offset, nil +} + +func (p *ModelConfig) FastReadField8(buf []byte) (int, error) { + offset := 0 + + var _field *bool + if v, l, err := thrift.Binary.ReadBool(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.JSONMode = _field + return offset, nil +} + +func (p *ModelConfig) FastReadField9(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Extra = _field + return offset, nil +} + +func (p *ModelConfig) FastReadField10(buf []byte) (int, error) { + offset := 0 + _field := NewThinkingConfig() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Thinking = _field + return offset, nil +} + +func (p *ModelConfig) FastReadField100(buf []byte) (int, error) { + offset := 0 + + _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make([]*ParamConfigValue, 0, size) + values := make([]ParamConfigValue, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + if l, err := _elem.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + + _field = append(_field, _elem) + } + p.ParamConfigValues = _field + return offset, nil +} + +func (p *ModelConfig) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ModelConfig) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + offset += p.fastWriteField3(buf[offset:], w) + offset += p.fastWriteField4(buf[offset:], w) + offset += p.fastWriteField5(buf[offset:], w) + offset += p.fastWriteField6(buf[offset:], w) + offset += p.fastWriteField7(buf[offset:], w) + offset += p.fastWriteField8(buf[offset:], w) + offset += p.fastWriteField9(buf[offset:], w) + offset += p.fastWriteField10(buf[offset:], w) + offset += p.fastWriteField100(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *ModelConfig) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() + l += p.field4Length() + l += p.field5Length() + l += p.field6Length() + l += p.field7Length() + l += p.field8Length() + l += p.field9Length() + l += p.field10Length() + l += p.field100Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *ModelConfig) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetModelID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 1) + offset += thrift.Binary.WriteI64(buf[offset:], *p.ModelID) + } + return offset +} + +func (p *ModelConfig) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetMaxTokens() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 2) + offset += thrift.Binary.WriteI32(buf[offset:], *p.MaxTokens) + } + return offset +} + +func (p *ModelConfig) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetTemperature() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.DOUBLE, 3) + offset += thrift.Binary.WriteDouble(buf[offset:], *p.Temperature) + } + return offset +} + +func (p *ModelConfig) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetTopK() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 4) + offset += thrift.Binary.WriteI32(buf[offset:], *p.TopK) + } + return offset +} + +func (p *ModelConfig) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetTopP() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.DOUBLE, 5) + offset += thrift.Binary.WriteDouble(buf[offset:], *p.TopP) + } + return offset +} + +func (p *ModelConfig) fastWriteField6(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetPresencePenalty() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.DOUBLE, 6) + offset += thrift.Binary.WriteDouble(buf[offset:], *p.PresencePenalty) + } + return offset +} + +func (p *ModelConfig) fastWriteField7(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetFrequencyPenalty() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.DOUBLE, 7) + offset += thrift.Binary.WriteDouble(buf[offset:], *p.FrequencyPenalty) + } + return offset +} + +func (p *ModelConfig) fastWriteField8(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetJSONMode() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.BOOL, 8) + offset += thrift.Binary.WriteBool(buf[offset:], *p.JSONMode) + } + return offset +} + +func (p *ModelConfig) fastWriteField9(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetExtra() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 9) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Extra) + } + return offset +} + +func (p *ModelConfig) fastWriteField10(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetThinking() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 10) + offset += p.Thinking.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *ModelConfig) fastWriteField100(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetParamConfigValues() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 100) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.ParamConfigValues { + length++ + offset += v.FastWriteNocopy(buf[offset:], w) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) + } + return offset +} + +func (p *ModelConfig) field1Length() int { + l := 0 + if p.IsSetModelID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *ModelConfig) field2Length() int { + l := 0 + if p.IsSetMaxTokens() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I32Length() + } + return l +} + +func (p *ModelConfig) field3Length() int { + l := 0 + if p.IsSetTemperature() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.DoubleLength() + } + return l +} + +func (p *ModelConfig) field4Length() int { + l := 0 + if p.IsSetTopK() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I32Length() + } + return l +} + +func (p *ModelConfig) field5Length() int { + l := 0 + if p.IsSetTopP() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.DoubleLength() + } + return l +} + +func (p *ModelConfig) field6Length() int { + l := 0 + if p.IsSetPresencePenalty() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.DoubleLength() + } + return l +} + +func (p *ModelConfig) field7Length() int { + l := 0 + if p.IsSetFrequencyPenalty() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.DoubleLength() + } + return l +} + +func (p *ModelConfig) field8Length() int { + l := 0 + if p.IsSetJSONMode() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.BoolLength() + } + return l +} + +func (p *ModelConfig) field9Length() int { + l := 0 + if p.IsSetExtra() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Extra) + } + return l +} + +func (p *ModelConfig) field10Length() int { + l := 0 + if p.IsSetThinking() { + l += thrift.Binary.FieldBeginLength() + l += p.Thinking.BLength() + } + return l +} + +func (p *ModelConfig) field100Length() int { + l := 0 + if p.IsSetParamConfigValues() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + for _, v := range p.ParamConfigValues { + _ = v + l += v.BLength() + } + } + return l +} + +func (p *ModelConfig) DeepCopy(s interface{}) error { + src, ok := s.(*ModelConfig) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.ModelID != nil { + tmp := *src.ModelID + p.ModelID = &tmp + } + + if src.MaxTokens != nil { + tmp := *src.MaxTokens + p.MaxTokens = &tmp + } + + if src.Temperature != nil { + tmp := *src.Temperature + p.Temperature = &tmp + } + + if src.TopK != nil { + tmp := *src.TopK + p.TopK = &tmp + } + + if src.TopP != nil { + tmp := *src.TopP + p.TopP = &tmp + } + + if src.PresencePenalty != nil { + tmp := *src.PresencePenalty + p.PresencePenalty = &tmp + } + + if src.FrequencyPenalty != nil { + tmp := *src.FrequencyPenalty + p.FrequencyPenalty = &tmp + } + + if src.JSONMode != nil { + tmp := *src.JSONMode + p.JSONMode = &tmp + } + + if src.Extra != nil { + var tmp string + if *src.Extra != "" { + tmp = kutils.StringDeepCopy(*src.Extra) + } + p.Extra = &tmp + } + + var _thinking *ThinkingConfig + if src.Thinking != nil { + _thinking = &ThinkingConfig{} + if err := _thinking.DeepCopy(src.Thinking); err != nil { + return err + } + } + p.Thinking = _thinking + + if src.ParamConfigValues != nil { + p.ParamConfigValues = make([]*ParamConfigValue, 0, len(src.ParamConfigValues)) + for _, elem := range src.ParamConfigValues { + var _elem *ParamConfigValue + if elem != nil { + _elem = &ParamConfigValue{} + if err := _elem.DeepCopy(elem); err != nil { + return err + } + } + + p.ParamConfigValues = append(p.ParamConfigValues, _elem) + } + } + + return nil +} + +func (p *ResponseAPIConfig) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.BOOL { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 3: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField3(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ResponseAPIConfig[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *ResponseAPIConfig) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.PreviousResponseID = _field + return offset, nil +} + +func (p *ResponseAPIConfig) FastReadField2(buf []byte) (int, error) { + offset := 0 + + var _field *bool + if v, l, err := thrift.Binary.ReadBool(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.EnableCaching = _field + return offset, nil +} + +func (p *ResponseAPIConfig) FastReadField3(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.SessionID = _field + return offset, nil +} + +func (p *ResponseAPIConfig) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ResponseAPIConfig) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField2(buf[offset:], w) + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField3(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *ResponseAPIConfig) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *ResponseAPIConfig) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetPreviousResponseID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.PreviousResponseID) + } + return offset +} + +func (p *ResponseAPIConfig) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetEnableCaching() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.BOOL, 2) + offset += thrift.Binary.WriteBool(buf[offset:], *p.EnableCaching) + } + return offset +} + +func (p *ResponseAPIConfig) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetSessionID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 3) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.SessionID) + } + return offset +} + +func (p *ResponseAPIConfig) field1Length() int { + l := 0 + if p.IsSetPreviousResponseID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.PreviousResponseID) + } + return l +} + +func (p *ResponseAPIConfig) field2Length() int { + l := 0 + if p.IsSetEnableCaching() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.BoolLength() + } + return l +} + +func (p *ResponseAPIConfig) field3Length() int { + l := 0 + if p.IsSetSessionID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.SessionID) + } + return l +} + +func (p *ResponseAPIConfig) DeepCopy(s interface{}) error { + src, ok := s.(*ResponseAPIConfig) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.PreviousResponseID != nil { + var tmp string + if *src.PreviousResponseID != "" { + tmp = kutils.StringDeepCopy(*src.PreviousResponseID) + } + p.PreviousResponseID = &tmp + } + + if src.EnableCaching != nil { + tmp := *src.EnableCaching + p.EnableCaching = &tmp + } + + if src.SessionID != nil { + var tmp string + if *src.SessionID != "" { + tmp = kutils.StringDeepCopy(*src.SessionID) + } + p.SessionID = &tmp + } + + return nil +} + +func (p *ParamConfigValue) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 3: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField3(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ParamConfigValue[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *ParamConfigValue) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Name = _field + return offset, nil +} + +func (p *ParamConfigValue) FastReadField2(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Label = _field + return offset, nil +} + +func (p *ParamConfigValue) FastReadField3(buf []byte) (int, error) { + offset := 0 + _field := NewParamOption() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Value = _field + return offset, nil +} + +func (p *ParamConfigValue) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ParamConfigValue) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + offset += p.fastWriteField3(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *ParamConfigValue) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *ParamConfigValue) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetName() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Name) + } + return offset +} + +func (p *ParamConfigValue) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetLabel() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Label) + } + return offset +} + +func (p *ParamConfigValue) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetValue() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 3) + offset += p.Value.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *ParamConfigValue) field1Length() int { + l := 0 + if p.IsSetName() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Name) + } + return l +} + +func (p *ParamConfigValue) field2Length() int { + l := 0 + if p.IsSetLabel() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Label) + } + return l +} + +func (p *ParamConfigValue) field3Length() int { + l := 0 + if p.IsSetValue() { + l += thrift.Binary.FieldBeginLength() + l += p.Value.BLength() + } + return l +} + +func (p *ParamConfigValue) DeepCopy(s interface{}) error { + src, ok := s.(*ParamConfigValue) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.Name != nil { + var tmp string + if *src.Name != "" { + tmp = kutils.StringDeepCopy(*src.Name) + } + p.Name = &tmp + } + + if src.Label != nil { + var tmp string + if *src.Label != "" { + tmp = kutils.StringDeepCopy(*src.Label) + } + p.Label = &tmp + } + + var _value *ParamOption + if src.Value != nil { + _value = &ParamOption{} + if err := _value.DeepCopy(src.Value); err != nil { + return err + } + } + p.Value = _value + + return nil +} + +func (p *ParamOption) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ParamOption[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *ParamOption) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Value = _field + return offset, nil +} + +func (p *ParamOption) FastReadField2(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Label = _field + return offset, nil +} + +func (p *ParamOption) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ParamOption) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *ParamOption) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *ParamOption) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetValue() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Value) + } + return offset +} + +func (p *ParamOption) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetLabel() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Label) + } + return offset +} + +func (p *ParamOption) field1Length() int { + l := 0 + if p.IsSetValue() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Value) + } + return l +} + +func (p *ParamOption) field2Length() int { + l := 0 + if p.IsSetLabel() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Label) + } + return l +} + +func (p *ParamOption) DeepCopy(s interface{}) error { + src, ok := s.(*ParamOption) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.Value != nil { + var tmp string + if *src.Value != "" { + tmp = kutils.StringDeepCopy(*src.Value) + } + p.Value = &tmp + } + + if src.Label != nil { + var tmp string + if *src.Label != "" { + tmp = kutils.StringDeepCopy(*src.Label) + } + p.Label = &tmp + } + + return nil +} + +func (p *ExecuteData) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 3: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField3(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExecuteData[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *ExecuteData) FastReadField1(buf []byte) (int, error) { + offset := 0 + _field := NewMessage() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Message = _field + return offset, nil +} + +func (p *ExecuteData) FastReadField2(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.FinishReason = _field + return offset, nil +} + +func (p *ExecuteData) FastReadField3(buf []byte) (int, error) { + offset := 0 + _field := NewTokenUsage() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Usage = _field + return offset, nil +} + +func (p *ExecuteData) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ExecuteData) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + offset += p.fastWriteField3(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *ExecuteData) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *ExecuteData) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetMessage() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) + offset += p.Message.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *ExecuteData) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetFinishReason() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.FinishReason) + } + return offset +} + +func (p *ExecuteData) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetUsage() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 3) + offset += p.Usage.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *ExecuteData) field1Length() int { + l := 0 + if p.IsSetMessage() { + l += thrift.Binary.FieldBeginLength() + l += p.Message.BLength() + } + return l +} + +func (p *ExecuteData) field2Length() int { + l := 0 + if p.IsSetFinishReason() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.FinishReason) + } + return l +} + +func (p *ExecuteData) field3Length() int { + l := 0 + if p.IsSetUsage() { + l += thrift.Binary.FieldBeginLength() + l += p.Usage.BLength() + } + return l +} + +func (p *ExecuteData) DeepCopy(s interface{}) error { + src, ok := s.(*ExecuteData) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + var _message *Message + if src.Message != nil { + _message = &Message{} + if err := _message.DeepCopy(src.Message); err != nil { + return err + } + } + p.Message = _message + + if src.FinishReason != nil { + var tmp string + if *src.FinishReason != "" { + tmp = kutils.StringDeepCopy(*src.FinishReason) + } + p.FinishReason = &tmp + } + + var _usage *TokenUsage + if src.Usage != nil { + _usage = &TokenUsage{} + if err := _usage.DeepCopy(src.Usage); err != nil { + return err + } + } + p.Usage = _usage + + return nil +} + +func (p *ExecuteStreamingData) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.I32 { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 3: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField3(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 4: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField4(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 5: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField5(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExecuteStreamingData[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *ExecuteStreamingData) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field *int32 + if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Code = _field + return offset, nil +} + +func (p *ExecuteStreamingData) FastReadField2(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Msg = _field + return offset, nil +} + +func (p *ExecuteStreamingData) FastReadField3(buf []byte) (int, error) { + offset := 0 + _field := NewMessage() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Message = _field + return offset, nil +} + +func (p *ExecuteStreamingData) FastReadField4(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.FinishReason = _field + return offset, nil +} + +func (p *ExecuteStreamingData) FastReadField5(buf []byte) (int, error) { + offset := 0 + _field := NewTokenUsage() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Usage = _field + return offset, nil +} + +func (p *ExecuteStreamingData) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ExecuteStreamingData) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + offset += p.fastWriteField3(buf[offset:], w) + offset += p.fastWriteField4(buf[offset:], w) + offset += p.fastWriteField5(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *ExecuteStreamingData) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() + l += p.field4Length() + l += p.field5Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *ExecuteStreamingData) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetCode() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 1) + offset += thrift.Binary.WriteI32(buf[offset:], *p.Code) + } + return offset +} + +func (p *ExecuteStreamingData) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetMsg() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Msg) + } + return offset +} + +func (p *ExecuteStreamingData) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetMessage() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 3) + offset += p.Message.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *ExecuteStreamingData) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetFinishReason() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 4) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.FinishReason) + } + return offset +} + +func (p *ExecuteStreamingData) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetUsage() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 5) + offset += p.Usage.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *ExecuteStreamingData) field1Length() int { + l := 0 + if p.IsSetCode() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I32Length() + } + return l +} + +func (p *ExecuteStreamingData) field2Length() int { + l := 0 + if p.IsSetMsg() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Msg) + } + return l +} + +func (p *ExecuteStreamingData) field3Length() int { + l := 0 + if p.IsSetMessage() { + l += thrift.Binary.FieldBeginLength() + l += p.Message.BLength() + } + return l +} + +func (p *ExecuteStreamingData) field4Length() int { + l := 0 + if p.IsSetFinishReason() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.FinishReason) + } + return l +} + +func (p *ExecuteStreamingData) field5Length() int { + l := 0 + if p.IsSetUsage() { + l += thrift.Binary.FieldBeginLength() + l += p.Usage.BLength() + } + return l +} + +func (p *ExecuteStreamingData) DeepCopy(s interface{}) error { + src, ok := s.(*ExecuteStreamingData) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.Code != nil { + tmp := *src.Code + p.Code = &tmp + } + + if src.Msg != nil { + var tmp string + if *src.Msg != "" { + tmp = kutils.StringDeepCopy(*src.Msg) + } + p.Msg = &tmp + } + + var _message *Message + if src.Message != nil { + _message = &Message{} + if err := _message.DeepCopy(src.Message); err != nil { + return err + } + } + p.Message = _message + + if src.FinishReason != nil { + var tmp string + if *src.FinishReason != "" { + tmp = kutils.StringDeepCopy(*src.FinishReason) + } + p.FinishReason = &tmp + } + + var _usage *TokenUsage + if src.Usage != nil { + _usage = &TokenUsage{} + if err := _usage.DeepCopy(src.Usage); err != nil { + return err + } + } + p.Usage = _usage + + return nil +} diff --git a/backend/kitex_gen/coze/loop/prompt/domain_openapi/prompt/prompt.go b/backend/kitex_gen/coze/loop/prompt/domain_openapi/prompt/prompt.go new file mode 100644 index 000000000..19d4a7e2e --- /dev/null +++ b/backend/kitex_gen/coze/loop/prompt/domain_openapi/prompt/prompt.go @@ -0,0 +1,13321 @@ +// Code generated by thriftgo (0.4.1). DO NOT EDIT. + +package prompt + +import ( + "fmt" + "github.com/apache/thrift/lib/go/thrift" + "strings" +) + +const ( + PromptTypeNormal = "normal" + + PromptTypeSnippet = "snippet" + + TemplateTypeNormal = "normal" + + TemplateTypeJinja2 = "jinja2" + + TemplateTypeGoTemplate = "go_template" + + TemplateTypeCustomTemplateM = "custom_template_m" + + ToolChoiceTypeAuto = "auto" + + ToolChoiceTypeNone = "none" + + ToolChoiceTypeSpecific = "specific" + + ContentTypeText = "text" + + ContentTypeImageURL = "image_url" + + ContentTypeVideoURL = "video_url" + + ContentTypeBase64Data = "base64_data" + + ContentTypeMultiPartVariable = "multi_part_variable" + + VariableTypeString = "string" + + VariableTypeBoolean = "boolean" + + VariableTypeInteger = "integer" + + VariableTypeFloat = "float" + + VariableTypeObject = "object" + + VariableTypeArrayString = "array" + + VariableTypeArrayBoolean = "array" + + VariableTypeArrayInteger = "array" + + VariableTypeArrayFloat = "array" + + VariableTypeArrayObject = "array" + + VariableTypePlaceholder = "placeholder" + + VariableTypeMultiPart = "multi_part" + + RoleSystem = "system" + + RoleUser = "user" + + RoleAssistant = "assistant" + + RoleTool = "tool" + + RolePlaceholder = "placeholder" + + ToolTypeFunction = "function" + + ToolTypeGoogleSearch = "google_search" + + PublishStatusUndefined = "undefined" + + PublishStatusUnPublish = "unpublish" + + PublishStatusPublished = "published" + + SecurityLevelUndefined = "undefined" + + SecurityLevelL1 = "L1" + + SecurityLevelL2 = "L2" + + SecurityLevelL3 = "L3" + + SecurityLevelL4 = "L4" + + ReasoningEffortMinimal = "minimal" + + ReasoningEffortLow = "low" + + ReasoningEffortMedium = "medium" + + ReasoningEffortHigh = "high" + + ThinkingOptionDisabled = "disabled" + + ThinkingOptionEnabled = "enabled" + + ThinkingOptionAuto = "auto" + + AccountModeSharedAccount = "shared_account" + + AccountModeCustomAccount = "custom_account" + + UsageScenarioDefault = "default" + + UsageScenarioEvaluation = "evaluation" + + UsageScenarioPromptAsAService = "prompt_as_a_service" + + UsageScenarioAIAnnotate = "ai_annotate" + + UsageScenarioAIScore = "ai_score" + + UsageScenarioAITag = "ai_tag" +) + +type PromptType = string + +type TemplateType = string + +type ToolChoiceType = string + +type ContentType = string + +type VariableType = string + +type Role = string + +type ToolType = string + +type PublishStatus = string + +type SecurityLevel = string + +type ReasoningEffort = string + +type ThinkingOption = string + +type AccountMode = string + +type UsageScenario = string + +type PromptQuery struct { + // prompt_key + PromptKey *string `thrift:"prompt_key,1,optional" frugal:"1,optional,string" form:"prompt_key" json:"prompt_key,omitempty" query:"prompt_key"` + // prompt版本 + Version *string `thrift:"version,2,optional" frugal:"2,optional,string" form:"version" json:"version,omitempty" query:"version"` + // prompt版本标识(如果version不为空,该字段会被忽略) + Label *string `thrift:"label,3,optional" frugal:"3,optional,string" form:"label" json:"label,omitempty" query:"label"` +} + +func NewPromptQuery() *PromptQuery { + return &PromptQuery{} +} + +func (p *PromptQuery) InitDefault() { +} + +var PromptQuery_PromptKey_DEFAULT string + +func (p *PromptQuery) GetPromptKey() (v string) { + if p == nil { + return + } + if !p.IsSetPromptKey() { + return PromptQuery_PromptKey_DEFAULT + } + return *p.PromptKey +} + +var PromptQuery_Version_DEFAULT string + +func (p *PromptQuery) GetVersion() (v string) { + if p == nil { + return + } + if !p.IsSetVersion() { + return PromptQuery_Version_DEFAULT + } + return *p.Version +} + +var PromptQuery_Label_DEFAULT string + +func (p *PromptQuery) GetLabel() (v string) { + if p == nil { + return + } + if !p.IsSetLabel() { + return PromptQuery_Label_DEFAULT + } + return *p.Label +} +func (p *PromptQuery) SetPromptKey(val *string) { + p.PromptKey = val +} +func (p *PromptQuery) SetVersion(val *string) { + p.Version = val +} +func (p *PromptQuery) SetLabel(val *string) { + p.Label = val +} + +var fieldIDToName_PromptQuery = map[int16]string{ + 1: "prompt_key", + 2: "version", + 3: "label", +} + +func (p *PromptQuery) IsSetPromptKey() bool { + return p.PromptKey != nil +} + +func (p *PromptQuery) IsSetVersion() bool { + return p.Version != nil +} + +func (p *PromptQuery) IsSetLabel() bool { + return p.Label != nil +} + +func (p *PromptQuery) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.STRING { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.STRING { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptQuery[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *PromptQuery) ReadField1(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.PromptKey = _field + return nil +} +func (p *PromptQuery) ReadField2(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Version = _field + return nil +} +func (p *PromptQuery) ReadField3(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Label = _field + return nil +} + +func (p *PromptQuery) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("PromptQuery"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *PromptQuery) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetPromptKey() { + if err = oprot.WriteFieldBegin("prompt_key", thrift.STRING, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.PromptKey); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *PromptQuery) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetVersion() { + if err = oprot.WriteFieldBegin("version", thrift.STRING, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Version); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} +func (p *PromptQuery) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetLabel() { + if err = oprot.WriteFieldBegin("label", thrift.STRING, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Label); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) +} + +func (p *PromptQuery) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("PromptQuery(%+v)", *p) + +} + +func (p *PromptQuery) DeepEqual(ano *PromptQuery) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.PromptKey) { + return false + } + if !p.Field2DeepEqual(ano.Version) { + return false + } + if !p.Field3DeepEqual(ano.Label) { + return false + } + return true +} + +func (p *PromptQuery) Field1DeepEqual(src *string) bool { + + if p.PromptKey == src { + return true + } else if p.PromptKey == nil || src == nil { + return false + } + if strings.Compare(*p.PromptKey, *src) != 0 { + return false + } + return true +} +func (p *PromptQuery) Field2DeepEqual(src *string) bool { + + if p.Version == src { + return true + } else if p.Version == nil || src == nil { + return false + } + if strings.Compare(*p.Version, *src) != 0 { + return false + } + return true +} +func (p *PromptQuery) Field3DeepEqual(src *string) bool { + + if p.Label == src { + return true + } else if p.Label == nil || src == nil { + return false + } + if strings.Compare(*p.Label, *src) != 0 { + return false + } + return true +} + +type PromptResultData struct { + Items []*PromptResult_ `thrift:"items,1,optional" frugal:"1,optional,list" form:"items" json:"items,omitempty" query:"items"` +} + +func NewPromptResultData() *PromptResultData { + return &PromptResultData{} +} + +func (p *PromptResultData) InitDefault() { +} + +var PromptResultData_Items_DEFAULT []*PromptResult_ + +func (p *PromptResultData) GetItems() (v []*PromptResult_) { + if p == nil { + return + } + if !p.IsSetItems() { + return PromptResultData_Items_DEFAULT + } + return p.Items +} +func (p *PromptResultData) SetItems(val []*PromptResult_) { + p.Items = val +} + +var fieldIDToName_PromptResultData = map[int16]string{ + 1: "items", +} + +func (p *PromptResultData) IsSetItems() bool { + return p.Items != nil +} + +func (p *PromptResultData) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.LIST { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptResultData[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *PromptResultData) ReadField1(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*PromptResult_, 0, size) + values := make([]PromptResult_, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + + if err := _elem.Read(iprot); err != nil { + return err + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { + return err + } + p.Items = _field + return nil +} + +func (p *PromptResultData) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("PromptResultData"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *PromptResultData) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetItems() { + if err = oprot.WriteFieldBegin("items", thrift.LIST, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Items)); err != nil { + return err + } + for _, v := range p.Items { + if err := v.Write(oprot); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} + +func (p *PromptResultData) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("PromptResultData(%+v)", *p) + +} + +func (p *PromptResultData) DeepEqual(ano *PromptResultData) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.Items) { + return false + } + return true +} + +func (p *PromptResultData) Field1DeepEqual(src []*PromptResult_) bool { + + if len(p.Items) != len(src) { + return false + } + for i, v := range p.Items { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } + return true +} + +type PromptResult_ struct { + Query *PromptQuery `thrift:"query,1,optional" frugal:"1,optional,PromptQuery" form:"query" json:"query,omitempty" query:"query"` + Prompt *Prompt `thrift:"prompt,2,optional" frugal:"2,optional,Prompt" form:"prompt" json:"prompt,omitempty" query:"prompt"` +} + +func NewPromptResult_() *PromptResult_ { + return &PromptResult_{} +} + +func (p *PromptResult_) InitDefault() { +} + +var PromptResult__Query_DEFAULT *PromptQuery + +func (p *PromptResult_) GetQuery() (v *PromptQuery) { + if p == nil { + return + } + if !p.IsSetQuery() { + return PromptResult__Query_DEFAULT + } + return p.Query +} + +var PromptResult__Prompt_DEFAULT *Prompt + +func (p *PromptResult_) GetPrompt() (v *Prompt) { + if p == nil { + return + } + if !p.IsSetPrompt() { + return PromptResult__Prompt_DEFAULT + } + return p.Prompt +} +func (p *PromptResult_) SetQuery(val *PromptQuery) { + p.Query = val +} +func (p *PromptResult_) SetPrompt(val *Prompt) { + p.Prompt = val +} + +var fieldIDToName_PromptResult_ = map[int16]string{ + 1: "query", + 2: "prompt", +} + +func (p *PromptResult_) IsSetQuery() bool { + return p.Query != nil +} + +func (p *PromptResult_) IsSetPrompt() bool { + return p.Prompt != nil +} + +func (p *PromptResult_) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptResult_[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *PromptResult_) ReadField1(iprot thrift.TProtocol) error { + _field := NewPromptQuery() + if err := _field.Read(iprot); err != nil { + return err + } + p.Query = _field + return nil +} +func (p *PromptResult_) ReadField2(iprot thrift.TProtocol) error { + _field := NewPrompt() + if err := _field.Read(iprot); err != nil { + return err + } + p.Prompt = _field + return nil +} + +func (p *PromptResult_) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("PromptResult"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *PromptResult_) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetQuery() { + if err = oprot.WriteFieldBegin("query", thrift.STRUCT, 1); err != nil { + goto WriteFieldBeginError + } + if err := p.Query.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *PromptResult_) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetPrompt() { + if err = oprot.WriteFieldBegin("prompt", thrift.STRUCT, 2); err != nil { + goto WriteFieldBeginError + } + if err := p.Prompt.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} + +func (p *PromptResult_) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("PromptResult_(%+v)", *p) + +} + +func (p *PromptResult_) DeepEqual(ano *PromptResult_) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.Query) { + return false + } + if !p.Field2DeepEqual(ano.Prompt) { + return false + } + return true +} + +func (p *PromptResult_) Field1DeepEqual(src *PromptQuery) bool { + + if !p.Query.DeepEqual(src) { + return false + } + return true +} +func (p *PromptResult_) Field2DeepEqual(src *Prompt) bool { + + if !p.Prompt.DeepEqual(src) { + return false + } + return true +} + +type Prompt struct { + // 空间ID + WorkspaceID *int64 `thrift:"workspace_id,1,optional" frugal:"1,optional,i64" json:"workspace_id" form:"workspace_id" query:"workspace_id"` + // 唯一标识 + PromptKey *string `thrift:"prompt_key,2,optional" frugal:"2,optional,string" form:"prompt_key" json:"prompt_key,omitempty" query:"prompt_key"` + // 版本 + Version *string `thrift:"version,3,optional" frugal:"3,optional,string" form:"version" json:"version,omitempty" query:"version"` + // Prompt模板 + PromptTemplate *PromptTemplate `thrift:"prompt_template,4,optional" frugal:"4,optional,PromptTemplate" form:"prompt_template" json:"prompt_template,omitempty" query:"prompt_template"` + // tool定义 + Tools []*Tool `thrift:"tools,5,optional" frugal:"5,optional,list" form:"tools" json:"tools,omitempty" query:"tools"` + // tool调用配置 + ToolCallConfig *ToolCallConfig `thrift:"tool_call_config,6,optional" frugal:"6,optional,ToolCallConfig" form:"tool_call_config" json:"tool_call_config,omitempty" query:"tool_call_config"` + // 模型配置 + LlmConfig *LLMConfig `thrift:"llm_config,7,optional" frugal:"7,optional,LLMConfig" form:"llm_config" json:"llm_config,omitempty" query:"llm_config"` + // promptId + ID *int64 `thrift:"id,8,optional" frugal:"8,optional,i64" json:"id" form:"id" query:"id"` + // Prompt名称 + DisplayName *string `thrift:"display_name,9,optional" frugal:"9,optional,string" form:"display_name" json:"display_name,omitempty" query:"display_name"` + // Prompt描述 + Description *string `thrift:"description,10,optional" frugal:"10,optional,string" form:"description" json:"description,omitempty" query:"description"` + // Prompt类型 + PromptType *PromptType `thrift:"prompt_type,11,optional" frugal:"11,optional,string" form:"prompt_type" json:"prompt_type,omitempty" query:"prompt_type"` + CreatedBy *string `thrift:"created_by,12,optional" frugal:"12,optional,string" form:"created_by" json:"created_by,omitempty" query:"created_by"` + CreatedAt *int64 `thrift:"created_at,14,optional" frugal:"14,optional,i64" json:"created_at" form:"created_at" query:"created_at"` + UpdatedAt *int64 `thrift:"updated_at,15,optional" frugal:"15,optional,i64" json:"updated_at" form:"updated_at" query:"updated_at"` + // 发布状态 + Status *PublishStatus `thrift:"status,16,optional" frugal:"16,optional,string" form:"status" json:"status,omitempty" query:"status"` + // 发布信息 + PublishInfo *PromptPublishInfo `thrift:"PublishInfo,17,optional" frugal:"17,optional,PromptPublishInfo" form:"PublishInfo" json:"PublishInfo,omitempty" query:"PublishInfo"` + // 密级标签 + SecurityLevel *SecurityLevel `thrift:"security_level,18,optional" frugal:"18,optional,string" form:"security_level" json:"security_level,omitempty" query:"security_level"` +} + +func NewPrompt() *Prompt { + return &Prompt{} +} + +func (p *Prompt) InitDefault() { +} + +var Prompt_WorkspaceID_DEFAULT int64 + +func (p *Prompt) GetWorkspaceID() (v int64) { + if p == nil { + return + } + if !p.IsSetWorkspaceID() { + return Prompt_WorkspaceID_DEFAULT + } + return *p.WorkspaceID +} + +var Prompt_PromptKey_DEFAULT string + +func (p *Prompt) GetPromptKey() (v string) { + if p == nil { + return + } + if !p.IsSetPromptKey() { + return Prompt_PromptKey_DEFAULT + } + return *p.PromptKey +} + +var Prompt_Version_DEFAULT string + +func (p *Prompt) GetVersion() (v string) { + if p == nil { + return + } + if !p.IsSetVersion() { + return Prompt_Version_DEFAULT + } + return *p.Version +} + +var Prompt_PromptTemplate_DEFAULT *PromptTemplate + +func (p *Prompt) GetPromptTemplate() (v *PromptTemplate) { + if p == nil { + return + } + if !p.IsSetPromptTemplate() { + return Prompt_PromptTemplate_DEFAULT + } + return p.PromptTemplate +} + +var Prompt_Tools_DEFAULT []*Tool + +func (p *Prompt) GetTools() (v []*Tool) { + if p == nil { + return + } + if !p.IsSetTools() { + return Prompt_Tools_DEFAULT + } + return p.Tools +} + +var Prompt_ToolCallConfig_DEFAULT *ToolCallConfig + +func (p *Prompt) GetToolCallConfig() (v *ToolCallConfig) { + if p == nil { + return + } + if !p.IsSetToolCallConfig() { + return Prompt_ToolCallConfig_DEFAULT + } + return p.ToolCallConfig +} + +var Prompt_LlmConfig_DEFAULT *LLMConfig + +func (p *Prompt) GetLlmConfig() (v *LLMConfig) { + if p == nil { + return + } + if !p.IsSetLlmConfig() { + return Prompt_LlmConfig_DEFAULT + } + return p.LlmConfig +} + +var Prompt_ID_DEFAULT int64 + +func (p *Prompt) GetID() (v int64) { + if p == nil { + return + } + if !p.IsSetID() { + return Prompt_ID_DEFAULT + } + return *p.ID +} + +var Prompt_DisplayName_DEFAULT string + +func (p *Prompt) GetDisplayName() (v string) { + if p == nil { + return + } + if !p.IsSetDisplayName() { + return Prompt_DisplayName_DEFAULT + } + return *p.DisplayName +} + +var Prompt_Description_DEFAULT string + +func (p *Prompt) GetDescription() (v string) { + if p == nil { + return + } + if !p.IsSetDescription() { + return Prompt_Description_DEFAULT + } + return *p.Description +} + +var Prompt_PromptType_DEFAULT PromptType + +func (p *Prompt) GetPromptType() (v PromptType) { + if p == nil { + return + } + if !p.IsSetPromptType() { + return Prompt_PromptType_DEFAULT + } + return *p.PromptType +} + +var Prompt_CreatedBy_DEFAULT string + +func (p *Prompt) GetCreatedBy() (v string) { + if p == nil { + return + } + if !p.IsSetCreatedBy() { + return Prompt_CreatedBy_DEFAULT + } + return *p.CreatedBy +} + +var Prompt_CreatedAt_DEFAULT int64 + +func (p *Prompt) GetCreatedAt() (v int64) { + if p == nil { + return + } + if !p.IsSetCreatedAt() { + return Prompt_CreatedAt_DEFAULT + } + return *p.CreatedAt +} + +var Prompt_UpdatedAt_DEFAULT int64 + +func (p *Prompt) GetUpdatedAt() (v int64) { + if p == nil { + return + } + if !p.IsSetUpdatedAt() { + return Prompt_UpdatedAt_DEFAULT + } + return *p.UpdatedAt +} + +var Prompt_Status_DEFAULT PublishStatus + +func (p *Prompt) GetStatus() (v PublishStatus) { + if p == nil { + return + } + if !p.IsSetStatus() { + return Prompt_Status_DEFAULT + } + return *p.Status +} + +var Prompt_PublishInfo_DEFAULT *PromptPublishInfo + +func (p *Prompt) GetPublishInfo() (v *PromptPublishInfo) { + if p == nil { + return + } + if !p.IsSetPublishInfo() { + return Prompt_PublishInfo_DEFAULT + } + return p.PublishInfo +} + +var Prompt_SecurityLevel_DEFAULT SecurityLevel + +func (p *Prompt) GetSecurityLevel() (v SecurityLevel) { + if p == nil { + return + } + if !p.IsSetSecurityLevel() { + return Prompt_SecurityLevel_DEFAULT + } + return *p.SecurityLevel +} +func (p *Prompt) SetWorkspaceID(val *int64) { + p.WorkspaceID = val +} +func (p *Prompt) SetPromptKey(val *string) { + p.PromptKey = val +} +func (p *Prompt) SetVersion(val *string) { + p.Version = val +} +func (p *Prompt) SetPromptTemplate(val *PromptTemplate) { + p.PromptTemplate = val +} +func (p *Prompt) SetTools(val []*Tool) { + p.Tools = val +} +func (p *Prompt) SetToolCallConfig(val *ToolCallConfig) { + p.ToolCallConfig = val +} +func (p *Prompt) SetLlmConfig(val *LLMConfig) { + p.LlmConfig = val +} +func (p *Prompt) SetID(val *int64) { + p.ID = val +} +func (p *Prompt) SetDisplayName(val *string) { + p.DisplayName = val +} +func (p *Prompt) SetDescription(val *string) { + p.Description = val +} +func (p *Prompt) SetPromptType(val *PromptType) { + p.PromptType = val +} +func (p *Prompt) SetCreatedBy(val *string) { + p.CreatedBy = val +} +func (p *Prompt) SetCreatedAt(val *int64) { + p.CreatedAt = val +} +func (p *Prompt) SetUpdatedAt(val *int64) { + p.UpdatedAt = val +} +func (p *Prompt) SetStatus(val *PublishStatus) { + p.Status = val +} +func (p *Prompt) SetPublishInfo(val *PromptPublishInfo) { + p.PublishInfo = val +} +func (p *Prompt) SetSecurityLevel(val *SecurityLevel) { + p.SecurityLevel = val +} + +var fieldIDToName_Prompt = map[int16]string{ + 1: "workspace_id", + 2: "prompt_key", + 3: "version", + 4: "prompt_template", + 5: "tools", + 6: "tool_call_config", + 7: "llm_config", + 8: "id", + 9: "display_name", + 10: "description", + 11: "prompt_type", + 12: "created_by", + 14: "created_at", + 15: "updated_at", + 16: "status", + 17: "PublishInfo", + 18: "security_level", +} + +func (p *Prompt) IsSetWorkspaceID() bool { + return p.WorkspaceID != nil +} + +func (p *Prompt) IsSetPromptKey() bool { + return p.PromptKey != nil +} + +func (p *Prompt) IsSetVersion() bool { + return p.Version != nil +} + +func (p *Prompt) IsSetPromptTemplate() bool { + return p.PromptTemplate != nil +} + +func (p *Prompt) IsSetTools() bool { + return p.Tools != nil +} + +func (p *Prompt) IsSetToolCallConfig() bool { + return p.ToolCallConfig != nil +} + +func (p *Prompt) IsSetLlmConfig() bool { + return p.LlmConfig != nil +} + +func (p *Prompt) IsSetID() bool { + return p.ID != nil +} + +func (p *Prompt) IsSetDisplayName() bool { + return p.DisplayName != nil +} + +func (p *Prompt) IsSetDescription() bool { + return p.Description != nil +} + +func (p *Prompt) IsSetPromptType() bool { + return p.PromptType != nil +} + +func (p *Prompt) IsSetCreatedBy() bool { + return p.CreatedBy != nil +} + +func (p *Prompt) IsSetCreatedAt() bool { + return p.CreatedAt != nil +} + +func (p *Prompt) IsSetUpdatedAt() bool { + return p.UpdatedAt != nil +} + +func (p *Prompt) IsSetStatus() bool { + return p.Status != nil +} + +func (p *Prompt) IsSetPublishInfo() bool { + return p.PublishInfo != nil +} + +func (p *Prompt) IsSetSecurityLevel() bool { + return p.SecurityLevel != nil +} + +func (p *Prompt) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.I64 { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.STRING { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.STRING { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 4: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField4(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 5: + if fieldTypeId == thrift.LIST { + if err = p.ReadField5(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 6: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField6(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 7: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField7(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 8: + if fieldTypeId == thrift.I64 { + if err = p.ReadField8(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 9: + if fieldTypeId == thrift.STRING { + if err = p.ReadField9(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 10: + if fieldTypeId == thrift.STRING { + if err = p.ReadField10(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 11: + if fieldTypeId == thrift.STRING { + if err = p.ReadField11(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 12: + if fieldTypeId == thrift.STRING { + if err = p.ReadField12(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 14: + if fieldTypeId == thrift.I64 { + if err = p.ReadField14(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 15: + if fieldTypeId == thrift.I64 { + if err = p.ReadField15(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 16: + if fieldTypeId == thrift.STRING { + if err = p.ReadField16(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 17: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField17(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 18: + if fieldTypeId == thrift.STRING { + if err = p.ReadField18(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_Prompt[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *Prompt) ReadField1(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.WorkspaceID = _field + return nil +} +func (p *Prompt) ReadField2(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.PromptKey = _field + return nil +} +func (p *Prompt) ReadField3(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Version = _field + return nil +} +func (p *Prompt) ReadField4(iprot thrift.TProtocol) error { + _field := NewPromptTemplate() + if err := _field.Read(iprot); err != nil { + return err + } + p.PromptTemplate = _field + return nil +} +func (p *Prompt) ReadField5(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*Tool, 0, size) + values := make([]Tool, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + + if err := _elem.Read(iprot); err != nil { + return err + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { + return err + } + p.Tools = _field + return nil +} +func (p *Prompt) ReadField6(iprot thrift.TProtocol) error { + _field := NewToolCallConfig() + if err := _field.Read(iprot); err != nil { + return err + } + p.ToolCallConfig = _field + return nil +} +func (p *Prompt) ReadField7(iprot thrift.TProtocol) error { + _field := NewLLMConfig() + if err := _field.Read(iprot); err != nil { + return err + } + p.LlmConfig = _field + return nil +} +func (p *Prompt) ReadField8(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.ID = _field + return nil +} +func (p *Prompt) ReadField9(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.DisplayName = _field + return nil +} +func (p *Prompt) ReadField10(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Description = _field + return nil +} +func (p *Prompt) ReadField11(iprot thrift.TProtocol) error { + + var _field *PromptType + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.PromptType = _field + return nil +} +func (p *Prompt) ReadField12(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.CreatedBy = _field + return nil +} +func (p *Prompt) ReadField14(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.CreatedAt = _field + return nil +} +func (p *Prompt) ReadField15(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.UpdatedAt = _field + return nil +} +func (p *Prompt) ReadField16(iprot thrift.TProtocol) error { + + var _field *PublishStatus + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Status = _field + return nil +} +func (p *Prompt) ReadField17(iprot thrift.TProtocol) error { + _field := NewPromptPublishInfo() + if err := _field.Read(iprot); err != nil { + return err + } + p.PublishInfo = _field + return nil +} +func (p *Prompt) ReadField18(iprot thrift.TProtocol) error { + + var _field *SecurityLevel + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.SecurityLevel = _field + return nil +} + +func (p *Prompt) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("Prompt"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } + if err = p.writeField4(oprot); err != nil { + fieldId = 4 + goto WriteFieldError + } + if err = p.writeField5(oprot); err != nil { + fieldId = 5 + goto WriteFieldError + } + if err = p.writeField6(oprot); err != nil { + fieldId = 6 + goto WriteFieldError + } + if err = p.writeField7(oprot); err != nil { + fieldId = 7 + goto WriteFieldError + } + if err = p.writeField8(oprot); err != nil { + fieldId = 8 + goto WriteFieldError + } + if err = p.writeField9(oprot); err != nil { + fieldId = 9 + goto WriteFieldError + } + if err = p.writeField10(oprot); err != nil { + fieldId = 10 + goto WriteFieldError + } + if err = p.writeField11(oprot); err != nil { + fieldId = 11 + goto WriteFieldError + } + if err = p.writeField12(oprot); err != nil { + fieldId = 12 + goto WriteFieldError + } + if err = p.writeField14(oprot); err != nil { + fieldId = 14 + goto WriteFieldError + } + if err = p.writeField15(oprot); err != nil { + fieldId = 15 + goto WriteFieldError + } + if err = p.writeField16(oprot); err != nil { + fieldId = 16 + goto WriteFieldError + } + if err = p.writeField17(oprot); err != nil { + fieldId = 17 + goto WriteFieldError + } + if err = p.writeField18(oprot); err != nil { + fieldId = 18 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *Prompt) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetWorkspaceID() { + if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.WorkspaceID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *Prompt) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetPromptKey() { + if err = oprot.WriteFieldBegin("prompt_key", thrift.STRING, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.PromptKey); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} +func (p *Prompt) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetVersion() { + if err = oprot.WriteFieldBegin("version", thrift.STRING, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Version); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) +} +func (p *Prompt) writeField4(oprot thrift.TProtocol) (err error) { + if p.IsSetPromptTemplate() { + if err = oprot.WriteFieldBegin("prompt_template", thrift.STRUCT, 4); err != nil { + goto WriteFieldBeginError + } + if err := p.PromptTemplate.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) +} +func (p *Prompt) writeField5(oprot thrift.TProtocol) (err error) { + if p.IsSetTools() { + if err = oprot.WriteFieldBegin("tools", thrift.LIST, 5); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Tools)); err != nil { + return err + } + for _, v := range p.Tools { + if err := v.Write(oprot); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) +} +func (p *Prompt) writeField6(oprot thrift.TProtocol) (err error) { + if p.IsSetToolCallConfig() { + if err = oprot.WriteFieldBegin("tool_call_config", thrift.STRUCT, 6); err != nil { + goto WriteFieldBeginError + } + if err := p.ToolCallConfig.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) +} +func (p *Prompt) writeField7(oprot thrift.TProtocol) (err error) { + if p.IsSetLlmConfig() { + if err = oprot.WriteFieldBegin("llm_config", thrift.STRUCT, 7); err != nil { + goto WriteFieldBeginError + } + if err := p.LlmConfig.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 7 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) +} +func (p *Prompt) writeField8(oprot thrift.TProtocol) (err error) { + if p.IsSetID() { + if err = oprot.WriteFieldBegin("id", thrift.I64, 8); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.ID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 8 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 8 end error: ", p), err) +} +func (p *Prompt) writeField9(oprot thrift.TProtocol) (err error) { + if p.IsSetDisplayName() { + if err = oprot.WriteFieldBegin("display_name", thrift.STRING, 9); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.DisplayName); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 9 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 9 end error: ", p), err) +} +func (p *Prompt) writeField10(oprot thrift.TProtocol) (err error) { + if p.IsSetDescription() { + if err = oprot.WriteFieldBegin("description", thrift.STRING, 10); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Description); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 10 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 10 end error: ", p), err) +} +func (p *Prompt) writeField11(oprot thrift.TProtocol) (err error) { + if p.IsSetPromptType() { + if err = oprot.WriteFieldBegin("prompt_type", thrift.STRING, 11); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.PromptType); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 11 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 11 end error: ", p), err) +} +func (p *Prompt) writeField12(oprot thrift.TProtocol) (err error) { + if p.IsSetCreatedBy() { + if err = oprot.WriteFieldBegin("created_by", thrift.STRING, 12); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.CreatedBy); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 12 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 12 end error: ", p), err) +} +func (p *Prompt) writeField14(oprot thrift.TProtocol) (err error) { + if p.IsSetCreatedAt() { + if err = oprot.WriteFieldBegin("created_at", thrift.I64, 14); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.CreatedAt); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 14 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 14 end error: ", p), err) +} +func (p *Prompt) writeField15(oprot thrift.TProtocol) (err error) { + if p.IsSetUpdatedAt() { + if err = oprot.WriteFieldBegin("updated_at", thrift.I64, 15); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.UpdatedAt); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 15 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 15 end error: ", p), err) +} +func (p *Prompt) writeField16(oprot thrift.TProtocol) (err error) { + if p.IsSetStatus() { + if err = oprot.WriteFieldBegin("status", thrift.STRING, 16); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Status); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 16 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 16 end error: ", p), err) +} +func (p *Prompt) writeField17(oprot thrift.TProtocol) (err error) { + if p.IsSetPublishInfo() { + if err = oprot.WriteFieldBegin("PublishInfo", thrift.STRUCT, 17); err != nil { + goto WriteFieldBeginError + } + if err := p.PublishInfo.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 17 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 17 end error: ", p), err) +} +func (p *Prompt) writeField18(oprot thrift.TProtocol) (err error) { + if p.IsSetSecurityLevel() { + if err = oprot.WriteFieldBegin("security_level", thrift.STRING, 18); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.SecurityLevel); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 18 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 18 end error: ", p), err) +} + +func (p *Prompt) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("Prompt(%+v)", *p) + +} + +func (p *Prompt) DeepEqual(ano *Prompt) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.WorkspaceID) { + return false + } + if !p.Field2DeepEqual(ano.PromptKey) { + return false + } + if !p.Field3DeepEqual(ano.Version) { + return false + } + if !p.Field4DeepEqual(ano.PromptTemplate) { + return false + } + if !p.Field5DeepEqual(ano.Tools) { + return false + } + if !p.Field6DeepEqual(ano.ToolCallConfig) { + return false + } + if !p.Field7DeepEqual(ano.LlmConfig) { + return false + } + if !p.Field8DeepEqual(ano.ID) { + return false + } + if !p.Field9DeepEqual(ano.DisplayName) { + return false + } + if !p.Field10DeepEqual(ano.Description) { + return false + } + if !p.Field11DeepEqual(ano.PromptType) { + return false + } + if !p.Field12DeepEqual(ano.CreatedBy) { + return false + } + if !p.Field14DeepEqual(ano.CreatedAt) { + return false + } + if !p.Field15DeepEqual(ano.UpdatedAt) { + return false + } + if !p.Field16DeepEqual(ano.Status) { + return false + } + if !p.Field17DeepEqual(ano.PublishInfo) { + return false + } + if !p.Field18DeepEqual(ano.SecurityLevel) { + return false + } + return true +} + +func (p *Prompt) Field1DeepEqual(src *int64) bool { + + if p.WorkspaceID == src { + return true + } else if p.WorkspaceID == nil || src == nil { + return false + } + if *p.WorkspaceID != *src { + return false + } + return true +} +func (p *Prompt) Field2DeepEqual(src *string) bool { + + if p.PromptKey == src { + return true + } else if p.PromptKey == nil || src == nil { + return false + } + if strings.Compare(*p.PromptKey, *src) != 0 { + return false + } + return true +} +func (p *Prompt) Field3DeepEqual(src *string) bool { + + if p.Version == src { + return true + } else if p.Version == nil || src == nil { + return false + } + if strings.Compare(*p.Version, *src) != 0 { + return false + } + return true +} +func (p *Prompt) Field4DeepEqual(src *PromptTemplate) bool { + + if !p.PromptTemplate.DeepEqual(src) { + return false + } + return true +} +func (p *Prompt) Field5DeepEqual(src []*Tool) bool { + + if len(p.Tools) != len(src) { + return false + } + for i, v := range p.Tools { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } + return true +} +func (p *Prompt) Field6DeepEqual(src *ToolCallConfig) bool { + + if !p.ToolCallConfig.DeepEqual(src) { + return false + } + return true +} +func (p *Prompt) Field7DeepEqual(src *LLMConfig) bool { + + if !p.LlmConfig.DeepEqual(src) { + return false + } + return true +} +func (p *Prompt) Field8DeepEqual(src *int64) bool { + + if p.ID == src { + return true + } else if p.ID == nil || src == nil { + return false + } + if *p.ID != *src { + return false + } + return true +} +func (p *Prompt) Field9DeepEqual(src *string) bool { + + if p.DisplayName == src { + return true + } else if p.DisplayName == nil || src == nil { + return false + } + if strings.Compare(*p.DisplayName, *src) != 0 { + return false + } + return true +} +func (p *Prompt) Field10DeepEqual(src *string) bool { + + if p.Description == src { + return true + } else if p.Description == nil || src == nil { + return false + } + if strings.Compare(*p.Description, *src) != 0 { + return false + } + return true +} +func (p *Prompt) Field11DeepEqual(src *PromptType) bool { + + if p.PromptType == src { + return true + } else if p.PromptType == nil || src == nil { + return false + } + if strings.Compare(*p.PromptType, *src) != 0 { + return false + } + return true +} +func (p *Prompt) Field12DeepEqual(src *string) bool { + + if p.CreatedBy == src { + return true + } else if p.CreatedBy == nil || src == nil { + return false + } + if strings.Compare(*p.CreatedBy, *src) != 0 { + return false + } + return true +} +func (p *Prompt) Field14DeepEqual(src *int64) bool { + + if p.CreatedAt == src { + return true + } else if p.CreatedAt == nil || src == nil { + return false + } + if *p.CreatedAt != *src { + return false + } + return true +} +func (p *Prompt) Field15DeepEqual(src *int64) bool { + + if p.UpdatedAt == src { + return true + } else if p.UpdatedAt == nil || src == nil { + return false + } + if *p.UpdatedAt != *src { + return false + } + return true +} +func (p *Prompt) Field16DeepEqual(src *PublishStatus) bool { + + if p.Status == src { + return true + } else if p.Status == nil || src == nil { + return false + } + if strings.Compare(*p.Status, *src) != 0 { + return false + } + return true +} +func (p *Prompt) Field17DeepEqual(src *PromptPublishInfo) bool { + + if !p.PublishInfo.DeepEqual(src) { + return false + } + return true +} +func (p *Prompt) Field18DeepEqual(src *SecurityLevel) bool { + + if p.SecurityLevel == src { + return true + } else if p.SecurityLevel == nil || src == nil { + return false + } + if strings.Compare(*p.SecurityLevel, *src) != 0 { + return false + } + return true +} + +type PromptTemplate struct { + // 模板类型 + TemplateType *TemplateType `thrift:"template_type,1,optional" frugal:"1,optional,string" form:"template_type" json:"template_type,omitempty" query:"template_type"` + // 只支持message list形式托管 + Messages []*Message `thrift:"messages,2,optional" frugal:"2,optional,list" form:"messages" json:"messages,omitempty" query:"messages"` + // 变量定义 + VariableDefs []*VariableDef `thrift:"variable_defs,3,optional" frugal:"3,optional,list" form:"variable_defs" json:"variable_defs,omitempty" query:"variable_defs"` + // 模板级元信息 + Metadata map[string]string `thrift:"metadata,100,optional" frugal:"100,optional,map" form:"metadata" json:"metadata,omitempty" query:"metadata"` +} + +func NewPromptTemplate() *PromptTemplate { + return &PromptTemplate{} +} + +func (p *PromptTemplate) InitDefault() { +} + +var PromptTemplate_TemplateType_DEFAULT TemplateType + +func (p *PromptTemplate) GetTemplateType() (v TemplateType) { + if p == nil { + return + } + if !p.IsSetTemplateType() { + return PromptTemplate_TemplateType_DEFAULT + } + return *p.TemplateType +} + +var PromptTemplate_Messages_DEFAULT []*Message + +func (p *PromptTemplate) GetMessages() (v []*Message) { + if p == nil { + return + } + if !p.IsSetMessages() { + return PromptTemplate_Messages_DEFAULT + } + return p.Messages +} + +var PromptTemplate_VariableDefs_DEFAULT []*VariableDef + +func (p *PromptTemplate) GetVariableDefs() (v []*VariableDef) { + if p == nil { + return + } + if !p.IsSetVariableDefs() { + return PromptTemplate_VariableDefs_DEFAULT + } + return p.VariableDefs +} + +var PromptTemplate_Metadata_DEFAULT map[string]string + +func (p *PromptTemplate) GetMetadata() (v map[string]string) { + if p == nil { + return + } + if !p.IsSetMetadata() { + return PromptTemplate_Metadata_DEFAULT + } + return p.Metadata +} +func (p *PromptTemplate) SetTemplateType(val *TemplateType) { + p.TemplateType = val +} +func (p *PromptTemplate) SetMessages(val []*Message) { + p.Messages = val +} +func (p *PromptTemplate) SetVariableDefs(val []*VariableDef) { + p.VariableDefs = val +} +func (p *PromptTemplate) SetMetadata(val map[string]string) { + p.Metadata = val +} + +var fieldIDToName_PromptTemplate = map[int16]string{ + 1: "template_type", + 2: "messages", + 3: "variable_defs", + 100: "metadata", +} + +func (p *PromptTemplate) IsSetTemplateType() bool { + return p.TemplateType != nil +} + +func (p *PromptTemplate) IsSetMessages() bool { + return p.Messages != nil +} + +func (p *PromptTemplate) IsSetVariableDefs() bool { + return p.VariableDefs != nil +} + +func (p *PromptTemplate) IsSetMetadata() bool { + return p.Metadata != nil +} + +func (p *PromptTemplate) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.LIST { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.LIST { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 100: + if fieldTypeId == thrift.MAP { + if err = p.ReadField100(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptTemplate[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *PromptTemplate) ReadField1(iprot thrift.TProtocol) error { + + var _field *TemplateType + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.TemplateType = _field + return nil +} +func (p *PromptTemplate) ReadField2(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*Message, 0, size) + values := make([]Message, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + + if err := _elem.Read(iprot); err != nil { + return err + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { + return err + } + p.Messages = _field + return nil +} +func (p *PromptTemplate) ReadField3(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*VariableDef, 0, size) + values := make([]VariableDef, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + + if err := _elem.Read(iprot); err != nil { + return err + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { + return err + } + p.VariableDefs = _field + return nil +} +func (p *PromptTemplate) ReadField100(iprot thrift.TProtocol) error { + _, _, size, err := iprot.ReadMapBegin() + if err != nil { + return err + } + _field := make(map[string]string, size) + for i := 0; i < size; i++ { + var _key string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _key = v + } + + var _val string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _val = v + } + + _field[_key] = _val + } + if err := iprot.ReadMapEnd(); err != nil { + return err + } + p.Metadata = _field + return nil +} + +func (p *PromptTemplate) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("PromptTemplate"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } + if err = p.writeField100(oprot); err != nil { + fieldId = 100 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *PromptTemplate) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetTemplateType() { + if err = oprot.WriteFieldBegin("template_type", thrift.STRING, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.TemplateType); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *PromptTemplate) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetMessages() { + if err = oprot.WriteFieldBegin("messages", thrift.LIST, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Messages)); err != nil { + return err + } + for _, v := range p.Messages { + if err := v.Write(oprot); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} +func (p *PromptTemplate) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetVariableDefs() { + if err = oprot.WriteFieldBegin("variable_defs", thrift.LIST, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.VariableDefs)); err != nil { + return err + } + for _, v := range p.VariableDefs { + if err := v.Write(oprot); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) +} +func (p *PromptTemplate) writeField100(oprot thrift.TProtocol) (err error) { + if p.IsSetMetadata() { + if err = oprot.WriteFieldBegin("metadata", thrift.MAP, 100); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.Metadata)); err != nil { + return err + } + for k, v := range p.Metadata { + if err := oprot.WriteString(k); err != nil { + return err + } + if err := oprot.WriteString(v); err != nil { + return err + } + } + if err := oprot.WriteMapEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 100 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 100 end error: ", p), err) +} + +func (p *PromptTemplate) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("PromptTemplate(%+v)", *p) + +} + +func (p *PromptTemplate) DeepEqual(ano *PromptTemplate) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.TemplateType) { + return false + } + if !p.Field2DeepEqual(ano.Messages) { + return false + } + if !p.Field3DeepEqual(ano.VariableDefs) { + return false + } + if !p.Field100DeepEqual(ano.Metadata) { + return false + } + return true +} + +func (p *PromptTemplate) Field1DeepEqual(src *TemplateType) bool { + + if p.TemplateType == src { + return true + } else if p.TemplateType == nil || src == nil { + return false + } + if strings.Compare(*p.TemplateType, *src) != 0 { + return false + } + return true +} +func (p *PromptTemplate) Field2DeepEqual(src []*Message) bool { + + if len(p.Messages) != len(src) { + return false + } + for i, v := range p.Messages { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } + return true +} +func (p *PromptTemplate) Field3DeepEqual(src []*VariableDef) bool { + + if len(p.VariableDefs) != len(src) { + return false + } + for i, v := range p.VariableDefs { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } + return true +} +func (p *PromptTemplate) Field100DeepEqual(src map[string]string) bool { + + if len(p.Metadata) != len(src) { + return false + } + for k, v := range p.Metadata { + _src := src[k] + if strings.Compare(v, _src) != 0 { + return false + } + } + return true +} + +type ToolCallConfig struct { + ToolChoice *ToolChoiceType `thrift:"tool_choice,1,optional" frugal:"1,optional,string" form:"tool_choice" json:"tool_choice,omitempty" query:"tool_choice"` + ToolChoiceSpecification *ToolChoiceSpecification `thrift:"tool_choice_specification,2,optional" frugal:"2,optional,ToolChoiceSpecification" form:"tool_choice_specification" json:"tool_choice_specification,omitempty" query:"tool_choice_specification"` +} + +func NewToolCallConfig() *ToolCallConfig { + return &ToolCallConfig{} +} + +func (p *ToolCallConfig) InitDefault() { +} + +var ToolCallConfig_ToolChoice_DEFAULT ToolChoiceType + +func (p *ToolCallConfig) GetToolChoice() (v ToolChoiceType) { + if p == nil { + return + } + if !p.IsSetToolChoice() { + return ToolCallConfig_ToolChoice_DEFAULT + } + return *p.ToolChoice +} + +var ToolCallConfig_ToolChoiceSpecification_DEFAULT *ToolChoiceSpecification + +func (p *ToolCallConfig) GetToolChoiceSpecification() (v *ToolChoiceSpecification) { + if p == nil { + return + } + if !p.IsSetToolChoiceSpecification() { + return ToolCallConfig_ToolChoiceSpecification_DEFAULT + } + return p.ToolChoiceSpecification +} +func (p *ToolCallConfig) SetToolChoice(val *ToolChoiceType) { + p.ToolChoice = val +} +func (p *ToolCallConfig) SetToolChoiceSpecification(val *ToolChoiceSpecification) { + p.ToolChoiceSpecification = val +} + +var fieldIDToName_ToolCallConfig = map[int16]string{ + 1: "tool_choice", + 2: "tool_choice_specification", +} + +func (p *ToolCallConfig) IsSetToolChoice() bool { + return p.ToolChoice != nil +} + +func (p *ToolCallConfig) IsSetToolChoiceSpecification() bool { + return p.ToolChoiceSpecification != nil +} + +func (p *ToolCallConfig) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ToolCallConfig[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *ToolCallConfig) ReadField1(iprot thrift.TProtocol) error { + + var _field *ToolChoiceType + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.ToolChoice = _field + return nil +} +func (p *ToolCallConfig) ReadField2(iprot thrift.TProtocol) error { + _field := NewToolChoiceSpecification() + if err := _field.Read(iprot); err != nil { + return err + } + p.ToolChoiceSpecification = _field + return nil +} + +func (p *ToolCallConfig) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("ToolCallConfig"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *ToolCallConfig) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetToolChoice() { + if err = oprot.WriteFieldBegin("tool_choice", thrift.STRING, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.ToolChoice); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *ToolCallConfig) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetToolChoiceSpecification() { + if err = oprot.WriteFieldBegin("tool_choice_specification", thrift.STRUCT, 2); err != nil { + goto WriteFieldBeginError + } + if err := p.ToolChoiceSpecification.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} + +func (p *ToolCallConfig) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("ToolCallConfig(%+v)", *p) + +} + +func (p *ToolCallConfig) DeepEqual(ano *ToolCallConfig) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.ToolChoice) { + return false + } + if !p.Field2DeepEqual(ano.ToolChoiceSpecification) { + return false + } + return true +} + +func (p *ToolCallConfig) Field1DeepEqual(src *ToolChoiceType) bool { + + if p.ToolChoice == src { + return true + } else if p.ToolChoice == nil || src == nil { + return false + } + if strings.Compare(*p.ToolChoice, *src) != 0 { + return false + } + return true +} +func (p *ToolCallConfig) Field2DeepEqual(src *ToolChoiceSpecification) bool { + + if !p.ToolChoiceSpecification.DeepEqual(src) { + return false + } + return true +} + +type ToolChoiceSpecification struct { + Type *ToolType `thrift:"type,1,optional" frugal:"1,optional,string" form:"type" json:"type,omitempty" query:"type"` + Name *string `thrift:"name,2,optional" frugal:"2,optional,string" form:"name" json:"name,omitempty" query:"name"` +} + +func NewToolChoiceSpecification() *ToolChoiceSpecification { + return &ToolChoiceSpecification{} +} + +func (p *ToolChoiceSpecification) InitDefault() { +} + +var ToolChoiceSpecification_Type_DEFAULT ToolType + +func (p *ToolChoiceSpecification) GetType() (v ToolType) { + if p == nil { + return + } + if !p.IsSetType() { + return ToolChoiceSpecification_Type_DEFAULT + } + return *p.Type +} + +var ToolChoiceSpecification_Name_DEFAULT string + +func (p *ToolChoiceSpecification) GetName() (v string) { + if p == nil { + return + } + if !p.IsSetName() { + return ToolChoiceSpecification_Name_DEFAULT + } + return *p.Name +} +func (p *ToolChoiceSpecification) SetType(val *ToolType) { + p.Type = val +} +func (p *ToolChoiceSpecification) SetName(val *string) { + p.Name = val +} + +var fieldIDToName_ToolChoiceSpecification = map[int16]string{ + 1: "type", + 2: "name", +} + +func (p *ToolChoiceSpecification) IsSetType() bool { + return p.Type != nil +} + +func (p *ToolChoiceSpecification) IsSetName() bool { + return p.Name != nil +} + +func (p *ToolChoiceSpecification) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.STRING { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ToolChoiceSpecification[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *ToolChoiceSpecification) ReadField1(iprot thrift.TProtocol) error { + + var _field *ToolType + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Type = _field + return nil +} +func (p *ToolChoiceSpecification) ReadField2(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Name = _field + return nil +} + +func (p *ToolChoiceSpecification) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("ToolChoiceSpecification"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *ToolChoiceSpecification) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetType() { + if err = oprot.WriteFieldBegin("type", thrift.STRING, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Type); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *ToolChoiceSpecification) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetName() { + if err = oprot.WriteFieldBegin("name", thrift.STRING, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Name); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} + +func (p *ToolChoiceSpecification) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("ToolChoiceSpecification(%+v)", *p) + +} + +func (p *ToolChoiceSpecification) DeepEqual(ano *ToolChoiceSpecification) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.Type) { + return false + } + if !p.Field2DeepEqual(ano.Name) { + return false + } + return true +} + +func (p *ToolChoiceSpecification) Field1DeepEqual(src *ToolType) bool { + + if p.Type == src { + return true + } else if p.Type == nil || src == nil { + return false + } + if strings.Compare(*p.Type, *src) != 0 { + return false + } + return true +} +func (p *ToolChoiceSpecification) Field2DeepEqual(src *string) bool { + + if p.Name == src { + return true + } else if p.Name == nil || src == nil { + return false + } + if strings.Compare(*p.Name, *src) != 0 { + return false + } + return true +} + +type Message struct { + // 角色 + Role *Role `thrift:"role,1,optional" frugal:"1,optional,string" form:"role" json:"role,omitempty" query:"role"` + // 消息内容 + Content *string `thrift:"content,2,optional" frugal:"2,optional,string" form:"content" json:"content,omitempty" query:"content"` + // 多模态内容 + Parts []*ContentPart `thrift:"parts,3,optional" frugal:"3,optional,list" form:"parts" json:"parts,omitempty" query:"parts"` + // 推理思考内容 + ReasoningContent *string `thrift:"reasoning_content,4,optional" frugal:"4,optional,string" form:"reasoning_content" json:"reasoning_content,omitempty" query:"reasoning_content"` + // tool调用ID(role为tool时有效) + ToolCallID *string `thrift:"tool_call_id,5,optional" frugal:"5,optional,string" form:"tool_call_id" json:"tool_call_id,omitempty" query:"tool_call_id"` + // tool调用(role为assistant时有效) + ToolCalls []*ToolCall `thrift:"tool_calls,6,optional" frugal:"6,optional,list" form:"tool_calls" json:"tool_calls,omitempty" query:"tool_calls"` + // 是否跳过需要渲染 + SkipRender *bool `thrift:"skip_render,7,optional" frugal:"7,optional,bool" form:"skip_render" json:"skip_render,omitempty" query:"skip_render"` + // gemini的签名 + Signature *string `thrift:"signature,8,optional" frugal:"8,optional,string" form:"signature" json:"signature,omitempty" query:"signature"` + // 消息元信息 + Metadata map[string]string `thrift:"metadata,100,optional" frugal:"100,optional,map" form:"metadata" json:"metadata,omitempty" query:"metadata"` +} + +func NewMessage() *Message { + return &Message{} +} + +func (p *Message) InitDefault() { +} + +var Message_Role_DEFAULT Role + +func (p *Message) GetRole() (v Role) { + if p == nil { + return + } + if !p.IsSetRole() { + return Message_Role_DEFAULT + } + return *p.Role +} + +var Message_Content_DEFAULT string + +func (p *Message) GetContent() (v string) { + if p == nil { + return + } + if !p.IsSetContent() { + return Message_Content_DEFAULT + } + return *p.Content +} + +var Message_Parts_DEFAULT []*ContentPart + +func (p *Message) GetParts() (v []*ContentPart) { + if p == nil { + return + } + if !p.IsSetParts() { + return Message_Parts_DEFAULT + } + return p.Parts +} + +var Message_ReasoningContent_DEFAULT string + +func (p *Message) GetReasoningContent() (v string) { + if p == nil { + return + } + if !p.IsSetReasoningContent() { + return Message_ReasoningContent_DEFAULT + } + return *p.ReasoningContent +} + +var Message_ToolCallID_DEFAULT string + +func (p *Message) GetToolCallID() (v string) { + if p == nil { + return + } + if !p.IsSetToolCallID() { + return Message_ToolCallID_DEFAULT + } + return *p.ToolCallID +} + +var Message_ToolCalls_DEFAULT []*ToolCall + +func (p *Message) GetToolCalls() (v []*ToolCall) { + if p == nil { + return + } + if !p.IsSetToolCalls() { + return Message_ToolCalls_DEFAULT + } + return p.ToolCalls +} + +var Message_SkipRender_DEFAULT bool + +func (p *Message) GetSkipRender() (v bool) { + if p == nil { + return + } + if !p.IsSetSkipRender() { + return Message_SkipRender_DEFAULT + } + return *p.SkipRender +} + +var Message_Signature_DEFAULT string + +func (p *Message) GetSignature() (v string) { + if p == nil { + return + } + if !p.IsSetSignature() { + return Message_Signature_DEFAULT + } + return *p.Signature +} + +var Message_Metadata_DEFAULT map[string]string + +func (p *Message) GetMetadata() (v map[string]string) { + if p == nil { + return + } + if !p.IsSetMetadata() { + return Message_Metadata_DEFAULT + } + return p.Metadata +} +func (p *Message) SetRole(val *Role) { + p.Role = val +} +func (p *Message) SetContent(val *string) { + p.Content = val +} +func (p *Message) SetParts(val []*ContentPart) { + p.Parts = val +} +func (p *Message) SetReasoningContent(val *string) { + p.ReasoningContent = val +} +func (p *Message) SetToolCallID(val *string) { + p.ToolCallID = val +} +func (p *Message) SetToolCalls(val []*ToolCall) { + p.ToolCalls = val +} +func (p *Message) SetSkipRender(val *bool) { + p.SkipRender = val +} +func (p *Message) SetSignature(val *string) { + p.Signature = val +} +func (p *Message) SetMetadata(val map[string]string) { + p.Metadata = val +} + +var fieldIDToName_Message = map[int16]string{ + 1: "role", + 2: "content", + 3: "parts", + 4: "reasoning_content", + 5: "tool_call_id", + 6: "tool_calls", + 7: "skip_render", + 8: "signature", + 100: "metadata", +} + +func (p *Message) IsSetRole() bool { + return p.Role != nil +} + +func (p *Message) IsSetContent() bool { + return p.Content != nil +} + +func (p *Message) IsSetParts() bool { + return p.Parts != nil +} + +func (p *Message) IsSetReasoningContent() bool { + return p.ReasoningContent != nil +} + +func (p *Message) IsSetToolCallID() bool { + return p.ToolCallID != nil +} + +func (p *Message) IsSetToolCalls() bool { + return p.ToolCalls != nil +} + +func (p *Message) IsSetSkipRender() bool { + return p.SkipRender != nil +} + +func (p *Message) IsSetSignature() bool { + return p.Signature != nil +} + +func (p *Message) IsSetMetadata() bool { + return p.Metadata != nil +} + +func (p *Message) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.STRING { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.LIST { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 4: + if fieldTypeId == thrift.STRING { + if err = p.ReadField4(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 5: + if fieldTypeId == thrift.STRING { + if err = p.ReadField5(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 6: + if fieldTypeId == thrift.LIST { + if err = p.ReadField6(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 7: + if fieldTypeId == thrift.BOOL { + if err = p.ReadField7(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 8: + if fieldTypeId == thrift.STRING { + if err = p.ReadField8(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 100: + if fieldTypeId == thrift.MAP { + if err = p.ReadField100(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_Message[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *Message) ReadField1(iprot thrift.TProtocol) error { + + var _field *Role + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Role = _field + return nil +} +func (p *Message) ReadField2(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Content = _field + return nil +} +func (p *Message) ReadField3(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*ContentPart, 0, size) + values := make([]ContentPart, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + + if err := _elem.Read(iprot); err != nil { + return err + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { + return err + } + p.Parts = _field + return nil +} +func (p *Message) ReadField4(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.ReasoningContent = _field + return nil +} +func (p *Message) ReadField5(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.ToolCallID = _field + return nil +} +func (p *Message) ReadField6(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*ToolCall, 0, size) + values := make([]ToolCall, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + + if err := _elem.Read(iprot); err != nil { + return err + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { + return err + } + p.ToolCalls = _field + return nil +} +func (p *Message) ReadField7(iprot thrift.TProtocol) error { + + var _field *bool + if v, err := iprot.ReadBool(); err != nil { + return err + } else { + _field = &v + } + p.SkipRender = _field + return nil +} +func (p *Message) ReadField8(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Signature = _field + return nil +} +func (p *Message) ReadField100(iprot thrift.TProtocol) error { + _, _, size, err := iprot.ReadMapBegin() + if err != nil { + return err + } + _field := make(map[string]string, size) + for i := 0; i < size; i++ { + var _key string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _key = v + } + + var _val string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _val = v + } + + _field[_key] = _val + } + if err := iprot.ReadMapEnd(); err != nil { + return err + } + p.Metadata = _field + return nil +} + +func (p *Message) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("Message"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } + if err = p.writeField4(oprot); err != nil { + fieldId = 4 + goto WriteFieldError + } + if err = p.writeField5(oprot); err != nil { + fieldId = 5 + goto WriteFieldError + } + if err = p.writeField6(oprot); err != nil { + fieldId = 6 + goto WriteFieldError + } + if err = p.writeField7(oprot); err != nil { + fieldId = 7 + goto WriteFieldError + } + if err = p.writeField8(oprot); err != nil { + fieldId = 8 + goto WriteFieldError + } + if err = p.writeField100(oprot); err != nil { + fieldId = 100 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *Message) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetRole() { + if err = oprot.WriteFieldBegin("role", thrift.STRING, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Role); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *Message) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetContent() { + if err = oprot.WriteFieldBegin("content", thrift.STRING, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Content); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} +func (p *Message) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetParts() { + if err = oprot.WriteFieldBegin("parts", thrift.LIST, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Parts)); err != nil { + return err + } + for _, v := range p.Parts { + if err := v.Write(oprot); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) +} +func (p *Message) writeField4(oprot thrift.TProtocol) (err error) { + if p.IsSetReasoningContent() { + if err = oprot.WriteFieldBegin("reasoning_content", thrift.STRING, 4); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.ReasoningContent); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) +} +func (p *Message) writeField5(oprot thrift.TProtocol) (err error) { + if p.IsSetToolCallID() { + if err = oprot.WriteFieldBegin("tool_call_id", thrift.STRING, 5); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.ToolCallID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) +} +func (p *Message) writeField6(oprot thrift.TProtocol) (err error) { + if p.IsSetToolCalls() { + if err = oprot.WriteFieldBegin("tool_calls", thrift.LIST, 6); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.ToolCalls)); err != nil { + return err + } + for _, v := range p.ToolCalls { + if err := v.Write(oprot); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) +} +func (p *Message) writeField7(oprot thrift.TProtocol) (err error) { + if p.IsSetSkipRender() { + if err = oprot.WriteFieldBegin("skip_render", thrift.BOOL, 7); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteBool(*p.SkipRender); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 7 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) +} +func (p *Message) writeField8(oprot thrift.TProtocol) (err error) { + if p.IsSetSignature() { + if err = oprot.WriteFieldBegin("signature", thrift.STRING, 8); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Signature); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 8 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 8 end error: ", p), err) +} +func (p *Message) writeField100(oprot thrift.TProtocol) (err error) { + if p.IsSetMetadata() { + if err = oprot.WriteFieldBegin("metadata", thrift.MAP, 100); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.Metadata)); err != nil { + return err + } + for k, v := range p.Metadata { + if err := oprot.WriteString(k); err != nil { + return err + } + if err := oprot.WriteString(v); err != nil { + return err + } + } + if err := oprot.WriteMapEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 100 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 100 end error: ", p), err) +} + +func (p *Message) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("Message(%+v)", *p) + +} + +func (p *Message) DeepEqual(ano *Message) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.Role) { + return false + } + if !p.Field2DeepEqual(ano.Content) { + return false + } + if !p.Field3DeepEqual(ano.Parts) { + return false + } + if !p.Field4DeepEqual(ano.ReasoningContent) { + return false + } + if !p.Field5DeepEqual(ano.ToolCallID) { + return false + } + if !p.Field6DeepEqual(ano.ToolCalls) { + return false + } + if !p.Field7DeepEqual(ano.SkipRender) { + return false + } + if !p.Field8DeepEqual(ano.Signature) { + return false + } + if !p.Field100DeepEqual(ano.Metadata) { + return false + } + return true +} + +func (p *Message) Field1DeepEqual(src *Role) bool { + + if p.Role == src { + return true + } else if p.Role == nil || src == nil { + return false + } + if strings.Compare(*p.Role, *src) != 0 { + return false + } + return true +} +func (p *Message) Field2DeepEqual(src *string) bool { + + if p.Content == src { + return true + } else if p.Content == nil || src == nil { + return false + } + if strings.Compare(*p.Content, *src) != 0 { + return false + } + return true +} +func (p *Message) Field3DeepEqual(src []*ContentPart) bool { + + if len(p.Parts) != len(src) { + return false + } + for i, v := range p.Parts { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } + return true +} +func (p *Message) Field4DeepEqual(src *string) bool { + + if p.ReasoningContent == src { + return true + } else if p.ReasoningContent == nil || src == nil { + return false + } + if strings.Compare(*p.ReasoningContent, *src) != 0 { + return false + } + return true +} +func (p *Message) Field5DeepEqual(src *string) bool { + + if p.ToolCallID == src { + return true + } else if p.ToolCallID == nil || src == nil { + return false + } + if strings.Compare(*p.ToolCallID, *src) != 0 { + return false + } + return true +} +func (p *Message) Field6DeepEqual(src []*ToolCall) bool { + + if len(p.ToolCalls) != len(src) { + return false + } + for i, v := range p.ToolCalls { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } + return true +} +func (p *Message) Field7DeepEqual(src *bool) bool { + + if p.SkipRender == src { + return true + } else if p.SkipRender == nil || src == nil { + return false + } + if *p.SkipRender != *src { + return false + } + return true +} +func (p *Message) Field8DeepEqual(src *string) bool { + + if p.Signature == src { + return true + } else if p.Signature == nil || src == nil { + return false + } + if strings.Compare(*p.Signature, *src) != 0 { + return false + } + return true +} +func (p *Message) Field100DeepEqual(src map[string]string) bool { + + if len(p.Metadata) != len(src) { + return false + } + for k, v := range p.Metadata { + _src := src[k] + if strings.Compare(v, _src) != 0 { + return false + } + } + return true +} + +type ContentPart struct { + Type *ContentType `thrift:"type,1,optional" frugal:"1,optional,string" form:"type" json:"type,omitempty" query:"type"` + Text *string `thrift:"text,2,optional" frugal:"2,optional,string" form:"text" json:"text,omitempty" query:"text"` + ImageURL *string `thrift:"image_url,3,optional" frugal:"3,optional,string" form:"image_url" json:"image_url,omitempty" query:"image_url"` + Base64Data *string `thrift:"base64_data,4,optional" frugal:"4,optional,string" form:"base64_data" json:"base64_data,omitempty" query:"base64_data"` + VideoURL *string `thrift:"video_url,5,optional" frugal:"5,optional,string" form:"video_url" json:"video_url,omitempty" query:"video_url"` + Config *MediaConfig `thrift:"config,6,optional" frugal:"6,optional,MediaConfig" form:"config" json:"config,omitempty" query:"config"` + Signature *string `thrift:"signature,7,optional" frugal:"7,optional,string" form:"signature" json:"signature,omitempty" query:"signature"` + ImageURI *string `thrift:"image_uri,8,optional" frugal:"8,optional,string" form:"image_uri" json:"image_uri,omitempty" query:"image_uri"` + VideoURI *string `thrift:"video_uri,9,optional" frugal:"9,optional,string" form:"video_uri" json:"video_uri,omitempty" query:"video_uri"` +} + +func NewContentPart() *ContentPart { + return &ContentPart{} +} + +func (p *ContentPart) InitDefault() { +} + +var ContentPart_Type_DEFAULT ContentType + +func (p *ContentPart) GetType() (v ContentType) { + if p == nil { + return + } + if !p.IsSetType() { + return ContentPart_Type_DEFAULT + } + return *p.Type +} + +var ContentPart_Text_DEFAULT string + +func (p *ContentPart) GetText() (v string) { + if p == nil { + return + } + if !p.IsSetText() { + return ContentPart_Text_DEFAULT + } + return *p.Text +} + +var ContentPart_ImageURL_DEFAULT string + +func (p *ContentPart) GetImageURL() (v string) { + if p == nil { + return + } + if !p.IsSetImageURL() { + return ContentPart_ImageURL_DEFAULT + } + return *p.ImageURL +} + +var ContentPart_Base64Data_DEFAULT string + +func (p *ContentPart) GetBase64Data() (v string) { + if p == nil { + return + } + if !p.IsSetBase64Data() { + return ContentPart_Base64Data_DEFAULT + } + return *p.Base64Data +} + +var ContentPart_VideoURL_DEFAULT string + +func (p *ContentPart) GetVideoURL() (v string) { + if p == nil { + return + } + if !p.IsSetVideoURL() { + return ContentPart_VideoURL_DEFAULT + } + return *p.VideoURL +} + +var ContentPart_Config_DEFAULT *MediaConfig + +func (p *ContentPart) GetConfig() (v *MediaConfig) { + if p == nil { + return + } + if !p.IsSetConfig() { + return ContentPart_Config_DEFAULT + } + return p.Config +} + +var ContentPart_Signature_DEFAULT string + +func (p *ContentPart) GetSignature() (v string) { + if p == nil { + return + } + if !p.IsSetSignature() { + return ContentPart_Signature_DEFAULT + } + return *p.Signature +} + +var ContentPart_ImageURI_DEFAULT string + +func (p *ContentPart) GetImageURI() (v string) { + if p == nil { + return + } + if !p.IsSetImageURI() { + return ContentPart_ImageURI_DEFAULT + } + return *p.ImageURI +} + +var ContentPart_VideoURI_DEFAULT string + +func (p *ContentPart) GetVideoURI() (v string) { + if p == nil { + return + } + if !p.IsSetVideoURI() { + return ContentPart_VideoURI_DEFAULT + } + return *p.VideoURI +} +func (p *ContentPart) SetType(val *ContentType) { + p.Type = val +} +func (p *ContentPart) SetText(val *string) { + p.Text = val +} +func (p *ContentPart) SetImageURL(val *string) { + p.ImageURL = val +} +func (p *ContentPart) SetBase64Data(val *string) { + p.Base64Data = val +} +func (p *ContentPart) SetVideoURL(val *string) { + p.VideoURL = val +} +func (p *ContentPart) SetConfig(val *MediaConfig) { + p.Config = val +} +func (p *ContentPart) SetSignature(val *string) { + p.Signature = val +} +func (p *ContentPart) SetImageURI(val *string) { + p.ImageURI = val +} +func (p *ContentPart) SetVideoURI(val *string) { + p.VideoURI = val +} + +var fieldIDToName_ContentPart = map[int16]string{ + 1: "type", + 2: "text", + 3: "image_url", + 4: "base64_data", + 5: "video_url", + 6: "config", + 7: "signature", + 8: "image_uri", + 9: "video_uri", +} + +func (p *ContentPart) IsSetType() bool { + return p.Type != nil +} + +func (p *ContentPart) IsSetText() bool { + return p.Text != nil +} + +func (p *ContentPart) IsSetImageURL() bool { + return p.ImageURL != nil +} + +func (p *ContentPart) IsSetBase64Data() bool { + return p.Base64Data != nil +} + +func (p *ContentPart) IsSetVideoURL() bool { + return p.VideoURL != nil +} + +func (p *ContentPart) IsSetConfig() bool { + return p.Config != nil +} + +func (p *ContentPart) IsSetSignature() bool { + return p.Signature != nil +} + +func (p *ContentPart) IsSetImageURI() bool { + return p.ImageURI != nil +} + +func (p *ContentPart) IsSetVideoURI() bool { + return p.VideoURI != nil +} + +func (p *ContentPart) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.STRING { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.STRING { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 4: + if fieldTypeId == thrift.STRING { + if err = p.ReadField4(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 5: + if fieldTypeId == thrift.STRING { + if err = p.ReadField5(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 6: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField6(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 7: + if fieldTypeId == thrift.STRING { + if err = p.ReadField7(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 8: + if fieldTypeId == thrift.STRING { + if err = p.ReadField8(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 9: + if fieldTypeId == thrift.STRING { + if err = p.ReadField9(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ContentPart[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *ContentPart) ReadField1(iprot thrift.TProtocol) error { + + var _field *ContentType + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Type = _field + return nil +} +func (p *ContentPart) ReadField2(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Text = _field + return nil +} +func (p *ContentPart) ReadField3(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.ImageURL = _field + return nil +} +func (p *ContentPart) ReadField4(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Base64Data = _field + return nil +} +func (p *ContentPart) ReadField5(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.VideoURL = _field + return nil +} +func (p *ContentPart) ReadField6(iprot thrift.TProtocol) error { + _field := NewMediaConfig() + if err := _field.Read(iprot); err != nil { + return err + } + p.Config = _field + return nil +} +func (p *ContentPart) ReadField7(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Signature = _field + return nil +} +func (p *ContentPart) ReadField8(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.ImageURI = _field + return nil +} +func (p *ContentPart) ReadField9(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.VideoURI = _field + return nil +} + +func (p *ContentPart) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("ContentPart"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } + if err = p.writeField4(oprot); err != nil { + fieldId = 4 + goto WriteFieldError + } + if err = p.writeField5(oprot); err != nil { + fieldId = 5 + goto WriteFieldError + } + if err = p.writeField6(oprot); err != nil { + fieldId = 6 + goto WriteFieldError + } + if err = p.writeField7(oprot); err != nil { + fieldId = 7 + goto WriteFieldError + } + if err = p.writeField8(oprot); err != nil { + fieldId = 8 + goto WriteFieldError + } + if err = p.writeField9(oprot); err != nil { + fieldId = 9 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *ContentPart) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetType() { + if err = oprot.WriteFieldBegin("type", thrift.STRING, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Type); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *ContentPart) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetText() { + if err = oprot.WriteFieldBegin("text", thrift.STRING, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Text); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} +func (p *ContentPart) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetImageURL() { + if err = oprot.WriteFieldBegin("image_url", thrift.STRING, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.ImageURL); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) +} +func (p *ContentPart) writeField4(oprot thrift.TProtocol) (err error) { + if p.IsSetBase64Data() { + if err = oprot.WriteFieldBegin("base64_data", thrift.STRING, 4); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Base64Data); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) +} +func (p *ContentPart) writeField5(oprot thrift.TProtocol) (err error) { + if p.IsSetVideoURL() { + if err = oprot.WriteFieldBegin("video_url", thrift.STRING, 5); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.VideoURL); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) +} +func (p *ContentPart) writeField6(oprot thrift.TProtocol) (err error) { + if p.IsSetConfig() { + if err = oprot.WriteFieldBegin("config", thrift.STRUCT, 6); err != nil { + goto WriteFieldBeginError + } + if err := p.Config.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) +} +func (p *ContentPart) writeField7(oprot thrift.TProtocol) (err error) { + if p.IsSetSignature() { + if err = oprot.WriteFieldBegin("signature", thrift.STRING, 7); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Signature); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 7 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) +} +func (p *ContentPart) writeField8(oprot thrift.TProtocol) (err error) { + if p.IsSetImageURI() { + if err = oprot.WriteFieldBegin("image_uri", thrift.STRING, 8); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.ImageURI); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 8 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 8 end error: ", p), err) +} +func (p *ContentPart) writeField9(oprot thrift.TProtocol) (err error) { + if p.IsSetVideoURI() { + if err = oprot.WriteFieldBegin("video_uri", thrift.STRING, 9); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.VideoURI); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 9 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 9 end error: ", p), err) +} + +func (p *ContentPart) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("ContentPart(%+v)", *p) + +} + +func (p *ContentPart) DeepEqual(ano *ContentPart) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.Type) { + return false + } + if !p.Field2DeepEqual(ano.Text) { + return false + } + if !p.Field3DeepEqual(ano.ImageURL) { + return false + } + if !p.Field4DeepEqual(ano.Base64Data) { + return false + } + if !p.Field5DeepEqual(ano.VideoURL) { + return false + } + if !p.Field6DeepEqual(ano.Config) { + return false + } + if !p.Field7DeepEqual(ano.Signature) { + return false + } + if !p.Field8DeepEqual(ano.ImageURI) { + return false + } + if !p.Field9DeepEqual(ano.VideoURI) { + return false + } + return true +} + +func (p *ContentPart) Field1DeepEqual(src *ContentType) bool { + + if p.Type == src { + return true + } else if p.Type == nil || src == nil { + return false + } + if strings.Compare(*p.Type, *src) != 0 { + return false + } + return true +} +func (p *ContentPart) Field2DeepEqual(src *string) bool { + + if p.Text == src { + return true + } else if p.Text == nil || src == nil { + return false + } + if strings.Compare(*p.Text, *src) != 0 { + return false + } + return true +} +func (p *ContentPart) Field3DeepEqual(src *string) bool { + + if p.ImageURL == src { + return true + } else if p.ImageURL == nil || src == nil { + return false + } + if strings.Compare(*p.ImageURL, *src) != 0 { + return false + } + return true +} +func (p *ContentPart) Field4DeepEqual(src *string) bool { + + if p.Base64Data == src { + return true + } else if p.Base64Data == nil || src == nil { + return false + } + if strings.Compare(*p.Base64Data, *src) != 0 { + return false + } + return true +} +func (p *ContentPart) Field5DeepEqual(src *string) bool { + + if p.VideoURL == src { + return true + } else if p.VideoURL == nil || src == nil { + return false + } + if strings.Compare(*p.VideoURL, *src) != 0 { + return false + } + return true +} +func (p *ContentPart) Field6DeepEqual(src *MediaConfig) bool { + + if !p.Config.DeepEqual(src) { + return false + } + return true +} +func (p *ContentPart) Field7DeepEqual(src *string) bool { + + if p.Signature == src { + return true + } else if p.Signature == nil || src == nil { + return false + } + if strings.Compare(*p.Signature, *src) != 0 { + return false + } + return true +} +func (p *ContentPart) Field8DeepEqual(src *string) bool { + + if p.ImageURI == src { + return true + } else if p.ImageURI == nil || src == nil { + return false + } + if strings.Compare(*p.ImageURI, *src) != 0 { + return false + } + return true +} +func (p *ContentPart) Field9DeepEqual(src *string) bool { + + if p.VideoURI == src { + return true + } else if p.VideoURI == nil || src == nil { + return false + } + if strings.Compare(*p.VideoURI, *src) != 0 { + return false + } + return true +} + +type MediaConfig struct { + Fps *float64 `thrift:"fps,1,optional" frugal:"1,optional,double" form:"fps" json:"fps,omitempty" query:"fps"` + ImageResolution *string `thrift:"image_resolution,2,optional" frugal:"2,optional,string" form:"image_resolution" json:"image_resolution,omitempty" query:"image_resolution"` +} + +func NewMediaConfig() *MediaConfig { + return &MediaConfig{} +} + +func (p *MediaConfig) InitDefault() { +} + +var MediaConfig_Fps_DEFAULT float64 + +func (p *MediaConfig) GetFps() (v float64) { + if p == nil { + return + } + if !p.IsSetFps() { + return MediaConfig_Fps_DEFAULT + } + return *p.Fps +} + +var MediaConfig_ImageResolution_DEFAULT string + +func (p *MediaConfig) GetImageResolution() (v string) { + if p == nil { + return + } + if !p.IsSetImageResolution() { + return MediaConfig_ImageResolution_DEFAULT + } + return *p.ImageResolution +} +func (p *MediaConfig) SetFps(val *float64) { + p.Fps = val +} +func (p *MediaConfig) SetImageResolution(val *string) { + p.ImageResolution = val +} + +var fieldIDToName_MediaConfig = map[int16]string{ + 1: "fps", + 2: "image_resolution", +} + +func (p *MediaConfig) IsSetFps() bool { + return p.Fps != nil +} + +func (p *MediaConfig) IsSetImageResolution() bool { + return p.ImageResolution != nil +} + +func (p *MediaConfig) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.DOUBLE { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.STRING { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_MediaConfig[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *MediaConfig) ReadField1(iprot thrift.TProtocol) error { + + var _field *float64 + if v, err := iprot.ReadDouble(); err != nil { + return err + } else { + _field = &v + } + p.Fps = _field + return nil +} +func (p *MediaConfig) ReadField2(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.ImageResolution = _field + return nil +} + +func (p *MediaConfig) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("MediaConfig"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *MediaConfig) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetFps() { + if err = oprot.WriteFieldBegin("fps", thrift.DOUBLE, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteDouble(*p.Fps); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *MediaConfig) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetImageResolution() { + if err = oprot.WriteFieldBegin("image_resolution", thrift.STRING, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.ImageResolution); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} + +func (p *MediaConfig) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("MediaConfig(%+v)", *p) + +} + +func (p *MediaConfig) DeepEqual(ano *MediaConfig) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.Fps) { + return false + } + if !p.Field2DeepEqual(ano.ImageResolution) { + return false + } + return true +} + +func (p *MediaConfig) Field1DeepEqual(src *float64) bool { + + if p.Fps == src { + return true + } else if p.Fps == nil || src == nil { + return false + } + if *p.Fps != *src { + return false + } + return true +} +func (p *MediaConfig) Field2DeepEqual(src *string) bool { + + if p.ImageResolution == src { + return true + } else if p.ImageResolution == nil || src == nil { + return false + } + if strings.Compare(*p.ImageResolution, *src) != 0 { + return false + } + return true +} + +type VariableDef struct { + // 变量名字 + Key *string `thrift:"key,1,optional" frugal:"1,optional,string" form:"key" json:"key,omitempty" query:"key"` + // 变量描述 + Desc *string `thrift:"desc,2,optional" frugal:"2,optional,string" form:"desc" json:"desc,omitempty" query:"desc"` + // 变量类型 + Type *VariableType `thrift:"type,3,optional" frugal:"3,optional,string" form:"type" json:"type,omitempty" query:"type"` +} + +func NewVariableDef() *VariableDef { + return &VariableDef{} +} + +func (p *VariableDef) InitDefault() { +} + +var VariableDef_Key_DEFAULT string + +func (p *VariableDef) GetKey() (v string) { + if p == nil { + return + } + if !p.IsSetKey() { + return VariableDef_Key_DEFAULT + } + return *p.Key +} + +var VariableDef_Desc_DEFAULT string + +func (p *VariableDef) GetDesc() (v string) { + if p == nil { + return + } + if !p.IsSetDesc() { + return VariableDef_Desc_DEFAULT + } + return *p.Desc +} + +var VariableDef_Type_DEFAULT VariableType + +func (p *VariableDef) GetType() (v VariableType) { + if p == nil { + return + } + if !p.IsSetType() { + return VariableDef_Type_DEFAULT + } + return *p.Type +} +func (p *VariableDef) SetKey(val *string) { + p.Key = val +} +func (p *VariableDef) SetDesc(val *string) { + p.Desc = val +} +func (p *VariableDef) SetType(val *VariableType) { + p.Type = val +} + +var fieldIDToName_VariableDef = map[int16]string{ + 1: "key", + 2: "desc", + 3: "type", +} + +func (p *VariableDef) IsSetKey() bool { + return p.Key != nil +} + +func (p *VariableDef) IsSetDesc() bool { + return p.Desc != nil +} + +func (p *VariableDef) IsSetType() bool { + return p.Type != nil +} + +func (p *VariableDef) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.STRING { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.STRING { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_VariableDef[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *VariableDef) ReadField1(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Key = _field + return nil +} +func (p *VariableDef) ReadField2(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Desc = _field + return nil +} +func (p *VariableDef) ReadField3(iprot thrift.TProtocol) error { + + var _field *VariableType + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Type = _field + return nil +} + +func (p *VariableDef) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("VariableDef"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *VariableDef) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetKey() { + if err = oprot.WriteFieldBegin("key", thrift.STRING, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Key); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *VariableDef) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetDesc() { + if err = oprot.WriteFieldBegin("desc", thrift.STRING, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Desc); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} +func (p *VariableDef) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetType() { + if err = oprot.WriteFieldBegin("type", thrift.STRING, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Type); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) +} + +func (p *VariableDef) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("VariableDef(%+v)", *p) + +} + +func (p *VariableDef) DeepEqual(ano *VariableDef) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.Key) { + return false + } + if !p.Field2DeepEqual(ano.Desc) { + return false + } + if !p.Field3DeepEqual(ano.Type) { + return false + } + return true +} + +func (p *VariableDef) Field1DeepEqual(src *string) bool { + + if p.Key == src { + return true + } else if p.Key == nil || src == nil { + return false + } + if strings.Compare(*p.Key, *src) != 0 { + return false + } + return true +} +func (p *VariableDef) Field2DeepEqual(src *string) bool { + + if p.Desc == src { + return true + } else if p.Desc == nil || src == nil { + return false + } + if strings.Compare(*p.Desc, *src) != 0 { + return false + } + return true +} +func (p *VariableDef) Field3DeepEqual(src *VariableType) bool { + + if p.Type == src { + return true + } else if p.Type == nil || src == nil { + return false + } + if strings.Compare(*p.Type, *src) != 0 { + return false + } + return true +} + +type Tool struct { + Type *ToolType `thrift:"type,1,optional" frugal:"1,optional,string" form:"type" json:"type,omitempty" query:"type"` + Function *Function `thrift:"function,2,optional" frugal:"2,optional,Function" form:"function" json:"function,omitempty" query:"function"` + // 时候禁用 + Disable *bool `thrift:"disable,3,optional" frugal:"3,optional,bool" form:"disable" json:"disable,omitempty" query:"disable"` +} + +func NewTool() *Tool { + return &Tool{} +} + +func (p *Tool) InitDefault() { +} + +var Tool_Type_DEFAULT ToolType + +func (p *Tool) GetType() (v ToolType) { + if p == nil { + return + } + if !p.IsSetType() { + return Tool_Type_DEFAULT + } + return *p.Type +} + +var Tool_Function_DEFAULT *Function + +func (p *Tool) GetFunction() (v *Function) { + if p == nil { + return + } + if !p.IsSetFunction() { + return Tool_Function_DEFAULT + } + return p.Function +} + +var Tool_Disable_DEFAULT bool + +func (p *Tool) GetDisable() (v bool) { + if p == nil { + return + } + if !p.IsSetDisable() { + return Tool_Disable_DEFAULT + } + return *p.Disable +} +func (p *Tool) SetType(val *ToolType) { + p.Type = val +} +func (p *Tool) SetFunction(val *Function) { + p.Function = val +} +func (p *Tool) SetDisable(val *bool) { + p.Disable = val +} + +var fieldIDToName_Tool = map[int16]string{ + 1: "type", + 2: "function", + 3: "disable", +} + +func (p *Tool) IsSetType() bool { + return p.Type != nil +} + +func (p *Tool) IsSetFunction() bool { + return p.Function != nil +} + +func (p *Tool) IsSetDisable() bool { + return p.Disable != nil +} + +func (p *Tool) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.BOOL { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_Tool[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *Tool) ReadField1(iprot thrift.TProtocol) error { + + var _field *ToolType + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Type = _field + return nil +} +func (p *Tool) ReadField2(iprot thrift.TProtocol) error { + _field := NewFunction() + if err := _field.Read(iprot); err != nil { + return err + } + p.Function = _field + return nil +} +func (p *Tool) ReadField3(iprot thrift.TProtocol) error { + + var _field *bool + if v, err := iprot.ReadBool(); err != nil { + return err + } else { + _field = &v + } + p.Disable = _field + return nil +} + +func (p *Tool) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("Tool"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *Tool) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetType() { + if err = oprot.WriteFieldBegin("type", thrift.STRING, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Type); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *Tool) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetFunction() { + if err = oprot.WriteFieldBegin("function", thrift.STRUCT, 2); err != nil { + goto WriteFieldBeginError + } + if err := p.Function.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} +func (p *Tool) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetDisable() { + if err = oprot.WriteFieldBegin("disable", thrift.BOOL, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteBool(*p.Disable); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) +} + +func (p *Tool) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("Tool(%+v)", *p) + +} + +func (p *Tool) DeepEqual(ano *Tool) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.Type) { + return false + } + if !p.Field2DeepEqual(ano.Function) { + return false + } + if !p.Field3DeepEqual(ano.Disable) { + return false + } + return true +} + +func (p *Tool) Field1DeepEqual(src *ToolType) bool { + + if p.Type == src { + return true + } else if p.Type == nil || src == nil { + return false + } + if strings.Compare(*p.Type, *src) != 0 { + return false + } + return true +} +func (p *Tool) Field2DeepEqual(src *Function) bool { + + if !p.Function.DeepEqual(src) { + return false + } + return true +} +func (p *Tool) Field3DeepEqual(src *bool) bool { + + if p.Disable == src { + return true + } else if p.Disable == nil || src == nil { + return false + } + if *p.Disable != *src { + return false + } + return true +} + +type Function struct { + Name *string `thrift:"name,1,optional" frugal:"1,optional,string" form:"name" json:"name,omitempty" query:"name"` + Description *string `thrift:"description,2,optional" frugal:"2,optional,string" form:"description" json:"description,omitempty" query:"description"` + Parameters *string `thrift:"parameters,3,optional" frugal:"3,optional,string" form:"parameters" json:"parameters,omitempty" query:"parameters"` +} + +func NewFunction() *Function { + return &Function{} +} + +func (p *Function) InitDefault() { +} + +var Function_Name_DEFAULT string + +func (p *Function) GetName() (v string) { + if p == nil { + return + } + if !p.IsSetName() { + return Function_Name_DEFAULT + } + return *p.Name +} + +var Function_Description_DEFAULT string + +func (p *Function) GetDescription() (v string) { + if p == nil { + return + } + if !p.IsSetDescription() { + return Function_Description_DEFAULT + } + return *p.Description +} + +var Function_Parameters_DEFAULT string + +func (p *Function) GetParameters() (v string) { + if p == nil { + return + } + if !p.IsSetParameters() { + return Function_Parameters_DEFAULT + } + return *p.Parameters +} +func (p *Function) SetName(val *string) { + p.Name = val +} +func (p *Function) SetDescription(val *string) { + p.Description = val +} +func (p *Function) SetParameters(val *string) { + p.Parameters = val +} + +var fieldIDToName_Function = map[int16]string{ + 1: "name", + 2: "description", + 3: "parameters", +} + +func (p *Function) IsSetName() bool { + return p.Name != nil +} + +func (p *Function) IsSetDescription() bool { + return p.Description != nil +} + +func (p *Function) IsSetParameters() bool { + return p.Parameters != nil +} + +func (p *Function) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.STRING { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.STRING { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_Function[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *Function) ReadField1(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Name = _field + return nil +} +func (p *Function) ReadField2(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Description = _field + return nil +} +func (p *Function) ReadField3(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Parameters = _field + return nil +} + +func (p *Function) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("Function"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *Function) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetName() { + if err = oprot.WriteFieldBegin("name", thrift.STRING, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Name); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *Function) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetDescription() { + if err = oprot.WriteFieldBegin("description", thrift.STRING, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Description); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} +func (p *Function) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetParameters() { + if err = oprot.WriteFieldBegin("parameters", thrift.STRING, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Parameters); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) +} + +func (p *Function) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("Function(%+v)", *p) + +} + +func (p *Function) DeepEqual(ano *Function) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.Name) { + return false + } + if !p.Field2DeepEqual(ano.Description) { + return false + } + if !p.Field3DeepEqual(ano.Parameters) { + return false + } + return true +} + +func (p *Function) Field1DeepEqual(src *string) bool { + + if p.Name == src { + return true + } else if p.Name == nil || src == nil { + return false + } + if strings.Compare(*p.Name, *src) != 0 { + return false + } + return true +} +func (p *Function) Field2DeepEqual(src *string) bool { + + if p.Description == src { + return true + } else if p.Description == nil || src == nil { + return false + } + if strings.Compare(*p.Description, *src) != 0 { + return false + } + return true +} +func (p *Function) Field3DeepEqual(src *string) bool { + + if p.Parameters == src { + return true + } else if p.Parameters == nil || src == nil { + return false + } + if strings.Compare(*p.Parameters, *src) != 0 { + return false + } + return true +} + +type ToolCall struct { + Index *int32 `thrift:"index,1,optional" frugal:"1,optional,i32" form:"index" json:"index,omitempty" query:"index"` + ID *string `thrift:"id,2,optional" frugal:"2,optional,string" form:"id" json:"id,omitempty" query:"id"` + Type *ToolType `thrift:"type,3,optional" frugal:"3,optional,string" form:"type" json:"type,omitempty" query:"type"` + FunctionCall *FunctionCall `thrift:"function_call,4,optional" frugal:"4,optional,FunctionCall" form:"function_call" json:"function_call,omitempty" query:"function_call"` + OutputID *string `thrift:"output_id,5,optional" frugal:"5,optional,string" form:"output_id" json:"output_id,omitempty" query:"output_id"` + Signature *string `thrift:"signature,6,optional" frugal:"6,optional,string" form:"signature" json:"signature,omitempty" query:"signature"` +} + +func NewToolCall() *ToolCall { + return &ToolCall{} +} + +func (p *ToolCall) InitDefault() { +} + +var ToolCall_Index_DEFAULT int32 + +func (p *ToolCall) GetIndex() (v int32) { + if p == nil { + return + } + if !p.IsSetIndex() { + return ToolCall_Index_DEFAULT + } + return *p.Index +} + +var ToolCall_ID_DEFAULT string + +func (p *ToolCall) GetID() (v string) { + if p == nil { + return + } + if !p.IsSetID() { + return ToolCall_ID_DEFAULT + } + return *p.ID +} + +var ToolCall_Type_DEFAULT ToolType + +func (p *ToolCall) GetType() (v ToolType) { + if p == nil { + return + } + if !p.IsSetType() { + return ToolCall_Type_DEFAULT + } + return *p.Type +} + +var ToolCall_FunctionCall_DEFAULT *FunctionCall + +func (p *ToolCall) GetFunctionCall() (v *FunctionCall) { + if p == nil { + return + } + if !p.IsSetFunctionCall() { + return ToolCall_FunctionCall_DEFAULT + } + return p.FunctionCall +} + +var ToolCall_OutputID_DEFAULT string + +func (p *ToolCall) GetOutputID() (v string) { + if p == nil { + return + } + if !p.IsSetOutputID() { + return ToolCall_OutputID_DEFAULT + } + return *p.OutputID +} + +var ToolCall_Signature_DEFAULT string + +func (p *ToolCall) GetSignature() (v string) { + if p == nil { + return + } + if !p.IsSetSignature() { + return ToolCall_Signature_DEFAULT + } + return *p.Signature +} +func (p *ToolCall) SetIndex(val *int32) { + p.Index = val +} +func (p *ToolCall) SetID(val *string) { + p.ID = val +} +func (p *ToolCall) SetType(val *ToolType) { + p.Type = val +} +func (p *ToolCall) SetFunctionCall(val *FunctionCall) { + p.FunctionCall = val +} +func (p *ToolCall) SetOutputID(val *string) { + p.OutputID = val +} +func (p *ToolCall) SetSignature(val *string) { + p.Signature = val +} + +var fieldIDToName_ToolCall = map[int16]string{ + 1: "index", + 2: "id", + 3: "type", + 4: "function_call", + 5: "output_id", + 6: "signature", +} + +func (p *ToolCall) IsSetIndex() bool { + return p.Index != nil +} + +func (p *ToolCall) IsSetID() bool { + return p.ID != nil +} + +func (p *ToolCall) IsSetType() bool { + return p.Type != nil +} + +func (p *ToolCall) IsSetFunctionCall() bool { + return p.FunctionCall != nil +} + +func (p *ToolCall) IsSetOutputID() bool { + return p.OutputID != nil +} + +func (p *ToolCall) IsSetSignature() bool { + return p.Signature != nil +} + +func (p *ToolCall) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.I32 { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.STRING { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.STRING { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 4: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField4(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 5: + if fieldTypeId == thrift.STRING { + if err = p.ReadField5(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 6: + if fieldTypeId == thrift.STRING { + if err = p.ReadField6(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ToolCall[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *ToolCall) ReadField1(iprot thrift.TProtocol) error { + + var _field *int32 + if v, err := iprot.ReadI32(); err != nil { + return err + } else { + _field = &v + } + p.Index = _field + return nil +} +func (p *ToolCall) ReadField2(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.ID = _field + return nil +} +func (p *ToolCall) ReadField3(iprot thrift.TProtocol) error { + + var _field *ToolType + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Type = _field + return nil +} +func (p *ToolCall) ReadField4(iprot thrift.TProtocol) error { + _field := NewFunctionCall() + if err := _field.Read(iprot); err != nil { + return err + } + p.FunctionCall = _field + return nil +} +func (p *ToolCall) ReadField5(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.OutputID = _field + return nil +} +func (p *ToolCall) ReadField6(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Signature = _field + return nil +} + +func (p *ToolCall) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("ToolCall"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } + if err = p.writeField4(oprot); err != nil { + fieldId = 4 + goto WriteFieldError + } + if err = p.writeField5(oprot); err != nil { + fieldId = 5 + goto WriteFieldError + } + if err = p.writeField6(oprot); err != nil { + fieldId = 6 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *ToolCall) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetIndex() { + if err = oprot.WriteFieldBegin("index", thrift.I32, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(*p.Index); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *ToolCall) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetID() { + if err = oprot.WriteFieldBegin("id", thrift.STRING, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.ID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} +func (p *ToolCall) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetType() { + if err = oprot.WriteFieldBegin("type", thrift.STRING, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Type); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) +} +func (p *ToolCall) writeField4(oprot thrift.TProtocol) (err error) { + if p.IsSetFunctionCall() { + if err = oprot.WriteFieldBegin("function_call", thrift.STRUCT, 4); err != nil { + goto WriteFieldBeginError + } + if err := p.FunctionCall.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) +} +func (p *ToolCall) writeField5(oprot thrift.TProtocol) (err error) { + if p.IsSetOutputID() { + if err = oprot.WriteFieldBegin("output_id", thrift.STRING, 5); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.OutputID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) +} +func (p *ToolCall) writeField6(oprot thrift.TProtocol) (err error) { + if p.IsSetSignature() { + if err = oprot.WriteFieldBegin("signature", thrift.STRING, 6); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Signature); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) +} + +func (p *ToolCall) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("ToolCall(%+v)", *p) + +} + +func (p *ToolCall) DeepEqual(ano *ToolCall) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.Index) { + return false + } + if !p.Field2DeepEqual(ano.ID) { + return false + } + if !p.Field3DeepEqual(ano.Type) { + return false + } + if !p.Field4DeepEqual(ano.FunctionCall) { + return false + } + if !p.Field5DeepEqual(ano.OutputID) { + return false + } + if !p.Field6DeepEqual(ano.Signature) { + return false + } + return true +} + +func (p *ToolCall) Field1DeepEqual(src *int32) bool { + + if p.Index == src { + return true + } else if p.Index == nil || src == nil { + return false + } + if *p.Index != *src { + return false + } + return true +} +func (p *ToolCall) Field2DeepEqual(src *string) bool { + + if p.ID == src { + return true + } else if p.ID == nil || src == nil { + return false + } + if strings.Compare(*p.ID, *src) != 0 { + return false + } + return true +} +func (p *ToolCall) Field3DeepEqual(src *ToolType) bool { + + if p.Type == src { + return true + } else if p.Type == nil || src == nil { + return false + } + if strings.Compare(*p.Type, *src) != 0 { + return false + } + return true +} +func (p *ToolCall) Field4DeepEqual(src *FunctionCall) bool { + + if !p.FunctionCall.DeepEqual(src) { + return false + } + return true +} +func (p *ToolCall) Field5DeepEqual(src *string) bool { + + if p.OutputID == src { + return true + } else if p.OutputID == nil || src == nil { + return false + } + if strings.Compare(*p.OutputID, *src) != 0 { + return false + } + return true +} +func (p *ToolCall) Field6DeepEqual(src *string) bool { + + if p.Signature == src { + return true + } else if p.Signature == nil || src == nil { + return false + } + if strings.Compare(*p.Signature, *src) != 0 { + return false + } + return true +} + +type FunctionCall struct { + Name *string `thrift:"name,1,optional" frugal:"1,optional,string" form:"name" json:"name,omitempty" query:"name"` + Arguments *string `thrift:"arguments,2,optional" frugal:"2,optional,string" form:"arguments" json:"arguments,omitempty" query:"arguments"` +} + +func NewFunctionCall() *FunctionCall { + return &FunctionCall{} +} + +func (p *FunctionCall) InitDefault() { +} + +var FunctionCall_Name_DEFAULT string + +func (p *FunctionCall) GetName() (v string) { + if p == nil { + return + } + if !p.IsSetName() { + return FunctionCall_Name_DEFAULT + } + return *p.Name +} + +var FunctionCall_Arguments_DEFAULT string + +func (p *FunctionCall) GetArguments() (v string) { + if p == nil { + return + } + if !p.IsSetArguments() { + return FunctionCall_Arguments_DEFAULT + } + return *p.Arguments +} +func (p *FunctionCall) SetName(val *string) { + p.Name = val +} +func (p *FunctionCall) SetArguments(val *string) { + p.Arguments = val +} + +var fieldIDToName_FunctionCall = map[int16]string{ + 1: "name", + 2: "arguments", +} + +func (p *FunctionCall) IsSetName() bool { + return p.Name != nil +} + +func (p *FunctionCall) IsSetArguments() bool { + return p.Arguments != nil +} + +func (p *FunctionCall) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.STRING { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_FunctionCall[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *FunctionCall) ReadField1(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Name = _field + return nil +} +func (p *FunctionCall) ReadField2(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Arguments = _field + return nil +} + +func (p *FunctionCall) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("FunctionCall"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *FunctionCall) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetName() { + if err = oprot.WriteFieldBegin("name", thrift.STRING, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Name); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *FunctionCall) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetArguments() { + if err = oprot.WriteFieldBegin("arguments", thrift.STRING, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Arguments); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} + +func (p *FunctionCall) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("FunctionCall(%+v)", *p) + +} + +func (p *FunctionCall) DeepEqual(ano *FunctionCall) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.Name) { + return false + } + if !p.Field2DeepEqual(ano.Arguments) { + return false + } + return true +} + +func (p *FunctionCall) Field1DeepEqual(src *string) bool { + + if p.Name == src { + return true + } else if p.Name == nil || src == nil { + return false + } + if strings.Compare(*p.Name, *src) != 0 { + return false + } + return true +} +func (p *FunctionCall) Field2DeepEqual(src *string) bool { + + if p.Arguments == src { + return true + } else if p.Arguments == nil || src == nil { + return false + } + if strings.Compare(*p.Arguments, *src) != 0 { + return false + } + return true +} + +type LLMConfig struct { + Temperature *float64 `thrift:"temperature,1,optional" frugal:"1,optional,double" form:"temperature" json:"temperature,omitempty" query:"temperature"` + MaxTokens *int32 `thrift:"max_tokens,2,optional" frugal:"2,optional,i32" form:"max_tokens" json:"max_tokens,omitempty" query:"max_tokens"` + TopK *int32 `thrift:"top_k,3,optional" frugal:"3,optional,i32" form:"top_k" json:"top_k,omitempty" query:"top_k"` + TopP *float64 `thrift:"top_p,4,optional" frugal:"4,optional,double" form:"top_p" json:"top_p,omitempty" query:"top_p"` + PresencePenalty *float64 `thrift:"presence_penalty,5,optional" frugal:"5,optional,double" form:"presence_penalty" json:"presence_penalty,omitempty" query:"presence_penalty"` + FrequencyPenalty *float64 `thrift:"frequency_penalty,6,optional" frugal:"6,optional,double" form:"frequency_penalty" json:"frequency_penalty,omitempty" query:"frequency_penalty"` + JSONMode *bool `thrift:"json_mode,7,optional" frugal:"7,optional,bool" form:"json_mode" json:"json_mode,omitempty" query:"json_mode"` + ID *int64 `thrift:"id,8,optional" frugal:"8,optional,i64" json:"id" form:"id" query:"id"` + Name *string `thrift:"name,9,optional" frugal:"9,optional,string" form:"name" json:"name,omitempty" query:"name"` + Thinking *ThinkingConfig `thrift:"thinking,10,optional" frugal:"10,optional,ThinkingConfig" form:"thinking" json:"thinking,omitempty" query:"thinking"` + Extra *string `thrift:"extra,11,optional" frugal:"11,optional,string" form:"extra" json:"extra,omitempty" query:"extra"` +} + +func NewLLMConfig() *LLMConfig { + return &LLMConfig{} +} + +func (p *LLMConfig) InitDefault() { +} + +var LLMConfig_Temperature_DEFAULT float64 + +func (p *LLMConfig) GetTemperature() (v float64) { + if p == nil { + return + } + if !p.IsSetTemperature() { + return LLMConfig_Temperature_DEFAULT + } + return *p.Temperature +} + +var LLMConfig_MaxTokens_DEFAULT int32 + +func (p *LLMConfig) GetMaxTokens() (v int32) { + if p == nil { + return + } + if !p.IsSetMaxTokens() { + return LLMConfig_MaxTokens_DEFAULT + } + return *p.MaxTokens +} + +var LLMConfig_TopK_DEFAULT int32 + +func (p *LLMConfig) GetTopK() (v int32) { + if p == nil { + return + } + if !p.IsSetTopK() { + return LLMConfig_TopK_DEFAULT + } + return *p.TopK +} + +var LLMConfig_TopP_DEFAULT float64 + +func (p *LLMConfig) GetTopP() (v float64) { + if p == nil { + return + } + if !p.IsSetTopP() { + return LLMConfig_TopP_DEFAULT + } + return *p.TopP +} + +var LLMConfig_PresencePenalty_DEFAULT float64 + +func (p *LLMConfig) GetPresencePenalty() (v float64) { + if p == nil { + return + } + if !p.IsSetPresencePenalty() { + return LLMConfig_PresencePenalty_DEFAULT + } + return *p.PresencePenalty +} + +var LLMConfig_FrequencyPenalty_DEFAULT float64 + +func (p *LLMConfig) GetFrequencyPenalty() (v float64) { + if p == nil { + return + } + if !p.IsSetFrequencyPenalty() { + return LLMConfig_FrequencyPenalty_DEFAULT + } + return *p.FrequencyPenalty +} + +var LLMConfig_JSONMode_DEFAULT bool + +func (p *LLMConfig) GetJSONMode() (v bool) { + if p == nil { + return + } + if !p.IsSetJSONMode() { + return LLMConfig_JSONMode_DEFAULT + } + return *p.JSONMode +} + +var LLMConfig_ID_DEFAULT int64 + +func (p *LLMConfig) GetID() (v int64) { + if p == nil { + return + } + if !p.IsSetID() { + return LLMConfig_ID_DEFAULT + } + return *p.ID +} + +var LLMConfig_Name_DEFAULT string + +func (p *LLMConfig) GetName() (v string) { + if p == nil { + return + } + if !p.IsSetName() { + return LLMConfig_Name_DEFAULT + } + return *p.Name +} + +var LLMConfig_Thinking_DEFAULT *ThinkingConfig + +func (p *LLMConfig) GetThinking() (v *ThinkingConfig) { + if p == nil { + return + } + if !p.IsSetThinking() { + return LLMConfig_Thinking_DEFAULT + } + return p.Thinking +} + +var LLMConfig_Extra_DEFAULT string + +func (p *LLMConfig) GetExtra() (v string) { + if p == nil { + return + } + if !p.IsSetExtra() { + return LLMConfig_Extra_DEFAULT + } + return *p.Extra +} +func (p *LLMConfig) SetTemperature(val *float64) { + p.Temperature = val +} +func (p *LLMConfig) SetMaxTokens(val *int32) { + p.MaxTokens = val +} +func (p *LLMConfig) SetTopK(val *int32) { + p.TopK = val +} +func (p *LLMConfig) SetTopP(val *float64) { + p.TopP = val +} +func (p *LLMConfig) SetPresencePenalty(val *float64) { + p.PresencePenalty = val +} +func (p *LLMConfig) SetFrequencyPenalty(val *float64) { + p.FrequencyPenalty = val +} +func (p *LLMConfig) SetJSONMode(val *bool) { + p.JSONMode = val +} +func (p *LLMConfig) SetID(val *int64) { + p.ID = val +} +func (p *LLMConfig) SetName(val *string) { + p.Name = val +} +func (p *LLMConfig) SetThinking(val *ThinkingConfig) { + p.Thinking = val +} +func (p *LLMConfig) SetExtra(val *string) { + p.Extra = val +} + +var fieldIDToName_LLMConfig = map[int16]string{ + 1: "temperature", + 2: "max_tokens", + 3: "top_k", + 4: "top_p", + 5: "presence_penalty", + 6: "frequency_penalty", + 7: "json_mode", + 8: "id", + 9: "name", + 10: "thinking", + 11: "extra", +} + +func (p *LLMConfig) IsSetTemperature() bool { + return p.Temperature != nil +} + +func (p *LLMConfig) IsSetMaxTokens() bool { + return p.MaxTokens != nil +} + +func (p *LLMConfig) IsSetTopK() bool { + return p.TopK != nil +} + +func (p *LLMConfig) IsSetTopP() bool { + return p.TopP != nil +} + +func (p *LLMConfig) IsSetPresencePenalty() bool { + return p.PresencePenalty != nil +} + +func (p *LLMConfig) IsSetFrequencyPenalty() bool { + return p.FrequencyPenalty != nil +} + +func (p *LLMConfig) IsSetJSONMode() bool { + return p.JSONMode != nil +} + +func (p *LLMConfig) IsSetID() bool { + return p.ID != nil +} + +func (p *LLMConfig) IsSetName() bool { + return p.Name != nil +} + +func (p *LLMConfig) IsSetThinking() bool { + return p.Thinking != nil +} + +func (p *LLMConfig) IsSetExtra() bool { + return p.Extra != nil +} + +func (p *LLMConfig) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.DOUBLE { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.I32 { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.I32 { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 4: + if fieldTypeId == thrift.DOUBLE { + if err = p.ReadField4(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 5: + if fieldTypeId == thrift.DOUBLE { + if err = p.ReadField5(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 6: + if fieldTypeId == thrift.DOUBLE { + if err = p.ReadField6(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 7: + if fieldTypeId == thrift.BOOL { + if err = p.ReadField7(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 8: + if fieldTypeId == thrift.I64 { + if err = p.ReadField8(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 9: + if fieldTypeId == thrift.STRING { + if err = p.ReadField9(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 10: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField10(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 11: + if fieldTypeId == thrift.STRING { + if err = p.ReadField11(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_LLMConfig[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *LLMConfig) ReadField1(iprot thrift.TProtocol) error { + + var _field *float64 + if v, err := iprot.ReadDouble(); err != nil { + return err + } else { + _field = &v + } + p.Temperature = _field + return nil +} +func (p *LLMConfig) ReadField2(iprot thrift.TProtocol) error { + + var _field *int32 + if v, err := iprot.ReadI32(); err != nil { + return err + } else { + _field = &v + } + p.MaxTokens = _field + return nil +} +func (p *LLMConfig) ReadField3(iprot thrift.TProtocol) error { + + var _field *int32 + if v, err := iprot.ReadI32(); err != nil { + return err + } else { + _field = &v + } + p.TopK = _field + return nil +} +func (p *LLMConfig) ReadField4(iprot thrift.TProtocol) error { + + var _field *float64 + if v, err := iprot.ReadDouble(); err != nil { + return err + } else { + _field = &v + } + p.TopP = _field + return nil +} +func (p *LLMConfig) ReadField5(iprot thrift.TProtocol) error { + + var _field *float64 + if v, err := iprot.ReadDouble(); err != nil { + return err + } else { + _field = &v + } + p.PresencePenalty = _field + return nil +} +func (p *LLMConfig) ReadField6(iprot thrift.TProtocol) error { + + var _field *float64 + if v, err := iprot.ReadDouble(); err != nil { + return err + } else { + _field = &v + } + p.FrequencyPenalty = _field + return nil +} +func (p *LLMConfig) ReadField7(iprot thrift.TProtocol) error { + + var _field *bool + if v, err := iprot.ReadBool(); err != nil { + return err + } else { + _field = &v + } + p.JSONMode = _field + return nil +} +func (p *LLMConfig) ReadField8(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.ID = _field + return nil +} +func (p *LLMConfig) ReadField9(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Name = _field + return nil +} +func (p *LLMConfig) ReadField10(iprot thrift.TProtocol) error { + _field := NewThinkingConfig() + if err := _field.Read(iprot); err != nil { + return err + } + p.Thinking = _field + return nil +} +func (p *LLMConfig) ReadField11(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Extra = _field + return nil +} + +func (p *LLMConfig) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("LLMConfig"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } + if err = p.writeField4(oprot); err != nil { + fieldId = 4 + goto WriteFieldError + } + if err = p.writeField5(oprot); err != nil { + fieldId = 5 + goto WriteFieldError + } + if err = p.writeField6(oprot); err != nil { + fieldId = 6 + goto WriteFieldError + } + if err = p.writeField7(oprot); err != nil { + fieldId = 7 + goto WriteFieldError + } + if err = p.writeField8(oprot); err != nil { + fieldId = 8 + goto WriteFieldError + } + if err = p.writeField9(oprot); err != nil { + fieldId = 9 + goto WriteFieldError + } + if err = p.writeField10(oprot); err != nil { + fieldId = 10 + goto WriteFieldError + } + if err = p.writeField11(oprot); err != nil { + fieldId = 11 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *LLMConfig) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetTemperature() { + if err = oprot.WriteFieldBegin("temperature", thrift.DOUBLE, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteDouble(*p.Temperature); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *LLMConfig) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetMaxTokens() { + if err = oprot.WriteFieldBegin("max_tokens", thrift.I32, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(*p.MaxTokens); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} +func (p *LLMConfig) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetTopK() { + if err = oprot.WriteFieldBegin("top_k", thrift.I32, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(*p.TopK); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) +} +func (p *LLMConfig) writeField4(oprot thrift.TProtocol) (err error) { + if p.IsSetTopP() { + if err = oprot.WriteFieldBegin("top_p", thrift.DOUBLE, 4); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteDouble(*p.TopP); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) +} +func (p *LLMConfig) writeField5(oprot thrift.TProtocol) (err error) { + if p.IsSetPresencePenalty() { + if err = oprot.WriteFieldBegin("presence_penalty", thrift.DOUBLE, 5); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteDouble(*p.PresencePenalty); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) +} +func (p *LLMConfig) writeField6(oprot thrift.TProtocol) (err error) { + if p.IsSetFrequencyPenalty() { + if err = oprot.WriteFieldBegin("frequency_penalty", thrift.DOUBLE, 6); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteDouble(*p.FrequencyPenalty); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) +} +func (p *LLMConfig) writeField7(oprot thrift.TProtocol) (err error) { + if p.IsSetJSONMode() { + if err = oprot.WriteFieldBegin("json_mode", thrift.BOOL, 7); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteBool(*p.JSONMode); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 7 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) +} +func (p *LLMConfig) writeField8(oprot thrift.TProtocol) (err error) { + if p.IsSetID() { + if err = oprot.WriteFieldBegin("id", thrift.I64, 8); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.ID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 8 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 8 end error: ", p), err) +} +func (p *LLMConfig) writeField9(oprot thrift.TProtocol) (err error) { + if p.IsSetName() { + if err = oprot.WriteFieldBegin("name", thrift.STRING, 9); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Name); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 9 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 9 end error: ", p), err) +} +func (p *LLMConfig) writeField10(oprot thrift.TProtocol) (err error) { + if p.IsSetThinking() { + if err = oprot.WriteFieldBegin("thinking", thrift.STRUCT, 10); err != nil { + goto WriteFieldBeginError + } + if err := p.Thinking.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 10 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 10 end error: ", p), err) +} +func (p *LLMConfig) writeField11(oprot thrift.TProtocol) (err error) { + if p.IsSetExtra() { + if err = oprot.WriteFieldBegin("extra", thrift.STRING, 11); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Extra); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 11 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 11 end error: ", p), err) +} + +func (p *LLMConfig) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("LLMConfig(%+v)", *p) + +} + +func (p *LLMConfig) DeepEqual(ano *LLMConfig) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.Temperature) { + return false + } + if !p.Field2DeepEqual(ano.MaxTokens) { + return false + } + if !p.Field3DeepEqual(ano.TopK) { + return false + } + if !p.Field4DeepEqual(ano.TopP) { + return false + } + if !p.Field5DeepEqual(ano.PresencePenalty) { + return false + } + if !p.Field6DeepEqual(ano.FrequencyPenalty) { + return false + } + if !p.Field7DeepEqual(ano.JSONMode) { + return false + } + if !p.Field8DeepEqual(ano.ID) { + return false + } + if !p.Field9DeepEqual(ano.Name) { + return false + } + if !p.Field10DeepEqual(ano.Thinking) { + return false + } + if !p.Field11DeepEqual(ano.Extra) { + return false + } + return true +} + +func (p *LLMConfig) Field1DeepEqual(src *float64) bool { + + if p.Temperature == src { + return true + } else if p.Temperature == nil || src == nil { + return false + } + if *p.Temperature != *src { + return false + } + return true +} +func (p *LLMConfig) Field2DeepEqual(src *int32) bool { + + if p.MaxTokens == src { + return true + } else if p.MaxTokens == nil || src == nil { + return false + } + if *p.MaxTokens != *src { + return false + } + return true +} +func (p *LLMConfig) Field3DeepEqual(src *int32) bool { + + if p.TopK == src { + return true + } else if p.TopK == nil || src == nil { + return false + } + if *p.TopK != *src { + return false + } + return true +} +func (p *LLMConfig) Field4DeepEqual(src *float64) bool { + + if p.TopP == src { + return true + } else if p.TopP == nil || src == nil { + return false + } + if *p.TopP != *src { + return false + } + return true +} +func (p *LLMConfig) Field5DeepEqual(src *float64) bool { + + if p.PresencePenalty == src { + return true + } else if p.PresencePenalty == nil || src == nil { + return false + } + if *p.PresencePenalty != *src { + return false + } + return true +} +func (p *LLMConfig) Field6DeepEqual(src *float64) bool { + + if p.FrequencyPenalty == src { + return true + } else if p.FrequencyPenalty == nil || src == nil { + return false + } + if *p.FrequencyPenalty != *src { + return false + } + return true +} +func (p *LLMConfig) Field7DeepEqual(src *bool) bool { + + if p.JSONMode == src { + return true + } else if p.JSONMode == nil || src == nil { + return false + } + if *p.JSONMode != *src { + return false + } + return true +} +func (p *LLMConfig) Field8DeepEqual(src *int64) bool { + + if p.ID == src { + return true + } else if p.ID == nil || src == nil { + return false + } + if *p.ID != *src { + return false + } + return true +} +func (p *LLMConfig) Field9DeepEqual(src *string) bool { + + if p.Name == src { + return true + } else if p.Name == nil || src == nil { + return false + } + if strings.Compare(*p.Name, *src) != 0 { + return false + } + return true +} +func (p *LLMConfig) Field10DeepEqual(src *ThinkingConfig) bool { + + if !p.Thinking.DeepEqual(src) { + return false + } + return true +} +func (p *LLMConfig) Field11DeepEqual(src *string) bool { + + if p.Extra == src { + return true + } else if p.Extra == nil || src == nil { + return false + } + if strings.Compare(*p.Extra, *src) != 0 { + return false + } + return true +} + +type VariableVal struct { + // 变量key + Key *string `thrift:"key,1,optional" frugal:"1,optional,string" form:"key" json:"key,omitempty" query:"key"` + // 普通变量值(非string类型,如boolean、integer、float、object等,序列化后传入) + Value *string `thrift:"value,2,optional" frugal:"2,optional,string" form:"value" json:"value,omitempty" query:"value"` + // placeholder变量值 + PlaceholderMessages []*Message `thrift:"placeholder_messages,3,optional" frugal:"3,optional,list" form:"placeholder_messages" json:"placeholder_messages,omitempty" query:"placeholder_messages"` + // 多模态变量值 + MultiPartValues []*ContentPart `thrift:"multi_part_values,4,optional" frugal:"4,optional,list" form:"multi_part_values" json:"multi_part_values,omitempty" query:"multi_part_values"` +} + +func NewVariableVal() *VariableVal { + return &VariableVal{} +} + +func (p *VariableVal) InitDefault() { +} + +var VariableVal_Key_DEFAULT string + +func (p *VariableVal) GetKey() (v string) { + if p == nil { + return + } + if !p.IsSetKey() { + return VariableVal_Key_DEFAULT + } + return *p.Key +} + +var VariableVal_Value_DEFAULT string + +func (p *VariableVal) GetValue() (v string) { + if p == nil { + return + } + if !p.IsSetValue() { + return VariableVal_Value_DEFAULT + } + return *p.Value +} + +var VariableVal_PlaceholderMessages_DEFAULT []*Message + +func (p *VariableVal) GetPlaceholderMessages() (v []*Message) { + if p == nil { + return + } + if !p.IsSetPlaceholderMessages() { + return VariableVal_PlaceholderMessages_DEFAULT + } + return p.PlaceholderMessages +} + +var VariableVal_MultiPartValues_DEFAULT []*ContentPart + +func (p *VariableVal) GetMultiPartValues() (v []*ContentPart) { + if p == nil { + return + } + if !p.IsSetMultiPartValues() { + return VariableVal_MultiPartValues_DEFAULT + } + return p.MultiPartValues +} +func (p *VariableVal) SetKey(val *string) { + p.Key = val +} +func (p *VariableVal) SetValue(val *string) { + p.Value = val +} +func (p *VariableVal) SetPlaceholderMessages(val []*Message) { + p.PlaceholderMessages = val +} +func (p *VariableVal) SetMultiPartValues(val []*ContentPart) { + p.MultiPartValues = val +} + +var fieldIDToName_VariableVal = map[int16]string{ + 1: "key", + 2: "value", + 3: "placeholder_messages", + 4: "multi_part_values", +} + +func (p *VariableVal) IsSetKey() bool { + return p.Key != nil +} + +func (p *VariableVal) IsSetValue() bool { + return p.Value != nil +} + +func (p *VariableVal) IsSetPlaceholderMessages() bool { + return p.PlaceholderMessages != nil +} + +func (p *VariableVal) IsSetMultiPartValues() bool { + return p.MultiPartValues != nil +} + +func (p *VariableVal) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.STRING { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.LIST { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 4: + if fieldTypeId == thrift.LIST { + if err = p.ReadField4(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_VariableVal[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *VariableVal) ReadField1(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Key = _field + return nil +} +func (p *VariableVal) ReadField2(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Value = _field + return nil +} +func (p *VariableVal) ReadField3(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*Message, 0, size) + values := make([]Message, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + + if err := _elem.Read(iprot); err != nil { + return err + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { + return err + } + p.PlaceholderMessages = _field + return nil +} +func (p *VariableVal) ReadField4(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*ContentPart, 0, size) + values := make([]ContentPart, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + + if err := _elem.Read(iprot); err != nil { + return err + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { + return err + } + p.MultiPartValues = _field + return nil +} + +func (p *VariableVal) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("VariableVal"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } + if err = p.writeField4(oprot); err != nil { + fieldId = 4 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *VariableVal) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetKey() { + if err = oprot.WriteFieldBegin("key", thrift.STRING, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Key); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *VariableVal) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetValue() { + if err = oprot.WriteFieldBegin("value", thrift.STRING, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Value); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} +func (p *VariableVal) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetPlaceholderMessages() { + if err = oprot.WriteFieldBegin("placeholder_messages", thrift.LIST, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.PlaceholderMessages)); err != nil { + return err + } + for _, v := range p.PlaceholderMessages { + if err := v.Write(oprot); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) +} +func (p *VariableVal) writeField4(oprot thrift.TProtocol) (err error) { + if p.IsSetMultiPartValues() { + if err = oprot.WriteFieldBegin("multi_part_values", thrift.LIST, 4); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.MultiPartValues)); err != nil { + return err + } + for _, v := range p.MultiPartValues { + if err := v.Write(oprot); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) +} + +func (p *VariableVal) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("VariableVal(%+v)", *p) + +} + +func (p *VariableVal) DeepEqual(ano *VariableVal) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.Key) { + return false + } + if !p.Field2DeepEqual(ano.Value) { + return false + } + if !p.Field3DeepEqual(ano.PlaceholderMessages) { + return false + } + if !p.Field4DeepEqual(ano.MultiPartValues) { + return false + } + return true +} + +func (p *VariableVal) Field1DeepEqual(src *string) bool { + + if p.Key == src { + return true + } else if p.Key == nil || src == nil { + return false + } + if strings.Compare(*p.Key, *src) != 0 { + return false + } + return true +} +func (p *VariableVal) Field2DeepEqual(src *string) bool { + + if p.Value == src { + return true + } else if p.Value == nil || src == nil { + return false + } + if strings.Compare(*p.Value, *src) != 0 { + return false + } + return true +} +func (p *VariableVal) Field3DeepEqual(src []*Message) bool { + + if len(p.PlaceholderMessages) != len(src) { + return false + } + for i, v := range p.PlaceholderMessages { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } + return true +} +func (p *VariableVal) Field4DeepEqual(src []*ContentPart) bool { + + if len(p.MultiPartValues) != len(src) { + return false + } + for i, v := range p.MultiPartValues { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } + return true +} + +type TokenUsage struct { + // 输入消耗 + InputTokens *int32 `thrift:"input_tokens,1,optional" frugal:"1,optional,i32" form:"input_tokens" json:"input_tokens,omitempty" query:"input_tokens"` + // 输出消耗 + OutputTokens *int32 `thrift:"output_tokens,2,optional" frugal:"2,optional,i32" form:"output_tokens" json:"output_tokens,omitempty" query:"output_tokens"` +} + +func NewTokenUsage() *TokenUsage { + return &TokenUsage{} +} + +func (p *TokenUsage) InitDefault() { +} + +var TokenUsage_InputTokens_DEFAULT int32 + +func (p *TokenUsage) GetInputTokens() (v int32) { + if p == nil { + return + } + if !p.IsSetInputTokens() { + return TokenUsage_InputTokens_DEFAULT + } + return *p.InputTokens +} + +var TokenUsage_OutputTokens_DEFAULT int32 + +func (p *TokenUsage) GetOutputTokens() (v int32) { + if p == nil { + return + } + if !p.IsSetOutputTokens() { + return TokenUsage_OutputTokens_DEFAULT + } + return *p.OutputTokens +} +func (p *TokenUsage) SetInputTokens(val *int32) { + p.InputTokens = val +} +func (p *TokenUsage) SetOutputTokens(val *int32) { + p.OutputTokens = val +} + +var fieldIDToName_TokenUsage = map[int16]string{ + 1: "input_tokens", + 2: "output_tokens", +} + +func (p *TokenUsage) IsSetInputTokens() bool { + return p.InputTokens != nil +} + +func (p *TokenUsage) IsSetOutputTokens() bool { + return p.OutputTokens != nil +} + +func (p *TokenUsage) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.I32 { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.I32 { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_TokenUsage[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *TokenUsage) ReadField1(iprot thrift.TProtocol) error { + + var _field *int32 + if v, err := iprot.ReadI32(); err != nil { + return err + } else { + _field = &v + } + p.InputTokens = _field + return nil +} +func (p *TokenUsage) ReadField2(iprot thrift.TProtocol) error { + + var _field *int32 + if v, err := iprot.ReadI32(); err != nil { + return err + } else { + _field = &v + } + p.OutputTokens = _field + return nil +} + +func (p *TokenUsage) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("TokenUsage"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *TokenUsage) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetInputTokens() { + if err = oprot.WriteFieldBegin("input_tokens", thrift.I32, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(*p.InputTokens); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *TokenUsage) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetOutputTokens() { + if err = oprot.WriteFieldBegin("output_tokens", thrift.I32, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(*p.OutputTokens); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} + +func (p *TokenUsage) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("TokenUsage(%+v)", *p) + +} + +func (p *TokenUsage) DeepEqual(ano *TokenUsage) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.InputTokens) { + return false + } + if !p.Field2DeepEqual(ano.OutputTokens) { + return false + } + return true +} + +func (p *TokenUsage) Field1DeepEqual(src *int32) bool { + + if p.InputTokens == src { + return true + } else if p.InputTokens == nil || src == nil { + return false + } + if *p.InputTokens != *src { + return false + } + return true +} +func (p *TokenUsage) Field2DeepEqual(src *int32) bool { + + if p.OutputTokens == src { + return true + } else if p.OutputTokens == nil || src == nil { + return false + } + if *p.OutputTokens != *src { + return false + } + return true +} + +type PromptBasic struct { + // Prompt ID + ID *int64 `thrift:"id,1,optional" frugal:"1,optional,i64" json:"id" form:"id" query:"id"` + // 工作空间ID + WorkspaceID *int64 `thrift:"workspace_id,2,optional" frugal:"2,optional,i64" json:"workspace_id" form:"workspace_id" query:"workspace_id"` + // 唯一标识 + PromptKey *string `thrift:"prompt_key,3,optional" frugal:"3,optional,string" form:"prompt_key" json:"prompt_key,omitempty" query:"prompt_key"` + // Prompt名称 + DisplayName *string `thrift:"display_name,4,optional" frugal:"4,optional,string" form:"display_name" json:"display_name,omitempty" query:"display_name"` + // Prompt描述 + Description *string `thrift:"description,5,optional" frugal:"5,optional,string" form:"description" json:"description,omitempty" query:"description"` + // 最新版本 + LatestVersion *string `thrift:"latest_version,6,optional" frugal:"6,optional,string" form:"latest_version" json:"latest_version,omitempty" query:"latest_version"` + // 创建者 + CreatedBy *string `thrift:"created_by,7,optional" frugal:"7,optional,string" form:"created_by" json:"created_by,omitempty" query:"created_by"` + // 更新者 + UpdatedBy *string `thrift:"updated_by,8,optional" frugal:"8,optional,string" form:"updated_by" json:"updated_by,omitempty" query:"updated_by"` + // 创建时间 + CreatedAt *int64 `thrift:"created_at,9,optional" frugal:"9,optional,i64" json:"created_at" form:"created_at" query:"created_at"` + // 更新时间 + UpdatedAt *int64 `thrift:"updated_at,10,optional" frugal:"10,optional,i64" json:"updated_at" form:"updated_at" query:"updated_at"` + // 最后提交时间 + LatestCommittedAt *int64 `thrift:"latest_committed_at,11,optional" frugal:"11,optional,i64" json:"latest_committed_at" form:"latest_committed_at" query:"latest_committed_at"` +} + +func NewPromptBasic() *PromptBasic { + return &PromptBasic{} +} + +func (p *PromptBasic) InitDefault() { +} + +var PromptBasic_ID_DEFAULT int64 + +func (p *PromptBasic) GetID() (v int64) { + if p == nil { + return + } + if !p.IsSetID() { + return PromptBasic_ID_DEFAULT + } + return *p.ID +} + +var PromptBasic_WorkspaceID_DEFAULT int64 + +func (p *PromptBasic) GetWorkspaceID() (v int64) { + if p == nil { + return + } + if !p.IsSetWorkspaceID() { + return PromptBasic_WorkspaceID_DEFAULT + } + return *p.WorkspaceID +} + +var PromptBasic_PromptKey_DEFAULT string + +func (p *PromptBasic) GetPromptKey() (v string) { + if p == nil { + return + } + if !p.IsSetPromptKey() { + return PromptBasic_PromptKey_DEFAULT + } + return *p.PromptKey +} + +var PromptBasic_DisplayName_DEFAULT string + +func (p *PromptBasic) GetDisplayName() (v string) { + if p == nil { + return + } + if !p.IsSetDisplayName() { + return PromptBasic_DisplayName_DEFAULT + } + return *p.DisplayName +} + +var PromptBasic_Description_DEFAULT string + +func (p *PromptBasic) GetDescription() (v string) { + if p == nil { + return + } + if !p.IsSetDescription() { + return PromptBasic_Description_DEFAULT + } + return *p.Description +} + +var PromptBasic_LatestVersion_DEFAULT string + +func (p *PromptBasic) GetLatestVersion() (v string) { + if p == nil { + return + } + if !p.IsSetLatestVersion() { + return PromptBasic_LatestVersion_DEFAULT + } + return *p.LatestVersion +} + +var PromptBasic_CreatedBy_DEFAULT string + +func (p *PromptBasic) GetCreatedBy() (v string) { + if p == nil { + return + } + if !p.IsSetCreatedBy() { + return PromptBasic_CreatedBy_DEFAULT + } + return *p.CreatedBy +} + +var PromptBasic_UpdatedBy_DEFAULT string + +func (p *PromptBasic) GetUpdatedBy() (v string) { + if p == nil { + return + } + if !p.IsSetUpdatedBy() { + return PromptBasic_UpdatedBy_DEFAULT + } + return *p.UpdatedBy +} + +var PromptBasic_CreatedAt_DEFAULT int64 + +func (p *PromptBasic) GetCreatedAt() (v int64) { + if p == nil { + return + } + if !p.IsSetCreatedAt() { + return PromptBasic_CreatedAt_DEFAULT + } + return *p.CreatedAt +} + +var PromptBasic_UpdatedAt_DEFAULT int64 + +func (p *PromptBasic) GetUpdatedAt() (v int64) { + if p == nil { + return + } + if !p.IsSetUpdatedAt() { + return PromptBasic_UpdatedAt_DEFAULT + } + return *p.UpdatedAt +} + +var PromptBasic_LatestCommittedAt_DEFAULT int64 + +func (p *PromptBasic) GetLatestCommittedAt() (v int64) { + if p == nil { + return + } + if !p.IsSetLatestCommittedAt() { + return PromptBasic_LatestCommittedAt_DEFAULT + } + return *p.LatestCommittedAt +} +func (p *PromptBasic) SetID(val *int64) { + p.ID = val +} +func (p *PromptBasic) SetWorkspaceID(val *int64) { + p.WorkspaceID = val +} +func (p *PromptBasic) SetPromptKey(val *string) { + p.PromptKey = val +} +func (p *PromptBasic) SetDisplayName(val *string) { + p.DisplayName = val +} +func (p *PromptBasic) SetDescription(val *string) { + p.Description = val +} +func (p *PromptBasic) SetLatestVersion(val *string) { + p.LatestVersion = val +} +func (p *PromptBasic) SetCreatedBy(val *string) { + p.CreatedBy = val +} +func (p *PromptBasic) SetUpdatedBy(val *string) { + p.UpdatedBy = val +} +func (p *PromptBasic) SetCreatedAt(val *int64) { + p.CreatedAt = val +} +func (p *PromptBasic) SetUpdatedAt(val *int64) { + p.UpdatedAt = val +} +func (p *PromptBasic) SetLatestCommittedAt(val *int64) { + p.LatestCommittedAt = val +} + +var fieldIDToName_PromptBasic = map[int16]string{ + 1: "id", + 2: "workspace_id", + 3: "prompt_key", + 4: "display_name", + 5: "description", + 6: "latest_version", + 7: "created_by", + 8: "updated_by", + 9: "created_at", + 10: "updated_at", + 11: "latest_committed_at", +} + +func (p *PromptBasic) IsSetID() bool { + return p.ID != nil +} + +func (p *PromptBasic) IsSetWorkspaceID() bool { + return p.WorkspaceID != nil +} + +func (p *PromptBasic) IsSetPromptKey() bool { + return p.PromptKey != nil +} + +func (p *PromptBasic) IsSetDisplayName() bool { + return p.DisplayName != nil +} + +func (p *PromptBasic) IsSetDescription() bool { + return p.Description != nil +} + +func (p *PromptBasic) IsSetLatestVersion() bool { + return p.LatestVersion != nil +} + +func (p *PromptBasic) IsSetCreatedBy() bool { + return p.CreatedBy != nil +} + +func (p *PromptBasic) IsSetUpdatedBy() bool { + return p.UpdatedBy != nil +} + +func (p *PromptBasic) IsSetCreatedAt() bool { + return p.CreatedAt != nil +} + +func (p *PromptBasic) IsSetUpdatedAt() bool { + return p.UpdatedAt != nil +} + +func (p *PromptBasic) IsSetLatestCommittedAt() bool { + return p.LatestCommittedAt != nil +} + +func (p *PromptBasic) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.I64 { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.I64 { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.STRING { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 4: + if fieldTypeId == thrift.STRING { + if err = p.ReadField4(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 5: + if fieldTypeId == thrift.STRING { + if err = p.ReadField5(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 6: + if fieldTypeId == thrift.STRING { + if err = p.ReadField6(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 7: + if fieldTypeId == thrift.STRING { + if err = p.ReadField7(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 8: + if fieldTypeId == thrift.STRING { + if err = p.ReadField8(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 9: + if fieldTypeId == thrift.I64 { + if err = p.ReadField9(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 10: + if fieldTypeId == thrift.I64 { + if err = p.ReadField10(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 11: + if fieldTypeId == thrift.I64 { + if err = p.ReadField11(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptBasic[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *PromptBasic) ReadField1(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.ID = _field + return nil +} +func (p *PromptBasic) ReadField2(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.WorkspaceID = _field + return nil +} +func (p *PromptBasic) ReadField3(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.PromptKey = _field + return nil +} +func (p *PromptBasic) ReadField4(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.DisplayName = _field + return nil +} +func (p *PromptBasic) ReadField5(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Description = _field + return nil +} +func (p *PromptBasic) ReadField6(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.LatestVersion = _field + return nil +} +func (p *PromptBasic) ReadField7(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.CreatedBy = _field + return nil +} +func (p *PromptBasic) ReadField8(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.UpdatedBy = _field + return nil +} +func (p *PromptBasic) ReadField9(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.CreatedAt = _field + return nil +} +func (p *PromptBasic) ReadField10(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.UpdatedAt = _field + return nil +} +func (p *PromptBasic) ReadField11(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.LatestCommittedAt = _field + return nil +} + +func (p *PromptBasic) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("PromptBasic"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } + if err = p.writeField4(oprot); err != nil { + fieldId = 4 + goto WriteFieldError + } + if err = p.writeField5(oprot); err != nil { + fieldId = 5 + goto WriteFieldError + } + if err = p.writeField6(oprot); err != nil { + fieldId = 6 + goto WriteFieldError + } + if err = p.writeField7(oprot); err != nil { + fieldId = 7 + goto WriteFieldError + } + if err = p.writeField8(oprot); err != nil { + fieldId = 8 + goto WriteFieldError + } + if err = p.writeField9(oprot); err != nil { + fieldId = 9 + goto WriteFieldError + } + if err = p.writeField10(oprot); err != nil { + fieldId = 10 + goto WriteFieldError + } + if err = p.writeField11(oprot); err != nil { + fieldId = 11 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *PromptBasic) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetID() { + if err = oprot.WriteFieldBegin("id", thrift.I64, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.ID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *PromptBasic) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetWorkspaceID() { + if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.WorkspaceID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} +func (p *PromptBasic) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetPromptKey() { + if err = oprot.WriteFieldBegin("prompt_key", thrift.STRING, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.PromptKey); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) +} +func (p *PromptBasic) writeField4(oprot thrift.TProtocol) (err error) { + if p.IsSetDisplayName() { + if err = oprot.WriteFieldBegin("display_name", thrift.STRING, 4); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.DisplayName); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) +} +func (p *PromptBasic) writeField5(oprot thrift.TProtocol) (err error) { + if p.IsSetDescription() { + if err = oprot.WriteFieldBegin("description", thrift.STRING, 5); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Description); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) +} +func (p *PromptBasic) writeField6(oprot thrift.TProtocol) (err error) { + if p.IsSetLatestVersion() { + if err = oprot.WriteFieldBegin("latest_version", thrift.STRING, 6); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.LatestVersion); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) +} +func (p *PromptBasic) writeField7(oprot thrift.TProtocol) (err error) { + if p.IsSetCreatedBy() { + if err = oprot.WriteFieldBegin("created_by", thrift.STRING, 7); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.CreatedBy); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 7 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) +} +func (p *PromptBasic) writeField8(oprot thrift.TProtocol) (err error) { + if p.IsSetUpdatedBy() { + if err = oprot.WriteFieldBegin("updated_by", thrift.STRING, 8); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.UpdatedBy); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 8 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 8 end error: ", p), err) +} +func (p *PromptBasic) writeField9(oprot thrift.TProtocol) (err error) { + if p.IsSetCreatedAt() { + if err = oprot.WriteFieldBegin("created_at", thrift.I64, 9); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.CreatedAt); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 9 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 9 end error: ", p), err) +} +func (p *PromptBasic) writeField10(oprot thrift.TProtocol) (err error) { + if p.IsSetUpdatedAt() { + if err = oprot.WriteFieldBegin("updated_at", thrift.I64, 10); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.UpdatedAt); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 10 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 10 end error: ", p), err) +} +func (p *PromptBasic) writeField11(oprot thrift.TProtocol) (err error) { + if p.IsSetLatestCommittedAt() { + if err = oprot.WriteFieldBegin("latest_committed_at", thrift.I64, 11); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.LatestCommittedAt); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 11 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 11 end error: ", p), err) +} + +func (p *PromptBasic) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("PromptBasic(%+v)", *p) + +} + +func (p *PromptBasic) DeepEqual(ano *PromptBasic) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.ID) { + return false + } + if !p.Field2DeepEqual(ano.WorkspaceID) { + return false + } + if !p.Field3DeepEqual(ano.PromptKey) { + return false + } + if !p.Field4DeepEqual(ano.DisplayName) { + return false + } + if !p.Field5DeepEqual(ano.Description) { + return false + } + if !p.Field6DeepEqual(ano.LatestVersion) { + return false + } + if !p.Field7DeepEqual(ano.CreatedBy) { + return false + } + if !p.Field8DeepEqual(ano.UpdatedBy) { + return false + } + if !p.Field9DeepEqual(ano.CreatedAt) { + return false + } + if !p.Field10DeepEqual(ano.UpdatedAt) { + return false + } + if !p.Field11DeepEqual(ano.LatestCommittedAt) { + return false + } + return true +} + +func (p *PromptBasic) Field1DeepEqual(src *int64) bool { + + if p.ID == src { + return true + } else if p.ID == nil || src == nil { + return false + } + if *p.ID != *src { + return false + } + return true +} +func (p *PromptBasic) Field2DeepEqual(src *int64) bool { + + if p.WorkspaceID == src { + return true + } else if p.WorkspaceID == nil || src == nil { + return false + } + if *p.WorkspaceID != *src { + return false + } + return true +} +func (p *PromptBasic) Field3DeepEqual(src *string) bool { + + if p.PromptKey == src { + return true + } else if p.PromptKey == nil || src == nil { + return false + } + if strings.Compare(*p.PromptKey, *src) != 0 { + return false + } + return true +} +func (p *PromptBasic) Field4DeepEqual(src *string) bool { + + if p.DisplayName == src { + return true + } else if p.DisplayName == nil || src == nil { + return false + } + if strings.Compare(*p.DisplayName, *src) != 0 { + return false + } + return true +} +func (p *PromptBasic) Field5DeepEqual(src *string) bool { + + if p.Description == src { + return true + } else if p.Description == nil || src == nil { + return false + } + if strings.Compare(*p.Description, *src) != 0 { + return false + } + return true +} +func (p *PromptBasic) Field6DeepEqual(src *string) bool { + + if p.LatestVersion == src { + return true + } else if p.LatestVersion == nil || src == nil { + return false + } + if strings.Compare(*p.LatestVersion, *src) != 0 { + return false + } + return true +} +func (p *PromptBasic) Field7DeepEqual(src *string) bool { + + if p.CreatedBy == src { + return true + } else if p.CreatedBy == nil || src == nil { + return false + } + if strings.Compare(*p.CreatedBy, *src) != 0 { + return false + } + return true +} +func (p *PromptBasic) Field8DeepEqual(src *string) bool { + + if p.UpdatedBy == src { + return true + } else if p.UpdatedBy == nil || src == nil { + return false + } + if strings.Compare(*p.UpdatedBy, *src) != 0 { + return false + } + return true +} +func (p *PromptBasic) Field9DeepEqual(src *int64) bool { + + if p.CreatedAt == src { + return true + } else if p.CreatedAt == nil || src == nil { + return false + } + if *p.CreatedAt != *src { + return false + } + return true +} +func (p *PromptBasic) Field10DeepEqual(src *int64) bool { + + if p.UpdatedAt == src { + return true + } else if p.UpdatedAt == nil || src == nil { + return false + } + if *p.UpdatedAt != *src { + return false + } + return true +} +func (p *PromptBasic) Field11DeepEqual(src *int64) bool { + + if p.LatestCommittedAt == src { + return true + } else if p.LatestCommittedAt == nil || src == nil { + return false + } + if *p.LatestCommittedAt != *src { + return false + } + return true +} + +type ListPromptBasicData struct { + // Prompt列表 + Prompts []*PromptBasic `thrift:"prompts,1,optional" frugal:"1,optional,list" form:"prompts" json:"prompts,omitempty" query:"prompts"` + Total *int32 `thrift:"total,2,optional" frugal:"2,optional,i32" form:"total" json:"total,omitempty" query:"total"` +} + +func NewListPromptBasicData() *ListPromptBasicData { + return &ListPromptBasicData{} +} + +func (p *ListPromptBasicData) InitDefault() { +} + +var ListPromptBasicData_Prompts_DEFAULT []*PromptBasic + +func (p *ListPromptBasicData) GetPrompts() (v []*PromptBasic) { + if p == nil { + return + } + if !p.IsSetPrompts() { + return ListPromptBasicData_Prompts_DEFAULT + } + return p.Prompts +} + +var ListPromptBasicData_Total_DEFAULT int32 + +func (p *ListPromptBasicData) GetTotal() (v int32) { + if p == nil { + return + } + if !p.IsSetTotal() { + return ListPromptBasicData_Total_DEFAULT + } + return *p.Total +} +func (p *ListPromptBasicData) SetPrompts(val []*PromptBasic) { + p.Prompts = val +} +func (p *ListPromptBasicData) SetTotal(val *int32) { + p.Total = val +} + +var fieldIDToName_ListPromptBasicData = map[int16]string{ + 1: "prompts", + 2: "total", +} + +func (p *ListPromptBasicData) IsSetPrompts() bool { + return p.Prompts != nil +} + +func (p *ListPromptBasicData) IsSetTotal() bool { + return p.Total != nil +} + +func (p *ListPromptBasicData) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.LIST { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.I32 { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListPromptBasicData[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *ListPromptBasicData) ReadField1(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*PromptBasic, 0, size) + values := make([]PromptBasic, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + + if err := _elem.Read(iprot); err != nil { + return err + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { + return err + } + p.Prompts = _field + return nil +} +func (p *ListPromptBasicData) ReadField2(iprot thrift.TProtocol) error { + + var _field *int32 + if v, err := iprot.ReadI32(); err != nil { + return err + } else { + _field = &v + } + p.Total = _field + return nil +} + +func (p *ListPromptBasicData) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("ListPromptBasicData"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *ListPromptBasicData) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetPrompts() { + if err = oprot.WriteFieldBegin("prompts", thrift.LIST, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Prompts)); err != nil { + return err + } + for _, v := range p.Prompts { + if err := v.Write(oprot); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *ListPromptBasicData) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetTotal() { + if err = oprot.WriteFieldBegin("total", thrift.I32, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(*p.Total); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} + +func (p *ListPromptBasicData) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("ListPromptBasicData(%+v)", *p) + +} + +func (p *ListPromptBasicData) DeepEqual(ano *ListPromptBasicData) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.Prompts) { + return false + } + if !p.Field2DeepEqual(ano.Total) { + return false + } + return true +} + +func (p *ListPromptBasicData) Field1DeepEqual(src []*PromptBasic) bool { + + if len(p.Prompts) != len(src) { + return false + } + for i, v := range p.Prompts { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } + return true +} +func (p *ListPromptBasicData) Field2DeepEqual(src *int32) bool { + + if p.Total == src { + return true + } else if p.Total == nil || src == nil { + return false + } + if *p.Total != *src { + return false + } + return true +} + +type PromptPublishInfo struct { + // 发布者 + Publisher string `thrift:"publisher,1" frugal:"1,default,string" form:"publisher" json:"publisher" query:"publisher"` + // 发布描述 + PublishDescription string `thrift:"publish_description,2" frugal:"2,default,string" form:"publish_description" json:"publish_description" query:"publish_description"` + // 发布时间 + PublishAt *int64 `thrift:"publish_at,3,optional" frugal:"3,optional,i64" json:"publish_at" form:"publish_at" query:"publish_at"` +} + +func NewPromptPublishInfo() *PromptPublishInfo { + return &PromptPublishInfo{} +} + +func (p *PromptPublishInfo) InitDefault() { +} + +func (p *PromptPublishInfo) GetPublisher() (v string) { + if p != nil { + return p.Publisher + } + return +} + +func (p *PromptPublishInfo) GetPublishDescription() (v string) { + if p != nil { + return p.PublishDescription + } + return +} + +var PromptPublishInfo_PublishAt_DEFAULT int64 + +func (p *PromptPublishInfo) GetPublishAt() (v int64) { + if p == nil { + return + } + if !p.IsSetPublishAt() { + return PromptPublishInfo_PublishAt_DEFAULT + } + return *p.PublishAt +} +func (p *PromptPublishInfo) SetPublisher(val string) { + p.Publisher = val +} +func (p *PromptPublishInfo) SetPublishDescription(val string) { + p.PublishDescription = val +} +func (p *PromptPublishInfo) SetPublishAt(val *int64) { + p.PublishAt = val +} + +var fieldIDToName_PromptPublishInfo = map[int16]string{ + 1: "publisher", + 2: "publish_description", + 3: "publish_at", +} + +func (p *PromptPublishInfo) IsSetPublishAt() bool { + return p.PublishAt != nil +} + +func (p *PromptPublishInfo) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.STRING { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.I64 { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptPublishInfo[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *PromptPublishInfo) ReadField1(iprot thrift.TProtocol) error { + + var _field string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = v + } + p.Publisher = _field + return nil +} +func (p *PromptPublishInfo) ReadField2(iprot thrift.TProtocol) error { + + var _field string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = v + } + p.PublishDescription = _field + return nil +} +func (p *PromptPublishInfo) ReadField3(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.PublishAt = _field + return nil +} + +func (p *PromptPublishInfo) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("PromptPublishInfo"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *PromptPublishInfo) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("publisher", thrift.STRING, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(p.Publisher); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *PromptPublishInfo) writeField2(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("publish_description", thrift.STRING, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(p.PublishDescription); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} +func (p *PromptPublishInfo) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetPublishAt() { + if err = oprot.WriteFieldBegin("publish_at", thrift.I64, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.PublishAt); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) +} + +func (p *PromptPublishInfo) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("PromptPublishInfo(%+v)", *p) + +} + +func (p *PromptPublishInfo) DeepEqual(ano *PromptPublishInfo) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.Publisher) { + return false + } + if !p.Field2DeepEqual(ano.PublishDescription) { + return false + } + if !p.Field3DeepEqual(ano.PublishAt) { + return false + } + return true +} + +func (p *PromptPublishInfo) Field1DeepEqual(src string) bool { + + if strings.Compare(p.Publisher, src) != 0 { + return false + } + return true +} +func (p *PromptPublishInfo) Field2DeepEqual(src string) bool { + + if strings.Compare(p.PublishDescription, src) != 0 { + return false + } + return true +} +func (p *PromptPublishInfo) Field3DeepEqual(src *int64) bool { + + if p.PublishAt == src { + return true + } else if p.PublishAt == nil || src == nil { + return false + } + if *p.PublishAt != *src { + return false + } + return true +} + +type ThinkingConfig struct { + // thinking内容的最大输出token + BudgetTokens *int64 `thrift:"budget_tokens,1,optional" frugal:"1,optional,i64" json:"budget_tokens" form:"budget_tokens" query:"budget_tokens"` + ThinkingOption *ThinkingOption `thrift:"thinking_option,2,optional" frugal:"2,optional,string" form:"thinking_option" json:"thinking_option,omitempty" query:"thinking_option"` + // 思考长度 + ReasoningEffort *ReasoningEffort `thrift:"reasoning_effort,3,optional" frugal:"3,optional,string" form:"reasoning_effort" json:"reasoning_effort,omitempty" query:"reasoning_effort"` +} + +func NewThinkingConfig() *ThinkingConfig { + return &ThinkingConfig{} +} + +func (p *ThinkingConfig) InitDefault() { +} + +var ThinkingConfig_BudgetTokens_DEFAULT int64 + +func (p *ThinkingConfig) GetBudgetTokens() (v int64) { + if p == nil { + return + } + if !p.IsSetBudgetTokens() { + return ThinkingConfig_BudgetTokens_DEFAULT + } + return *p.BudgetTokens +} + +var ThinkingConfig_ThinkingOption_DEFAULT ThinkingOption + +func (p *ThinkingConfig) GetThinkingOption() (v ThinkingOption) { + if p == nil { + return + } + if !p.IsSetThinkingOption() { + return ThinkingConfig_ThinkingOption_DEFAULT + } + return *p.ThinkingOption +} + +var ThinkingConfig_ReasoningEffort_DEFAULT ReasoningEffort + +func (p *ThinkingConfig) GetReasoningEffort() (v ReasoningEffort) { + if p == nil { + return + } + if !p.IsSetReasoningEffort() { + return ThinkingConfig_ReasoningEffort_DEFAULT + } + return *p.ReasoningEffort +} +func (p *ThinkingConfig) SetBudgetTokens(val *int64) { + p.BudgetTokens = val +} +func (p *ThinkingConfig) SetThinkingOption(val *ThinkingOption) { + p.ThinkingOption = val +} +func (p *ThinkingConfig) SetReasoningEffort(val *ReasoningEffort) { + p.ReasoningEffort = val +} + +var fieldIDToName_ThinkingConfig = map[int16]string{ + 1: "budget_tokens", + 2: "thinking_option", + 3: "reasoning_effort", +} + +func (p *ThinkingConfig) IsSetBudgetTokens() bool { + return p.BudgetTokens != nil +} + +func (p *ThinkingConfig) IsSetThinkingOption() bool { + return p.ThinkingOption != nil +} + +func (p *ThinkingConfig) IsSetReasoningEffort() bool { + return p.ReasoningEffort != nil +} + +func (p *ThinkingConfig) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.I64 { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.STRING { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.STRING { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ThinkingConfig[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *ThinkingConfig) ReadField1(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.BudgetTokens = _field + return nil +} +func (p *ThinkingConfig) ReadField2(iprot thrift.TProtocol) error { + + var _field *ThinkingOption + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.ThinkingOption = _field + return nil +} +func (p *ThinkingConfig) ReadField3(iprot thrift.TProtocol) error { + + var _field *ReasoningEffort + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.ReasoningEffort = _field + return nil +} + +func (p *ThinkingConfig) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("ThinkingConfig"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *ThinkingConfig) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetBudgetTokens() { + if err = oprot.WriteFieldBegin("budget_tokens", thrift.I64, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.BudgetTokens); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *ThinkingConfig) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetThinkingOption() { + if err = oprot.WriteFieldBegin("thinking_option", thrift.STRING, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.ThinkingOption); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} +func (p *ThinkingConfig) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetReasoningEffort() { + if err = oprot.WriteFieldBegin("reasoning_effort", thrift.STRING, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.ReasoningEffort); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) +} + +func (p *ThinkingConfig) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("ThinkingConfig(%+v)", *p) + +} + +func (p *ThinkingConfig) DeepEqual(ano *ThinkingConfig) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.BudgetTokens) { + return false + } + if !p.Field2DeepEqual(ano.ThinkingOption) { + return false + } + if !p.Field3DeepEqual(ano.ReasoningEffort) { + return false + } + return true +} + +func (p *ThinkingConfig) Field1DeepEqual(src *int64) bool { + + if p.BudgetTokens == src { + return true + } else if p.BudgetTokens == nil || src == nil { + return false + } + if *p.BudgetTokens != *src { + return false + } + return true +} +func (p *ThinkingConfig) Field2DeepEqual(src *ThinkingOption) bool { + + if p.ThinkingOption == src { + return true + } else if p.ThinkingOption == nil || src == nil { + return false + } + if strings.Compare(*p.ThinkingOption, *src) != 0 { + return false + } + return true +} +func (p *ThinkingConfig) Field3DeepEqual(src *ReasoningEffort) bool { + + if p.ReasoningEffort == src { + return true + } else if p.ReasoningEffort == nil || src == nil { + return false + } + if strings.Compare(*p.ReasoningEffort, *src) != 0 { + return false + } + return true +} + +type ModelConfig struct { + ModelID *int64 `thrift:"model_id,1,optional" frugal:"1,optional,i64" json:"model_id" form:"model_id" query:"model_id"` + MaxTokens *int32 `thrift:"max_tokens,2,optional" frugal:"2,optional,i32" form:"max_tokens" json:"max_tokens,omitempty" query:"max_tokens"` + Temperature *float64 `thrift:"temperature,3,optional" frugal:"3,optional,double" form:"temperature" json:"temperature,omitempty" query:"temperature"` + TopK *int32 `thrift:"top_k,4,optional" frugal:"4,optional,i32" form:"top_k" json:"top_k,omitempty" query:"top_k"` + TopP *float64 `thrift:"top_p,5,optional" frugal:"5,optional,double" form:"top_p" json:"top_p,omitempty" query:"top_p"` + PresencePenalty *float64 `thrift:"presence_penalty,6,optional" frugal:"6,optional,double" form:"presence_penalty" json:"presence_penalty,omitempty" query:"presence_penalty"` + FrequencyPenalty *float64 `thrift:"frequency_penalty,7,optional" frugal:"7,optional,double" form:"frequency_penalty" json:"frequency_penalty,omitempty" query:"frequency_penalty"` + JSONMode *bool `thrift:"json_mode,8,optional" frugal:"8,optional,bool" form:"json_mode" json:"json_mode,omitempty" query:"json_mode"` + Extra *string `thrift:"extra,9,optional" frugal:"9,optional,string" form:"extra" json:"extra,omitempty" query:"extra"` + Thinking *ThinkingConfig `thrift:"thinking,10,optional" frugal:"10,optional,ThinkingConfig" form:"thinking" json:"thinking,omitempty" query:"thinking"` + ParamConfigValues []*ParamConfigValue `thrift:"param_config_values,100,optional" frugal:"100,optional,list" form:"param_config_values" json:"param_config_values,omitempty" query:"param_config_values"` +} + +func NewModelConfig() *ModelConfig { + return &ModelConfig{} +} + +func (p *ModelConfig) InitDefault() { +} + +var ModelConfig_ModelID_DEFAULT int64 + +func (p *ModelConfig) GetModelID() (v int64) { + if p == nil { + return + } + if !p.IsSetModelID() { + return ModelConfig_ModelID_DEFAULT + } + return *p.ModelID +} + +var ModelConfig_MaxTokens_DEFAULT int32 + +func (p *ModelConfig) GetMaxTokens() (v int32) { + if p == nil { + return + } + if !p.IsSetMaxTokens() { + return ModelConfig_MaxTokens_DEFAULT + } + return *p.MaxTokens +} + +var ModelConfig_Temperature_DEFAULT float64 + +func (p *ModelConfig) GetTemperature() (v float64) { + if p == nil { + return + } + if !p.IsSetTemperature() { + return ModelConfig_Temperature_DEFAULT + } + return *p.Temperature +} + +var ModelConfig_TopK_DEFAULT int32 + +func (p *ModelConfig) GetTopK() (v int32) { + if p == nil { + return + } + if !p.IsSetTopK() { + return ModelConfig_TopK_DEFAULT + } + return *p.TopK +} + +var ModelConfig_TopP_DEFAULT float64 + +func (p *ModelConfig) GetTopP() (v float64) { + if p == nil { + return + } + if !p.IsSetTopP() { + return ModelConfig_TopP_DEFAULT + } + return *p.TopP +} + +var ModelConfig_PresencePenalty_DEFAULT float64 + +func (p *ModelConfig) GetPresencePenalty() (v float64) { + if p == nil { + return + } + if !p.IsSetPresencePenalty() { + return ModelConfig_PresencePenalty_DEFAULT + } + return *p.PresencePenalty +} + +var ModelConfig_FrequencyPenalty_DEFAULT float64 + +func (p *ModelConfig) GetFrequencyPenalty() (v float64) { + if p == nil { + return + } + if !p.IsSetFrequencyPenalty() { + return ModelConfig_FrequencyPenalty_DEFAULT + } + return *p.FrequencyPenalty +} + +var ModelConfig_JSONMode_DEFAULT bool + +func (p *ModelConfig) GetJSONMode() (v bool) { + if p == nil { + return + } + if !p.IsSetJSONMode() { + return ModelConfig_JSONMode_DEFAULT + } + return *p.JSONMode +} + +var ModelConfig_Extra_DEFAULT string + +func (p *ModelConfig) GetExtra() (v string) { + if p == nil { + return + } + if !p.IsSetExtra() { + return ModelConfig_Extra_DEFAULT + } + return *p.Extra +} + +var ModelConfig_Thinking_DEFAULT *ThinkingConfig + +func (p *ModelConfig) GetThinking() (v *ThinkingConfig) { + if p == nil { + return + } + if !p.IsSetThinking() { + return ModelConfig_Thinking_DEFAULT + } + return p.Thinking +} + +var ModelConfig_ParamConfigValues_DEFAULT []*ParamConfigValue + +func (p *ModelConfig) GetParamConfigValues() (v []*ParamConfigValue) { + if p == nil { + return + } + if !p.IsSetParamConfigValues() { + return ModelConfig_ParamConfigValues_DEFAULT + } + return p.ParamConfigValues +} +func (p *ModelConfig) SetModelID(val *int64) { + p.ModelID = val +} +func (p *ModelConfig) SetMaxTokens(val *int32) { + p.MaxTokens = val +} +func (p *ModelConfig) SetTemperature(val *float64) { + p.Temperature = val +} +func (p *ModelConfig) SetTopK(val *int32) { + p.TopK = val +} +func (p *ModelConfig) SetTopP(val *float64) { + p.TopP = val +} +func (p *ModelConfig) SetPresencePenalty(val *float64) { + p.PresencePenalty = val +} +func (p *ModelConfig) SetFrequencyPenalty(val *float64) { + p.FrequencyPenalty = val +} +func (p *ModelConfig) SetJSONMode(val *bool) { + p.JSONMode = val +} +func (p *ModelConfig) SetExtra(val *string) { + p.Extra = val +} +func (p *ModelConfig) SetThinking(val *ThinkingConfig) { + p.Thinking = val +} +func (p *ModelConfig) SetParamConfigValues(val []*ParamConfigValue) { + p.ParamConfigValues = val +} + +var fieldIDToName_ModelConfig = map[int16]string{ + 1: "model_id", + 2: "max_tokens", + 3: "temperature", + 4: "top_k", + 5: "top_p", + 6: "presence_penalty", + 7: "frequency_penalty", + 8: "json_mode", + 9: "extra", + 10: "thinking", + 100: "param_config_values", +} + +func (p *ModelConfig) IsSetModelID() bool { + return p.ModelID != nil +} + +func (p *ModelConfig) IsSetMaxTokens() bool { + return p.MaxTokens != nil +} + +func (p *ModelConfig) IsSetTemperature() bool { + return p.Temperature != nil +} + +func (p *ModelConfig) IsSetTopK() bool { + return p.TopK != nil +} + +func (p *ModelConfig) IsSetTopP() bool { + return p.TopP != nil +} + +func (p *ModelConfig) IsSetPresencePenalty() bool { + return p.PresencePenalty != nil +} + +func (p *ModelConfig) IsSetFrequencyPenalty() bool { + return p.FrequencyPenalty != nil +} + +func (p *ModelConfig) IsSetJSONMode() bool { + return p.JSONMode != nil +} + +func (p *ModelConfig) IsSetExtra() bool { + return p.Extra != nil +} + +func (p *ModelConfig) IsSetThinking() bool { + return p.Thinking != nil +} + +func (p *ModelConfig) IsSetParamConfigValues() bool { + return p.ParamConfigValues != nil +} + +func (p *ModelConfig) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.I64 { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.I32 { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.DOUBLE { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 4: + if fieldTypeId == thrift.I32 { + if err = p.ReadField4(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 5: + if fieldTypeId == thrift.DOUBLE { + if err = p.ReadField5(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 6: + if fieldTypeId == thrift.DOUBLE { + if err = p.ReadField6(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 7: + if fieldTypeId == thrift.DOUBLE { + if err = p.ReadField7(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 8: + if fieldTypeId == thrift.BOOL { + if err = p.ReadField8(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 9: + if fieldTypeId == thrift.STRING { + if err = p.ReadField9(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 10: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField10(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 100: + if fieldTypeId == thrift.LIST { + if err = p.ReadField100(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ModelConfig[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *ModelConfig) ReadField1(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.ModelID = _field + return nil +} +func (p *ModelConfig) ReadField2(iprot thrift.TProtocol) error { + + var _field *int32 + if v, err := iprot.ReadI32(); err != nil { + return err + } else { + _field = &v + } + p.MaxTokens = _field + return nil +} +func (p *ModelConfig) ReadField3(iprot thrift.TProtocol) error { + + var _field *float64 + if v, err := iprot.ReadDouble(); err != nil { + return err + } else { + _field = &v + } + p.Temperature = _field + return nil +} +func (p *ModelConfig) ReadField4(iprot thrift.TProtocol) error { + + var _field *int32 + if v, err := iprot.ReadI32(); err != nil { + return err + } else { + _field = &v + } + p.TopK = _field + return nil +} +func (p *ModelConfig) ReadField5(iprot thrift.TProtocol) error { + + var _field *float64 + if v, err := iprot.ReadDouble(); err != nil { + return err + } else { + _field = &v + } + p.TopP = _field + return nil +} +func (p *ModelConfig) ReadField6(iprot thrift.TProtocol) error { + + var _field *float64 + if v, err := iprot.ReadDouble(); err != nil { + return err + } else { + _field = &v + } + p.PresencePenalty = _field + return nil +} +func (p *ModelConfig) ReadField7(iprot thrift.TProtocol) error { + + var _field *float64 + if v, err := iprot.ReadDouble(); err != nil { + return err + } else { + _field = &v + } + p.FrequencyPenalty = _field + return nil +} +func (p *ModelConfig) ReadField8(iprot thrift.TProtocol) error { + + var _field *bool + if v, err := iprot.ReadBool(); err != nil { + return err + } else { + _field = &v + } + p.JSONMode = _field + return nil +} +func (p *ModelConfig) ReadField9(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Extra = _field + return nil +} +func (p *ModelConfig) ReadField10(iprot thrift.TProtocol) error { + _field := NewThinkingConfig() + if err := _field.Read(iprot); err != nil { + return err + } + p.Thinking = _field + return nil +} +func (p *ModelConfig) ReadField100(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*ParamConfigValue, 0, size) + values := make([]ParamConfigValue, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + + if err := _elem.Read(iprot); err != nil { + return err + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { + return err + } + p.ParamConfigValues = _field + return nil +} + +func (p *ModelConfig) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("ModelConfig"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } + if err = p.writeField4(oprot); err != nil { + fieldId = 4 + goto WriteFieldError + } + if err = p.writeField5(oprot); err != nil { + fieldId = 5 + goto WriteFieldError + } + if err = p.writeField6(oprot); err != nil { + fieldId = 6 + goto WriteFieldError + } + if err = p.writeField7(oprot); err != nil { + fieldId = 7 + goto WriteFieldError + } + if err = p.writeField8(oprot); err != nil { + fieldId = 8 + goto WriteFieldError + } + if err = p.writeField9(oprot); err != nil { + fieldId = 9 + goto WriteFieldError + } + if err = p.writeField10(oprot); err != nil { + fieldId = 10 + goto WriteFieldError + } + if err = p.writeField100(oprot); err != nil { + fieldId = 100 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *ModelConfig) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetModelID() { + if err = oprot.WriteFieldBegin("model_id", thrift.I64, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.ModelID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *ModelConfig) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetMaxTokens() { + if err = oprot.WriteFieldBegin("max_tokens", thrift.I32, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(*p.MaxTokens); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} +func (p *ModelConfig) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetTemperature() { + if err = oprot.WriteFieldBegin("temperature", thrift.DOUBLE, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteDouble(*p.Temperature); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) +} +func (p *ModelConfig) writeField4(oprot thrift.TProtocol) (err error) { + if p.IsSetTopK() { + if err = oprot.WriteFieldBegin("top_k", thrift.I32, 4); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(*p.TopK); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) +} +func (p *ModelConfig) writeField5(oprot thrift.TProtocol) (err error) { + if p.IsSetTopP() { + if err = oprot.WriteFieldBegin("top_p", thrift.DOUBLE, 5); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteDouble(*p.TopP); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) +} +func (p *ModelConfig) writeField6(oprot thrift.TProtocol) (err error) { + if p.IsSetPresencePenalty() { + if err = oprot.WriteFieldBegin("presence_penalty", thrift.DOUBLE, 6); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteDouble(*p.PresencePenalty); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) +} +func (p *ModelConfig) writeField7(oprot thrift.TProtocol) (err error) { + if p.IsSetFrequencyPenalty() { + if err = oprot.WriteFieldBegin("frequency_penalty", thrift.DOUBLE, 7); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteDouble(*p.FrequencyPenalty); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 7 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) +} +func (p *ModelConfig) writeField8(oprot thrift.TProtocol) (err error) { + if p.IsSetJSONMode() { + if err = oprot.WriteFieldBegin("json_mode", thrift.BOOL, 8); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteBool(*p.JSONMode); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 8 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 8 end error: ", p), err) +} +func (p *ModelConfig) writeField9(oprot thrift.TProtocol) (err error) { + if p.IsSetExtra() { + if err = oprot.WriteFieldBegin("extra", thrift.STRING, 9); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Extra); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 9 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 9 end error: ", p), err) +} +func (p *ModelConfig) writeField10(oprot thrift.TProtocol) (err error) { + if p.IsSetThinking() { + if err = oprot.WriteFieldBegin("thinking", thrift.STRUCT, 10); err != nil { + goto WriteFieldBeginError + } + if err := p.Thinking.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 10 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 10 end error: ", p), err) +} +func (p *ModelConfig) writeField100(oprot thrift.TProtocol) (err error) { + if p.IsSetParamConfigValues() { + if err = oprot.WriteFieldBegin("param_config_values", thrift.LIST, 100); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.ParamConfigValues)); err != nil { + return err + } + for _, v := range p.ParamConfigValues { + if err := v.Write(oprot); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 100 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 100 end error: ", p), err) +} + +func (p *ModelConfig) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("ModelConfig(%+v)", *p) + +} + +func (p *ModelConfig) DeepEqual(ano *ModelConfig) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.ModelID) { + return false + } + if !p.Field2DeepEqual(ano.MaxTokens) { + return false + } + if !p.Field3DeepEqual(ano.Temperature) { + return false + } + if !p.Field4DeepEqual(ano.TopK) { + return false + } + if !p.Field5DeepEqual(ano.TopP) { + return false + } + if !p.Field6DeepEqual(ano.PresencePenalty) { + return false + } + if !p.Field7DeepEqual(ano.FrequencyPenalty) { + return false + } + if !p.Field8DeepEqual(ano.JSONMode) { + return false + } + if !p.Field9DeepEqual(ano.Extra) { + return false + } + if !p.Field10DeepEqual(ano.Thinking) { + return false + } + if !p.Field100DeepEqual(ano.ParamConfigValues) { + return false + } + return true +} + +func (p *ModelConfig) Field1DeepEqual(src *int64) bool { + + if p.ModelID == src { + return true + } else if p.ModelID == nil || src == nil { + return false + } + if *p.ModelID != *src { + return false + } + return true +} +func (p *ModelConfig) Field2DeepEqual(src *int32) bool { + + if p.MaxTokens == src { + return true + } else if p.MaxTokens == nil || src == nil { + return false + } + if *p.MaxTokens != *src { + return false + } + return true +} +func (p *ModelConfig) Field3DeepEqual(src *float64) bool { + + if p.Temperature == src { + return true + } else if p.Temperature == nil || src == nil { + return false + } + if *p.Temperature != *src { + return false + } + return true +} +func (p *ModelConfig) Field4DeepEqual(src *int32) bool { + + if p.TopK == src { + return true + } else if p.TopK == nil || src == nil { + return false + } + if *p.TopK != *src { + return false + } + return true +} +func (p *ModelConfig) Field5DeepEqual(src *float64) bool { + + if p.TopP == src { + return true + } else if p.TopP == nil || src == nil { + return false + } + if *p.TopP != *src { + return false + } + return true +} +func (p *ModelConfig) Field6DeepEqual(src *float64) bool { + + if p.PresencePenalty == src { + return true + } else if p.PresencePenalty == nil || src == nil { + return false + } + if *p.PresencePenalty != *src { + return false + } + return true +} +func (p *ModelConfig) Field7DeepEqual(src *float64) bool { + + if p.FrequencyPenalty == src { + return true + } else if p.FrequencyPenalty == nil || src == nil { + return false + } + if *p.FrequencyPenalty != *src { + return false + } + return true +} +func (p *ModelConfig) Field8DeepEqual(src *bool) bool { + + if p.JSONMode == src { + return true + } else if p.JSONMode == nil || src == nil { + return false + } + if *p.JSONMode != *src { + return false + } + return true +} +func (p *ModelConfig) Field9DeepEqual(src *string) bool { + + if p.Extra == src { + return true + } else if p.Extra == nil || src == nil { + return false + } + if strings.Compare(*p.Extra, *src) != 0 { + return false + } + return true +} +func (p *ModelConfig) Field10DeepEqual(src *ThinkingConfig) bool { + + if !p.Thinking.DeepEqual(src) { + return false + } + return true +} +func (p *ModelConfig) Field100DeepEqual(src []*ParamConfigValue) bool { + + if len(p.ParamConfigValues) != len(src) { + return false + } + for i, v := range p.ParamConfigValues { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } + return true +} + +type ResponseAPIConfig struct { + // 上一次响应的ID + PreviousResponseID *string `thrift:"previous_response_id,1,optional" frugal:"1,optional,string" form:"previous_response_id" json:"previous_response_id,omitempty" query:"previous_response_id"` + // 是否开启缓存 + EnableCaching *bool `thrift:"enable_caching,2,optional" frugal:"2,optional,bool" form:"enable_caching" json:"enable_caching,omitempty" query:"enable_caching"` + // 一轮会话的唯一标识 + SessionID *string `thrift:"session_id,3,optional" frugal:"3,optional,string" form:"session_id" json:"session_id,omitempty" query:"session_id"` +} + +func NewResponseAPIConfig() *ResponseAPIConfig { + return &ResponseAPIConfig{} +} + +func (p *ResponseAPIConfig) InitDefault() { +} + +var ResponseAPIConfig_PreviousResponseID_DEFAULT string + +func (p *ResponseAPIConfig) GetPreviousResponseID() (v string) { + if p == nil { + return + } + if !p.IsSetPreviousResponseID() { + return ResponseAPIConfig_PreviousResponseID_DEFAULT + } + return *p.PreviousResponseID +} + +var ResponseAPIConfig_EnableCaching_DEFAULT bool + +func (p *ResponseAPIConfig) GetEnableCaching() (v bool) { + if p == nil { + return + } + if !p.IsSetEnableCaching() { + return ResponseAPIConfig_EnableCaching_DEFAULT + } + return *p.EnableCaching +} + +var ResponseAPIConfig_SessionID_DEFAULT string + +func (p *ResponseAPIConfig) GetSessionID() (v string) { + if p == nil { + return + } + if !p.IsSetSessionID() { + return ResponseAPIConfig_SessionID_DEFAULT + } + return *p.SessionID +} +func (p *ResponseAPIConfig) SetPreviousResponseID(val *string) { + p.PreviousResponseID = val +} +func (p *ResponseAPIConfig) SetEnableCaching(val *bool) { + p.EnableCaching = val +} +func (p *ResponseAPIConfig) SetSessionID(val *string) { + p.SessionID = val +} + +var fieldIDToName_ResponseAPIConfig = map[int16]string{ + 1: "previous_response_id", + 2: "enable_caching", + 3: "session_id", +} + +func (p *ResponseAPIConfig) IsSetPreviousResponseID() bool { + return p.PreviousResponseID != nil +} + +func (p *ResponseAPIConfig) IsSetEnableCaching() bool { + return p.EnableCaching != nil +} + +func (p *ResponseAPIConfig) IsSetSessionID() bool { + return p.SessionID != nil +} + +func (p *ResponseAPIConfig) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.BOOL { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.STRING { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ResponseAPIConfig[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *ResponseAPIConfig) ReadField1(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.PreviousResponseID = _field + return nil +} +func (p *ResponseAPIConfig) ReadField2(iprot thrift.TProtocol) error { + + var _field *bool + if v, err := iprot.ReadBool(); err != nil { + return err + } else { + _field = &v + } + p.EnableCaching = _field + return nil +} +func (p *ResponseAPIConfig) ReadField3(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.SessionID = _field + return nil +} + +func (p *ResponseAPIConfig) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("ResponseAPIConfig"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *ResponseAPIConfig) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetPreviousResponseID() { + if err = oprot.WriteFieldBegin("previous_response_id", thrift.STRING, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.PreviousResponseID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *ResponseAPIConfig) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetEnableCaching() { + if err = oprot.WriteFieldBegin("enable_caching", thrift.BOOL, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteBool(*p.EnableCaching); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} +func (p *ResponseAPIConfig) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetSessionID() { + if err = oprot.WriteFieldBegin("session_id", thrift.STRING, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.SessionID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) +} + +func (p *ResponseAPIConfig) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("ResponseAPIConfig(%+v)", *p) + +} + +func (p *ResponseAPIConfig) DeepEqual(ano *ResponseAPIConfig) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.PreviousResponseID) { + return false + } + if !p.Field2DeepEqual(ano.EnableCaching) { + return false + } + if !p.Field3DeepEqual(ano.SessionID) { + return false + } + return true +} + +func (p *ResponseAPIConfig) Field1DeepEqual(src *string) bool { + + if p.PreviousResponseID == src { + return true + } else if p.PreviousResponseID == nil || src == nil { + return false + } + if strings.Compare(*p.PreviousResponseID, *src) != 0 { + return false + } + return true +} +func (p *ResponseAPIConfig) Field2DeepEqual(src *bool) bool { + + if p.EnableCaching == src { + return true + } else if p.EnableCaching == nil || src == nil { + return false + } + if *p.EnableCaching != *src { + return false + } + return true +} +func (p *ResponseAPIConfig) Field3DeepEqual(src *string) bool { + + if p.SessionID == src { + return true + } else if p.SessionID == nil || src == nil { + return false + } + if strings.Compare(*p.SessionID, *src) != 0 { + return false + } + return true +} + +type ParamConfigValue struct { + // 传给下游模型的key,与ParamSchema.name对齐 + Name *string `thrift:"name,1,optional" frugal:"1,optional,string" form:"name" json:"name,omitempty" query:"name"` + // 展示名称 + Label *string `thrift:"label,2,optional" frugal:"2,optional,string" form:"label" json:"label,omitempty" query:"label"` + // 传给下游模型的value,与ParamSchema.options对齐 + Value *ParamOption `thrift:"value,3,optional" frugal:"3,optional,ParamOption" form:"value" json:"value,omitempty" query:"value"` +} + +func NewParamConfigValue() *ParamConfigValue { + return &ParamConfigValue{} +} + +func (p *ParamConfigValue) InitDefault() { +} + +var ParamConfigValue_Name_DEFAULT string + +func (p *ParamConfigValue) GetName() (v string) { + if p == nil { + return + } + if !p.IsSetName() { + return ParamConfigValue_Name_DEFAULT + } + return *p.Name +} + +var ParamConfigValue_Label_DEFAULT string + +func (p *ParamConfigValue) GetLabel() (v string) { + if p == nil { + return + } + if !p.IsSetLabel() { + return ParamConfigValue_Label_DEFAULT + } + return *p.Label +} + +var ParamConfigValue_Value_DEFAULT *ParamOption + +func (p *ParamConfigValue) GetValue() (v *ParamOption) { + if p == nil { + return + } + if !p.IsSetValue() { + return ParamConfigValue_Value_DEFAULT + } + return p.Value +} +func (p *ParamConfigValue) SetName(val *string) { + p.Name = val +} +func (p *ParamConfigValue) SetLabel(val *string) { + p.Label = val +} +func (p *ParamConfigValue) SetValue(val *ParamOption) { + p.Value = val +} + +var fieldIDToName_ParamConfigValue = map[int16]string{ + 1: "name", + 2: "label", + 3: "value", +} + +func (p *ParamConfigValue) IsSetName() bool { + return p.Name != nil +} + +func (p *ParamConfigValue) IsSetLabel() bool { + return p.Label != nil +} + +func (p *ParamConfigValue) IsSetValue() bool { + return p.Value != nil +} + +func (p *ParamConfigValue) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.STRING { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ParamConfigValue[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *ParamConfigValue) ReadField1(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Name = _field + return nil +} +func (p *ParamConfigValue) ReadField2(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Label = _field + return nil +} +func (p *ParamConfigValue) ReadField3(iprot thrift.TProtocol) error { + _field := NewParamOption() + if err := _field.Read(iprot); err != nil { + return err + } + p.Value = _field + return nil +} + +func (p *ParamConfigValue) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("ParamConfigValue"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *ParamConfigValue) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetName() { + if err = oprot.WriteFieldBegin("name", thrift.STRING, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Name); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *ParamConfigValue) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetLabel() { + if err = oprot.WriteFieldBegin("label", thrift.STRING, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Label); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} +func (p *ParamConfigValue) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetValue() { + if err = oprot.WriteFieldBegin("value", thrift.STRUCT, 3); err != nil { + goto WriteFieldBeginError + } + if err := p.Value.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) +} + +func (p *ParamConfigValue) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("ParamConfigValue(%+v)", *p) + +} + +func (p *ParamConfigValue) DeepEqual(ano *ParamConfigValue) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.Name) { + return false + } + if !p.Field2DeepEqual(ano.Label) { + return false + } + if !p.Field3DeepEqual(ano.Value) { + return false + } + return true +} + +func (p *ParamConfigValue) Field1DeepEqual(src *string) bool { + + if p.Name == src { + return true + } else if p.Name == nil || src == nil { + return false + } + if strings.Compare(*p.Name, *src) != 0 { + return false + } + return true +} +func (p *ParamConfigValue) Field2DeepEqual(src *string) bool { + + if p.Label == src { + return true + } else if p.Label == nil || src == nil { + return false + } + if strings.Compare(*p.Label, *src) != 0 { + return false + } + return true +} +func (p *ParamConfigValue) Field3DeepEqual(src *ParamOption) bool { + + if !p.Value.DeepEqual(src) { + return false + } + return true +} + +type ParamOption struct { + // 实际值 + Value *string `thrift:"value,1,optional" frugal:"1,optional,string" form:"value" json:"value,omitempty" query:"value"` + // 展示值 + Label *string `thrift:"label,2,optional" frugal:"2,optional,string" form:"label" json:"label,omitempty" query:"label"` +} + +func NewParamOption() *ParamOption { + return &ParamOption{} +} + +func (p *ParamOption) InitDefault() { +} + +var ParamOption_Value_DEFAULT string + +func (p *ParamOption) GetValue() (v string) { + if p == nil { + return + } + if !p.IsSetValue() { + return ParamOption_Value_DEFAULT + } + return *p.Value +} + +var ParamOption_Label_DEFAULT string + +func (p *ParamOption) GetLabel() (v string) { + if p == nil { + return + } + if !p.IsSetLabel() { + return ParamOption_Label_DEFAULT + } + return *p.Label +} +func (p *ParamOption) SetValue(val *string) { + p.Value = val +} +func (p *ParamOption) SetLabel(val *string) { + p.Label = val +} + +var fieldIDToName_ParamOption = map[int16]string{ + 1: "value", + 2: "label", +} + +func (p *ParamOption) IsSetValue() bool { + return p.Value != nil +} + +func (p *ParamOption) IsSetLabel() bool { + return p.Label != nil +} + +func (p *ParamOption) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.STRING { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ParamOption[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *ParamOption) ReadField1(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Value = _field + return nil +} +func (p *ParamOption) ReadField2(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Label = _field + return nil +} + +func (p *ParamOption) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("ParamOption"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *ParamOption) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetValue() { + if err = oprot.WriteFieldBegin("value", thrift.STRING, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Value); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *ParamOption) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetLabel() { + if err = oprot.WriteFieldBegin("label", thrift.STRING, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Label); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} + +func (p *ParamOption) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("ParamOption(%+v)", *p) + +} + +func (p *ParamOption) DeepEqual(ano *ParamOption) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.Value) { + return false + } + if !p.Field2DeepEqual(ano.Label) { + return false + } + return true +} + +func (p *ParamOption) Field1DeepEqual(src *string) bool { + + if p.Value == src { + return true + } else if p.Value == nil || src == nil { + return false + } + if strings.Compare(*p.Value, *src) != 0 { + return false + } + return true +} +func (p *ParamOption) Field2DeepEqual(src *string) bool { + + if p.Label == src { + return true + } else if p.Label == nil || src == nil { + return false + } + if strings.Compare(*p.Label, *src) != 0 { + return false + } + return true +} + +type ExecuteData struct { + // 消息 + Message *Message `thrift:"message,1,optional" frugal:"1,optional,Message" form:"message" json:"message,omitempty" query:"message"` + // 结束原因 + FinishReason *string `thrift:"finish_reason,2,optional" frugal:"2,optional,string" form:"finish_reason" json:"finish_reason,omitempty" query:"finish_reason"` + // token消耗 + Usage *TokenUsage `thrift:"usage,3,optional" frugal:"3,optional,TokenUsage" form:"usage" json:"usage,omitempty" query:"usage"` +} + +func NewExecuteData() *ExecuteData { + return &ExecuteData{} +} + +func (p *ExecuteData) InitDefault() { +} + +var ExecuteData_Message_DEFAULT *Message + +func (p *ExecuteData) GetMessage() (v *Message) { + if p == nil { + return + } + if !p.IsSetMessage() { + return ExecuteData_Message_DEFAULT + } + return p.Message +} + +var ExecuteData_FinishReason_DEFAULT string + +func (p *ExecuteData) GetFinishReason() (v string) { + if p == nil { + return + } + if !p.IsSetFinishReason() { + return ExecuteData_FinishReason_DEFAULT + } + return *p.FinishReason +} + +var ExecuteData_Usage_DEFAULT *TokenUsage + +func (p *ExecuteData) GetUsage() (v *TokenUsage) { + if p == nil { + return + } + if !p.IsSetUsage() { + return ExecuteData_Usage_DEFAULT + } + return p.Usage +} +func (p *ExecuteData) SetMessage(val *Message) { + p.Message = val +} +func (p *ExecuteData) SetFinishReason(val *string) { + p.FinishReason = val +} +func (p *ExecuteData) SetUsage(val *TokenUsage) { + p.Usage = val +} + +var fieldIDToName_ExecuteData = map[int16]string{ + 1: "message", + 2: "finish_reason", + 3: "usage", +} + +func (p *ExecuteData) IsSetMessage() bool { + return p.Message != nil +} + +func (p *ExecuteData) IsSetFinishReason() bool { + return p.FinishReason != nil +} + +func (p *ExecuteData) IsSetUsage() bool { + return p.Usage != nil +} + +func (p *ExecuteData) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.STRING { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExecuteData[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *ExecuteData) ReadField1(iprot thrift.TProtocol) error { + _field := NewMessage() + if err := _field.Read(iprot); err != nil { + return err + } + p.Message = _field + return nil +} +func (p *ExecuteData) ReadField2(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.FinishReason = _field + return nil +} +func (p *ExecuteData) ReadField3(iprot thrift.TProtocol) error { + _field := NewTokenUsage() + if err := _field.Read(iprot); err != nil { + return err + } + p.Usage = _field + return nil +} + +func (p *ExecuteData) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("ExecuteData"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *ExecuteData) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetMessage() { + if err = oprot.WriteFieldBegin("message", thrift.STRUCT, 1); err != nil { + goto WriteFieldBeginError + } + if err := p.Message.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *ExecuteData) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetFinishReason() { + if err = oprot.WriteFieldBegin("finish_reason", thrift.STRING, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.FinishReason); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} +func (p *ExecuteData) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetUsage() { + if err = oprot.WriteFieldBegin("usage", thrift.STRUCT, 3); err != nil { + goto WriteFieldBeginError + } + if err := p.Usage.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) +} + +func (p *ExecuteData) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("ExecuteData(%+v)", *p) + +} + +func (p *ExecuteData) DeepEqual(ano *ExecuteData) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.Message) { + return false + } + if !p.Field2DeepEqual(ano.FinishReason) { + return false + } + if !p.Field3DeepEqual(ano.Usage) { + return false + } + return true +} + +func (p *ExecuteData) Field1DeepEqual(src *Message) bool { + + if !p.Message.DeepEqual(src) { + return false + } + return true +} +func (p *ExecuteData) Field2DeepEqual(src *string) bool { + + if p.FinishReason == src { + return true + } else if p.FinishReason == nil || src == nil { + return false + } + if strings.Compare(*p.FinishReason, *src) != 0 { + return false + } + return true +} +func (p *ExecuteData) Field3DeepEqual(src *TokenUsage) bool { + + if !p.Usage.DeepEqual(src) { + return false + } + return true +} + +type ExecuteStreamingData struct { + Code *int32 `thrift:"code,1,optional" frugal:"1,optional,i32" form:"code" json:"code,omitempty" query:"code"` + Msg *string `thrift:"msg,2,optional" frugal:"2,optional,string" form:"msg" json:"msg,omitempty" query:"msg"` + // 消息 + Message *Message `thrift:"message,3,optional" frugal:"3,optional,Message" form:"message" json:"message,omitempty" query:"message"` + // 结束原因 + FinishReason *string `thrift:"finish_reason,4,optional" frugal:"4,optional,string" form:"finish_reason" json:"finish_reason,omitempty" query:"finish_reason"` + // token消耗 + Usage *TokenUsage `thrift:"usage,5,optional" frugal:"5,optional,TokenUsage" form:"usage" json:"usage,omitempty" query:"usage"` +} + +func NewExecuteStreamingData() *ExecuteStreamingData { + return &ExecuteStreamingData{} +} + +func (p *ExecuteStreamingData) InitDefault() { +} + +var ExecuteStreamingData_Code_DEFAULT int32 + +func (p *ExecuteStreamingData) GetCode() (v int32) { + if p == nil { + return + } + if !p.IsSetCode() { + return ExecuteStreamingData_Code_DEFAULT + } + return *p.Code +} + +var ExecuteStreamingData_Msg_DEFAULT string + +func (p *ExecuteStreamingData) GetMsg() (v string) { + if p == nil { + return + } + if !p.IsSetMsg() { + return ExecuteStreamingData_Msg_DEFAULT + } + return *p.Msg +} + +var ExecuteStreamingData_Message_DEFAULT *Message + +func (p *ExecuteStreamingData) GetMessage() (v *Message) { + if p == nil { + return + } + if !p.IsSetMessage() { + return ExecuteStreamingData_Message_DEFAULT + } + return p.Message +} + +var ExecuteStreamingData_FinishReason_DEFAULT string + +func (p *ExecuteStreamingData) GetFinishReason() (v string) { + if p == nil { + return + } + if !p.IsSetFinishReason() { + return ExecuteStreamingData_FinishReason_DEFAULT + } + return *p.FinishReason +} + +var ExecuteStreamingData_Usage_DEFAULT *TokenUsage + +func (p *ExecuteStreamingData) GetUsage() (v *TokenUsage) { + if p == nil { + return + } + if !p.IsSetUsage() { + return ExecuteStreamingData_Usage_DEFAULT + } + return p.Usage +} +func (p *ExecuteStreamingData) SetCode(val *int32) { + p.Code = val +} +func (p *ExecuteStreamingData) SetMsg(val *string) { + p.Msg = val +} +func (p *ExecuteStreamingData) SetMessage(val *Message) { + p.Message = val +} +func (p *ExecuteStreamingData) SetFinishReason(val *string) { + p.FinishReason = val +} +func (p *ExecuteStreamingData) SetUsage(val *TokenUsage) { + p.Usage = val +} + +var fieldIDToName_ExecuteStreamingData = map[int16]string{ + 1: "code", + 2: "msg", + 3: "message", + 4: "finish_reason", + 5: "usage", +} + +func (p *ExecuteStreamingData) IsSetCode() bool { + return p.Code != nil +} + +func (p *ExecuteStreamingData) IsSetMsg() bool { + return p.Msg != nil +} + +func (p *ExecuteStreamingData) IsSetMessage() bool { + return p.Message != nil +} + +func (p *ExecuteStreamingData) IsSetFinishReason() bool { + return p.FinishReason != nil +} + +func (p *ExecuteStreamingData) IsSetUsage() bool { + return p.Usage != nil +} + +func (p *ExecuteStreamingData) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.I32 { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.STRING { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 4: + if fieldTypeId == thrift.STRING { + if err = p.ReadField4(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 5: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField5(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExecuteStreamingData[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *ExecuteStreamingData) ReadField1(iprot thrift.TProtocol) error { + + var _field *int32 + if v, err := iprot.ReadI32(); err != nil { + return err + } else { + _field = &v + } + p.Code = _field + return nil +} +func (p *ExecuteStreamingData) ReadField2(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Msg = _field + return nil +} +func (p *ExecuteStreamingData) ReadField3(iprot thrift.TProtocol) error { + _field := NewMessage() + if err := _field.Read(iprot); err != nil { + return err + } + p.Message = _field + return nil +} +func (p *ExecuteStreamingData) ReadField4(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.FinishReason = _field + return nil +} +func (p *ExecuteStreamingData) ReadField5(iprot thrift.TProtocol) error { + _field := NewTokenUsage() + if err := _field.Read(iprot); err != nil { + return err + } + p.Usage = _field + return nil +} + +func (p *ExecuteStreamingData) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("ExecuteStreamingData"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } + if err = p.writeField4(oprot); err != nil { + fieldId = 4 + goto WriteFieldError + } + if err = p.writeField5(oprot); err != nil { + fieldId = 5 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *ExecuteStreamingData) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetCode() { + if err = oprot.WriteFieldBegin("code", thrift.I32, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(*p.Code); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *ExecuteStreamingData) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetMsg() { + if err = oprot.WriteFieldBegin("msg", thrift.STRING, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Msg); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} +func (p *ExecuteStreamingData) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetMessage() { + if err = oprot.WriteFieldBegin("message", thrift.STRUCT, 3); err != nil { + goto WriteFieldBeginError + } + if err := p.Message.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) +} +func (p *ExecuteStreamingData) writeField4(oprot thrift.TProtocol) (err error) { + if p.IsSetFinishReason() { + if err = oprot.WriteFieldBegin("finish_reason", thrift.STRING, 4); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.FinishReason); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) +} +func (p *ExecuteStreamingData) writeField5(oprot thrift.TProtocol) (err error) { + if p.IsSetUsage() { + if err = oprot.WriteFieldBegin("usage", thrift.STRUCT, 5); err != nil { + goto WriteFieldBeginError + } + if err := p.Usage.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) +} + +func (p *ExecuteStreamingData) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("ExecuteStreamingData(%+v)", *p) + +} + +func (p *ExecuteStreamingData) DeepEqual(ano *ExecuteStreamingData) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.Code) { + return false + } + if !p.Field2DeepEqual(ano.Msg) { + return false + } + if !p.Field3DeepEqual(ano.Message) { + return false + } + if !p.Field4DeepEqual(ano.FinishReason) { + return false + } + if !p.Field5DeepEqual(ano.Usage) { + return false + } + return true +} + +func (p *ExecuteStreamingData) Field1DeepEqual(src *int32) bool { + + if p.Code == src { + return true + } else if p.Code == nil || src == nil { + return false + } + if *p.Code != *src { + return false + } + return true +} +func (p *ExecuteStreamingData) Field2DeepEqual(src *string) bool { + + if p.Msg == src { + return true + } else if p.Msg == nil || src == nil { + return false + } + if strings.Compare(*p.Msg, *src) != 0 { + return false + } + return true +} +func (p *ExecuteStreamingData) Field3DeepEqual(src *Message) bool { + + if !p.Message.DeepEqual(src) { + return false + } + return true +} +func (p *ExecuteStreamingData) Field4DeepEqual(src *string) bool { + + if p.FinishReason == src { + return true + } else if p.FinishReason == nil || src == nil { + return false + } + if strings.Compare(*p.FinishReason, *src) != 0 { + return false + } + return true +} +func (p *ExecuteStreamingData) Field5DeepEqual(src *TokenUsage) bool { + + if !p.Usage.DeepEqual(src) { + return false + } + return true +} diff --git a/backend/kitex_gen/coze/loop/prompt/domain_openapi/prompt/prompt_validator.go b/backend/kitex_gen/coze/loop/prompt/domain_openapi/prompt/prompt_validator.go new file mode 100644 index 000000000..8211503d1 --- /dev/null +++ b/backend/kitex_gen/coze/loop/prompt/domain_openapi/prompt/prompt_validator.go @@ -0,0 +1,200 @@ +// Code generated by Validator v0.2.6. DO NOT EDIT. + +package prompt + +import ( + "bytes" + "fmt" + "reflect" + "regexp" + "strings" + "time" +) + +// unused protection +var ( + _ = fmt.Formatter(nil) + _ = (*bytes.Buffer)(nil) + _ = (*strings.Builder)(nil) + _ = reflect.Type(nil) + _ = (*regexp.Regexp)(nil) + _ = time.Nanosecond +) + +func (p *PromptQuery) IsValid() error { + return nil +} +func (p *PromptResultData) IsValid() error { + return nil +} +func (p *PromptResult_) IsValid() error { + if p.Query != nil { + if err := p.Query.IsValid(); err != nil { + return fmt.Errorf("field Query not valid, %w", err) + } + } + if p.Prompt != nil { + if err := p.Prompt.IsValid(); err != nil { + return fmt.Errorf("field Prompt not valid, %w", err) + } + } + return nil +} +func (p *Prompt) IsValid() error { + if p.PromptTemplate != nil { + if err := p.PromptTemplate.IsValid(); err != nil { + return fmt.Errorf("field PromptTemplate not valid, %w", err) + } + } + if p.ToolCallConfig != nil { + if err := p.ToolCallConfig.IsValid(); err != nil { + return fmt.Errorf("field ToolCallConfig not valid, %w", err) + } + } + if p.LlmConfig != nil { + if err := p.LlmConfig.IsValid(); err != nil { + return fmt.Errorf("field LlmConfig not valid, %w", err) + } + } + if p.PublishInfo != nil { + if err := p.PublishInfo.IsValid(); err != nil { + return fmt.Errorf("field PublishInfo not valid, %w", err) + } + } + return nil +} +func (p *PromptTemplate) IsValid() error { + return nil +} +func (p *ToolCallConfig) IsValid() error { + if p.ToolChoiceSpecification != nil { + if err := p.ToolChoiceSpecification.IsValid(); err != nil { + return fmt.Errorf("field ToolChoiceSpecification not valid, %w", err) + } + } + return nil +} +func (p *ToolChoiceSpecification) IsValid() error { + return nil +} +func (p *Message) IsValid() error { + return nil +} +func (p *ContentPart) IsValid() error { + if p.Config != nil { + if err := p.Config.IsValid(); err != nil { + return fmt.Errorf("field Config not valid, %w", err) + } + } + return nil +} +func (p *MediaConfig) IsValid() error { + if p.Fps != nil { + if *p.Fps < float64(0.2) { + return fmt.Errorf("field Fps ge rule failed, current value: %v", *p.Fps) + } + if *p.Fps > float64(5) { + return fmt.Errorf("field Fps le rule failed, current value: %v", *p.Fps) + } + } + return nil +} +func (p *VariableDef) IsValid() error { + return nil +} +func (p *Tool) IsValid() error { + if p.Function != nil { + if err := p.Function.IsValid(); err != nil { + return fmt.Errorf("field Function not valid, %w", err) + } + } + return nil +} +func (p *Function) IsValid() error { + return nil +} +func (p *ToolCall) IsValid() error { + if p.FunctionCall != nil { + if err := p.FunctionCall.IsValid(); err != nil { + return fmt.Errorf("field FunctionCall not valid, %w", err) + } + } + return nil +} +func (p *FunctionCall) IsValid() error { + return nil +} +func (p *LLMConfig) IsValid() error { + if p.Thinking != nil { + if err := p.Thinking.IsValid(); err != nil { + return fmt.Errorf("field Thinking not valid, %w", err) + } + } + return nil +} +func (p *VariableVal) IsValid() error { + return nil +} +func (p *TokenUsage) IsValid() error { + return nil +} +func (p *PromptBasic) IsValid() error { + return nil +} +func (p *ListPromptBasicData) IsValid() error { + return nil +} +func (p *PromptPublishInfo) IsValid() error { + return nil +} +func (p *ThinkingConfig) IsValid() error { + return nil +} +func (p *ModelConfig) IsValid() error { + if p.Thinking != nil { + if err := p.Thinking.IsValid(); err != nil { + return fmt.Errorf("field Thinking not valid, %w", err) + } + } + return nil +} +func (p *ResponseAPIConfig) IsValid() error { + return nil +} +func (p *ParamConfigValue) IsValid() error { + if p.Value != nil { + if err := p.Value.IsValid(); err != nil { + return fmt.Errorf("field Value not valid, %w", err) + } + } + return nil +} +func (p *ParamOption) IsValid() error { + return nil +} +func (p *ExecuteData) IsValid() error { + if p.Message != nil { + if err := p.Message.IsValid(); err != nil { + return fmt.Errorf("field Message not valid, %w", err) + } + } + if p.Usage != nil { + if err := p.Usage.IsValid(); err != nil { + return fmt.Errorf("field Usage not valid, %w", err) + } + } + return nil +} +func (p *ExecuteStreamingData) IsValid() error { + if p.Message != nil { + if err := p.Message.IsValid(); err != nil { + return fmt.Errorf("field Message not valid, %w", err) + } + } + if p.Usage != nil { + if err := p.Usage.IsValid(); err != nil { + return fmt.Errorf("field Usage not valid, %w", err) + } + } + return nil +} diff --git a/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi.go b/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi.go index 434de716e..bbc5050de 100644 --- a/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi.go +++ b/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi.go @@ -8,153 +8,14 @@ import ( "github.com/apache/thrift/lib/go/thrift" "github.com/cloudwego/kitex/pkg/streaming" "github.com/coze-dev/coze-loop/backend/kitex_gen/base" + "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/prompt/domain_openapi/prompt" "strings" ) -const ( - PromptTypeNormal = "normal" - - PromptTypeSnippet = "snippet" - - TemplateTypeNormal = "normal" - - TemplateTypeJinja2 = "jinja2" - - TemplateTypeGoTemplate = "go_template" - - TemplateTypeCustomTemplateM = "custom_template_m" - - ToolChoiceTypeAuto = "auto" - - ToolChoiceTypeNone = "none" - - ToolChoiceTypeSpecific = "specific" - - ContentTypeText = "text" - - ContentTypeImageURL = "image_url" - - ContentTypeVideoURL = "video_url" - - ContentTypeBase64Data = "base64_data" - - ContentTypeMultiPartVariable = "multi_part_variable" - - VariableTypeString = "string" - - VariableTypeBoolean = "boolean" - - VariableTypeInteger = "integer" - - VariableTypeFloat = "float" - - VariableTypeObject = "object" - - VariableTypeArrayString = "array" - - VariableTypeArrayBoolean = "array" - - VariableTypeArrayInteger = "array" - - VariableTypeArrayFloat = "array" - - VariableTypeArrayObject = "array" - - VariableTypePlaceholder = "placeholder" - - VariableTypeMultiPart = "multi_part" - - RoleSystem = "system" - - RoleUser = "user" - - RoleAssistant = "assistant" - - RoleTool = "tool" - - RolePlaceholder = "placeholder" - - ToolTypeFunction = "function" - - ToolTypeGoogleSearch = "google_search" - - PublishStatusUndefined = "undefined" - - PublishStatusUnPublish = "unpublish" - - PublishStatusPublished = "published" - - SecurityLevelUndefined = "undefined" - - SecurityLevelL1 = "L1" - - SecurityLevelL2 = "L2" - - SecurityLevelL3 = "L3" - - SecurityLevelL4 = "L4" - - ReasoningEffortMinimal = "minimal" - - ReasoningEffortLow = "low" - - ReasoningEffortMedium = "medium" - - ReasoningEffortHigh = "high" - - ThinkingOptionDisabled = "disabled" - - ThinkingOptionEnabled = "enabled" - - ThinkingOptionAuto = "auto" - - AccountModeSharedAccount = "shared_account" - - AccountModeCustomAccount = "custom_account" - - UsageScenarioDefault = "default" - - UsageScenarioEvaluation = "evaluation" - - UsageScenarioPromptAsAService = "prompt_as_a_service" - - UsageScenarioAIAnnotate = "ai_annotate" - - UsageScenarioAIScore = "ai_score" - - UsageScenarioAITag = "ai_tag" -) - -type PromptType = string - -type TemplateType = string - -type ToolChoiceType = string - -type ContentType = string - -type VariableType = string - -type Role = string - -type ToolType = string - -type PublishStatus = string - -type SecurityLevel = string - -type ReasoningEffort = string - -type ThinkingOption = string - -type AccountMode = string - -type UsageScenario = string - type BatchGetPromptByPromptKeyRequest struct { - WorkspaceID *int64 `thrift:"workspace_id,1,optional" frugal:"1,optional,i64" json:"workspace_id" form:"workspace_id" ` - Queries []*PromptQuery `thrift:"queries,2,optional" frugal:"2,optional,list" form:"queries" json:"queries,omitempty"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` + WorkspaceID *int64 `thrift:"workspace_id,1,optional" frugal:"1,optional,i64" json:"workspace_id" form:"workspace_id" ` + Queries []*prompt.PromptQuery `thrift:"queries,2,optional" frugal:"2,optional,list" form:"queries" json:"queries,omitempty"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } func NewBatchGetPromptByPromptKeyRequest() *BatchGetPromptByPromptKeyRequest { @@ -176,9 +37,9 @@ func (p *BatchGetPromptByPromptKeyRequest) GetWorkspaceID() (v int64) { return *p.WorkspaceID } -var BatchGetPromptByPromptKeyRequest_Queries_DEFAULT []*PromptQuery +var BatchGetPromptByPromptKeyRequest_Queries_DEFAULT []*prompt.PromptQuery -func (p *BatchGetPromptByPromptKeyRequest) GetQueries() (v []*PromptQuery) { +func (p *BatchGetPromptByPromptKeyRequest) GetQueries() (v []*prompt.PromptQuery) { if p == nil { return } @@ -202,7 +63,7 @@ func (p *BatchGetPromptByPromptKeyRequest) GetBase() (v *base.Base) { func (p *BatchGetPromptByPromptKeyRequest) SetWorkspaceID(val *int64) { p.WorkspaceID = val } -func (p *BatchGetPromptByPromptKeyRequest) SetQueries(val []*PromptQuery) { +func (p *BatchGetPromptByPromptKeyRequest) SetQueries(val []*prompt.PromptQuery) { p.Queries = val } func (p *BatchGetPromptByPromptKeyRequest) SetBase(val *base.Base) { @@ -314,8 +175,8 @@ func (p *BatchGetPromptByPromptKeyRequest) ReadField2(iprot thrift.TProtocol) er if err != nil { return err } - _field := make([]*PromptQuery, 0, size) - values := make([]PromptQuery, size) + _field := make([]*prompt.PromptQuery, 0, size) + values := make([]prompt.PromptQuery, size) for i := 0; i < size; i++ { _elem := &values[i] _elem.InitDefault() @@ -478,7 +339,7 @@ func (p *BatchGetPromptByPromptKeyRequest) Field1DeepEqual(src *int64) bool { } return true } -func (p *BatchGetPromptByPromptKeyRequest) Field2DeepEqual(src []*PromptQuery) bool { +func (p *BatchGetPromptByPromptKeyRequest) Field2DeepEqual(src []*prompt.PromptQuery) bool { if len(p.Queries) != len(src) { return false @@ -500,10 +361,10 @@ func (p *BatchGetPromptByPromptKeyRequest) Field255DeepEqual(src *base.Base) boo } type BatchGetPromptByPromptKeyResponse struct { - Code *int32 `thrift:"code,1,optional" frugal:"1,optional,i32" form:"code" json:"code,omitempty" query:"code"` - Msg *string `thrift:"msg,2,optional" frugal:"2,optional,string" form:"msg" json:"msg,omitempty" query:"msg"` - Data *PromptResultData `thrift:"data,3,optional" frugal:"3,optional,PromptResultData" form:"data" json:"data,omitempty" query:"data"` - BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` + Code *int32 `thrift:"code,1,optional" frugal:"1,optional,i32" form:"code" json:"code,omitempty" query:"code"` + Msg *string `thrift:"msg,2,optional" frugal:"2,optional,string" form:"msg" json:"msg,omitempty" query:"msg"` + Data *prompt.PromptResultData `thrift:"data,3,optional" frugal:"3,optional,prompt.PromptResultData" form:"data" json:"data,omitempty" query:"data"` + BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` } func NewBatchGetPromptByPromptKeyResponse() *BatchGetPromptByPromptKeyResponse { @@ -537,9 +398,9 @@ func (p *BatchGetPromptByPromptKeyResponse) GetMsg() (v string) { return *p.Msg } -var BatchGetPromptByPromptKeyResponse_Data_DEFAULT *PromptResultData +var BatchGetPromptByPromptKeyResponse_Data_DEFAULT *prompt.PromptResultData -func (p *BatchGetPromptByPromptKeyResponse) GetData() (v *PromptResultData) { +func (p *BatchGetPromptByPromptKeyResponse) GetData() (v *prompt.PromptResultData) { if p == nil { return } @@ -566,7 +427,7 @@ func (p *BatchGetPromptByPromptKeyResponse) SetCode(val *int32) { func (p *BatchGetPromptByPromptKeyResponse) SetMsg(val *string) { p.Msg = val } -func (p *BatchGetPromptByPromptKeyResponse) SetData(val *PromptResultData) { +func (p *BatchGetPromptByPromptKeyResponse) SetData(val *prompt.PromptResultData) { p.Data = val } func (p *BatchGetPromptByPromptKeyResponse) SetBaseResp(val *base.BaseResp) { @@ -698,7 +559,7 @@ func (p *BatchGetPromptByPromptKeyResponse) ReadField2(iprot thrift.TProtocol) e return nil } func (p *BatchGetPromptByPromptKeyResponse) ReadField3(iprot thrift.TProtocol) error { - _field := NewPromptResultData() + _field := prompt.NewPromptResultData() if err := _field.Read(iprot); err != nil { return err } @@ -880,7 +741,7 @@ func (p *BatchGetPromptByPromptKeyResponse) Field2DeepEqual(src *string) bool { } return true } -func (p *BatchGetPromptByPromptKeyResponse) Field3DeepEqual(src *PromptResultData) bool { +func (p *BatchGetPromptByPromptKeyResponse) Field3DeepEqual(src *prompt.PromptResultData) bool { if !p.Data.DeepEqual(src) { return false @@ -895,234 +756,32 @@ func (p *BatchGetPromptByPromptKeyResponse) Field255DeepEqual(src *base.BaseResp return true } -type PromptResultData struct { - Items []*PromptResult_ `thrift:"items,1,optional" frugal:"1,optional,list" form:"items" json:"items,omitempty" query:"items"` -} - -func NewPromptResultData() *PromptResultData { - return &PromptResultData{} -} - -func (p *PromptResultData) InitDefault() { -} - -var PromptResultData_Items_DEFAULT []*PromptResult_ - -func (p *PromptResultData) GetItems() (v []*PromptResult_) { - if p == nil { - return - } - if !p.IsSetItems() { - return PromptResultData_Items_DEFAULT - } - return p.Items -} -func (p *PromptResultData) SetItems(val []*PromptResult_) { - p.Items = val -} - -var fieldIDToName_PromptResultData = map[int16]string{ - 1: "items", -} - -func (p *PromptResultData) IsSetItems() bool { - return p.Items != nil -} - -func (p *PromptResultData) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.LIST { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptResultData[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *PromptResultData) ReadField1(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { - return err - } - _field := make([]*PromptResult_, 0, size) - values := make([]PromptResult_, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - - if err := _elem.Read(iprot); err != nil { - return err - } - - _field = append(_field, _elem) - } - if err := iprot.ReadListEnd(); err != nil { - return err - } - p.Items = _field - return nil -} - -func (p *PromptResultData) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("PromptResultData"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *PromptResultData) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetItems() { - if err = oprot.WriteFieldBegin("items", thrift.LIST, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Items)); err != nil { - return err - } - for _, v := range p.Items { - if err := v.Write(oprot); err != nil { - return err - } - } - if err := oprot.WriteListEnd(); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} - -func (p *PromptResultData) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("PromptResultData(%+v)", *p) - -} - -func (p *PromptResultData) DeepEqual(ano *PromptResultData) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.Items) { - return false - } - return true -} - -func (p *PromptResultData) Field1DeepEqual(src []*PromptResult_) bool { - - if len(p.Items) != len(src) { - return false - } - for i, v := range p.Items { - _src := src[i] - if !v.DeepEqual(_src) { - return false - } - } - return true -} - type ExecuteRequest struct { // 工作空间ID WorkspaceID *int64 `thrift:"workspace_id,1,optional" frugal:"1,optional,i64" json:"workspace_id" form:"workspace_id" ` // Prompt 标识 - PromptIdentifier *PromptQuery `thrift:"prompt_identifier,2,optional" frugal:"2,optional,PromptQuery" form:"prompt_identifier" json:"prompt_identifier,omitempty"` + PromptIdentifier *prompt.PromptQuery `thrift:"prompt_identifier,2,optional" frugal:"2,optional,prompt.PromptQuery" form:"prompt_identifier" json:"prompt_identifier,omitempty"` // 变量值 - VariableVals []*VariableVal `thrift:"variable_vals,10,optional" frugal:"10,optional,list" form:"variable_vals" json:"variable_vals,omitempty"` + VariableVals []*prompt.VariableVal `thrift:"variable_vals,10,optional" frugal:"10,optional,list" form:"variable_vals" json:"variable_vals,omitempty"` // 消息 - Messages []*Message `thrift:"messages,11,optional" frugal:"11,optional,list" form:"messages" json:"messages,omitempty"` + Messages []*prompt.Message `thrift:"messages,11,optional" frugal:"11,optional,list" form:"messages" json:"messages,omitempty"` // 自定义工具 - CustomTools []*Tool `thrift:"custom_tools,20,optional" frugal:"20,optional,list" form:"custom_tools" json:"custom_tools,omitempty"` + CustomTools []*prompt.Tool `thrift:"custom_tools,20,optional" frugal:"20,optional,list" form:"custom_tools" json:"custom_tools,omitempty"` // 自定义工具调用配置 - CustomToolCallConfig *ToolCallConfig `thrift:"custom_tool_call_config,21,optional" frugal:"21,optional,ToolCallConfig" form:"custom_tool_call_config" json:"custom_tool_call_config,omitempty"` + CustomToolCallConfig *prompt.ToolCallConfig `thrift:"custom_tool_call_config,21,optional" frugal:"21,optional,prompt.ToolCallConfig" form:"custom_tool_call_config" json:"custom_tool_call_config,omitempty"` // 自定义模型配置 - CustomModelConfig *ModelConfig `thrift:"custom_model_config,22,optional" frugal:"22,optional,ModelConfig" form:"custom_model_config" json:"custom_model_config,omitempty"` + CustomModelConfig *prompt.ModelConfig `thrift:"custom_model_config,22,optional" frugal:"22,optional,prompt.ModelConfig" form:"custom_model_config" json:"custom_model_config,omitempty"` // response api 配置 - ResponseAPIConfig *ResponseAPIConfig `thrift:"response_api_config,23,optional" frugal:"23,optional,ResponseAPIConfig" form:"response_api_config" json:"response_api_config,omitempty"` + ResponseAPIConfig *prompt.ResponseAPIConfig `thrift:"response_api_config,23,optional" frugal:"23,optional,prompt.ResponseAPIConfig" form:"response_api_config" json:"response_api_config,omitempty"` // 账号模式(兼容字段) - AccountMode *AccountMode `thrift:"account_mode,24,optional" frugal:"24,optional,string" form:"account_mode" json:"account_mode,omitempty"` + AccountMode *prompt.AccountMode `thrift:"account_mode,24,optional" frugal:"24,optional,string" form:"account_mode" json:"account_mode,omitempty"` // 使用场景(兼容字段) - UsageScenario *UsageScenario `thrift:"usage_scenario,26,optional" frugal:"26,optional,string" form:"usage_scenario" json:"usage_scenario,omitempty"` + UsageScenario *prompt.UsageScenario `thrift:"usage_scenario,26,optional" frugal:"26,optional,string" form:"usage_scenario" json:"usage_scenario,omitempty"` // 发布标签(兼容字段) ReleaseLabel *string `thrift:"release_label,28,optional" frugal:"28,optional,string" form:"release_label" json:"release_label,omitempty"` // 自定义工具配置(兼容字段) - CustomToolConfig *ToolCallConfig `thrift:"custom_tool_config,29,optional" frugal:"29,optional,ToolCallConfig" form:"custom_tool_config" json:"custom_tool_config,omitempty"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` + CustomToolConfig *prompt.ToolCallConfig `thrift:"custom_tool_config,29,optional" frugal:"29,optional,prompt.ToolCallConfig" form:"custom_tool_config" json:"custom_tool_config,omitempty"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } func NewExecuteRequest() *ExecuteRequest { @@ -1144,9 +803,9 @@ func (p *ExecuteRequest) GetWorkspaceID() (v int64) { return *p.WorkspaceID } -var ExecuteRequest_PromptIdentifier_DEFAULT *PromptQuery +var ExecuteRequest_PromptIdentifier_DEFAULT *prompt.PromptQuery -func (p *ExecuteRequest) GetPromptIdentifier() (v *PromptQuery) { +func (p *ExecuteRequest) GetPromptIdentifier() (v *prompt.PromptQuery) { if p == nil { return } @@ -1156,9 +815,9 @@ func (p *ExecuteRequest) GetPromptIdentifier() (v *PromptQuery) { return p.PromptIdentifier } -var ExecuteRequest_VariableVals_DEFAULT []*VariableVal +var ExecuteRequest_VariableVals_DEFAULT []*prompt.VariableVal -func (p *ExecuteRequest) GetVariableVals() (v []*VariableVal) { +func (p *ExecuteRequest) GetVariableVals() (v []*prompt.VariableVal) { if p == nil { return } @@ -1168,9 +827,9 @@ func (p *ExecuteRequest) GetVariableVals() (v []*VariableVal) { return p.VariableVals } -var ExecuteRequest_Messages_DEFAULT []*Message +var ExecuteRequest_Messages_DEFAULT []*prompt.Message -func (p *ExecuteRequest) GetMessages() (v []*Message) { +func (p *ExecuteRequest) GetMessages() (v []*prompt.Message) { if p == nil { return } @@ -1180,9 +839,9 @@ func (p *ExecuteRequest) GetMessages() (v []*Message) { return p.Messages } -var ExecuteRequest_CustomTools_DEFAULT []*Tool +var ExecuteRequest_CustomTools_DEFAULT []*prompt.Tool -func (p *ExecuteRequest) GetCustomTools() (v []*Tool) { +func (p *ExecuteRequest) GetCustomTools() (v []*prompt.Tool) { if p == nil { return } @@ -1192,9 +851,9 @@ func (p *ExecuteRequest) GetCustomTools() (v []*Tool) { return p.CustomTools } -var ExecuteRequest_CustomToolCallConfig_DEFAULT *ToolCallConfig +var ExecuteRequest_CustomToolCallConfig_DEFAULT *prompt.ToolCallConfig -func (p *ExecuteRequest) GetCustomToolCallConfig() (v *ToolCallConfig) { +func (p *ExecuteRequest) GetCustomToolCallConfig() (v *prompt.ToolCallConfig) { if p == nil { return } @@ -1204,9 +863,9 @@ func (p *ExecuteRequest) GetCustomToolCallConfig() (v *ToolCallConfig) { return p.CustomToolCallConfig } -var ExecuteRequest_CustomModelConfig_DEFAULT *ModelConfig +var ExecuteRequest_CustomModelConfig_DEFAULT *prompt.ModelConfig -func (p *ExecuteRequest) GetCustomModelConfig() (v *ModelConfig) { +func (p *ExecuteRequest) GetCustomModelConfig() (v *prompt.ModelConfig) { if p == nil { return } @@ -1216,9 +875,9 @@ func (p *ExecuteRequest) GetCustomModelConfig() (v *ModelConfig) { return p.CustomModelConfig } -var ExecuteRequest_ResponseAPIConfig_DEFAULT *ResponseAPIConfig +var ExecuteRequest_ResponseAPIConfig_DEFAULT *prompt.ResponseAPIConfig -func (p *ExecuteRequest) GetResponseAPIConfig() (v *ResponseAPIConfig) { +func (p *ExecuteRequest) GetResponseAPIConfig() (v *prompt.ResponseAPIConfig) { if p == nil { return } @@ -1228,9 +887,9 @@ func (p *ExecuteRequest) GetResponseAPIConfig() (v *ResponseAPIConfig) { return p.ResponseAPIConfig } -var ExecuteRequest_AccountMode_DEFAULT AccountMode +var ExecuteRequest_AccountMode_DEFAULT prompt.AccountMode -func (p *ExecuteRequest) GetAccountMode() (v AccountMode) { +func (p *ExecuteRequest) GetAccountMode() (v prompt.AccountMode) { if p == nil { return } @@ -1240,9 +899,9 @@ func (p *ExecuteRequest) GetAccountMode() (v AccountMode) { return *p.AccountMode } -var ExecuteRequest_UsageScenario_DEFAULT UsageScenario +var ExecuteRequest_UsageScenario_DEFAULT prompt.UsageScenario -func (p *ExecuteRequest) GetUsageScenario() (v UsageScenario) { +func (p *ExecuteRequest) GetUsageScenario() (v prompt.UsageScenario) { if p == nil { return } @@ -1264,9 +923,9 @@ func (p *ExecuteRequest) GetReleaseLabel() (v string) { return *p.ReleaseLabel } -var ExecuteRequest_CustomToolConfig_DEFAULT *ToolCallConfig +var ExecuteRequest_CustomToolConfig_DEFAULT *prompt.ToolCallConfig -func (p *ExecuteRequest) GetCustomToolConfig() (v *ToolCallConfig) { +func (p *ExecuteRequest) GetCustomToolConfig() (v *prompt.ToolCallConfig) { if p == nil { return } @@ -1290,37 +949,37 @@ func (p *ExecuteRequest) GetBase() (v *base.Base) { func (p *ExecuteRequest) SetWorkspaceID(val *int64) { p.WorkspaceID = val } -func (p *ExecuteRequest) SetPromptIdentifier(val *PromptQuery) { +func (p *ExecuteRequest) SetPromptIdentifier(val *prompt.PromptQuery) { p.PromptIdentifier = val } -func (p *ExecuteRequest) SetVariableVals(val []*VariableVal) { +func (p *ExecuteRequest) SetVariableVals(val []*prompt.VariableVal) { p.VariableVals = val } -func (p *ExecuteRequest) SetMessages(val []*Message) { +func (p *ExecuteRequest) SetMessages(val []*prompt.Message) { p.Messages = val } -func (p *ExecuteRequest) SetCustomTools(val []*Tool) { +func (p *ExecuteRequest) SetCustomTools(val []*prompt.Tool) { p.CustomTools = val } -func (p *ExecuteRequest) SetCustomToolCallConfig(val *ToolCallConfig) { +func (p *ExecuteRequest) SetCustomToolCallConfig(val *prompt.ToolCallConfig) { p.CustomToolCallConfig = val } -func (p *ExecuteRequest) SetCustomModelConfig(val *ModelConfig) { +func (p *ExecuteRequest) SetCustomModelConfig(val *prompt.ModelConfig) { p.CustomModelConfig = val } -func (p *ExecuteRequest) SetResponseAPIConfig(val *ResponseAPIConfig) { +func (p *ExecuteRequest) SetResponseAPIConfig(val *prompt.ResponseAPIConfig) { p.ResponseAPIConfig = val } -func (p *ExecuteRequest) SetAccountMode(val *AccountMode) { +func (p *ExecuteRequest) SetAccountMode(val *prompt.AccountMode) { p.AccountMode = val } -func (p *ExecuteRequest) SetUsageScenario(val *UsageScenario) { +func (p *ExecuteRequest) SetUsageScenario(val *prompt.UsageScenario) { p.UsageScenario = val } func (p *ExecuteRequest) SetReleaseLabel(val *string) { p.ReleaseLabel = val } -func (p *ExecuteRequest) SetCustomToolConfig(val *ToolCallConfig) { +func (p *ExecuteRequest) SetCustomToolConfig(val *prompt.ToolCallConfig) { p.CustomToolConfig = val } func (p *ExecuteRequest) SetBase(val *base.Base) { @@ -1558,7 +1217,7 @@ func (p *ExecuteRequest) ReadField1(iprot thrift.TProtocol) error { return nil } func (p *ExecuteRequest) ReadField2(iprot thrift.TProtocol) error { - _field := NewPromptQuery() + _field := prompt.NewPromptQuery() if err := _field.Read(iprot); err != nil { return err } @@ -1570,8 +1229,8 @@ func (p *ExecuteRequest) ReadField10(iprot thrift.TProtocol) error { if err != nil { return err } - _field := make([]*VariableVal, 0, size) - values := make([]VariableVal, size) + _field := make([]*prompt.VariableVal, 0, size) + values := make([]prompt.VariableVal, size) for i := 0; i < size; i++ { _elem := &values[i] _elem.InitDefault() @@ -1593,8 +1252,8 @@ func (p *ExecuteRequest) ReadField11(iprot thrift.TProtocol) error { if err != nil { return err } - _field := make([]*Message, 0, size) - values := make([]Message, size) + _field := make([]*prompt.Message, 0, size) + values := make([]prompt.Message, size) for i := 0; i < size; i++ { _elem := &values[i] _elem.InitDefault() @@ -1616,8 +1275,8 @@ func (p *ExecuteRequest) ReadField20(iprot thrift.TProtocol) error { if err != nil { return err } - _field := make([]*Tool, 0, size) - values := make([]Tool, size) + _field := make([]*prompt.Tool, 0, size) + values := make([]prompt.Tool, size) for i := 0; i < size; i++ { _elem := &values[i] _elem.InitDefault() @@ -1635,7 +1294,7 @@ func (p *ExecuteRequest) ReadField20(iprot thrift.TProtocol) error { return nil } func (p *ExecuteRequest) ReadField21(iprot thrift.TProtocol) error { - _field := NewToolCallConfig() + _field := prompt.NewToolCallConfig() if err := _field.Read(iprot); err != nil { return err } @@ -1643,7 +1302,7 @@ func (p *ExecuteRequest) ReadField21(iprot thrift.TProtocol) error { return nil } func (p *ExecuteRequest) ReadField22(iprot thrift.TProtocol) error { - _field := NewModelConfig() + _field := prompt.NewModelConfig() if err := _field.Read(iprot); err != nil { return err } @@ -1651,7 +1310,7 @@ func (p *ExecuteRequest) ReadField22(iprot thrift.TProtocol) error { return nil } func (p *ExecuteRequest) ReadField23(iprot thrift.TProtocol) error { - _field := NewResponseAPIConfig() + _field := prompt.NewResponseAPIConfig() if err := _field.Read(iprot); err != nil { return err } @@ -1660,7 +1319,7 @@ func (p *ExecuteRequest) ReadField23(iprot thrift.TProtocol) error { } func (p *ExecuteRequest) ReadField24(iprot thrift.TProtocol) error { - var _field *AccountMode + var _field *prompt.AccountMode if v, err := iprot.ReadString(); err != nil { return err } else { @@ -1671,7 +1330,7 @@ func (p *ExecuteRequest) ReadField24(iprot thrift.TProtocol) error { } func (p *ExecuteRequest) ReadField26(iprot thrift.TProtocol) error { - var _field *UsageScenario + var _field *prompt.UsageScenario if v, err := iprot.ReadString(); err != nil { return err } else { @@ -1692,7 +1351,7 @@ func (p *ExecuteRequest) ReadField28(iprot thrift.TProtocol) error { return nil } func (p *ExecuteRequest) ReadField29(iprot thrift.TProtocol) error { - _field := NewToolCallConfig() + _field := prompt.NewToolCallConfig() if err := _field.Read(iprot); err != nil { return err } @@ -2111,14 +1770,14 @@ func (p *ExecuteRequest) Field1DeepEqual(src *int64) bool { } return true } -func (p *ExecuteRequest) Field2DeepEqual(src *PromptQuery) bool { +func (p *ExecuteRequest) Field2DeepEqual(src *prompt.PromptQuery) bool { if !p.PromptIdentifier.DeepEqual(src) { return false } return true } -func (p *ExecuteRequest) Field10DeepEqual(src []*VariableVal) bool { +func (p *ExecuteRequest) Field10DeepEqual(src []*prompt.VariableVal) bool { if len(p.VariableVals) != len(src) { return false @@ -2131,7 +1790,7 @@ func (p *ExecuteRequest) Field10DeepEqual(src []*VariableVal) bool { } return true } -func (p *ExecuteRequest) Field11DeepEqual(src []*Message) bool { +func (p *ExecuteRequest) Field11DeepEqual(src []*prompt.Message) bool { if len(p.Messages) != len(src) { return false @@ -2144,7 +1803,7 @@ func (p *ExecuteRequest) Field11DeepEqual(src []*Message) bool { } return true } -func (p *ExecuteRequest) Field20DeepEqual(src []*Tool) bool { +func (p *ExecuteRequest) Field20DeepEqual(src []*prompt.Tool) bool { if len(p.CustomTools) != len(src) { return false @@ -2157,28 +1816,28 @@ func (p *ExecuteRequest) Field20DeepEqual(src []*Tool) bool { } return true } -func (p *ExecuteRequest) Field21DeepEqual(src *ToolCallConfig) bool { +func (p *ExecuteRequest) Field21DeepEqual(src *prompt.ToolCallConfig) bool { if !p.CustomToolCallConfig.DeepEqual(src) { return false } return true } -func (p *ExecuteRequest) Field22DeepEqual(src *ModelConfig) bool { +func (p *ExecuteRequest) Field22DeepEqual(src *prompt.ModelConfig) bool { if !p.CustomModelConfig.DeepEqual(src) { return false } return true } -func (p *ExecuteRequest) Field23DeepEqual(src *ResponseAPIConfig) bool { +func (p *ExecuteRequest) Field23DeepEqual(src *prompt.ResponseAPIConfig) bool { if !p.ResponseAPIConfig.DeepEqual(src) { return false } return true } -func (p *ExecuteRequest) Field24DeepEqual(src *AccountMode) bool { +func (p *ExecuteRequest) Field24DeepEqual(src *prompt.AccountMode) bool { if p.AccountMode == src { return true @@ -2190,7 +1849,7 @@ func (p *ExecuteRequest) Field24DeepEqual(src *AccountMode) bool { } return true } -func (p *ExecuteRequest) Field26DeepEqual(src *UsageScenario) bool { +func (p *ExecuteRequest) Field26DeepEqual(src *prompt.UsageScenario) bool { if p.UsageScenario == src { return true @@ -2214,7 +1873,7 @@ func (p *ExecuteRequest) Field28DeepEqual(src *string) bool { } return true } -func (p *ExecuteRequest) Field29DeepEqual(src *ToolCallConfig) bool { +func (p *ExecuteRequest) Field29DeepEqual(src *prompt.ToolCallConfig) bool { if !p.CustomToolConfig.DeepEqual(src) { return false @@ -2230,10 +1889,10 @@ func (p *ExecuteRequest) Field255DeepEqual(src *base.Base) bool { } type ExecuteResponse struct { - Code *int32 `thrift:"code,1,optional" frugal:"1,optional,i32" form:"code" json:"code,omitempty" query:"code"` - Msg *string `thrift:"msg,2,optional" frugal:"2,optional,string" form:"msg" json:"msg,omitempty" query:"msg"` - Data *ExecuteData `thrift:"data,3,optional" frugal:"3,optional,ExecuteData" form:"data" json:"data,omitempty" query:"data"` - BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` + Code *int32 `thrift:"code,1,optional" frugal:"1,optional,i32" form:"code" json:"code,omitempty" query:"code"` + Msg *string `thrift:"msg,2,optional" frugal:"2,optional,string" form:"msg" json:"msg,omitempty" query:"msg"` + Data *prompt.ExecuteData `thrift:"data,3,optional" frugal:"3,optional,prompt.ExecuteData" form:"data" json:"data,omitempty" query:"data"` + BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` } func NewExecuteResponse() *ExecuteResponse { @@ -2267,9 +1926,9 @@ func (p *ExecuteResponse) GetMsg() (v string) { return *p.Msg } -var ExecuteResponse_Data_DEFAULT *ExecuteData +var ExecuteResponse_Data_DEFAULT *prompt.ExecuteData -func (p *ExecuteResponse) GetData() (v *ExecuteData) { +func (p *ExecuteResponse) GetData() (v *prompt.ExecuteData) { if p == nil { return } @@ -2296,7 +1955,7 @@ func (p *ExecuteResponse) SetCode(val *int32) { func (p *ExecuteResponse) SetMsg(val *string) { p.Msg = val } -func (p *ExecuteResponse) SetData(val *ExecuteData) { +func (p *ExecuteResponse) SetData(val *prompt.ExecuteData) { p.Data = val } func (p *ExecuteResponse) SetBaseResp(val *base.BaseResp) { @@ -2428,7 +2087,7 @@ func (p *ExecuteResponse) ReadField2(iprot thrift.TProtocol) error { return nil } func (p *ExecuteResponse) ReadField3(iprot thrift.TProtocol) error { - _field := NewExecuteData() + _field := prompt.NewExecuteData() if err := _field.Read(iprot); err != nil { return err } @@ -2610,7 +2269,7 @@ func (p *ExecuteResponse) Field2DeepEqual(src *string) bool { } return true } -func (p *ExecuteResponse) Field3DeepEqual(src *ExecuteData) bool { +func (p *ExecuteResponse) Field3DeepEqual(src *prompt.ExecuteData) bool { if !p.Data.DeepEqual(src) { return false @@ -2625,86 +2284,125 @@ func (p *ExecuteResponse) Field255DeepEqual(src *base.BaseResp) bool { return true } -type ExecuteData struct { - // 消息 - Message *Message `thrift:"message,1,optional" frugal:"1,optional,Message" form:"message" json:"message,omitempty" query:"message"` - // 结束原因 - FinishReason *string `thrift:"finish_reason,2,optional" frugal:"2,optional,string" form:"finish_reason" json:"finish_reason,omitempty" query:"finish_reason"` - // token消耗 - Usage *TokenUsage `thrift:"usage,3,optional" frugal:"3,optional,TokenUsage" form:"usage" json:"usage,omitempty" query:"usage"` +type ExecuteStreamingResponse struct { + ID *string `thrift:"id,1,optional" frugal:"1,optional,string" form:"id" json:"id,omitempty" query:"id"` + Event *string `thrift:"event,2,optional" frugal:"2,optional,string" form:"event" json:"event,omitempty" query:"event"` + Retry *int64 `thrift:"retry,3,optional" frugal:"3,optional,i64" form:"retry" json:"retry,omitempty" query:"retry"` + Data *prompt.ExecuteStreamingData `thrift:"data,4,optional" frugal:"4,optional,prompt.ExecuteStreamingData" form:"data" json:"data,omitempty" query:"data"` + BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` } -func NewExecuteData() *ExecuteData { - return &ExecuteData{} +func NewExecuteStreamingResponse() *ExecuteStreamingResponse { + return &ExecuteStreamingResponse{} } -func (p *ExecuteData) InitDefault() { +func (p *ExecuteStreamingResponse) InitDefault() { } -var ExecuteData_Message_DEFAULT *Message +var ExecuteStreamingResponse_ID_DEFAULT string -func (p *ExecuteData) GetMessage() (v *Message) { +func (p *ExecuteStreamingResponse) GetID() (v string) { if p == nil { return } - if !p.IsSetMessage() { - return ExecuteData_Message_DEFAULT + if !p.IsSetID() { + return ExecuteStreamingResponse_ID_DEFAULT } - return p.Message + return *p.ID } -var ExecuteData_FinishReason_DEFAULT string +var ExecuteStreamingResponse_Event_DEFAULT string -func (p *ExecuteData) GetFinishReason() (v string) { +func (p *ExecuteStreamingResponse) GetEvent() (v string) { if p == nil { return } - if !p.IsSetFinishReason() { - return ExecuteData_FinishReason_DEFAULT + if !p.IsSetEvent() { + return ExecuteStreamingResponse_Event_DEFAULT } - return *p.FinishReason + return *p.Event } -var ExecuteData_Usage_DEFAULT *TokenUsage +var ExecuteStreamingResponse_Retry_DEFAULT int64 -func (p *ExecuteData) GetUsage() (v *TokenUsage) { +func (p *ExecuteStreamingResponse) GetRetry() (v int64) { if p == nil { return } - if !p.IsSetUsage() { - return ExecuteData_Usage_DEFAULT + if !p.IsSetRetry() { + return ExecuteStreamingResponse_Retry_DEFAULT } - return p.Usage + return *p.Retry } -func (p *ExecuteData) SetMessage(val *Message) { - p.Message = val + +var ExecuteStreamingResponse_Data_DEFAULT *prompt.ExecuteStreamingData + +func (p *ExecuteStreamingResponse) GetData() (v *prompt.ExecuteStreamingData) { + if p == nil { + return + } + if !p.IsSetData() { + return ExecuteStreamingResponse_Data_DEFAULT + } + return p.Data +} + +var ExecuteStreamingResponse_BaseResp_DEFAULT *base.BaseResp + +func (p *ExecuteStreamingResponse) GetBaseResp() (v *base.BaseResp) { + if p == nil { + return + } + if !p.IsSetBaseResp() { + return ExecuteStreamingResponse_BaseResp_DEFAULT + } + return p.BaseResp +} +func (p *ExecuteStreamingResponse) SetID(val *string) { + p.ID = val +} +func (p *ExecuteStreamingResponse) SetEvent(val *string) { + p.Event = val +} +func (p *ExecuteStreamingResponse) SetRetry(val *int64) { + p.Retry = val +} +func (p *ExecuteStreamingResponse) SetData(val *prompt.ExecuteStreamingData) { + p.Data = val } -func (p *ExecuteData) SetFinishReason(val *string) { - p.FinishReason = val +func (p *ExecuteStreamingResponse) SetBaseResp(val *base.BaseResp) { + p.BaseResp = val +} + +var fieldIDToName_ExecuteStreamingResponse = map[int16]string{ + 1: "id", + 2: "event", + 3: "retry", + 4: "data", + 255: "BaseResp", } -func (p *ExecuteData) SetUsage(val *TokenUsage) { - p.Usage = val + +func (p *ExecuteStreamingResponse) IsSetID() bool { + return p.ID != nil } -var fieldIDToName_ExecuteData = map[int16]string{ - 1: "message", - 2: "finish_reason", - 3: "usage", +func (p *ExecuteStreamingResponse) IsSetEvent() bool { + return p.Event != nil } -func (p *ExecuteData) IsSetMessage() bool { - return p.Message != nil +func (p *ExecuteStreamingResponse) IsSetRetry() bool { + return p.Retry != nil } -func (p *ExecuteData) IsSetFinishReason() bool { - return p.FinishReason != nil +func (p *ExecuteStreamingResponse) IsSetData() bool { + return p.Data != nil } -func (p *ExecuteData) IsSetUsage() bool { - return p.Usage != nil +func (p *ExecuteStreamingResponse) IsSetBaseResp() bool { + return p.BaseResp != nil } -func (p *ExecuteData) Read(iprot thrift.TProtocol) (err error) { +func (p *ExecuteStreamingResponse) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -2723,7 +2421,7 @@ func (p *ExecuteData) Read(iprot thrift.TProtocol) (err error) { switch fieldId { case 1: - if fieldTypeId == thrift.STRUCT { + if fieldTypeId == thrift.STRING { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } @@ -2739,13 +2437,29 @@ func (p *ExecuteData) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 3: - if fieldTypeId == thrift.STRUCT { + if fieldTypeId == thrift.I64 { if err = p.ReadField3(iprot); err != nil { goto ReadFieldError } } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 4: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField4(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 255: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField255(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } default: if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError @@ -2765,7 +2479,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExecuteData[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExecuteStreamingResponse[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -2775,15 +2489,18 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExecuteData) ReadField1(iprot thrift.TProtocol) error { - _field := NewMessage() - if err := _field.Read(iprot); err != nil { +func (p *ExecuteStreamingResponse) ReadField1(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { return err + } else { + _field = &v } - p.Message = _field + p.ID = _field return nil } -func (p *ExecuteData) ReadField2(iprot thrift.TProtocol) error { +func (p *ExecuteStreamingResponse) ReadField2(iprot thrift.TProtocol) error { var _field *string if v, err := iprot.ReadString(); err != nil { @@ -2791,21 +2508,40 @@ func (p *ExecuteData) ReadField2(iprot thrift.TProtocol) error { } else { _field = &v } - p.FinishReason = _field + p.Event = _field + return nil +} +func (p *ExecuteStreamingResponse) ReadField3(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.Retry = _field + return nil +} +func (p *ExecuteStreamingResponse) ReadField4(iprot thrift.TProtocol) error { + _field := prompt.NewExecuteStreamingData() + if err := _field.Read(iprot); err != nil { + return err + } + p.Data = _field return nil } -func (p *ExecuteData) ReadField3(iprot thrift.TProtocol) error { - _field := NewTokenUsage() +func (p *ExecuteStreamingResponse) ReadField255(iprot thrift.TProtocol) error { + _field := base.NewBaseResp() if err := _field.Read(iprot); err != nil { return err } - p.Usage = _field + p.BaseResp = _field return nil } -func (p *ExecuteData) Write(oprot thrift.TProtocol) (err error) { +func (p *ExecuteStreamingResponse) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ExecuteData"); err != nil { + if err = oprot.WriteStructBegin("ExecuteStreamingResponse"); err != nil { goto WriteStructBeginError } if p != nil { @@ -2821,6 +2557,14 @@ func (p *ExecuteData) Write(oprot thrift.TProtocol) (err error) { fieldId = 3 goto WriteFieldError } + if err = p.writeField4(oprot); err != nil { + fieldId = 4 + goto WriteFieldError + } + if err = p.writeField255(oprot); err != nil { + fieldId = 255 + goto WriteFieldError + } } if err = oprot.WriteFieldStop(); err != nil { goto WriteFieldStopError @@ -2839,12 +2583,12 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExecuteData) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetMessage() { - if err = oprot.WriteFieldBegin("message", thrift.STRUCT, 1); err != nil { +func (p *ExecuteStreamingResponse) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetID() { + if err = oprot.WriteFieldBegin("id", thrift.STRING, 1); err != nil { goto WriteFieldBeginError } - if err := p.Message.Write(oprot); err != nil { + if err := oprot.WriteString(*p.ID); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -2857,12 +2601,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExecuteData) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetFinishReason() { - if err = oprot.WriteFieldBegin("finish_reason", thrift.STRING, 2); err != nil { +func (p *ExecuteStreamingResponse) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetEvent() { + if err = oprot.WriteFieldBegin("event", thrift.STRING, 2); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteString(*p.FinishReason); err != nil { + if err := oprot.WriteString(*p.Event); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -2875,12 +2619,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *ExecuteData) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetUsage() { - if err = oprot.WriteFieldBegin("usage", thrift.STRUCT, 3); err != nil { +func (p *ExecuteStreamingResponse) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetRetry() { + if err = oprot.WriteFieldBegin("retry", thrift.I64, 3); err != nil { goto WriteFieldBeginError } - if err := p.Usage.Write(oprot); err != nil { + if err := oprot.WriteI64(*p.Retry); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -2893,179 +2637,290 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) } +func (p *ExecuteStreamingResponse) writeField4(oprot thrift.TProtocol) (err error) { + if p.IsSetData() { + if err = oprot.WriteFieldBegin("data", thrift.STRUCT, 4); err != nil { + goto WriteFieldBeginError + } + if err := p.Data.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) +} +func (p *ExecuteStreamingResponse) writeField255(oprot thrift.TProtocol) (err error) { + if p.IsSetBaseResp() { + if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { + goto WriteFieldBeginError + } + if err := p.BaseResp.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) +} -func (p *ExecuteData) String() string { +func (p *ExecuteStreamingResponse) String() string { if p == nil { return "" } - return fmt.Sprintf("ExecuteData(%+v)", *p) + return fmt.Sprintf("ExecuteStreamingResponse(%+v)", *p) } -func (p *ExecuteData) DeepEqual(ano *ExecuteData) bool { +func (p *ExecuteStreamingResponse) DeepEqual(ano *ExecuteStreamingResponse) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.Message) { + if !p.Field1DeepEqual(ano.ID) { + return false + } + if !p.Field2DeepEqual(ano.Event) { + return false + } + if !p.Field3DeepEqual(ano.Retry) { return false } - if !p.Field2DeepEqual(ano.FinishReason) { + if !p.Field4DeepEqual(ano.Data) { return false } - if !p.Field3DeepEqual(ano.Usage) { + if !p.Field255DeepEqual(ano.BaseResp) { return false } return true } -func (p *ExecuteData) Field1DeepEqual(src *Message) bool { +func (p *ExecuteStreamingResponse) Field1DeepEqual(src *string) bool { + + if p.ID == src { + return true + } else if p.ID == nil || src == nil { + return false + } + if strings.Compare(*p.ID, *src) != 0 { + return false + } + return true +} +func (p *ExecuteStreamingResponse) Field2DeepEqual(src *string) bool { - if !p.Message.DeepEqual(src) { + if p.Event == src { + return true + } else if p.Event == nil || src == nil { + return false + } + if strings.Compare(*p.Event, *src) != 0 { return false } return true } -func (p *ExecuteData) Field2DeepEqual(src *string) bool { +func (p *ExecuteStreamingResponse) Field3DeepEqual(src *int64) bool { - if p.FinishReason == src { + if p.Retry == src { return true - } else if p.FinishReason == nil || src == nil { + } else if p.Retry == nil || src == nil { return false } - if strings.Compare(*p.FinishReason, *src) != 0 { + if *p.Retry != *src { return false } return true } -func (p *ExecuteData) Field3DeepEqual(src *TokenUsage) bool { +func (p *ExecuteStreamingResponse) Field4DeepEqual(src *prompt.ExecuteStreamingData) bool { - if !p.Usage.DeepEqual(src) { + if !p.Data.DeepEqual(src) { return false } return true } +func (p *ExecuteStreamingResponse) Field255DeepEqual(src *base.BaseResp) bool { -type ExecuteStreamingResponse struct { - ID *string `thrift:"id,1,optional" frugal:"1,optional,string" form:"id" json:"id,omitempty" query:"id"` - Event *string `thrift:"event,2,optional" frugal:"2,optional,string" form:"event" json:"event,omitempty" query:"event"` - Retry *int64 `thrift:"retry,3,optional" frugal:"3,optional,i64" form:"retry" json:"retry,omitempty" query:"retry"` - Data *ExecuteStreamingData `thrift:"data,4,optional" frugal:"4,optional,ExecuteStreamingData" form:"data" json:"data,omitempty" query:"data"` - BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` + if !p.BaseResp.DeepEqual(src) { + return false + } + return true } -func NewExecuteStreamingResponse() *ExecuteStreamingResponse { - return &ExecuteStreamingResponse{} +type ListPromptBasicRequest struct { + WorkspaceID *int64 `thrift:"workspace_id,1,optional" frugal:"1,optional,i64" json:"workspace_id" form:"workspace_id" ` + PageNumber *int32 `thrift:"page_number,2,optional" frugal:"2,optional,i32" form:"page_number" json:"page_number,omitempty"` + PageSize *int32 `thrift:"page_size,3,optional" frugal:"3,optional,i32" form:"page_size" json:"page_size,omitempty"` + // name/key前缀匹配 + KeyWord *string `thrift:"key_word,4,optional" frugal:"4,optional,string" form:"key_word" json:"key_word,omitempty"` + // 创建人 + Creator *string `thrift:"creator,5,optional" frugal:"5,optional,string" form:"creator" json:"creator,omitempty"` + // 额外查询条件 + Extra map[string]string `thrift:"extra,6,optional" frugal:"6,optional,map" form:"extra" json:"extra,omitempty"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } -func (p *ExecuteStreamingResponse) InitDefault() { +func NewListPromptBasicRequest() *ListPromptBasicRequest { + return &ListPromptBasicRequest{} } -var ExecuteStreamingResponse_ID_DEFAULT string +func (p *ListPromptBasicRequest) InitDefault() { +} -func (p *ExecuteStreamingResponse) GetID() (v string) { +var ListPromptBasicRequest_WorkspaceID_DEFAULT int64 + +func (p *ListPromptBasicRequest) GetWorkspaceID() (v int64) { if p == nil { return } - if !p.IsSetID() { - return ExecuteStreamingResponse_ID_DEFAULT + if !p.IsSetWorkspaceID() { + return ListPromptBasicRequest_WorkspaceID_DEFAULT } - return *p.ID + return *p.WorkspaceID } -var ExecuteStreamingResponse_Event_DEFAULT string +var ListPromptBasicRequest_PageNumber_DEFAULT int32 -func (p *ExecuteStreamingResponse) GetEvent() (v string) { +func (p *ListPromptBasicRequest) GetPageNumber() (v int32) { if p == nil { return } - if !p.IsSetEvent() { - return ExecuteStreamingResponse_Event_DEFAULT + if !p.IsSetPageNumber() { + return ListPromptBasicRequest_PageNumber_DEFAULT } - return *p.Event + return *p.PageNumber } -var ExecuteStreamingResponse_Retry_DEFAULT int64 +var ListPromptBasicRequest_PageSize_DEFAULT int32 -func (p *ExecuteStreamingResponse) GetRetry() (v int64) { +func (p *ListPromptBasicRequest) GetPageSize() (v int32) { if p == nil { return } - if !p.IsSetRetry() { - return ExecuteStreamingResponse_Retry_DEFAULT + if !p.IsSetPageSize() { + return ListPromptBasicRequest_PageSize_DEFAULT } - return *p.Retry + return *p.PageSize } -var ExecuteStreamingResponse_Data_DEFAULT *ExecuteStreamingData +var ListPromptBasicRequest_KeyWord_DEFAULT string -func (p *ExecuteStreamingResponse) GetData() (v *ExecuteStreamingData) { +func (p *ListPromptBasicRequest) GetKeyWord() (v string) { if p == nil { return } - if !p.IsSetData() { - return ExecuteStreamingResponse_Data_DEFAULT + if !p.IsSetKeyWord() { + return ListPromptBasicRequest_KeyWord_DEFAULT } - return p.Data + return *p.KeyWord } -var ExecuteStreamingResponse_BaseResp_DEFAULT *base.BaseResp +var ListPromptBasicRequest_Creator_DEFAULT string -func (p *ExecuteStreamingResponse) GetBaseResp() (v *base.BaseResp) { +func (p *ListPromptBasicRequest) GetCreator() (v string) { if p == nil { return } - if !p.IsSetBaseResp() { - return ExecuteStreamingResponse_BaseResp_DEFAULT + if !p.IsSetCreator() { + return ListPromptBasicRequest_Creator_DEFAULT } - return p.BaseResp + return *p.Creator } -func (p *ExecuteStreamingResponse) SetID(val *string) { - p.ID = val + +var ListPromptBasicRequest_Extra_DEFAULT map[string]string + +func (p *ListPromptBasicRequest) GetExtra() (v map[string]string) { + if p == nil { + return + } + if !p.IsSetExtra() { + return ListPromptBasicRequest_Extra_DEFAULT + } + return p.Extra } -func (p *ExecuteStreamingResponse) SetEvent(val *string) { - p.Event = val + +var ListPromptBasicRequest_Base_DEFAULT *base.Base + +func (p *ListPromptBasicRequest) GetBase() (v *base.Base) { + if p == nil { + return + } + if !p.IsSetBase() { + return ListPromptBasicRequest_Base_DEFAULT + } + return p.Base } -func (p *ExecuteStreamingResponse) SetRetry(val *int64) { - p.Retry = val +func (p *ListPromptBasicRequest) SetWorkspaceID(val *int64) { + p.WorkspaceID = val } -func (p *ExecuteStreamingResponse) SetData(val *ExecuteStreamingData) { - p.Data = val +func (p *ListPromptBasicRequest) SetPageNumber(val *int32) { + p.PageNumber = val } -func (p *ExecuteStreamingResponse) SetBaseResp(val *base.BaseResp) { - p.BaseResp = val +func (p *ListPromptBasicRequest) SetPageSize(val *int32) { + p.PageSize = val +} +func (p *ListPromptBasicRequest) SetKeyWord(val *string) { + p.KeyWord = val +} +func (p *ListPromptBasicRequest) SetCreator(val *string) { + p.Creator = val +} +func (p *ListPromptBasicRequest) SetExtra(val map[string]string) { + p.Extra = val +} +func (p *ListPromptBasicRequest) SetBase(val *base.Base) { + p.Base = val } -var fieldIDToName_ExecuteStreamingResponse = map[int16]string{ - 1: "id", - 2: "event", - 3: "retry", - 4: "data", - 255: "BaseResp", +var fieldIDToName_ListPromptBasicRequest = map[int16]string{ + 1: "workspace_id", + 2: "page_number", + 3: "page_size", + 4: "key_word", + 5: "creator", + 6: "extra", + 255: "Base", } -func (p *ExecuteStreamingResponse) IsSetID() bool { - return p.ID != nil +func (p *ListPromptBasicRequest) IsSetWorkspaceID() bool { + return p.WorkspaceID != nil } -func (p *ExecuteStreamingResponse) IsSetEvent() bool { - return p.Event != nil +func (p *ListPromptBasicRequest) IsSetPageNumber() bool { + return p.PageNumber != nil } -func (p *ExecuteStreamingResponse) IsSetRetry() bool { - return p.Retry != nil +func (p *ListPromptBasicRequest) IsSetPageSize() bool { + return p.PageSize != nil } -func (p *ExecuteStreamingResponse) IsSetData() bool { - return p.Data != nil +func (p *ListPromptBasicRequest) IsSetKeyWord() bool { + return p.KeyWord != nil } -func (p *ExecuteStreamingResponse) IsSetBaseResp() bool { - return p.BaseResp != nil +func (p *ListPromptBasicRequest) IsSetCreator() bool { + return p.Creator != nil } -func (p *ExecuteStreamingResponse) Read(iprot thrift.TProtocol) (err error) { +func (p *ListPromptBasicRequest) IsSetExtra() bool { + return p.Extra != nil +} + +func (p *ListPromptBasicRequest) IsSetBase() bool { + return p.Base != nil +} + +func (p *ListPromptBasicRequest) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -3084,7 +2939,7 @@ func (p *ExecuteStreamingResponse) Read(iprot thrift.TProtocol) (err error) { switch fieldId { case 1: - if fieldTypeId == thrift.STRING { + if fieldTypeId == thrift.I64 { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } @@ -3092,7 +2947,7 @@ func (p *ExecuteStreamingResponse) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 2: - if fieldTypeId == thrift.STRING { + if fieldTypeId == thrift.I32 { if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } @@ -3100,7 +2955,7 @@ func (p *ExecuteStreamingResponse) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 3: - if fieldTypeId == thrift.I64 { + if fieldTypeId == thrift.I32 { if err = p.ReadField3(iprot); err != nil { goto ReadFieldError } @@ -3108,13 +2963,29 @@ func (p *ExecuteStreamingResponse) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 4: - if fieldTypeId == thrift.STRUCT { + if fieldTypeId == thrift.STRING { if err = p.ReadField4(iprot); err != nil { goto ReadFieldError } } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 5: + if fieldTypeId == thrift.STRING { + if err = p.ReadField5(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 6: + if fieldTypeId == thrift.MAP { + if err = p.ReadField6(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } case 255: if fieldTypeId == thrift.STRUCT { if err = p.ReadField255(iprot); err != nil { @@ -3142,7 +3013,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExecuteStreamingResponse[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListPromptBasicRequest[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -3152,18 +3023,40 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExecuteStreamingResponse) ReadField1(iprot thrift.TProtocol) error { +func (p *ListPromptBasicRequest) ReadField1(iprot thrift.TProtocol) error { - var _field *string - if v, err := iprot.ReadString(); err != nil { + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { return err } else { _field = &v } - p.ID = _field + p.WorkspaceID = _field return nil } -func (p *ExecuteStreamingResponse) ReadField2(iprot thrift.TProtocol) error { +func (p *ListPromptBasicRequest) ReadField2(iprot thrift.TProtocol) error { + + var _field *int32 + if v, err := iprot.ReadI32(); err != nil { + return err + } else { + _field = &v + } + p.PageNumber = _field + return nil +} +func (p *ListPromptBasicRequest) ReadField3(iprot thrift.TProtocol) error { + + var _field *int32 + if v, err := iprot.ReadI32(); err != nil { + return err + } else { + _field = &v + } + p.PageSize = _field + return nil +} +func (p *ListPromptBasicRequest) ReadField4(iprot thrift.TProtocol) error { var _field *string if v, err := iprot.ReadString(); err != nil { @@ -3171,40 +3064,61 @@ func (p *ExecuteStreamingResponse) ReadField2(iprot thrift.TProtocol) error { } else { _field = &v } - p.Event = _field + p.KeyWord = _field return nil } -func (p *ExecuteStreamingResponse) ReadField3(iprot thrift.TProtocol) error { +func (p *ListPromptBasicRequest) ReadField5(iprot thrift.TProtocol) error { - var _field *int64 - if v, err := iprot.ReadI64(); err != nil { + var _field *string + if v, err := iprot.ReadString(); err != nil { return err } else { _field = &v } - p.Retry = _field + p.Creator = _field return nil } -func (p *ExecuteStreamingResponse) ReadField4(iprot thrift.TProtocol) error { - _field := NewExecuteStreamingData() - if err := _field.Read(iprot); err != nil { +func (p *ListPromptBasicRequest) ReadField6(iprot thrift.TProtocol) error { + _, _, size, err := iprot.ReadMapBegin() + if err != nil { return err } - p.Data = _field + _field := make(map[string]string, size) + for i := 0; i < size; i++ { + var _key string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _key = v + } + + var _val string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _val = v + } + + _field[_key] = _val + } + if err := iprot.ReadMapEnd(); err != nil { + return err + } + p.Extra = _field return nil } -func (p *ExecuteStreamingResponse) ReadField255(iprot thrift.TProtocol) error { - _field := base.NewBaseResp() +func (p *ListPromptBasicRequest) ReadField255(iprot thrift.TProtocol) error { + _field := base.NewBase() if err := _field.Read(iprot); err != nil { return err } - p.BaseResp = _field + p.Base = _field return nil } -func (p *ExecuteStreamingResponse) Write(oprot thrift.TProtocol) (err error) { +func (p *ListPromptBasicRequest) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ExecuteStreamingResponse"); err != nil { + if err = oprot.WriteStructBegin("ListPromptBasicRequest"); err != nil { goto WriteStructBeginError } if p != nil { @@ -3224,6 +3138,14 @@ func (p *ExecuteStreamingResponse) Write(oprot thrift.TProtocol) (err error) { fieldId = 4 goto WriteFieldError } + if err = p.writeField5(oprot); err != nil { + fieldId = 5 + goto WriteFieldError + } + if err = p.writeField6(oprot); err != nil { + fieldId = 6 + goto WriteFieldError + } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -3246,12 +3168,12 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExecuteStreamingResponse) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetID() { - if err = oprot.WriteFieldBegin("id", thrift.STRING, 1); err != nil { +func (p *ListPromptBasicRequest) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetWorkspaceID() { + if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteString(*p.ID); err != nil { + if err := oprot.WriteI64(*p.WorkspaceID); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -3264,12 +3186,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExecuteStreamingResponse) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetEvent() { - if err = oprot.WriteFieldBegin("event", thrift.STRING, 2); err != nil { +func (p *ListPromptBasicRequest) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetPageNumber() { + if err = oprot.WriteFieldBegin("page_number", thrift.I32, 2); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteString(*p.Event); err != nil { + if err := oprot.WriteI32(*p.PageNumber); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -3282,12 +3204,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *ExecuteStreamingResponse) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetRetry() { - if err = oprot.WriteFieldBegin("retry", thrift.I64, 3); err != nil { +func (p *ListPromptBasicRequest) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetPageSize() { + if err = oprot.WriteFieldBegin("page_size", thrift.I32, 3); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI64(*p.Retry); err != nil { + if err := oprot.WriteI32(*p.PageSize); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -3300,12 +3222,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) } -func (p *ExecuteStreamingResponse) writeField4(oprot thrift.TProtocol) (err error) { - if p.IsSetData() { - if err = oprot.WriteFieldBegin("data", thrift.STRUCT, 4); err != nil { +func (p *ListPromptBasicRequest) writeField4(oprot thrift.TProtocol) (err error) { + if p.IsSetKeyWord() { + if err = oprot.WriteFieldBegin("key_word", thrift.STRING, 4); err != nil { goto WriteFieldBeginError } - if err := p.Data.Write(oprot); err != nil { + if err := oprot.WriteString(*p.KeyWord); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -3318,12 +3240,59 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) } -func (p *ExecuteStreamingResponse) writeField255(oprot thrift.TProtocol) (err error) { - if p.IsSetBaseResp() { - if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { +func (p *ListPromptBasicRequest) writeField5(oprot thrift.TProtocol) (err error) { + if p.IsSetCreator() { + if err = oprot.WriteFieldBegin("creator", thrift.STRING, 5); err != nil { goto WriteFieldBeginError } - if err := p.BaseResp.Write(oprot); err != nil { + if err := oprot.WriteString(*p.Creator); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) +} +func (p *ListPromptBasicRequest) writeField6(oprot thrift.TProtocol) (err error) { + if p.IsSetExtra() { + if err = oprot.WriteFieldBegin("extra", thrift.MAP, 6); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.Extra)); err != nil { + return err + } + for k, v := range p.Extra { + if err := oprot.WriteString(k); err != nil { + return err + } + if err := oprot.WriteString(v); err != nil { + return err + } + } + if err := oprot.WriteMapEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) +} +func (p *ListPromptBasicRequest) writeField255(oprot thrift.TProtocol) (err error) { + if p.IsSetBase() { + if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { + goto WriteFieldBeginError + } + if err := p.Base.Write(oprot); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -3337,211 +3306,223 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *ExecuteStreamingResponse) String() string { +func (p *ListPromptBasicRequest) String() string { if p == nil { return "" } - return fmt.Sprintf("ExecuteStreamingResponse(%+v)", *p) + return fmt.Sprintf("ListPromptBasicRequest(%+v)", *p) } -func (p *ExecuteStreamingResponse) DeepEqual(ano *ExecuteStreamingResponse) bool { +func (p *ListPromptBasicRequest) DeepEqual(ano *ListPromptBasicRequest) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.ID) { + if !p.Field1DeepEqual(ano.WorkspaceID) { return false } - if !p.Field2DeepEqual(ano.Event) { + if !p.Field2DeepEqual(ano.PageNumber) { return false } - if !p.Field3DeepEqual(ano.Retry) { + if !p.Field3DeepEqual(ano.PageSize) { return false } - if !p.Field4DeepEqual(ano.Data) { + if !p.Field4DeepEqual(ano.KeyWord) { return false } - if !p.Field255DeepEqual(ano.BaseResp) { + if !p.Field5DeepEqual(ano.Creator) { + return false + } + if !p.Field6DeepEqual(ano.Extra) { + return false + } + if !p.Field255DeepEqual(ano.Base) { return false } return true } -func (p *ExecuteStreamingResponse) Field1DeepEqual(src *string) bool { +func (p *ListPromptBasicRequest) Field1DeepEqual(src *int64) bool { - if p.ID == src { + if p.WorkspaceID == src { return true - } else if p.ID == nil || src == nil { + } else if p.WorkspaceID == nil || src == nil { return false } - if strings.Compare(*p.ID, *src) != 0 { + if *p.WorkspaceID != *src { return false } return true } -func (p *ExecuteStreamingResponse) Field2DeepEqual(src *string) bool { +func (p *ListPromptBasicRequest) Field2DeepEqual(src *int32) bool { - if p.Event == src { + if p.PageNumber == src { return true - } else if p.Event == nil || src == nil { + } else if p.PageNumber == nil || src == nil { return false } - if strings.Compare(*p.Event, *src) != 0 { + if *p.PageNumber != *src { return false } return true } -func (p *ExecuteStreamingResponse) Field3DeepEqual(src *int64) bool { +func (p *ListPromptBasicRequest) Field3DeepEqual(src *int32) bool { - if p.Retry == src { + if p.PageSize == src { return true - } else if p.Retry == nil || src == nil { + } else if p.PageSize == nil || src == nil { return false } - if *p.Retry != *src { + if *p.PageSize != *src { return false } return true } -func (p *ExecuteStreamingResponse) Field4DeepEqual(src *ExecuteStreamingData) bool { +func (p *ListPromptBasicRequest) Field4DeepEqual(src *string) bool { - if !p.Data.DeepEqual(src) { + if p.KeyWord == src { + return true + } else if p.KeyWord == nil || src == nil { + return false + } + if strings.Compare(*p.KeyWord, *src) != 0 { return false } return true } -func (p *ExecuteStreamingResponse) Field255DeepEqual(src *base.BaseResp) bool { +func (p *ListPromptBasicRequest) Field5DeepEqual(src *string) bool { - if !p.BaseResp.DeepEqual(src) { + if p.Creator == src { + return true + } else if p.Creator == nil || src == nil { + return false + } + if strings.Compare(*p.Creator, *src) != 0 { return false } return true } +func (p *ListPromptBasicRequest) Field6DeepEqual(src map[string]string) bool { -type ExecuteStreamingData struct { - Code *int32 `thrift:"code,1,optional" frugal:"1,optional,i32" form:"code" json:"code,omitempty" query:"code"` - Msg *string `thrift:"msg,2,optional" frugal:"2,optional,string" form:"msg" json:"msg,omitempty" query:"msg"` - // 消息 - Message *Message `thrift:"message,3,optional" frugal:"3,optional,Message" form:"message" json:"message,omitempty" query:"message"` - // 结束原因 - FinishReason *string `thrift:"finish_reason,4,optional" frugal:"4,optional,string" form:"finish_reason" json:"finish_reason,omitempty" query:"finish_reason"` - // token消耗 - Usage *TokenUsage `thrift:"usage,5,optional" frugal:"5,optional,TokenUsage" form:"usage" json:"usage,omitempty" query:"usage"` + if len(p.Extra) != len(src) { + return false + } + for k, v := range p.Extra { + _src := src[k] + if strings.Compare(v, _src) != 0 { + return false + } + } + return true +} +func (p *ListPromptBasicRequest) Field255DeepEqual(src *base.Base) bool { + + if !p.Base.DeepEqual(src) { + return false + } + return true +} + +type ListPromptBasicResponse struct { + Code *int32 `thrift:"code,1,optional" frugal:"1,optional,i32" form:"code" json:"code,omitempty" query:"code"` + Msg *string `thrift:"msg,2,optional" frugal:"2,optional,string" form:"msg" json:"msg,omitempty" query:"msg"` + Data *prompt.ListPromptBasicData `thrift:"data,3,optional" frugal:"3,optional,prompt.ListPromptBasicData" form:"data" json:"data,omitempty" query:"data"` + BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` } -func NewExecuteStreamingData() *ExecuteStreamingData { - return &ExecuteStreamingData{} +func NewListPromptBasicResponse() *ListPromptBasicResponse { + return &ListPromptBasicResponse{} } -func (p *ExecuteStreamingData) InitDefault() { +func (p *ListPromptBasicResponse) InitDefault() { } -var ExecuteStreamingData_Code_DEFAULT int32 +var ListPromptBasicResponse_Code_DEFAULT int32 -func (p *ExecuteStreamingData) GetCode() (v int32) { +func (p *ListPromptBasicResponse) GetCode() (v int32) { if p == nil { return } if !p.IsSetCode() { - return ExecuteStreamingData_Code_DEFAULT + return ListPromptBasicResponse_Code_DEFAULT } return *p.Code } -var ExecuteStreamingData_Msg_DEFAULT string +var ListPromptBasicResponse_Msg_DEFAULT string -func (p *ExecuteStreamingData) GetMsg() (v string) { +func (p *ListPromptBasicResponse) GetMsg() (v string) { if p == nil { return } if !p.IsSetMsg() { - return ExecuteStreamingData_Msg_DEFAULT + return ListPromptBasicResponse_Msg_DEFAULT } return *p.Msg } -var ExecuteStreamingData_Message_DEFAULT *Message - -func (p *ExecuteStreamingData) GetMessage() (v *Message) { - if p == nil { - return - } - if !p.IsSetMessage() { - return ExecuteStreamingData_Message_DEFAULT - } - return p.Message -} - -var ExecuteStreamingData_FinishReason_DEFAULT string +var ListPromptBasicResponse_Data_DEFAULT *prompt.ListPromptBasicData -func (p *ExecuteStreamingData) GetFinishReason() (v string) { +func (p *ListPromptBasicResponse) GetData() (v *prompt.ListPromptBasicData) { if p == nil { return } - if !p.IsSetFinishReason() { - return ExecuteStreamingData_FinishReason_DEFAULT + if !p.IsSetData() { + return ListPromptBasicResponse_Data_DEFAULT } - return *p.FinishReason + return p.Data } -var ExecuteStreamingData_Usage_DEFAULT *TokenUsage +var ListPromptBasicResponse_BaseResp_DEFAULT *base.BaseResp -func (p *ExecuteStreamingData) GetUsage() (v *TokenUsage) { +func (p *ListPromptBasicResponse) GetBaseResp() (v *base.BaseResp) { if p == nil { return } - if !p.IsSetUsage() { - return ExecuteStreamingData_Usage_DEFAULT + if !p.IsSetBaseResp() { + return ListPromptBasicResponse_BaseResp_DEFAULT } - return p.Usage + return p.BaseResp } -func (p *ExecuteStreamingData) SetCode(val *int32) { +func (p *ListPromptBasicResponse) SetCode(val *int32) { p.Code = val } -func (p *ExecuteStreamingData) SetMsg(val *string) { +func (p *ListPromptBasicResponse) SetMsg(val *string) { p.Msg = val } -func (p *ExecuteStreamingData) SetMessage(val *Message) { - p.Message = val -} -func (p *ExecuteStreamingData) SetFinishReason(val *string) { - p.FinishReason = val +func (p *ListPromptBasicResponse) SetData(val *prompt.ListPromptBasicData) { + p.Data = val } -func (p *ExecuteStreamingData) SetUsage(val *TokenUsage) { - p.Usage = val +func (p *ListPromptBasicResponse) SetBaseResp(val *base.BaseResp) { + p.BaseResp = val } -var fieldIDToName_ExecuteStreamingData = map[int16]string{ - 1: "code", - 2: "msg", - 3: "message", - 4: "finish_reason", - 5: "usage", +var fieldIDToName_ListPromptBasicResponse = map[int16]string{ + 1: "code", + 2: "msg", + 3: "data", + 255: "BaseResp", } -func (p *ExecuteStreamingData) IsSetCode() bool { +func (p *ListPromptBasicResponse) IsSetCode() bool { return p.Code != nil } -func (p *ExecuteStreamingData) IsSetMsg() bool { +func (p *ListPromptBasicResponse) IsSetMsg() bool { return p.Msg != nil } -func (p *ExecuteStreamingData) IsSetMessage() bool { - return p.Message != nil -} - -func (p *ExecuteStreamingData) IsSetFinishReason() bool { - return p.FinishReason != nil +func (p *ListPromptBasicResponse) IsSetData() bool { + return p.Data != nil } -func (p *ExecuteStreamingData) IsSetUsage() bool { - return p.Usage != nil +func (p *ListPromptBasicResponse) IsSetBaseResp() bool { + return p.BaseResp != nil } -func (p *ExecuteStreamingData) Read(iprot thrift.TProtocol) (err error) { +func (p *ListPromptBasicResponse) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -3583,17 +3564,9 @@ func (p *ExecuteStreamingData) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } - case 4: - if fieldTypeId == thrift.STRING { - if err = p.ReadField4(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 5: + case 255: if fieldTypeId == thrift.STRUCT { - if err = p.ReadField5(iprot); err != nil { + if err = p.ReadField255(iprot); err != nil { goto ReadFieldError } } else if err = iprot.Skip(fieldTypeId); err != nil { @@ -3618,7 +3591,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExecuteStreamingData[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListPromptBasicResponse[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -3628,7 +3601,7 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExecuteStreamingData) ReadField1(iprot thrift.TProtocol) error { +func (p *ListPromptBasicResponse) ReadField1(iprot thrift.TProtocol) error { var _field *int32 if v, err := iprot.ReadI32(); err != nil { @@ -3639,7 +3612,7 @@ func (p *ExecuteStreamingData) ReadField1(iprot thrift.TProtocol) error { p.Code = _field return nil } -func (p *ExecuteStreamingData) ReadField2(iprot thrift.TProtocol) error { +func (p *ListPromptBasicResponse) ReadField2(iprot thrift.TProtocol) error { var _field *string if v, err := iprot.ReadString(); err != nil { @@ -3650,37 +3623,26 @@ func (p *ExecuteStreamingData) ReadField2(iprot thrift.TProtocol) error { p.Msg = _field return nil } -func (p *ExecuteStreamingData) ReadField3(iprot thrift.TProtocol) error { - _field := NewMessage() +func (p *ListPromptBasicResponse) ReadField3(iprot thrift.TProtocol) error { + _field := prompt.NewListPromptBasicData() if err := _field.Read(iprot); err != nil { return err } - p.Message = _field - return nil -} -func (p *ExecuteStreamingData) ReadField4(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.FinishReason = _field + p.Data = _field return nil } -func (p *ExecuteStreamingData) ReadField5(iprot thrift.TProtocol) error { - _field := NewTokenUsage() +func (p *ListPromptBasicResponse) ReadField255(iprot thrift.TProtocol) error { + _field := base.NewBaseResp() if err := _field.Read(iprot); err != nil { return err } - p.Usage = _field + p.BaseResp = _field return nil } -func (p *ExecuteStreamingData) Write(oprot thrift.TProtocol) (err error) { +func (p *ListPromptBasicResponse) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ExecuteStreamingData"); err != nil { + if err = oprot.WriteStructBegin("ListPromptBasicResponse"); err != nil { goto WriteStructBeginError } if p != nil { @@ -3696,12 +3658,8 @@ func (p *ExecuteStreamingData) Write(oprot thrift.TProtocol) (err error) { fieldId = 3 goto WriteFieldError } - if err = p.writeField4(oprot); err != nil { - fieldId = 4 - goto WriteFieldError - } - if err = p.writeField5(oprot); err != nil { - fieldId = 5 + if err = p.writeField255(oprot); err != nil { + fieldId = 255 goto WriteFieldError } } @@ -3722,7 +3680,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExecuteStreamingData) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ListPromptBasicResponse) writeField1(oprot thrift.TProtocol) (err error) { if p.IsSetCode() { if err = oprot.WriteFieldBegin("code", thrift.I32, 1); err != nil { goto WriteFieldBeginError @@ -3740,7 +3698,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExecuteStreamingData) writeField2(oprot thrift.TProtocol) (err error) { +func (p *ListPromptBasicResponse) writeField2(oprot thrift.TProtocol) (err error) { if p.IsSetMsg() { if err = oprot.WriteFieldBegin("msg", thrift.STRING, 2); err != nil { goto WriteFieldBeginError @@ -3758,12 +3716,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *ExecuteStreamingData) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetMessage() { - if err = oprot.WriteFieldBegin("message", thrift.STRUCT, 3); err != nil { +func (p *ListPromptBasicResponse) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetData() { + if err = oprot.WriteFieldBegin("data", thrift.STRUCT, 3); err != nil { goto WriteFieldBeginError } - if err := p.Message.Write(oprot); err != nil { + if err := p.Data.Write(oprot); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -3776,30 +3734,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) } -func (p *ExecuteStreamingData) writeField4(oprot thrift.TProtocol) (err error) { - if p.IsSetFinishReason() { - if err = oprot.WriteFieldBegin("finish_reason", thrift.STRING, 4); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.FinishReason); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) -} -func (p *ExecuteStreamingData) writeField5(oprot thrift.TProtocol) (err error) { - if p.IsSetUsage() { - if err = oprot.WriteFieldBegin("usage", thrift.STRUCT, 5); err != nil { +func (p *ListPromptBasicResponse) writeField255(oprot thrift.TProtocol) (err error) { + if p.IsSetBaseResp() { + if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError } - if err := p.Usage.Write(oprot); err != nil { + if err := p.BaseResp.Write(oprot); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -3808,20 +3748,20 @@ func (p *ExecuteStreamingData) writeField5(oprot thrift.TProtocol) (err error) { } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 255 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *ExecuteStreamingData) String() string { +func (p *ListPromptBasicResponse) String() string { if p == nil { return "" } - return fmt.Sprintf("ExecuteStreamingData(%+v)", *p) + return fmt.Sprintf("ListPromptBasicResponse(%+v)", *p) } -func (p *ExecuteStreamingData) DeepEqual(ano *ExecuteStreamingData) bool { +func (p *ListPromptBasicResponse) DeepEqual(ano *ListPromptBasicResponse) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -3833,19 +3773,16 @@ func (p *ExecuteStreamingData) DeepEqual(ano *ExecuteStreamingData) bool { if !p.Field2DeepEqual(ano.Msg) { return false } - if !p.Field3DeepEqual(ano.Message) { + if !p.Field3DeepEqual(ano.Data) { return false } - if !p.Field4DeepEqual(ano.FinishReason) { - return false - } - if !p.Field5DeepEqual(ano.Usage) { + if !p.Field255DeepEqual(ano.BaseResp) { return false } return true } -func (p *ExecuteStreamingData) Field1DeepEqual(src *int32) bool { +func (p *ListPromptBasicResponse) Field1DeepEqual(src *int32) bool { if p.Code == src { return true @@ -3857,7 +3794,7 @@ func (p *ExecuteStreamingData) Field1DeepEqual(src *int32) bool { } return true } -func (p *ExecuteStreamingData) Field2DeepEqual(src *string) bool { +func (p *ListPromptBasicResponse) Field2DeepEqual(src *string) bool { if p.Msg == src { return true @@ -3869,13264 +3806,16 @@ func (p *ExecuteStreamingData) Field2DeepEqual(src *string) bool { } return true } -func (p *ExecuteStreamingData) Field3DeepEqual(src *Message) bool { - - if !p.Message.DeepEqual(src) { - return false - } - return true -} -func (p *ExecuteStreamingData) Field4DeepEqual(src *string) bool { - - if p.FinishReason == src { - return true - } else if p.FinishReason == nil || src == nil { - return false - } - if strings.Compare(*p.FinishReason, *src) != 0 { - return false - } - return true -} -func (p *ExecuteStreamingData) Field5DeepEqual(src *TokenUsage) bool { - - if !p.Usage.DeepEqual(src) { - return false - } - return true -} - -type PromptQuery struct { - // prompt_key - PromptKey *string `thrift:"prompt_key,1,optional" frugal:"1,optional,string" form:"prompt_key" json:"prompt_key,omitempty" query:"prompt_key"` - // prompt版本 - Version *string `thrift:"version,2,optional" frugal:"2,optional,string" form:"version" json:"version,omitempty" query:"version"` - // prompt版本标识(如果version不为空,该字段会被忽略) - Label *string `thrift:"label,3,optional" frugal:"3,optional,string" form:"label" json:"label,omitempty" query:"label"` -} - -func NewPromptQuery() *PromptQuery { - return &PromptQuery{} -} - -func (p *PromptQuery) InitDefault() { -} - -var PromptQuery_PromptKey_DEFAULT string - -func (p *PromptQuery) GetPromptKey() (v string) { - if p == nil { - return - } - if !p.IsSetPromptKey() { - return PromptQuery_PromptKey_DEFAULT - } - return *p.PromptKey -} - -var PromptQuery_Version_DEFAULT string - -func (p *PromptQuery) GetVersion() (v string) { - if p == nil { - return - } - if !p.IsSetVersion() { - return PromptQuery_Version_DEFAULT - } - return *p.Version -} - -var PromptQuery_Label_DEFAULT string - -func (p *PromptQuery) GetLabel() (v string) { - if p == nil { - return - } - if !p.IsSetLabel() { - return PromptQuery_Label_DEFAULT - } - return *p.Label -} -func (p *PromptQuery) SetPromptKey(val *string) { - p.PromptKey = val -} -func (p *PromptQuery) SetVersion(val *string) { - p.Version = val -} -func (p *PromptQuery) SetLabel(val *string) { - p.Label = val -} - -var fieldIDToName_PromptQuery = map[int16]string{ - 1: "prompt_key", - 2: "version", - 3: "label", -} - -func (p *PromptQuery) IsSetPromptKey() bool { - return p.PromptKey != nil -} - -func (p *PromptQuery) IsSetVersion() bool { - return p.Version != nil -} - -func (p *PromptQuery) IsSetLabel() bool { - return p.Label != nil -} - -func (p *PromptQuery) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.STRING { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.STRING { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptQuery[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *PromptQuery) ReadField1(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.PromptKey = _field - return nil -} -func (p *PromptQuery) ReadField2(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Version = _field - return nil -} -func (p *PromptQuery) ReadField3(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Label = _field - return nil -} - -func (p *PromptQuery) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("PromptQuery"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *PromptQuery) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetPromptKey() { - if err = oprot.WriteFieldBegin("prompt_key", thrift.STRING, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.PromptKey); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *PromptQuery) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetVersion() { - if err = oprot.WriteFieldBegin("version", thrift.STRING, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Version); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *PromptQuery) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetLabel() { - if err = oprot.WriteFieldBegin("label", thrift.STRING, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Label); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} - -func (p *PromptQuery) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("PromptQuery(%+v)", *p) - -} +func (p *ListPromptBasicResponse) Field3DeepEqual(src *prompt.ListPromptBasicData) bool { -func (p *PromptQuery) DeepEqual(ano *PromptQuery) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.PromptKey) { - return false - } - if !p.Field2DeepEqual(ano.Version) { - return false - } - if !p.Field3DeepEqual(ano.Label) { + if !p.Data.DeepEqual(src) { return false } return true } +func (p *ListPromptBasicResponse) Field255DeepEqual(src *base.BaseResp) bool { -func (p *PromptQuery) Field1DeepEqual(src *string) bool { - - if p.PromptKey == src { - return true - } else if p.PromptKey == nil || src == nil { - return false - } - if strings.Compare(*p.PromptKey, *src) != 0 { - return false - } - return true -} -func (p *PromptQuery) Field2DeepEqual(src *string) bool { - - if p.Version == src { - return true - } else if p.Version == nil || src == nil { - return false - } - if strings.Compare(*p.Version, *src) != 0 { - return false - } - return true -} -func (p *PromptQuery) Field3DeepEqual(src *string) bool { - - if p.Label == src { - return true - } else if p.Label == nil || src == nil { - return false - } - if strings.Compare(*p.Label, *src) != 0 { - return false - } - return true -} - -type PromptResult_ struct { - Query *PromptQuery `thrift:"query,1,optional" frugal:"1,optional,PromptQuery" form:"query" json:"query,omitempty" query:"query"` - Prompt *Prompt `thrift:"prompt,2,optional" frugal:"2,optional,Prompt" form:"prompt" json:"prompt,omitempty" query:"prompt"` -} - -func NewPromptResult_() *PromptResult_ { - return &PromptResult_{} -} - -func (p *PromptResult_) InitDefault() { -} - -var PromptResult__Query_DEFAULT *PromptQuery - -func (p *PromptResult_) GetQuery() (v *PromptQuery) { - if p == nil { - return - } - if !p.IsSetQuery() { - return PromptResult__Query_DEFAULT - } - return p.Query -} - -var PromptResult__Prompt_DEFAULT *Prompt - -func (p *PromptResult_) GetPrompt() (v *Prompt) { - if p == nil { - return - } - if !p.IsSetPrompt() { - return PromptResult__Prompt_DEFAULT - } - return p.Prompt -} -func (p *PromptResult_) SetQuery(val *PromptQuery) { - p.Query = val -} -func (p *PromptResult_) SetPrompt(val *Prompt) { - p.Prompt = val -} - -var fieldIDToName_PromptResult_ = map[int16]string{ - 1: "query", - 2: "prompt", -} - -func (p *PromptResult_) IsSetQuery() bool { - return p.Query != nil -} - -func (p *PromptResult_) IsSetPrompt() bool { - return p.Prompt != nil -} - -func (p *PromptResult_) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptResult_[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *PromptResult_) ReadField1(iprot thrift.TProtocol) error { - _field := NewPromptQuery() - if err := _field.Read(iprot); err != nil { - return err - } - p.Query = _field - return nil -} -func (p *PromptResult_) ReadField2(iprot thrift.TProtocol) error { - _field := NewPrompt() - if err := _field.Read(iprot); err != nil { - return err - } - p.Prompt = _field - return nil -} - -func (p *PromptResult_) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("PromptResult"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *PromptResult_) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetQuery() { - if err = oprot.WriteFieldBegin("query", thrift.STRUCT, 1); err != nil { - goto WriteFieldBeginError - } - if err := p.Query.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *PromptResult_) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetPrompt() { - if err = oprot.WriteFieldBegin("prompt", thrift.STRUCT, 2); err != nil { - goto WriteFieldBeginError - } - if err := p.Prompt.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} - -func (p *PromptResult_) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("PromptResult_(%+v)", *p) - -} - -func (p *PromptResult_) DeepEqual(ano *PromptResult_) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.Query) { - return false - } - if !p.Field2DeepEqual(ano.Prompt) { - return false - } - return true -} - -func (p *PromptResult_) Field1DeepEqual(src *PromptQuery) bool { - - if !p.Query.DeepEqual(src) { - return false - } - return true -} -func (p *PromptResult_) Field2DeepEqual(src *Prompt) bool { - - if !p.Prompt.DeepEqual(src) { - return false - } - return true -} - -type Prompt struct { - // 空间ID - WorkspaceID *int64 `thrift:"workspace_id,1,optional" frugal:"1,optional,i64" json:"workspace_id" form:"workspace_id" query:"workspace_id"` - // 唯一标识 - PromptKey *string `thrift:"prompt_key,2,optional" frugal:"2,optional,string" form:"prompt_key" json:"prompt_key,omitempty" query:"prompt_key"` - // 版本 - Version *string `thrift:"version,3,optional" frugal:"3,optional,string" form:"version" json:"version,omitempty" query:"version"` - // Prompt模板 - PromptTemplate *PromptTemplate `thrift:"prompt_template,4,optional" frugal:"4,optional,PromptTemplate" form:"prompt_template" json:"prompt_template,omitempty" query:"prompt_template"` - // tool定义 - Tools []*Tool `thrift:"tools,5,optional" frugal:"5,optional,list" form:"tools" json:"tools,omitempty" query:"tools"` - // tool调用配置 - ToolCallConfig *ToolCallConfig `thrift:"tool_call_config,6,optional" frugal:"6,optional,ToolCallConfig" form:"tool_call_config" json:"tool_call_config,omitempty" query:"tool_call_config"` - // 模型配置 - LlmConfig *LLMConfig `thrift:"llm_config,7,optional" frugal:"7,optional,LLMConfig" form:"llm_config" json:"llm_config,omitempty" query:"llm_config"` - // promptId - ID *int64 `thrift:"id,8,optional" frugal:"8,optional,i64" json:"id" form:"id" query:"id"` - // Prompt名称 - DisplayName *string `thrift:"display_name,9,optional" frugal:"9,optional,string" form:"display_name" json:"display_name,omitempty" query:"display_name"` - // Prompt描述 - Description *string `thrift:"description,10,optional" frugal:"10,optional,string" form:"description" json:"description,omitempty" query:"description"` - // Prompt类型 - PromptType *PromptType `thrift:"prompt_type,11,optional" frugal:"11,optional,string" form:"prompt_type" json:"prompt_type,omitempty" query:"prompt_type"` - CreatedBy *string `thrift:"created_by,12,optional" frugal:"12,optional,string" form:"created_by" json:"created_by,omitempty" query:"created_by"` - CreatedAt *int64 `thrift:"created_at,14,optional" frugal:"14,optional,i64" json:"created_at" form:"created_at" query:"created_at"` - UpdatedAt *int64 `thrift:"updated_at,15,optional" frugal:"15,optional,i64" json:"updated_at" form:"updated_at" query:"updated_at"` - // 发布状态 - Status *PublishStatus `thrift:"status,16,optional" frugal:"16,optional,string" form:"status" json:"status,omitempty" query:"status"` - // 发布信息 - PublishInfo *PromptPublishInfo `thrift:"PublishInfo,17,optional" frugal:"17,optional,PromptPublishInfo" form:"PublishInfo" json:"PublishInfo,omitempty" query:"PublishInfo"` - // 密级标签 - SecurityLevel *SecurityLevel `thrift:"security_level,18,optional" frugal:"18,optional,string" form:"security_level" json:"security_level,omitempty" query:"security_level"` -} - -func NewPrompt() *Prompt { - return &Prompt{} -} - -func (p *Prompt) InitDefault() { -} - -var Prompt_WorkspaceID_DEFAULT int64 - -func (p *Prompt) GetWorkspaceID() (v int64) { - if p == nil { - return - } - if !p.IsSetWorkspaceID() { - return Prompt_WorkspaceID_DEFAULT - } - return *p.WorkspaceID -} - -var Prompt_PromptKey_DEFAULT string - -func (p *Prompt) GetPromptKey() (v string) { - if p == nil { - return - } - if !p.IsSetPromptKey() { - return Prompt_PromptKey_DEFAULT - } - return *p.PromptKey -} - -var Prompt_Version_DEFAULT string - -func (p *Prompt) GetVersion() (v string) { - if p == nil { - return - } - if !p.IsSetVersion() { - return Prompt_Version_DEFAULT - } - return *p.Version -} - -var Prompt_PromptTemplate_DEFAULT *PromptTemplate - -func (p *Prompt) GetPromptTemplate() (v *PromptTemplate) { - if p == nil { - return - } - if !p.IsSetPromptTemplate() { - return Prompt_PromptTemplate_DEFAULT - } - return p.PromptTemplate -} - -var Prompt_Tools_DEFAULT []*Tool - -func (p *Prompt) GetTools() (v []*Tool) { - if p == nil { - return - } - if !p.IsSetTools() { - return Prompt_Tools_DEFAULT - } - return p.Tools -} - -var Prompt_ToolCallConfig_DEFAULT *ToolCallConfig - -func (p *Prompt) GetToolCallConfig() (v *ToolCallConfig) { - if p == nil { - return - } - if !p.IsSetToolCallConfig() { - return Prompt_ToolCallConfig_DEFAULT - } - return p.ToolCallConfig -} - -var Prompt_LlmConfig_DEFAULT *LLMConfig - -func (p *Prompt) GetLlmConfig() (v *LLMConfig) { - if p == nil { - return - } - if !p.IsSetLlmConfig() { - return Prompt_LlmConfig_DEFAULT - } - return p.LlmConfig -} - -var Prompt_ID_DEFAULT int64 - -func (p *Prompt) GetID() (v int64) { - if p == nil { - return - } - if !p.IsSetID() { - return Prompt_ID_DEFAULT - } - return *p.ID -} - -var Prompt_DisplayName_DEFAULT string - -func (p *Prompt) GetDisplayName() (v string) { - if p == nil { - return - } - if !p.IsSetDisplayName() { - return Prompt_DisplayName_DEFAULT - } - return *p.DisplayName -} - -var Prompt_Description_DEFAULT string - -func (p *Prompt) GetDescription() (v string) { - if p == nil { - return - } - if !p.IsSetDescription() { - return Prompt_Description_DEFAULT - } - return *p.Description -} - -var Prompt_PromptType_DEFAULT PromptType - -func (p *Prompt) GetPromptType() (v PromptType) { - if p == nil { - return - } - if !p.IsSetPromptType() { - return Prompt_PromptType_DEFAULT - } - return *p.PromptType -} - -var Prompt_CreatedBy_DEFAULT string - -func (p *Prompt) GetCreatedBy() (v string) { - if p == nil { - return - } - if !p.IsSetCreatedBy() { - return Prompt_CreatedBy_DEFAULT - } - return *p.CreatedBy -} - -var Prompt_CreatedAt_DEFAULT int64 - -func (p *Prompt) GetCreatedAt() (v int64) { - if p == nil { - return - } - if !p.IsSetCreatedAt() { - return Prompt_CreatedAt_DEFAULT - } - return *p.CreatedAt -} - -var Prompt_UpdatedAt_DEFAULT int64 - -func (p *Prompt) GetUpdatedAt() (v int64) { - if p == nil { - return - } - if !p.IsSetUpdatedAt() { - return Prompt_UpdatedAt_DEFAULT - } - return *p.UpdatedAt -} - -var Prompt_Status_DEFAULT PublishStatus - -func (p *Prompt) GetStatus() (v PublishStatus) { - if p == nil { - return - } - if !p.IsSetStatus() { - return Prompt_Status_DEFAULT - } - return *p.Status -} - -var Prompt_PublishInfo_DEFAULT *PromptPublishInfo - -func (p *Prompt) GetPublishInfo() (v *PromptPublishInfo) { - if p == nil { - return - } - if !p.IsSetPublishInfo() { - return Prompt_PublishInfo_DEFAULT - } - return p.PublishInfo -} - -var Prompt_SecurityLevel_DEFAULT SecurityLevel - -func (p *Prompt) GetSecurityLevel() (v SecurityLevel) { - if p == nil { - return - } - if !p.IsSetSecurityLevel() { - return Prompt_SecurityLevel_DEFAULT - } - return *p.SecurityLevel -} -func (p *Prompt) SetWorkspaceID(val *int64) { - p.WorkspaceID = val -} -func (p *Prompt) SetPromptKey(val *string) { - p.PromptKey = val -} -func (p *Prompt) SetVersion(val *string) { - p.Version = val -} -func (p *Prompt) SetPromptTemplate(val *PromptTemplate) { - p.PromptTemplate = val -} -func (p *Prompt) SetTools(val []*Tool) { - p.Tools = val -} -func (p *Prompt) SetToolCallConfig(val *ToolCallConfig) { - p.ToolCallConfig = val -} -func (p *Prompt) SetLlmConfig(val *LLMConfig) { - p.LlmConfig = val -} -func (p *Prompt) SetID(val *int64) { - p.ID = val -} -func (p *Prompt) SetDisplayName(val *string) { - p.DisplayName = val -} -func (p *Prompt) SetDescription(val *string) { - p.Description = val -} -func (p *Prompt) SetPromptType(val *PromptType) { - p.PromptType = val -} -func (p *Prompt) SetCreatedBy(val *string) { - p.CreatedBy = val -} -func (p *Prompt) SetCreatedAt(val *int64) { - p.CreatedAt = val -} -func (p *Prompt) SetUpdatedAt(val *int64) { - p.UpdatedAt = val -} -func (p *Prompt) SetStatus(val *PublishStatus) { - p.Status = val -} -func (p *Prompt) SetPublishInfo(val *PromptPublishInfo) { - p.PublishInfo = val -} -func (p *Prompt) SetSecurityLevel(val *SecurityLevel) { - p.SecurityLevel = val -} - -var fieldIDToName_Prompt = map[int16]string{ - 1: "workspace_id", - 2: "prompt_key", - 3: "version", - 4: "prompt_template", - 5: "tools", - 6: "tool_call_config", - 7: "llm_config", - 8: "id", - 9: "display_name", - 10: "description", - 11: "prompt_type", - 12: "created_by", - 14: "created_at", - 15: "updated_at", - 16: "status", - 17: "PublishInfo", - 18: "security_level", -} - -func (p *Prompt) IsSetWorkspaceID() bool { - return p.WorkspaceID != nil -} - -func (p *Prompt) IsSetPromptKey() bool { - return p.PromptKey != nil -} - -func (p *Prompt) IsSetVersion() bool { - return p.Version != nil -} - -func (p *Prompt) IsSetPromptTemplate() bool { - return p.PromptTemplate != nil -} - -func (p *Prompt) IsSetTools() bool { - return p.Tools != nil -} - -func (p *Prompt) IsSetToolCallConfig() bool { - return p.ToolCallConfig != nil -} - -func (p *Prompt) IsSetLlmConfig() bool { - return p.LlmConfig != nil -} - -func (p *Prompt) IsSetID() bool { - return p.ID != nil -} - -func (p *Prompt) IsSetDisplayName() bool { - return p.DisplayName != nil -} - -func (p *Prompt) IsSetDescription() bool { - return p.Description != nil -} - -func (p *Prompt) IsSetPromptType() bool { - return p.PromptType != nil -} - -func (p *Prompt) IsSetCreatedBy() bool { - return p.CreatedBy != nil -} - -func (p *Prompt) IsSetCreatedAt() bool { - return p.CreatedAt != nil -} - -func (p *Prompt) IsSetUpdatedAt() bool { - return p.UpdatedAt != nil -} - -func (p *Prompt) IsSetStatus() bool { - return p.Status != nil -} - -func (p *Prompt) IsSetPublishInfo() bool { - return p.PublishInfo != nil -} - -func (p *Prompt) IsSetSecurityLevel() bool { - return p.SecurityLevel != nil -} - -func (p *Prompt) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.I64 { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.STRING { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.STRING { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 4: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField4(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 5: - if fieldTypeId == thrift.LIST { - if err = p.ReadField5(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 6: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField6(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 7: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField7(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 8: - if fieldTypeId == thrift.I64 { - if err = p.ReadField8(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 9: - if fieldTypeId == thrift.STRING { - if err = p.ReadField9(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 10: - if fieldTypeId == thrift.STRING { - if err = p.ReadField10(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 11: - if fieldTypeId == thrift.STRING { - if err = p.ReadField11(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 12: - if fieldTypeId == thrift.STRING { - if err = p.ReadField12(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 14: - if fieldTypeId == thrift.I64 { - if err = p.ReadField14(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 15: - if fieldTypeId == thrift.I64 { - if err = p.ReadField15(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 16: - if fieldTypeId == thrift.STRING { - if err = p.ReadField16(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 17: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField17(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 18: - if fieldTypeId == thrift.STRING { - if err = p.ReadField18(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_Prompt[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *Prompt) ReadField1(iprot thrift.TProtocol) error { - - var _field *int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _field = &v - } - p.WorkspaceID = _field - return nil -} -func (p *Prompt) ReadField2(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.PromptKey = _field - return nil -} -func (p *Prompt) ReadField3(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Version = _field - return nil -} -func (p *Prompt) ReadField4(iprot thrift.TProtocol) error { - _field := NewPromptTemplate() - if err := _field.Read(iprot); err != nil { - return err - } - p.PromptTemplate = _field - return nil -} -func (p *Prompt) ReadField5(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { - return err - } - _field := make([]*Tool, 0, size) - values := make([]Tool, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - - if err := _elem.Read(iprot); err != nil { - return err - } - - _field = append(_field, _elem) - } - if err := iprot.ReadListEnd(); err != nil { - return err - } - p.Tools = _field - return nil -} -func (p *Prompt) ReadField6(iprot thrift.TProtocol) error { - _field := NewToolCallConfig() - if err := _field.Read(iprot); err != nil { - return err - } - p.ToolCallConfig = _field - return nil -} -func (p *Prompt) ReadField7(iprot thrift.TProtocol) error { - _field := NewLLMConfig() - if err := _field.Read(iprot); err != nil { - return err - } - p.LlmConfig = _field - return nil -} -func (p *Prompt) ReadField8(iprot thrift.TProtocol) error { - - var _field *int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _field = &v - } - p.ID = _field - return nil -} -func (p *Prompt) ReadField9(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.DisplayName = _field - return nil -} -func (p *Prompt) ReadField10(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Description = _field - return nil -} -func (p *Prompt) ReadField11(iprot thrift.TProtocol) error { - - var _field *PromptType - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.PromptType = _field - return nil -} -func (p *Prompt) ReadField12(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.CreatedBy = _field - return nil -} -func (p *Prompt) ReadField14(iprot thrift.TProtocol) error { - - var _field *int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _field = &v - } - p.CreatedAt = _field - return nil -} -func (p *Prompt) ReadField15(iprot thrift.TProtocol) error { - - var _field *int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _field = &v - } - p.UpdatedAt = _field - return nil -} -func (p *Prompt) ReadField16(iprot thrift.TProtocol) error { - - var _field *PublishStatus - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Status = _field - return nil -} -func (p *Prompt) ReadField17(iprot thrift.TProtocol) error { - _field := NewPromptPublishInfo() - if err := _field.Read(iprot); err != nil { - return err - } - p.PublishInfo = _field - return nil -} -func (p *Prompt) ReadField18(iprot thrift.TProtocol) error { - - var _field *SecurityLevel - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.SecurityLevel = _field - return nil -} - -func (p *Prompt) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("Prompt"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } - if err = p.writeField4(oprot); err != nil { - fieldId = 4 - goto WriteFieldError - } - if err = p.writeField5(oprot); err != nil { - fieldId = 5 - goto WriteFieldError - } - if err = p.writeField6(oprot); err != nil { - fieldId = 6 - goto WriteFieldError - } - if err = p.writeField7(oprot); err != nil { - fieldId = 7 - goto WriteFieldError - } - if err = p.writeField8(oprot); err != nil { - fieldId = 8 - goto WriteFieldError - } - if err = p.writeField9(oprot); err != nil { - fieldId = 9 - goto WriteFieldError - } - if err = p.writeField10(oprot); err != nil { - fieldId = 10 - goto WriteFieldError - } - if err = p.writeField11(oprot); err != nil { - fieldId = 11 - goto WriteFieldError - } - if err = p.writeField12(oprot); err != nil { - fieldId = 12 - goto WriteFieldError - } - if err = p.writeField14(oprot); err != nil { - fieldId = 14 - goto WriteFieldError - } - if err = p.writeField15(oprot); err != nil { - fieldId = 15 - goto WriteFieldError - } - if err = p.writeField16(oprot); err != nil { - fieldId = 16 - goto WriteFieldError - } - if err = p.writeField17(oprot); err != nil { - fieldId = 17 - goto WriteFieldError - } - if err = p.writeField18(oprot); err != nil { - fieldId = 18 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *Prompt) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetWorkspaceID() { - if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(*p.WorkspaceID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *Prompt) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetPromptKey() { - if err = oprot.WriteFieldBegin("prompt_key", thrift.STRING, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.PromptKey); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *Prompt) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetVersion() { - if err = oprot.WriteFieldBegin("version", thrift.STRING, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Version); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} -func (p *Prompt) writeField4(oprot thrift.TProtocol) (err error) { - if p.IsSetPromptTemplate() { - if err = oprot.WriteFieldBegin("prompt_template", thrift.STRUCT, 4); err != nil { - goto WriteFieldBeginError - } - if err := p.PromptTemplate.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) -} -func (p *Prompt) writeField5(oprot thrift.TProtocol) (err error) { - if p.IsSetTools() { - if err = oprot.WriteFieldBegin("tools", thrift.LIST, 5); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Tools)); err != nil { - return err - } - for _, v := range p.Tools { - if err := v.Write(oprot); err != nil { - return err - } - } - if err := oprot.WriteListEnd(); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) -} -func (p *Prompt) writeField6(oprot thrift.TProtocol) (err error) { - if p.IsSetToolCallConfig() { - if err = oprot.WriteFieldBegin("tool_call_config", thrift.STRUCT, 6); err != nil { - goto WriteFieldBeginError - } - if err := p.ToolCallConfig.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) -} -func (p *Prompt) writeField7(oprot thrift.TProtocol) (err error) { - if p.IsSetLlmConfig() { - if err = oprot.WriteFieldBegin("llm_config", thrift.STRUCT, 7); err != nil { - goto WriteFieldBeginError - } - if err := p.LlmConfig.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 7 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) -} -func (p *Prompt) writeField8(oprot thrift.TProtocol) (err error) { - if p.IsSetID() { - if err = oprot.WriteFieldBegin("id", thrift.I64, 8); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(*p.ID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 8 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 8 end error: ", p), err) -} -func (p *Prompt) writeField9(oprot thrift.TProtocol) (err error) { - if p.IsSetDisplayName() { - if err = oprot.WriteFieldBegin("display_name", thrift.STRING, 9); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.DisplayName); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 9 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 9 end error: ", p), err) -} -func (p *Prompt) writeField10(oprot thrift.TProtocol) (err error) { - if p.IsSetDescription() { - if err = oprot.WriteFieldBegin("description", thrift.STRING, 10); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Description); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 10 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 10 end error: ", p), err) -} -func (p *Prompt) writeField11(oprot thrift.TProtocol) (err error) { - if p.IsSetPromptType() { - if err = oprot.WriteFieldBegin("prompt_type", thrift.STRING, 11); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.PromptType); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 11 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 11 end error: ", p), err) -} -func (p *Prompt) writeField12(oprot thrift.TProtocol) (err error) { - if p.IsSetCreatedBy() { - if err = oprot.WriteFieldBegin("created_by", thrift.STRING, 12); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.CreatedBy); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 12 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 12 end error: ", p), err) -} -func (p *Prompt) writeField14(oprot thrift.TProtocol) (err error) { - if p.IsSetCreatedAt() { - if err = oprot.WriteFieldBegin("created_at", thrift.I64, 14); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(*p.CreatedAt); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 14 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 14 end error: ", p), err) -} -func (p *Prompt) writeField15(oprot thrift.TProtocol) (err error) { - if p.IsSetUpdatedAt() { - if err = oprot.WriteFieldBegin("updated_at", thrift.I64, 15); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(*p.UpdatedAt); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 15 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 15 end error: ", p), err) -} -func (p *Prompt) writeField16(oprot thrift.TProtocol) (err error) { - if p.IsSetStatus() { - if err = oprot.WriteFieldBegin("status", thrift.STRING, 16); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Status); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 16 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 16 end error: ", p), err) -} -func (p *Prompt) writeField17(oprot thrift.TProtocol) (err error) { - if p.IsSetPublishInfo() { - if err = oprot.WriteFieldBegin("PublishInfo", thrift.STRUCT, 17); err != nil { - goto WriteFieldBeginError - } - if err := p.PublishInfo.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 17 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 17 end error: ", p), err) -} -func (p *Prompt) writeField18(oprot thrift.TProtocol) (err error) { - if p.IsSetSecurityLevel() { - if err = oprot.WriteFieldBegin("security_level", thrift.STRING, 18); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.SecurityLevel); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 18 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 18 end error: ", p), err) -} - -func (p *Prompt) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("Prompt(%+v)", *p) - -} - -func (p *Prompt) DeepEqual(ano *Prompt) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.WorkspaceID) { - return false - } - if !p.Field2DeepEqual(ano.PromptKey) { - return false - } - if !p.Field3DeepEqual(ano.Version) { - return false - } - if !p.Field4DeepEqual(ano.PromptTemplate) { - return false - } - if !p.Field5DeepEqual(ano.Tools) { - return false - } - if !p.Field6DeepEqual(ano.ToolCallConfig) { - return false - } - if !p.Field7DeepEqual(ano.LlmConfig) { - return false - } - if !p.Field8DeepEqual(ano.ID) { - return false - } - if !p.Field9DeepEqual(ano.DisplayName) { - return false - } - if !p.Field10DeepEqual(ano.Description) { - return false - } - if !p.Field11DeepEqual(ano.PromptType) { - return false - } - if !p.Field12DeepEqual(ano.CreatedBy) { - return false - } - if !p.Field14DeepEqual(ano.CreatedAt) { - return false - } - if !p.Field15DeepEqual(ano.UpdatedAt) { - return false - } - if !p.Field16DeepEqual(ano.Status) { - return false - } - if !p.Field17DeepEqual(ano.PublishInfo) { - return false - } - if !p.Field18DeepEqual(ano.SecurityLevel) { - return false - } - return true -} - -func (p *Prompt) Field1DeepEqual(src *int64) bool { - - if p.WorkspaceID == src { - return true - } else if p.WorkspaceID == nil || src == nil { - return false - } - if *p.WorkspaceID != *src { - return false - } - return true -} -func (p *Prompt) Field2DeepEqual(src *string) bool { - - if p.PromptKey == src { - return true - } else if p.PromptKey == nil || src == nil { - return false - } - if strings.Compare(*p.PromptKey, *src) != 0 { - return false - } - return true -} -func (p *Prompt) Field3DeepEqual(src *string) bool { - - if p.Version == src { - return true - } else if p.Version == nil || src == nil { - return false - } - if strings.Compare(*p.Version, *src) != 0 { - return false - } - return true -} -func (p *Prompt) Field4DeepEqual(src *PromptTemplate) bool { - - if !p.PromptTemplate.DeepEqual(src) { - return false - } - return true -} -func (p *Prompt) Field5DeepEqual(src []*Tool) bool { - - if len(p.Tools) != len(src) { - return false - } - for i, v := range p.Tools { - _src := src[i] - if !v.DeepEqual(_src) { - return false - } - } - return true -} -func (p *Prompt) Field6DeepEqual(src *ToolCallConfig) bool { - - if !p.ToolCallConfig.DeepEqual(src) { - return false - } - return true -} -func (p *Prompt) Field7DeepEqual(src *LLMConfig) bool { - - if !p.LlmConfig.DeepEqual(src) { - return false - } - return true -} -func (p *Prompt) Field8DeepEqual(src *int64) bool { - - if p.ID == src { - return true - } else if p.ID == nil || src == nil { - return false - } - if *p.ID != *src { - return false - } - return true -} -func (p *Prompt) Field9DeepEqual(src *string) bool { - - if p.DisplayName == src { - return true - } else if p.DisplayName == nil || src == nil { - return false - } - if strings.Compare(*p.DisplayName, *src) != 0 { - return false - } - return true -} -func (p *Prompt) Field10DeepEqual(src *string) bool { - - if p.Description == src { - return true - } else if p.Description == nil || src == nil { - return false - } - if strings.Compare(*p.Description, *src) != 0 { - return false - } - return true -} -func (p *Prompt) Field11DeepEqual(src *PromptType) bool { - - if p.PromptType == src { - return true - } else if p.PromptType == nil || src == nil { - return false - } - if strings.Compare(*p.PromptType, *src) != 0 { - return false - } - return true -} -func (p *Prompt) Field12DeepEqual(src *string) bool { - - if p.CreatedBy == src { - return true - } else if p.CreatedBy == nil || src == nil { - return false - } - if strings.Compare(*p.CreatedBy, *src) != 0 { - return false - } - return true -} -func (p *Prompt) Field14DeepEqual(src *int64) bool { - - if p.CreatedAt == src { - return true - } else if p.CreatedAt == nil || src == nil { - return false - } - if *p.CreatedAt != *src { - return false - } - return true -} -func (p *Prompt) Field15DeepEqual(src *int64) bool { - - if p.UpdatedAt == src { - return true - } else if p.UpdatedAt == nil || src == nil { - return false - } - if *p.UpdatedAt != *src { - return false - } - return true -} -func (p *Prompt) Field16DeepEqual(src *PublishStatus) bool { - - if p.Status == src { - return true - } else if p.Status == nil || src == nil { - return false - } - if strings.Compare(*p.Status, *src) != 0 { - return false - } - return true -} -func (p *Prompt) Field17DeepEqual(src *PromptPublishInfo) bool { - - if !p.PublishInfo.DeepEqual(src) { - return false - } - return true -} -func (p *Prompt) Field18DeepEqual(src *SecurityLevel) bool { - - if p.SecurityLevel == src { - return true - } else if p.SecurityLevel == nil || src == nil { - return false - } - if strings.Compare(*p.SecurityLevel, *src) != 0 { - return false - } - return true -} - -type PromptTemplate struct { - // 模板类型 - TemplateType *TemplateType `thrift:"template_type,1,optional" frugal:"1,optional,string" form:"template_type" json:"template_type,omitempty" query:"template_type"` - // 只支持message list形式托管 - Messages []*Message `thrift:"messages,2,optional" frugal:"2,optional,list" form:"messages" json:"messages,omitempty" query:"messages"` - // 变量定义 - VariableDefs []*VariableDef `thrift:"variable_defs,3,optional" frugal:"3,optional,list" form:"variable_defs" json:"variable_defs,omitempty" query:"variable_defs"` - // 模板级元信息 - Metadata map[string]string `thrift:"metadata,100,optional" frugal:"100,optional,map" form:"metadata" json:"metadata,omitempty" query:"metadata"` -} - -func NewPromptTemplate() *PromptTemplate { - return &PromptTemplate{} -} - -func (p *PromptTemplate) InitDefault() { -} - -var PromptTemplate_TemplateType_DEFAULT TemplateType - -func (p *PromptTemplate) GetTemplateType() (v TemplateType) { - if p == nil { - return - } - if !p.IsSetTemplateType() { - return PromptTemplate_TemplateType_DEFAULT - } - return *p.TemplateType -} - -var PromptTemplate_Messages_DEFAULT []*Message - -func (p *PromptTemplate) GetMessages() (v []*Message) { - if p == nil { - return - } - if !p.IsSetMessages() { - return PromptTemplate_Messages_DEFAULT - } - return p.Messages -} - -var PromptTemplate_VariableDefs_DEFAULT []*VariableDef - -func (p *PromptTemplate) GetVariableDefs() (v []*VariableDef) { - if p == nil { - return - } - if !p.IsSetVariableDefs() { - return PromptTemplate_VariableDefs_DEFAULT - } - return p.VariableDefs -} - -var PromptTemplate_Metadata_DEFAULT map[string]string - -func (p *PromptTemplate) GetMetadata() (v map[string]string) { - if p == nil { - return - } - if !p.IsSetMetadata() { - return PromptTemplate_Metadata_DEFAULT - } - return p.Metadata -} -func (p *PromptTemplate) SetTemplateType(val *TemplateType) { - p.TemplateType = val -} -func (p *PromptTemplate) SetMessages(val []*Message) { - p.Messages = val -} -func (p *PromptTemplate) SetVariableDefs(val []*VariableDef) { - p.VariableDefs = val -} -func (p *PromptTemplate) SetMetadata(val map[string]string) { - p.Metadata = val -} - -var fieldIDToName_PromptTemplate = map[int16]string{ - 1: "template_type", - 2: "messages", - 3: "variable_defs", - 100: "metadata", -} - -func (p *PromptTemplate) IsSetTemplateType() bool { - return p.TemplateType != nil -} - -func (p *PromptTemplate) IsSetMessages() bool { - return p.Messages != nil -} - -func (p *PromptTemplate) IsSetVariableDefs() bool { - return p.VariableDefs != nil -} - -func (p *PromptTemplate) IsSetMetadata() bool { - return p.Metadata != nil -} - -func (p *PromptTemplate) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.LIST { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.LIST { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 100: - if fieldTypeId == thrift.MAP { - if err = p.ReadField100(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptTemplate[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *PromptTemplate) ReadField1(iprot thrift.TProtocol) error { - - var _field *TemplateType - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.TemplateType = _field - return nil -} -func (p *PromptTemplate) ReadField2(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { - return err - } - _field := make([]*Message, 0, size) - values := make([]Message, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - - if err := _elem.Read(iprot); err != nil { - return err - } - - _field = append(_field, _elem) - } - if err := iprot.ReadListEnd(); err != nil { - return err - } - p.Messages = _field - return nil -} -func (p *PromptTemplate) ReadField3(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { - return err - } - _field := make([]*VariableDef, 0, size) - values := make([]VariableDef, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - - if err := _elem.Read(iprot); err != nil { - return err - } - - _field = append(_field, _elem) - } - if err := iprot.ReadListEnd(); err != nil { - return err - } - p.VariableDefs = _field - return nil -} -func (p *PromptTemplate) ReadField100(iprot thrift.TProtocol) error { - _, _, size, err := iprot.ReadMapBegin() - if err != nil { - return err - } - _field := make(map[string]string, size) - for i := 0; i < size; i++ { - var _key string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _key = v - } - - var _val string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _val = v - } - - _field[_key] = _val - } - if err := iprot.ReadMapEnd(); err != nil { - return err - } - p.Metadata = _field - return nil -} - -func (p *PromptTemplate) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("PromptTemplate"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } - if err = p.writeField100(oprot); err != nil { - fieldId = 100 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *PromptTemplate) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetTemplateType() { - if err = oprot.WriteFieldBegin("template_type", thrift.STRING, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.TemplateType); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *PromptTemplate) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetMessages() { - if err = oprot.WriteFieldBegin("messages", thrift.LIST, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Messages)); err != nil { - return err - } - for _, v := range p.Messages { - if err := v.Write(oprot); err != nil { - return err - } - } - if err := oprot.WriteListEnd(); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *PromptTemplate) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetVariableDefs() { - if err = oprot.WriteFieldBegin("variable_defs", thrift.LIST, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.VariableDefs)); err != nil { - return err - } - for _, v := range p.VariableDefs { - if err := v.Write(oprot); err != nil { - return err - } - } - if err := oprot.WriteListEnd(); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} -func (p *PromptTemplate) writeField100(oprot thrift.TProtocol) (err error) { - if p.IsSetMetadata() { - if err = oprot.WriteFieldBegin("metadata", thrift.MAP, 100); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.Metadata)); err != nil { - return err - } - for k, v := range p.Metadata { - if err := oprot.WriteString(k); err != nil { - return err - } - if err := oprot.WriteString(v); err != nil { - return err - } - } - if err := oprot.WriteMapEnd(); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 100 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 100 end error: ", p), err) -} - -func (p *PromptTemplate) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("PromptTemplate(%+v)", *p) - -} - -func (p *PromptTemplate) DeepEqual(ano *PromptTemplate) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.TemplateType) { - return false - } - if !p.Field2DeepEqual(ano.Messages) { - return false - } - if !p.Field3DeepEqual(ano.VariableDefs) { - return false - } - if !p.Field100DeepEqual(ano.Metadata) { - return false - } - return true -} - -func (p *PromptTemplate) Field1DeepEqual(src *TemplateType) bool { - - if p.TemplateType == src { - return true - } else if p.TemplateType == nil || src == nil { - return false - } - if strings.Compare(*p.TemplateType, *src) != 0 { - return false - } - return true -} -func (p *PromptTemplate) Field2DeepEqual(src []*Message) bool { - - if len(p.Messages) != len(src) { - return false - } - for i, v := range p.Messages { - _src := src[i] - if !v.DeepEqual(_src) { - return false - } - } - return true -} -func (p *PromptTemplate) Field3DeepEqual(src []*VariableDef) bool { - - if len(p.VariableDefs) != len(src) { - return false - } - for i, v := range p.VariableDefs { - _src := src[i] - if !v.DeepEqual(_src) { - return false - } - } - return true -} -func (p *PromptTemplate) Field100DeepEqual(src map[string]string) bool { - - if len(p.Metadata) != len(src) { - return false - } - for k, v := range p.Metadata { - _src := src[k] - if strings.Compare(v, _src) != 0 { - return false - } - } - return true -} - -type ToolCallConfig struct { - ToolChoice *ToolChoiceType `thrift:"tool_choice,1,optional" frugal:"1,optional,string" form:"tool_choice" json:"tool_choice,omitempty" query:"tool_choice"` - ToolChoiceSpecification *ToolChoiceSpecification `thrift:"tool_choice_specification,2,optional" frugal:"2,optional,ToolChoiceSpecification" form:"tool_choice_specification" json:"tool_choice_specification,omitempty" query:"tool_choice_specification"` -} - -func NewToolCallConfig() *ToolCallConfig { - return &ToolCallConfig{} -} - -func (p *ToolCallConfig) InitDefault() { -} - -var ToolCallConfig_ToolChoice_DEFAULT ToolChoiceType - -func (p *ToolCallConfig) GetToolChoice() (v ToolChoiceType) { - if p == nil { - return - } - if !p.IsSetToolChoice() { - return ToolCallConfig_ToolChoice_DEFAULT - } - return *p.ToolChoice -} - -var ToolCallConfig_ToolChoiceSpecification_DEFAULT *ToolChoiceSpecification - -func (p *ToolCallConfig) GetToolChoiceSpecification() (v *ToolChoiceSpecification) { - if p == nil { - return - } - if !p.IsSetToolChoiceSpecification() { - return ToolCallConfig_ToolChoiceSpecification_DEFAULT - } - return p.ToolChoiceSpecification -} -func (p *ToolCallConfig) SetToolChoice(val *ToolChoiceType) { - p.ToolChoice = val -} -func (p *ToolCallConfig) SetToolChoiceSpecification(val *ToolChoiceSpecification) { - p.ToolChoiceSpecification = val -} - -var fieldIDToName_ToolCallConfig = map[int16]string{ - 1: "tool_choice", - 2: "tool_choice_specification", -} - -func (p *ToolCallConfig) IsSetToolChoice() bool { - return p.ToolChoice != nil -} - -func (p *ToolCallConfig) IsSetToolChoiceSpecification() bool { - return p.ToolChoiceSpecification != nil -} - -func (p *ToolCallConfig) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ToolCallConfig[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *ToolCallConfig) ReadField1(iprot thrift.TProtocol) error { - - var _field *ToolChoiceType - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.ToolChoice = _field - return nil -} -func (p *ToolCallConfig) ReadField2(iprot thrift.TProtocol) error { - _field := NewToolChoiceSpecification() - if err := _field.Read(iprot); err != nil { - return err - } - p.ToolChoiceSpecification = _field - return nil -} - -func (p *ToolCallConfig) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("ToolCallConfig"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *ToolCallConfig) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetToolChoice() { - if err = oprot.WriteFieldBegin("tool_choice", thrift.STRING, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.ToolChoice); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *ToolCallConfig) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetToolChoiceSpecification() { - if err = oprot.WriteFieldBegin("tool_choice_specification", thrift.STRUCT, 2); err != nil { - goto WriteFieldBeginError - } - if err := p.ToolChoiceSpecification.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} - -func (p *ToolCallConfig) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("ToolCallConfig(%+v)", *p) - -} - -func (p *ToolCallConfig) DeepEqual(ano *ToolCallConfig) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.ToolChoice) { - return false - } - if !p.Field2DeepEqual(ano.ToolChoiceSpecification) { - return false - } - return true -} - -func (p *ToolCallConfig) Field1DeepEqual(src *ToolChoiceType) bool { - - if p.ToolChoice == src { - return true - } else if p.ToolChoice == nil || src == nil { - return false - } - if strings.Compare(*p.ToolChoice, *src) != 0 { - return false - } - return true -} -func (p *ToolCallConfig) Field2DeepEqual(src *ToolChoiceSpecification) bool { - - if !p.ToolChoiceSpecification.DeepEqual(src) { - return false - } - return true -} - -type ToolChoiceSpecification struct { - Type *ToolType `thrift:"type,1,optional" frugal:"1,optional,string" form:"type" json:"type,omitempty" query:"type"` - Name *string `thrift:"name,2,optional" frugal:"2,optional,string" form:"name" json:"name,omitempty" query:"name"` -} - -func NewToolChoiceSpecification() *ToolChoiceSpecification { - return &ToolChoiceSpecification{} -} - -func (p *ToolChoiceSpecification) InitDefault() { -} - -var ToolChoiceSpecification_Type_DEFAULT ToolType - -func (p *ToolChoiceSpecification) GetType() (v ToolType) { - if p == nil { - return - } - if !p.IsSetType() { - return ToolChoiceSpecification_Type_DEFAULT - } - return *p.Type -} - -var ToolChoiceSpecification_Name_DEFAULT string - -func (p *ToolChoiceSpecification) GetName() (v string) { - if p == nil { - return - } - if !p.IsSetName() { - return ToolChoiceSpecification_Name_DEFAULT - } - return *p.Name -} -func (p *ToolChoiceSpecification) SetType(val *ToolType) { - p.Type = val -} -func (p *ToolChoiceSpecification) SetName(val *string) { - p.Name = val -} - -var fieldIDToName_ToolChoiceSpecification = map[int16]string{ - 1: "type", - 2: "name", -} - -func (p *ToolChoiceSpecification) IsSetType() bool { - return p.Type != nil -} - -func (p *ToolChoiceSpecification) IsSetName() bool { - return p.Name != nil -} - -func (p *ToolChoiceSpecification) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.STRING { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ToolChoiceSpecification[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *ToolChoiceSpecification) ReadField1(iprot thrift.TProtocol) error { - - var _field *ToolType - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Type = _field - return nil -} -func (p *ToolChoiceSpecification) ReadField2(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Name = _field - return nil -} - -func (p *ToolChoiceSpecification) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("ToolChoiceSpecification"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *ToolChoiceSpecification) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetType() { - if err = oprot.WriteFieldBegin("type", thrift.STRING, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Type); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *ToolChoiceSpecification) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetName() { - if err = oprot.WriteFieldBegin("name", thrift.STRING, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Name); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} - -func (p *ToolChoiceSpecification) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("ToolChoiceSpecification(%+v)", *p) - -} - -func (p *ToolChoiceSpecification) DeepEqual(ano *ToolChoiceSpecification) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.Type) { - return false - } - if !p.Field2DeepEqual(ano.Name) { - return false - } - return true -} - -func (p *ToolChoiceSpecification) Field1DeepEqual(src *ToolType) bool { - - if p.Type == src { - return true - } else if p.Type == nil || src == nil { - return false - } - if strings.Compare(*p.Type, *src) != 0 { - return false - } - return true -} -func (p *ToolChoiceSpecification) Field2DeepEqual(src *string) bool { - - if p.Name == src { - return true - } else if p.Name == nil || src == nil { - return false - } - if strings.Compare(*p.Name, *src) != 0 { - return false - } - return true -} - -type Message struct { - // 角色 - Role *Role `thrift:"role,1,optional" frugal:"1,optional,string" form:"role" json:"role,omitempty" query:"role"` - // 消息内容 - Content *string `thrift:"content,2,optional" frugal:"2,optional,string" form:"content" json:"content,omitempty" query:"content"` - // 多模态内容 - Parts []*ContentPart `thrift:"parts,3,optional" frugal:"3,optional,list" form:"parts" json:"parts,omitempty" query:"parts"` - // 推理思考内容 - ReasoningContent *string `thrift:"reasoning_content,4,optional" frugal:"4,optional,string" form:"reasoning_content" json:"reasoning_content,omitempty" query:"reasoning_content"` - // tool调用ID(role为tool时有效) - ToolCallID *string `thrift:"tool_call_id,5,optional" frugal:"5,optional,string" form:"tool_call_id" json:"tool_call_id,omitempty" query:"tool_call_id"` - // tool调用(role为assistant时有效) - ToolCalls []*ToolCall `thrift:"tool_calls,6,optional" frugal:"6,optional,list" form:"tool_calls" json:"tool_calls,omitempty" query:"tool_calls"` - // 是否跳过需要渲染 - SkipRender *bool `thrift:"skip_render,7,optional" frugal:"7,optional,bool" form:"skip_render" json:"skip_render,omitempty" query:"skip_render"` - // gemini的签名 - Signature *string `thrift:"signature,8,optional" frugal:"8,optional,string" form:"signature" json:"signature,omitempty" query:"signature"` - // 消息元信息 - Metadata map[string]string `thrift:"metadata,100,optional" frugal:"100,optional,map" form:"metadata" json:"metadata,omitempty" query:"metadata"` -} - -func NewMessage() *Message { - return &Message{} -} - -func (p *Message) InitDefault() { -} - -var Message_Role_DEFAULT Role - -func (p *Message) GetRole() (v Role) { - if p == nil { - return - } - if !p.IsSetRole() { - return Message_Role_DEFAULT - } - return *p.Role -} - -var Message_Content_DEFAULT string - -func (p *Message) GetContent() (v string) { - if p == nil { - return - } - if !p.IsSetContent() { - return Message_Content_DEFAULT - } - return *p.Content -} - -var Message_Parts_DEFAULT []*ContentPart - -func (p *Message) GetParts() (v []*ContentPart) { - if p == nil { - return - } - if !p.IsSetParts() { - return Message_Parts_DEFAULT - } - return p.Parts -} - -var Message_ReasoningContent_DEFAULT string - -func (p *Message) GetReasoningContent() (v string) { - if p == nil { - return - } - if !p.IsSetReasoningContent() { - return Message_ReasoningContent_DEFAULT - } - return *p.ReasoningContent -} - -var Message_ToolCallID_DEFAULT string - -func (p *Message) GetToolCallID() (v string) { - if p == nil { - return - } - if !p.IsSetToolCallID() { - return Message_ToolCallID_DEFAULT - } - return *p.ToolCallID -} - -var Message_ToolCalls_DEFAULT []*ToolCall - -func (p *Message) GetToolCalls() (v []*ToolCall) { - if p == nil { - return - } - if !p.IsSetToolCalls() { - return Message_ToolCalls_DEFAULT - } - return p.ToolCalls -} - -var Message_SkipRender_DEFAULT bool - -func (p *Message) GetSkipRender() (v bool) { - if p == nil { - return - } - if !p.IsSetSkipRender() { - return Message_SkipRender_DEFAULT - } - return *p.SkipRender -} - -var Message_Signature_DEFAULT string - -func (p *Message) GetSignature() (v string) { - if p == nil { - return - } - if !p.IsSetSignature() { - return Message_Signature_DEFAULT - } - return *p.Signature -} - -var Message_Metadata_DEFAULT map[string]string - -func (p *Message) GetMetadata() (v map[string]string) { - if p == nil { - return - } - if !p.IsSetMetadata() { - return Message_Metadata_DEFAULT - } - return p.Metadata -} -func (p *Message) SetRole(val *Role) { - p.Role = val -} -func (p *Message) SetContent(val *string) { - p.Content = val -} -func (p *Message) SetParts(val []*ContentPart) { - p.Parts = val -} -func (p *Message) SetReasoningContent(val *string) { - p.ReasoningContent = val -} -func (p *Message) SetToolCallID(val *string) { - p.ToolCallID = val -} -func (p *Message) SetToolCalls(val []*ToolCall) { - p.ToolCalls = val -} -func (p *Message) SetSkipRender(val *bool) { - p.SkipRender = val -} -func (p *Message) SetSignature(val *string) { - p.Signature = val -} -func (p *Message) SetMetadata(val map[string]string) { - p.Metadata = val -} - -var fieldIDToName_Message = map[int16]string{ - 1: "role", - 2: "content", - 3: "parts", - 4: "reasoning_content", - 5: "tool_call_id", - 6: "tool_calls", - 7: "skip_render", - 8: "signature", - 100: "metadata", -} - -func (p *Message) IsSetRole() bool { - return p.Role != nil -} - -func (p *Message) IsSetContent() bool { - return p.Content != nil -} - -func (p *Message) IsSetParts() bool { - return p.Parts != nil -} - -func (p *Message) IsSetReasoningContent() bool { - return p.ReasoningContent != nil -} - -func (p *Message) IsSetToolCallID() bool { - return p.ToolCallID != nil -} - -func (p *Message) IsSetToolCalls() bool { - return p.ToolCalls != nil -} - -func (p *Message) IsSetSkipRender() bool { - return p.SkipRender != nil -} - -func (p *Message) IsSetSignature() bool { - return p.Signature != nil -} - -func (p *Message) IsSetMetadata() bool { - return p.Metadata != nil -} - -func (p *Message) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.STRING { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.LIST { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 4: - if fieldTypeId == thrift.STRING { - if err = p.ReadField4(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 5: - if fieldTypeId == thrift.STRING { - if err = p.ReadField5(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 6: - if fieldTypeId == thrift.LIST { - if err = p.ReadField6(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 7: - if fieldTypeId == thrift.BOOL { - if err = p.ReadField7(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 8: - if fieldTypeId == thrift.STRING { - if err = p.ReadField8(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 100: - if fieldTypeId == thrift.MAP { - if err = p.ReadField100(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_Message[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *Message) ReadField1(iprot thrift.TProtocol) error { - - var _field *Role - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Role = _field - return nil -} -func (p *Message) ReadField2(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Content = _field - return nil -} -func (p *Message) ReadField3(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { - return err - } - _field := make([]*ContentPart, 0, size) - values := make([]ContentPart, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - - if err := _elem.Read(iprot); err != nil { - return err - } - - _field = append(_field, _elem) - } - if err := iprot.ReadListEnd(); err != nil { - return err - } - p.Parts = _field - return nil -} -func (p *Message) ReadField4(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.ReasoningContent = _field - return nil -} -func (p *Message) ReadField5(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.ToolCallID = _field - return nil -} -func (p *Message) ReadField6(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { - return err - } - _field := make([]*ToolCall, 0, size) - values := make([]ToolCall, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - - if err := _elem.Read(iprot); err != nil { - return err - } - - _field = append(_field, _elem) - } - if err := iprot.ReadListEnd(); err != nil { - return err - } - p.ToolCalls = _field - return nil -} -func (p *Message) ReadField7(iprot thrift.TProtocol) error { - - var _field *bool - if v, err := iprot.ReadBool(); err != nil { - return err - } else { - _field = &v - } - p.SkipRender = _field - return nil -} -func (p *Message) ReadField8(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Signature = _field - return nil -} -func (p *Message) ReadField100(iprot thrift.TProtocol) error { - _, _, size, err := iprot.ReadMapBegin() - if err != nil { - return err - } - _field := make(map[string]string, size) - for i := 0; i < size; i++ { - var _key string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _key = v - } - - var _val string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _val = v - } - - _field[_key] = _val - } - if err := iprot.ReadMapEnd(); err != nil { - return err - } - p.Metadata = _field - return nil -} - -func (p *Message) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("Message"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } - if err = p.writeField4(oprot); err != nil { - fieldId = 4 - goto WriteFieldError - } - if err = p.writeField5(oprot); err != nil { - fieldId = 5 - goto WriteFieldError - } - if err = p.writeField6(oprot); err != nil { - fieldId = 6 - goto WriteFieldError - } - if err = p.writeField7(oprot); err != nil { - fieldId = 7 - goto WriteFieldError - } - if err = p.writeField8(oprot); err != nil { - fieldId = 8 - goto WriteFieldError - } - if err = p.writeField100(oprot); err != nil { - fieldId = 100 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *Message) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetRole() { - if err = oprot.WriteFieldBegin("role", thrift.STRING, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Role); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *Message) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetContent() { - if err = oprot.WriteFieldBegin("content", thrift.STRING, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Content); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *Message) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetParts() { - if err = oprot.WriteFieldBegin("parts", thrift.LIST, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Parts)); err != nil { - return err - } - for _, v := range p.Parts { - if err := v.Write(oprot); err != nil { - return err - } - } - if err := oprot.WriteListEnd(); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} -func (p *Message) writeField4(oprot thrift.TProtocol) (err error) { - if p.IsSetReasoningContent() { - if err = oprot.WriteFieldBegin("reasoning_content", thrift.STRING, 4); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.ReasoningContent); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) -} -func (p *Message) writeField5(oprot thrift.TProtocol) (err error) { - if p.IsSetToolCallID() { - if err = oprot.WriteFieldBegin("tool_call_id", thrift.STRING, 5); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.ToolCallID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) -} -func (p *Message) writeField6(oprot thrift.TProtocol) (err error) { - if p.IsSetToolCalls() { - if err = oprot.WriteFieldBegin("tool_calls", thrift.LIST, 6); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.ToolCalls)); err != nil { - return err - } - for _, v := range p.ToolCalls { - if err := v.Write(oprot); err != nil { - return err - } - } - if err := oprot.WriteListEnd(); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) -} -func (p *Message) writeField7(oprot thrift.TProtocol) (err error) { - if p.IsSetSkipRender() { - if err = oprot.WriteFieldBegin("skip_render", thrift.BOOL, 7); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteBool(*p.SkipRender); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 7 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) -} -func (p *Message) writeField8(oprot thrift.TProtocol) (err error) { - if p.IsSetSignature() { - if err = oprot.WriteFieldBegin("signature", thrift.STRING, 8); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Signature); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 8 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 8 end error: ", p), err) -} -func (p *Message) writeField100(oprot thrift.TProtocol) (err error) { - if p.IsSetMetadata() { - if err = oprot.WriteFieldBegin("metadata", thrift.MAP, 100); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.Metadata)); err != nil { - return err - } - for k, v := range p.Metadata { - if err := oprot.WriteString(k); err != nil { - return err - } - if err := oprot.WriteString(v); err != nil { - return err - } - } - if err := oprot.WriteMapEnd(); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 100 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 100 end error: ", p), err) -} - -func (p *Message) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("Message(%+v)", *p) - -} - -func (p *Message) DeepEqual(ano *Message) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.Role) { - return false - } - if !p.Field2DeepEqual(ano.Content) { - return false - } - if !p.Field3DeepEqual(ano.Parts) { - return false - } - if !p.Field4DeepEqual(ano.ReasoningContent) { - return false - } - if !p.Field5DeepEqual(ano.ToolCallID) { - return false - } - if !p.Field6DeepEqual(ano.ToolCalls) { - return false - } - if !p.Field7DeepEqual(ano.SkipRender) { - return false - } - if !p.Field8DeepEqual(ano.Signature) { - return false - } - if !p.Field100DeepEqual(ano.Metadata) { - return false - } - return true -} - -func (p *Message) Field1DeepEqual(src *Role) bool { - - if p.Role == src { - return true - } else if p.Role == nil || src == nil { - return false - } - if strings.Compare(*p.Role, *src) != 0 { - return false - } - return true -} -func (p *Message) Field2DeepEqual(src *string) bool { - - if p.Content == src { - return true - } else if p.Content == nil || src == nil { - return false - } - if strings.Compare(*p.Content, *src) != 0 { - return false - } - return true -} -func (p *Message) Field3DeepEqual(src []*ContentPart) bool { - - if len(p.Parts) != len(src) { - return false - } - for i, v := range p.Parts { - _src := src[i] - if !v.DeepEqual(_src) { - return false - } - } - return true -} -func (p *Message) Field4DeepEqual(src *string) bool { - - if p.ReasoningContent == src { - return true - } else if p.ReasoningContent == nil || src == nil { - return false - } - if strings.Compare(*p.ReasoningContent, *src) != 0 { - return false - } - return true -} -func (p *Message) Field5DeepEqual(src *string) bool { - - if p.ToolCallID == src { - return true - } else if p.ToolCallID == nil || src == nil { - return false - } - if strings.Compare(*p.ToolCallID, *src) != 0 { - return false - } - return true -} -func (p *Message) Field6DeepEqual(src []*ToolCall) bool { - - if len(p.ToolCalls) != len(src) { - return false - } - for i, v := range p.ToolCalls { - _src := src[i] - if !v.DeepEqual(_src) { - return false - } - } - return true -} -func (p *Message) Field7DeepEqual(src *bool) bool { - - if p.SkipRender == src { - return true - } else if p.SkipRender == nil || src == nil { - return false - } - if *p.SkipRender != *src { - return false - } - return true -} -func (p *Message) Field8DeepEqual(src *string) bool { - - if p.Signature == src { - return true - } else if p.Signature == nil || src == nil { - return false - } - if strings.Compare(*p.Signature, *src) != 0 { - return false - } - return true -} -func (p *Message) Field100DeepEqual(src map[string]string) bool { - - if len(p.Metadata) != len(src) { - return false - } - for k, v := range p.Metadata { - _src := src[k] - if strings.Compare(v, _src) != 0 { - return false - } - } - return true -} - -type ContentPart struct { - Type *ContentType `thrift:"type,1,optional" frugal:"1,optional,string" form:"type" json:"type,omitempty" query:"type"` - Text *string `thrift:"text,2,optional" frugal:"2,optional,string" form:"text" json:"text,omitempty" query:"text"` - ImageURL *string `thrift:"image_url,3,optional" frugal:"3,optional,string" form:"image_url" json:"image_url,omitempty" query:"image_url"` - Base64Data *string `thrift:"base64_data,4,optional" frugal:"4,optional,string" form:"base64_data" json:"base64_data,omitempty" query:"base64_data"` - VideoURL *string `thrift:"video_url,5,optional" frugal:"5,optional,string" form:"video_url" json:"video_url,omitempty" query:"video_url"` - Config *MediaConfig `thrift:"config,6,optional" frugal:"6,optional,MediaConfig" form:"config" json:"config,omitempty" query:"config"` - Signature *string `thrift:"signature,7,optional" frugal:"7,optional,string" form:"signature" json:"signature,omitempty" query:"signature"` - ImageURI *string `thrift:"image_uri,8,optional" frugal:"8,optional,string" form:"image_uri" json:"image_uri,omitempty" query:"image_uri"` - VideoURI *string `thrift:"video_uri,9,optional" frugal:"9,optional,string" form:"video_uri" json:"video_uri,omitempty" query:"video_uri"` -} - -func NewContentPart() *ContentPart { - return &ContentPart{} -} - -func (p *ContentPart) InitDefault() { -} - -var ContentPart_Type_DEFAULT ContentType - -func (p *ContentPart) GetType() (v ContentType) { - if p == nil { - return - } - if !p.IsSetType() { - return ContentPart_Type_DEFAULT - } - return *p.Type -} - -var ContentPart_Text_DEFAULT string - -func (p *ContentPart) GetText() (v string) { - if p == nil { - return - } - if !p.IsSetText() { - return ContentPart_Text_DEFAULT - } - return *p.Text -} - -var ContentPart_ImageURL_DEFAULT string - -func (p *ContentPart) GetImageURL() (v string) { - if p == nil { - return - } - if !p.IsSetImageURL() { - return ContentPart_ImageURL_DEFAULT - } - return *p.ImageURL -} - -var ContentPart_Base64Data_DEFAULT string - -func (p *ContentPart) GetBase64Data() (v string) { - if p == nil { - return - } - if !p.IsSetBase64Data() { - return ContentPart_Base64Data_DEFAULT - } - return *p.Base64Data -} - -var ContentPart_VideoURL_DEFAULT string - -func (p *ContentPart) GetVideoURL() (v string) { - if p == nil { - return - } - if !p.IsSetVideoURL() { - return ContentPart_VideoURL_DEFAULT - } - return *p.VideoURL -} - -var ContentPart_Config_DEFAULT *MediaConfig - -func (p *ContentPart) GetConfig() (v *MediaConfig) { - if p == nil { - return - } - if !p.IsSetConfig() { - return ContentPart_Config_DEFAULT - } - return p.Config -} - -var ContentPart_Signature_DEFAULT string - -func (p *ContentPart) GetSignature() (v string) { - if p == nil { - return - } - if !p.IsSetSignature() { - return ContentPart_Signature_DEFAULT - } - return *p.Signature -} - -var ContentPart_ImageURI_DEFAULT string - -func (p *ContentPart) GetImageURI() (v string) { - if p == nil { - return - } - if !p.IsSetImageURI() { - return ContentPart_ImageURI_DEFAULT - } - return *p.ImageURI -} - -var ContentPart_VideoURI_DEFAULT string - -func (p *ContentPart) GetVideoURI() (v string) { - if p == nil { - return - } - if !p.IsSetVideoURI() { - return ContentPart_VideoURI_DEFAULT - } - return *p.VideoURI -} -func (p *ContentPart) SetType(val *ContentType) { - p.Type = val -} -func (p *ContentPart) SetText(val *string) { - p.Text = val -} -func (p *ContentPart) SetImageURL(val *string) { - p.ImageURL = val -} -func (p *ContentPart) SetBase64Data(val *string) { - p.Base64Data = val -} -func (p *ContentPart) SetVideoURL(val *string) { - p.VideoURL = val -} -func (p *ContentPart) SetConfig(val *MediaConfig) { - p.Config = val -} -func (p *ContentPart) SetSignature(val *string) { - p.Signature = val -} -func (p *ContentPart) SetImageURI(val *string) { - p.ImageURI = val -} -func (p *ContentPart) SetVideoURI(val *string) { - p.VideoURI = val -} - -var fieldIDToName_ContentPart = map[int16]string{ - 1: "type", - 2: "text", - 3: "image_url", - 4: "base64_data", - 5: "video_url", - 6: "config", - 7: "signature", - 8: "image_uri", - 9: "video_uri", -} - -func (p *ContentPart) IsSetType() bool { - return p.Type != nil -} - -func (p *ContentPart) IsSetText() bool { - return p.Text != nil -} - -func (p *ContentPart) IsSetImageURL() bool { - return p.ImageURL != nil -} - -func (p *ContentPart) IsSetBase64Data() bool { - return p.Base64Data != nil -} - -func (p *ContentPart) IsSetVideoURL() bool { - return p.VideoURL != nil -} - -func (p *ContentPart) IsSetConfig() bool { - return p.Config != nil -} - -func (p *ContentPart) IsSetSignature() bool { - return p.Signature != nil -} - -func (p *ContentPart) IsSetImageURI() bool { - return p.ImageURI != nil -} - -func (p *ContentPart) IsSetVideoURI() bool { - return p.VideoURI != nil -} - -func (p *ContentPart) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.STRING { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.STRING { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 4: - if fieldTypeId == thrift.STRING { - if err = p.ReadField4(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 5: - if fieldTypeId == thrift.STRING { - if err = p.ReadField5(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 6: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField6(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 7: - if fieldTypeId == thrift.STRING { - if err = p.ReadField7(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 8: - if fieldTypeId == thrift.STRING { - if err = p.ReadField8(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 9: - if fieldTypeId == thrift.STRING { - if err = p.ReadField9(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ContentPart[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *ContentPart) ReadField1(iprot thrift.TProtocol) error { - - var _field *ContentType - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Type = _field - return nil -} -func (p *ContentPart) ReadField2(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Text = _field - return nil -} -func (p *ContentPart) ReadField3(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.ImageURL = _field - return nil -} -func (p *ContentPart) ReadField4(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Base64Data = _field - return nil -} -func (p *ContentPart) ReadField5(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.VideoURL = _field - return nil -} -func (p *ContentPart) ReadField6(iprot thrift.TProtocol) error { - _field := NewMediaConfig() - if err := _field.Read(iprot); err != nil { - return err - } - p.Config = _field - return nil -} -func (p *ContentPart) ReadField7(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Signature = _field - return nil -} -func (p *ContentPart) ReadField8(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.ImageURI = _field - return nil -} -func (p *ContentPart) ReadField9(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.VideoURI = _field - return nil -} - -func (p *ContentPart) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("ContentPart"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } - if err = p.writeField4(oprot); err != nil { - fieldId = 4 - goto WriteFieldError - } - if err = p.writeField5(oprot); err != nil { - fieldId = 5 - goto WriteFieldError - } - if err = p.writeField6(oprot); err != nil { - fieldId = 6 - goto WriteFieldError - } - if err = p.writeField7(oprot); err != nil { - fieldId = 7 - goto WriteFieldError - } - if err = p.writeField8(oprot); err != nil { - fieldId = 8 - goto WriteFieldError - } - if err = p.writeField9(oprot); err != nil { - fieldId = 9 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *ContentPart) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetType() { - if err = oprot.WriteFieldBegin("type", thrift.STRING, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Type); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *ContentPart) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetText() { - if err = oprot.WriteFieldBegin("text", thrift.STRING, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Text); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *ContentPart) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetImageURL() { - if err = oprot.WriteFieldBegin("image_url", thrift.STRING, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.ImageURL); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} -func (p *ContentPart) writeField4(oprot thrift.TProtocol) (err error) { - if p.IsSetBase64Data() { - if err = oprot.WriteFieldBegin("base64_data", thrift.STRING, 4); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Base64Data); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) -} -func (p *ContentPart) writeField5(oprot thrift.TProtocol) (err error) { - if p.IsSetVideoURL() { - if err = oprot.WriteFieldBegin("video_url", thrift.STRING, 5); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.VideoURL); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) -} -func (p *ContentPart) writeField6(oprot thrift.TProtocol) (err error) { - if p.IsSetConfig() { - if err = oprot.WriteFieldBegin("config", thrift.STRUCT, 6); err != nil { - goto WriteFieldBeginError - } - if err := p.Config.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) -} -func (p *ContentPart) writeField7(oprot thrift.TProtocol) (err error) { - if p.IsSetSignature() { - if err = oprot.WriteFieldBegin("signature", thrift.STRING, 7); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Signature); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 7 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) -} -func (p *ContentPart) writeField8(oprot thrift.TProtocol) (err error) { - if p.IsSetImageURI() { - if err = oprot.WriteFieldBegin("image_uri", thrift.STRING, 8); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.ImageURI); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 8 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 8 end error: ", p), err) -} -func (p *ContentPart) writeField9(oprot thrift.TProtocol) (err error) { - if p.IsSetVideoURI() { - if err = oprot.WriteFieldBegin("video_uri", thrift.STRING, 9); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.VideoURI); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 9 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 9 end error: ", p), err) -} - -func (p *ContentPart) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("ContentPart(%+v)", *p) - -} - -func (p *ContentPart) DeepEqual(ano *ContentPart) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.Type) { - return false - } - if !p.Field2DeepEqual(ano.Text) { - return false - } - if !p.Field3DeepEqual(ano.ImageURL) { - return false - } - if !p.Field4DeepEqual(ano.Base64Data) { - return false - } - if !p.Field5DeepEqual(ano.VideoURL) { - return false - } - if !p.Field6DeepEqual(ano.Config) { - return false - } - if !p.Field7DeepEqual(ano.Signature) { - return false - } - if !p.Field8DeepEqual(ano.ImageURI) { - return false - } - if !p.Field9DeepEqual(ano.VideoURI) { - return false - } - return true -} - -func (p *ContentPart) Field1DeepEqual(src *ContentType) bool { - - if p.Type == src { - return true - } else if p.Type == nil || src == nil { - return false - } - if strings.Compare(*p.Type, *src) != 0 { - return false - } - return true -} -func (p *ContentPart) Field2DeepEqual(src *string) bool { - - if p.Text == src { - return true - } else if p.Text == nil || src == nil { - return false - } - if strings.Compare(*p.Text, *src) != 0 { - return false - } - return true -} -func (p *ContentPart) Field3DeepEqual(src *string) bool { - - if p.ImageURL == src { - return true - } else if p.ImageURL == nil || src == nil { - return false - } - if strings.Compare(*p.ImageURL, *src) != 0 { - return false - } - return true -} -func (p *ContentPart) Field4DeepEqual(src *string) bool { - - if p.Base64Data == src { - return true - } else if p.Base64Data == nil || src == nil { - return false - } - if strings.Compare(*p.Base64Data, *src) != 0 { - return false - } - return true -} -func (p *ContentPart) Field5DeepEqual(src *string) bool { - - if p.VideoURL == src { - return true - } else if p.VideoURL == nil || src == nil { - return false - } - if strings.Compare(*p.VideoURL, *src) != 0 { - return false - } - return true -} -func (p *ContentPart) Field6DeepEqual(src *MediaConfig) bool { - - if !p.Config.DeepEqual(src) { - return false - } - return true -} -func (p *ContentPart) Field7DeepEqual(src *string) bool { - - if p.Signature == src { - return true - } else if p.Signature == nil || src == nil { - return false - } - if strings.Compare(*p.Signature, *src) != 0 { - return false - } - return true -} -func (p *ContentPart) Field8DeepEqual(src *string) bool { - - if p.ImageURI == src { - return true - } else if p.ImageURI == nil || src == nil { - return false - } - if strings.Compare(*p.ImageURI, *src) != 0 { - return false - } - return true -} -func (p *ContentPart) Field9DeepEqual(src *string) bool { - - if p.VideoURI == src { - return true - } else if p.VideoURI == nil || src == nil { - return false - } - if strings.Compare(*p.VideoURI, *src) != 0 { - return false - } - return true -} - -type MediaConfig struct { - Fps *float64 `thrift:"fps,1,optional" frugal:"1,optional,double" form:"fps" json:"fps,omitempty" query:"fps"` - ImageResolution *string `thrift:"image_resolution,2,optional" frugal:"2,optional,string" form:"image_resolution" json:"image_resolution,omitempty" query:"image_resolution"` -} - -func NewMediaConfig() *MediaConfig { - return &MediaConfig{} -} - -func (p *MediaConfig) InitDefault() { -} - -var MediaConfig_Fps_DEFAULT float64 - -func (p *MediaConfig) GetFps() (v float64) { - if p == nil { - return - } - if !p.IsSetFps() { - return MediaConfig_Fps_DEFAULT - } - return *p.Fps -} - -var MediaConfig_ImageResolution_DEFAULT string - -func (p *MediaConfig) GetImageResolution() (v string) { - if p == nil { - return - } - if !p.IsSetImageResolution() { - return MediaConfig_ImageResolution_DEFAULT - } - return *p.ImageResolution -} -func (p *MediaConfig) SetFps(val *float64) { - p.Fps = val -} -func (p *MediaConfig) SetImageResolution(val *string) { - p.ImageResolution = val -} - -var fieldIDToName_MediaConfig = map[int16]string{ - 1: "fps", - 2: "image_resolution", -} - -func (p *MediaConfig) IsSetFps() bool { - return p.Fps != nil -} - -func (p *MediaConfig) IsSetImageResolution() bool { - return p.ImageResolution != nil -} - -func (p *MediaConfig) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.DOUBLE { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.STRING { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_MediaConfig[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *MediaConfig) ReadField1(iprot thrift.TProtocol) error { - - var _field *float64 - if v, err := iprot.ReadDouble(); err != nil { - return err - } else { - _field = &v - } - p.Fps = _field - return nil -} -func (p *MediaConfig) ReadField2(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.ImageResolution = _field - return nil -} - -func (p *MediaConfig) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("MediaConfig"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *MediaConfig) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetFps() { - if err = oprot.WriteFieldBegin("fps", thrift.DOUBLE, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteDouble(*p.Fps); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *MediaConfig) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetImageResolution() { - if err = oprot.WriteFieldBegin("image_resolution", thrift.STRING, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.ImageResolution); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} - -func (p *MediaConfig) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("MediaConfig(%+v)", *p) - -} - -func (p *MediaConfig) DeepEqual(ano *MediaConfig) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.Fps) { - return false - } - if !p.Field2DeepEqual(ano.ImageResolution) { - return false - } - return true -} - -func (p *MediaConfig) Field1DeepEqual(src *float64) bool { - - if p.Fps == src { - return true - } else if p.Fps == nil || src == nil { - return false - } - if *p.Fps != *src { - return false - } - return true -} -func (p *MediaConfig) Field2DeepEqual(src *string) bool { - - if p.ImageResolution == src { - return true - } else if p.ImageResolution == nil || src == nil { - return false - } - if strings.Compare(*p.ImageResolution, *src) != 0 { - return false - } - return true -} - -type VariableDef struct { - // 变量名字 - Key *string `thrift:"key,1,optional" frugal:"1,optional,string" form:"key" json:"key,omitempty" query:"key"` - // 变量描述 - Desc *string `thrift:"desc,2,optional" frugal:"2,optional,string" form:"desc" json:"desc,omitempty" query:"desc"` - // 变量类型 - Type *VariableType `thrift:"type,3,optional" frugal:"3,optional,string" form:"type" json:"type,omitempty" query:"type"` -} - -func NewVariableDef() *VariableDef { - return &VariableDef{} -} - -func (p *VariableDef) InitDefault() { -} - -var VariableDef_Key_DEFAULT string - -func (p *VariableDef) GetKey() (v string) { - if p == nil { - return - } - if !p.IsSetKey() { - return VariableDef_Key_DEFAULT - } - return *p.Key -} - -var VariableDef_Desc_DEFAULT string - -func (p *VariableDef) GetDesc() (v string) { - if p == nil { - return - } - if !p.IsSetDesc() { - return VariableDef_Desc_DEFAULT - } - return *p.Desc -} - -var VariableDef_Type_DEFAULT VariableType - -func (p *VariableDef) GetType() (v VariableType) { - if p == nil { - return - } - if !p.IsSetType() { - return VariableDef_Type_DEFAULT - } - return *p.Type -} -func (p *VariableDef) SetKey(val *string) { - p.Key = val -} -func (p *VariableDef) SetDesc(val *string) { - p.Desc = val -} -func (p *VariableDef) SetType(val *VariableType) { - p.Type = val -} - -var fieldIDToName_VariableDef = map[int16]string{ - 1: "key", - 2: "desc", - 3: "type", -} - -func (p *VariableDef) IsSetKey() bool { - return p.Key != nil -} - -func (p *VariableDef) IsSetDesc() bool { - return p.Desc != nil -} - -func (p *VariableDef) IsSetType() bool { - return p.Type != nil -} - -func (p *VariableDef) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.STRING { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.STRING { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_VariableDef[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *VariableDef) ReadField1(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Key = _field - return nil -} -func (p *VariableDef) ReadField2(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Desc = _field - return nil -} -func (p *VariableDef) ReadField3(iprot thrift.TProtocol) error { - - var _field *VariableType - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Type = _field - return nil -} - -func (p *VariableDef) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("VariableDef"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *VariableDef) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetKey() { - if err = oprot.WriteFieldBegin("key", thrift.STRING, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Key); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *VariableDef) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetDesc() { - if err = oprot.WriteFieldBegin("desc", thrift.STRING, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Desc); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *VariableDef) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetType() { - if err = oprot.WriteFieldBegin("type", thrift.STRING, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Type); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} - -func (p *VariableDef) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("VariableDef(%+v)", *p) - -} - -func (p *VariableDef) DeepEqual(ano *VariableDef) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.Key) { - return false - } - if !p.Field2DeepEqual(ano.Desc) { - return false - } - if !p.Field3DeepEqual(ano.Type) { - return false - } - return true -} - -func (p *VariableDef) Field1DeepEqual(src *string) bool { - - if p.Key == src { - return true - } else if p.Key == nil || src == nil { - return false - } - if strings.Compare(*p.Key, *src) != 0 { - return false - } - return true -} -func (p *VariableDef) Field2DeepEqual(src *string) bool { - - if p.Desc == src { - return true - } else if p.Desc == nil || src == nil { - return false - } - if strings.Compare(*p.Desc, *src) != 0 { - return false - } - return true -} -func (p *VariableDef) Field3DeepEqual(src *VariableType) bool { - - if p.Type == src { - return true - } else if p.Type == nil || src == nil { - return false - } - if strings.Compare(*p.Type, *src) != 0 { - return false - } - return true -} - -type Tool struct { - Type *ToolType `thrift:"type,1,optional" frugal:"1,optional,string" form:"type" json:"type,omitempty" query:"type"` - Function *Function `thrift:"function,2,optional" frugal:"2,optional,Function" form:"function" json:"function,omitempty" query:"function"` - // 时候禁用 - Disable *bool `thrift:"disable,3,optional" frugal:"3,optional,bool" form:"disable" json:"disable,omitempty" query:"disable"` -} - -func NewTool() *Tool { - return &Tool{} -} - -func (p *Tool) InitDefault() { -} - -var Tool_Type_DEFAULT ToolType - -func (p *Tool) GetType() (v ToolType) { - if p == nil { - return - } - if !p.IsSetType() { - return Tool_Type_DEFAULT - } - return *p.Type -} - -var Tool_Function_DEFAULT *Function - -func (p *Tool) GetFunction() (v *Function) { - if p == nil { - return - } - if !p.IsSetFunction() { - return Tool_Function_DEFAULT - } - return p.Function -} - -var Tool_Disable_DEFAULT bool - -func (p *Tool) GetDisable() (v bool) { - if p == nil { - return - } - if !p.IsSetDisable() { - return Tool_Disable_DEFAULT - } - return *p.Disable -} -func (p *Tool) SetType(val *ToolType) { - p.Type = val -} -func (p *Tool) SetFunction(val *Function) { - p.Function = val -} -func (p *Tool) SetDisable(val *bool) { - p.Disable = val -} - -var fieldIDToName_Tool = map[int16]string{ - 1: "type", - 2: "function", - 3: "disable", -} - -func (p *Tool) IsSetType() bool { - return p.Type != nil -} - -func (p *Tool) IsSetFunction() bool { - return p.Function != nil -} - -func (p *Tool) IsSetDisable() bool { - return p.Disable != nil -} - -func (p *Tool) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.BOOL { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_Tool[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *Tool) ReadField1(iprot thrift.TProtocol) error { - - var _field *ToolType - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Type = _field - return nil -} -func (p *Tool) ReadField2(iprot thrift.TProtocol) error { - _field := NewFunction() - if err := _field.Read(iprot); err != nil { - return err - } - p.Function = _field - return nil -} -func (p *Tool) ReadField3(iprot thrift.TProtocol) error { - - var _field *bool - if v, err := iprot.ReadBool(); err != nil { - return err - } else { - _field = &v - } - p.Disable = _field - return nil -} - -func (p *Tool) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("Tool"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *Tool) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetType() { - if err = oprot.WriteFieldBegin("type", thrift.STRING, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Type); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *Tool) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetFunction() { - if err = oprot.WriteFieldBegin("function", thrift.STRUCT, 2); err != nil { - goto WriteFieldBeginError - } - if err := p.Function.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *Tool) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetDisable() { - if err = oprot.WriteFieldBegin("disable", thrift.BOOL, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteBool(*p.Disable); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} - -func (p *Tool) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("Tool(%+v)", *p) - -} - -func (p *Tool) DeepEqual(ano *Tool) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.Type) { - return false - } - if !p.Field2DeepEqual(ano.Function) { - return false - } - if !p.Field3DeepEqual(ano.Disable) { - return false - } - return true -} - -func (p *Tool) Field1DeepEqual(src *ToolType) bool { - - if p.Type == src { - return true - } else if p.Type == nil || src == nil { - return false - } - if strings.Compare(*p.Type, *src) != 0 { - return false - } - return true -} -func (p *Tool) Field2DeepEqual(src *Function) bool { - - if !p.Function.DeepEqual(src) { - return false - } - return true -} -func (p *Tool) Field3DeepEqual(src *bool) bool { - - if p.Disable == src { - return true - } else if p.Disable == nil || src == nil { - return false - } - if *p.Disable != *src { - return false - } - return true -} - -type Function struct { - Name *string `thrift:"name,1,optional" frugal:"1,optional,string" form:"name" json:"name,omitempty" query:"name"` - Description *string `thrift:"description,2,optional" frugal:"2,optional,string" form:"description" json:"description,omitempty" query:"description"` - Parameters *string `thrift:"parameters,3,optional" frugal:"3,optional,string" form:"parameters" json:"parameters,omitempty" query:"parameters"` -} - -func NewFunction() *Function { - return &Function{} -} - -func (p *Function) InitDefault() { -} - -var Function_Name_DEFAULT string - -func (p *Function) GetName() (v string) { - if p == nil { - return - } - if !p.IsSetName() { - return Function_Name_DEFAULT - } - return *p.Name -} - -var Function_Description_DEFAULT string - -func (p *Function) GetDescription() (v string) { - if p == nil { - return - } - if !p.IsSetDescription() { - return Function_Description_DEFAULT - } - return *p.Description -} - -var Function_Parameters_DEFAULT string - -func (p *Function) GetParameters() (v string) { - if p == nil { - return - } - if !p.IsSetParameters() { - return Function_Parameters_DEFAULT - } - return *p.Parameters -} -func (p *Function) SetName(val *string) { - p.Name = val -} -func (p *Function) SetDescription(val *string) { - p.Description = val -} -func (p *Function) SetParameters(val *string) { - p.Parameters = val -} - -var fieldIDToName_Function = map[int16]string{ - 1: "name", - 2: "description", - 3: "parameters", -} - -func (p *Function) IsSetName() bool { - return p.Name != nil -} - -func (p *Function) IsSetDescription() bool { - return p.Description != nil -} - -func (p *Function) IsSetParameters() bool { - return p.Parameters != nil -} - -func (p *Function) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.STRING { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.STRING { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_Function[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *Function) ReadField1(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Name = _field - return nil -} -func (p *Function) ReadField2(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Description = _field - return nil -} -func (p *Function) ReadField3(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Parameters = _field - return nil -} - -func (p *Function) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("Function"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *Function) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetName() { - if err = oprot.WriteFieldBegin("name", thrift.STRING, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Name); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *Function) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetDescription() { - if err = oprot.WriteFieldBegin("description", thrift.STRING, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Description); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *Function) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetParameters() { - if err = oprot.WriteFieldBegin("parameters", thrift.STRING, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Parameters); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} - -func (p *Function) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("Function(%+v)", *p) - -} - -func (p *Function) DeepEqual(ano *Function) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.Name) { - return false - } - if !p.Field2DeepEqual(ano.Description) { - return false - } - if !p.Field3DeepEqual(ano.Parameters) { - return false - } - return true -} - -func (p *Function) Field1DeepEqual(src *string) bool { - - if p.Name == src { - return true - } else if p.Name == nil || src == nil { - return false - } - if strings.Compare(*p.Name, *src) != 0 { - return false - } - return true -} -func (p *Function) Field2DeepEqual(src *string) bool { - - if p.Description == src { - return true - } else if p.Description == nil || src == nil { - return false - } - if strings.Compare(*p.Description, *src) != 0 { - return false - } - return true -} -func (p *Function) Field3DeepEqual(src *string) bool { - - if p.Parameters == src { - return true - } else if p.Parameters == nil || src == nil { - return false - } - if strings.Compare(*p.Parameters, *src) != 0 { - return false - } - return true -} - -type ToolCall struct { - Index *int32 `thrift:"index,1,optional" frugal:"1,optional,i32" form:"index" json:"index,omitempty" query:"index"` - ID *string `thrift:"id,2,optional" frugal:"2,optional,string" form:"id" json:"id,omitempty" query:"id"` - Type *ToolType `thrift:"type,3,optional" frugal:"3,optional,string" form:"type" json:"type,omitempty" query:"type"` - FunctionCall *FunctionCall `thrift:"function_call,4,optional" frugal:"4,optional,FunctionCall" form:"function_call" json:"function_call,omitempty" query:"function_call"` - OutputID *string `thrift:"output_id,5,optional" frugal:"5,optional,string" form:"output_id" json:"output_id,omitempty" query:"output_id"` - Signature *string `thrift:"signature,6,optional" frugal:"6,optional,string" form:"signature" json:"signature,omitempty" query:"signature"` -} - -func NewToolCall() *ToolCall { - return &ToolCall{} -} - -func (p *ToolCall) InitDefault() { -} - -var ToolCall_Index_DEFAULT int32 - -func (p *ToolCall) GetIndex() (v int32) { - if p == nil { - return - } - if !p.IsSetIndex() { - return ToolCall_Index_DEFAULT - } - return *p.Index -} - -var ToolCall_ID_DEFAULT string - -func (p *ToolCall) GetID() (v string) { - if p == nil { - return - } - if !p.IsSetID() { - return ToolCall_ID_DEFAULT - } - return *p.ID -} - -var ToolCall_Type_DEFAULT ToolType - -func (p *ToolCall) GetType() (v ToolType) { - if p == nil { - return - } - if !p.IsSetType() { - return ToolCall_Type_DEFAULT - } - return *p.Type -} - -var ToolCall_FunctionCall_DEFAULT *FunctionCall - -func (p *ToolCall) GetFunctionCall() (v *FunctionCall) { - if p == nil { - return - } - if !p.IsSetFunctionCall() { - return ToolCall_FunctionCall_DEFAULT - } - return p.FunctionCall -} - -var ToolCall_OutputID_DEFAULT string - -func (p *ToolCall) GetOutputID() (v string) { - if p == nil { - return - } - if !p.IsSetOutputID() { - return ToolCall_OutputID_DEFAULT - } - return *p.OutputID -} - -var ToolCall_Signature_DEFAULT string - -func (p *ToolCall) GetSignature() (v string) { - if p == nil { - return - } - if !p.IsSetSignature() { - return ToolCall_Signature_DEFAULT - } - return *p.Signature -} -func (p *ToolCall) SetIndex(val *int32) { - p.Index = val -} -func (p *ToolCall) SetID(val *string) { - p.ID = val -} -func (p *ToolCall) SetType(val *ToolType) { - p.Type = val -} -func (p *ToolCall) SetFunctionCall(val *FunctionCall) { - p.FunctionCall = val -} -func (p *ToolCall) SetOutputID(val *string) { - p.OutputID = val -} -func (p *ToolCall) SetSignature(val *string) { - p.Signature = val -} - -var fieldIDToName_ToolCall = map[int16]string{ - 1: "index", - 2: "id", - 3: "type", - 4: "function_call", - 5: "output_id", - 6: "signature", -} - -func (p *ToolCall) IsSetIndex() bool { - return p.Index != nil -} - -func (p *ToolCall) IsSetID() bool { - return p.ID != nil -} - -func (p *ToolCall) IsSetType() bool { - return p.Type != nil -} - -func (p *ToolCall) IsSetFunctionCall() bool { - return p.FunctionCall != nil -} - -func (p *ToolCall) IsSetOutputID() bool { - return p.OutputID != nil -} - -func (p *ToolCall) IsSetSignature() bool { - return p.Signature != nil -} - -func (p *ToolCall) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.I32 { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.STRING { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.STRING { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 4: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField4(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 5: - if fieldTypeId == thrift.STRING { - if err = p.ReadField5(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 6: - if fieldTypeId == thrift.STRING { - if err = p.ReadField6(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ToolCall[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *ToolCall) ReadField1(iprot thrift.TProtocol) error { - - var _field *int32 - if v, err := iprot.ReadI32(); err != nil { - return err - } else { - _field = &v - } - p.Index = _field - return nil -} -func (p *ToolCall) ReadField2(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.ID = _field - return nil -} -func (p *ToolCall) ReadField3(iprot thrift.TProtocol) error { - - var _field *ToolType - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Type = _field - return nil -} -func (p *ToolCall) ReadField4(iprot thrift.TProtocol) error { - _field := NewFunctionCall() - if err := _field.Read(iprot); err != nil { - return err - } - p.FunctionCall = _field - return nil -} -func (p *ToolCall) ReadField5(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.OutputID = _field - return nil -} -func (p *ToolCall) ReadField6(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Signature = _field - return nil -} - -func (p *ToolCall) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("ToolCall"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } - if err = p.writeField4(oprot); err != nil { - fieldId = 4 - goto WriteFieldError - } - if err = p.writeField5(oprot); err != nil { - fieldId = 5 - goto WriteFieldError - } - if err = p.writeField6(oprot); err != nil { - fieldId = 6 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *ToolCall) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetIndex() { - if err = oprot.WriteFieldBegin("index", thrift.I32, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI32(*p.Index); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *ToolCall) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetID() { - if err = oprot.WriteFieldBegin("id", thrift.STRING, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.ID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *ToolCall) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetType() { - if err = oprot.WriteFieldBegin("type", thrift.STRING, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Type); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} -func (p *ToolCall) writeField4(oprot thrift.TProtocol) (err error) { - if p.IsSetFunctionCall() { - if err = oprot.WriteFieldBegin("function_call", thrift.STRUCT, 4); err != nil { - goto WriteFieldBeginError - } - if err := p.FunctionCall.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) -} -func (p *ToolCall) writeField5(oprot thrift.TProtocol) (err error) { - if p.IsSetOutputID() { - if err = oprot.WriteFieldBegin("output_id", thrift.STRING, 5); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.OutputID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) -} -func (p *ToolCall) writeField6(oprot thrift.TProtocol) (err error) { - if p.IsSetSignature() { - if err = oprot.WriteFieldBegin("signature", thrift.STRING, 6); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Signature); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) -} - -func (p *ToolCall) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("ToolCall(%+v)", *p) - -} - -func (p *ToolCall) DeepEqual(ano *ToolCall) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.Index) { - return false - } - if !p.Field2DeepEqual(ano.ID) { - return false - } - if !p.Field3DeepEqual(ano.Type) { - return false - } - if !p.Field4DeepEqual(ano.FunctionCall) { - return false - } - if !p.Field5DeepEqual(ano.OutputID) { - return false - } - if !p.Field6DeepEqual(ano.Signature) { - return false - } - return true -} - -func (p *ToolCall) Field1DeepEqual(src *int32) bool { - - if p.Index == src { - return true - } else if p.Index == nil || src == nil { - return false - } - if *p.Index != *src { - return false - } - return true -} -func (p *ToolCall) Field2DeepEqual(src *string) bool { - - if p.ID == src { - return true - } else if p.ID == nil || src == nil { - return false - } - if strings.Compare(*p.ID, *src) != 0 { - return false - } - return true -} -func (p *ToolCall) Field3DeepEqual(src *ToolType) bool { - - if p.Type == src { - return true - } else if p.Type == nil || src == nil { - return false - } - if strings.Compare(*p.Type, *src) != 0 { - return false - } - return true -} -func (p *ToolCall) Field4DeepEqual(src *FunctionCall) bool { - - if !p.FunctionCall.DeepEqual(src) { - return false - } - return true -} -func (p *ToolCall) Field5DeepEqual(src *string) bool { - - if p.OutputID == src { - return true - } else if p.OutputID == nil || src == nil { - return false - } - if strings.Compare(*p.OutputID, *src) != 0 { - return false - } - return true -} -func (p *ToolCall) Field6DeepEqual(src *string) bool { - - if p.Signature == src { - return true - } else if p.Signature == nil || src == nil { - return false - } - if strings.Compare(*p.Signature, *src) != 0 { - return false - } - return true -} - -type FunctionCall struct { - Name *string `thrift:"name,1,optional" frugal:"1,optional,string" form:"name" json:"name,omitempty" query:"name"` - Arguments *string `thrift:"arguments,2,optional" frugal:"2,optional,string" form:"arguments" json:"arguments,omitempty" query:"arguments"` -} - -func NewFunctionCall() *FunctionCall { - return &FunctionCall{} -} - -func (p *FunctionCall) InitDefault() { -} - -var FunctionCall_Name_DEFAULT string - -func (p *FunctionCall) GetName() (v string) { - if p == nil { - return - } - if !p.IsSetName() { - return FunctionCall_Name_DEFAULT - } - return *p.Name -} - -var FunctionCall_Arguments_DEFAULT string - -func (p *FunctionCall) GetArguments() (v string) { - if p == nil { - return - } - if !p.IsSetArguments() { - return FunctionCall_Arguments_DEFAULT - } - return *p.Arguments -} -func (p *FunctionCall) SetName(val *string) { - p.Name = val -} -func (p *FunctionCall) SetArguments(val *string) { - p.Arguments = val -} - -var fieldIDToName_FunctionCall = map[int16]string{ - 1: "name", - 2: "arguments", -} - -func (p *FunctionCall) IsSetName() bool { - return p.Name != nil -} - -func (p *FunctionCall) IsSetArguments() bool { - return p.Arguments != nil -} - -func (p *FunctionCall) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.STRING { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_FunctionCall[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *FunctionCall) ReadField1(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Name = _field - return nil -} -func (p *FunctionCall) ReadField2(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Arguments = _field - return nil -} - -func (p *FunctionCall) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("FunctionCall"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *FunctionCall) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetName() { - if err = oprot.WriteFieldBegin("name", thrift.STRING, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Name); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *FunctionCall) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetArguments() { - if err = oprot.WriteFieldBegin("arguments", thrift.STRING, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Arguments); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} - -func (p *FunctionCall) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("FunctionCall(%+v)", *p) - -} - -func (p *FunctionCall) DeepEqual(ano *FunctionCall) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.Name) { - return false - } - if !p.Field2DeepEqual(ano.Arguments) { - return false - } - return true -} - -func (p *FunctionCall) Field1DeepEqual(src *string) bool { - - if p.Name == src { - return true - } else if p.Name == nil || src == nil { - return false - } - if strings.Compare(*p.Name, *src) != 0 { - return false - } - return true -} -func (p *FunctionCall) Field2DeepEqual(src *string) bool { - - if p.Arguments == src { - return true - } else if p.Arguments == nil || src == nil { - return false - } - if strings.Compare(*p.Arguments, *src) != 0 { - return false - } - return true -} - -type LLMConfig struct { - Temperature *float64 `thrift:"temperature,1,optional" frugal:"1,optional,double" form:"temperature" json:"temperature,omitempty" query:"temperature"` - MaxTokens *int32 `thrift:"max_tokens,2,optional" frugal:"2,optional,i32" form:"max_tokens" json:"max_tokens,omitempty" query:"max_tokens"` - TopK *int32 `thrift:"top_k,3,optional" frugal:"3,optional,i32" form:"top_k" json:"top_k,omitempty" query:"top_k"` - TopP *float64 `thrift:"top_p,4,optional" frugal:"4,optional,double" form:"top_p" json:"top_p,omitempty" query:"top_p"` - PresencePenalty *float64 `thrift:"presence_penalty,5,optional" frugal:"5,optional,double" form:"presence_penalty" json:"presence_penalty,omitempty" query:"presence_penalty"` - FrequencyPenalty *float64 `thrift:"frequency_penalty,6,optional" frugal:"6,optional,double" form:"frequency_penalty" json:"frequency_penalty,omitempty" query:"frequency_penalty"` - JSONMode *bool `thrift:"json_mode,7,optional" frugal:"7,optional,bool" form:"json_mode" json:"json_mode,omitempty" query:"json_mode"` - ID *int64 `thrift:"id,8,optional" frugal:"8,optional,i64" json:"id" form:"id" query:"id"` - Name *string `thrift:"name,9,optional" frugal:"9,optional,string" form:"name" json:"name,omitempty" query:"name"` - Thinking *ThinkingConfig `thrift:"thinking,10,optional" frugal:"10,optional,ThinkingConfig" form:"thinking" json:"thinking,omitempty" query:"thinking"` - Extra *string `thrift:"extra,11,optional" frugal:"11,optional,string" form:"extra" json:"extra,omitempty" query:"extra"` -} - -func NewLLMConfig() *LLMConfig { - return &LLMConfig{} -} - -func (p *LLMConfig) InitDefault() { -} - -var LLMConfig_Temperature_DEFAULT float64 - -func (p *LLMConfig) GetTemperature() (v float64) { - if p == nil { - return - } - if !p.IsSetTemperature() { - return LLMConfig_Temperature_DEFAULT - } - return *p.Temperature -} - -var LLMConfig_MaxTokens_DEFAULT int32 - -func (p *LLMConfig) GetMaxTokens() (v int32) { - if p == nil { - return - } - if !p.IsSetMaxTokens() { - return LLMConfig_MaxTokens_DEFAULT - } - return *p.MaxTokens -} - -var LLMConfig_TopK_DEFAULT int32 - -func (p *LLMConfig) GetTopK() (v int32) { - if p == nil { - return - } - if !p.IsSetTopK() { - return LLMConfig_TopK_DEFAULT - } - return *p.TopK -} - -var LLMConfig_TopP_DEFAULT float64 - -func (p *LLMConfig) GetTopP() (v float64) { - if p == nil { - return - } - if !p.IsSetTopP() { - return LLMConfig_TopP_DEFAULT - } - return *p.TopP -} - -var LLMConfig_PresencePenalty_DEFAULT float64 - -func (p *LLMConfig) GetPresencePenalty() (v float64) { - if p == nil { - return - } - if !p.IsSetPresencePenalty() { - return LLMConfig_PresencePenalty_DEFAULT - } - return *p.PresencePenalty -} - -var LLMConfig_FrequencyPenalty_DEFAULT float64 - -func (p *LLMConfig) GetFrequencyPenalty() (v float64) { - if p == nil { - return - } - if !p.IsSetFrequencyPenalty() { - return LLMConfig_FrequencyPenalty_DEFAULT - } - return *p.FrequencyPenalty -} - -var LLMConfig_JSONMode_DEFAULT bool - -func (p *LLMConfig) GetJSONMode() (v bool) { - if p == nil { - return - } - if !p.IsSetJSONMode() { - return LLMConfig_JSONMode_DEFAULT - } - return *p.JSONMode -} - -var LLMConfig_ID_DEFAULT int64 - -func (p *LLMConfig) GetID() (v int64) { - if p == nil { - return - } - if !p.IsSetID() { - return LLMConfig_ID_DEFAULT - } - return *p.ID -} - -var LLMConfig_Name_DEFAULT string - -func (p *LLMConfig) GetName() (v string) { - if p == nil { - return - } - if !p.IsSetName() { - return LLMConfig_Name_DEFAULT - } - return *p.Name -} - -var LLMConfig_Thinking_DEFAULT *ThinkingConfig - -func (p *LLMConfig) GetThinking() (v *ThinkingConfig) { - if p == nil { - return - } - if !p.IsSetThinking() { - return LLMConfig_Thinking_DEFAULT - } - return p.Thinking -} - -var LLMConfig_Extra_DEFAULT string - -func (p *LLMConfig) GetExtra() (v string) { - if p == nil { - return - } - if !p.IsSetExtra() { - return LLMConfig_Extra_DEFAULT - } - return *p.Extra -} -func (p *LLMConfig) SetTemperature(val *float64) { - p.Temperature = val -} -func (p *LLMConfig) SetMaxTokens(val *int32) { - p.MaxTokens = val -} -func (p *LLMConfig) SetTopK(val *int32) { - p.TopK = val -} -func (p *LLMConfig) SetTopP(val *float64) { - p.TopP = val -} -func (p *LLMConfig) SetPresencePenalty(val *float64) { - p.PresencePenalty = val -} -func (p *LLMConfig) SetFrequencyPenalty(val *float64) { - p.FrequencyPenalty = val -} -func (p *LLMConfig) SetJSONMode(val *bool) { - p.JSONMode = val -} -func (p *LLMConfig) SetID(val *int64) { - p.ID = val -} -func (p *LLMConfig) SetName(val *string) { - p.Name = val -} -func (p *LLMConfig) SetThinking(val *ThinkingConfig) { - p.Thinking = val -} -func (p *LLMConfig) SetExtra(val *string) { - p.Extra = val -} - -var fieldIDToName_LLMConfig = map[int16]string{ - 1: "temperature", - 2: "max_tokens", - 3: "top_k", - 4: "top_p", - 5: "presence_penalty", - 6: "frequency_penalty", - 7: "json_mode", - 8: "id", - 9: "name", - 10: "thinking", - 11: "extra", -} - -func (p *LLMConfig) IsSetTemperature() bool { - return p.Temperature != nil -} - -func (p *LLMConfig) IsSetMaxTokens() bool { - return p.MaxTokens != nil -} - -func (p *LLMConfig) IsSetTopK() bool { - return p.TopK != nil -} - -func (p *LLMConfig) IsSetTopP() bool { - return p.TopP != nil -} - -func (p *LLMConfig) IsSetPresencePenalty() bool { - return p.PresencePenalty != nil -} - -func (p *LLMConfig) IsSetFrequencyPenalty() bool { - return p.FrequencyPenalty != nil -} - -func (p *LLMConfig) IsSetJSONMode() bool { - return p.JSONMode != nil -} - -func (p *LLMConfig) IsSetID() bool { - return p.ID != nil -} - -func (p *LLMConfig) IsSetName() bool { - return p.Name != nil -} - -func (p *LLMConfig) IsSetThinking() bool { - return p.Thinking != nil -} - -func (p *LLMConfig) IsSetExtra() bool { - return p.Extra != nil -} - -func (p *LLMConfig) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.DOUBLE { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.I32 { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.I32 { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 4: - if fieldTypeId == thrift.DOUBLE { - if err = p.ReadField4(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 5: - if fieldTypeId == thrift.DOUBLE { - if err = p.ReadField5(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 6: - if fieldTypeId == thrift.DOUBLE { - if err = p.ReadField6(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 7: - if fieldTypeId == thrift.BOOL { - if err = p.ReadField7(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 8: - if fieldTypeId == thrift.I64 { - if err = p.ReadField8(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 9: - if fieldTypeId == thrift.STRING { - if err = p.ReadField9(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 10: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField10(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 11: - if fieldTypeId == thrift.STRING { - if err = p.ReadField11(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_LLMConfig[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *LLMConfig) ReadField1(iprot thrift.TProtocol) error { - - var _field *float64 - if v, err := iprot.ReadDouble(); err != nil { - return err - } else { - _field = &v - } - p.Temperature = _field - return nil -} -func (p *LLMConfig) ReadField2(iprot thrift.TProtocol) error { - - var _field *int32 - if v, err := iprot.ReadI32(); err != nil { - return err - } else { - _field = &v - } - p.MaxTokens = _field - return nil -} -func (p *LLMConfig) ReadField3(iprot thrift.TProtocol) error { - - var _field *int32 - if v, err := iprot.ReadI32(); err != nil { - return err - } else { - _field = &v - } - p.TopK = _field - return nil -} -func (p *LLMConfig) ReadField4(iprot thrift.TProtocol) error { - - var _field *float64 - if v, err := iprot.ReadDouble(); err != nil { - return err - } else { - _field = &v - } - p.TopP = _field - return nil -} -func (p *LLMConfig) ReadField5(iprot thrift.TProtocol) error { - - var _field *float64 - if v, err := iprot.ReadDouble(); err != nil { - return err - } else { - _field = &v - } - p.PresencePenalty = _field - return nil -} -func (p *LLMConfig) ReadField6(iprot thrift.TProtocol) error { - - var _field *float64 - if v, err := iprot.ReadDouble(); err != nil { - return err - } else { - _field = &v - } - p.FrequencyPenalty = _field - return nil -} -func (p *LLMConfig) ReadField7(iprot thrift.TProtocol) error { - - var _field *bool - if v, err := iprot.ReadBool(); err != nil { - return err - } else { - _field = &v - } - p.JSONMode = _field - return nil -} -func (p *LLMConfig) ReadField8(iprot thrift.TProtocol) error { - - var _field *int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _field = &v - } - p.ID = _field - return nil -} -func (p *LLMConfig) ReadField9(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Name = _field - return nil -} -func (p *LLMConfig) ReadField10(iprot thrift.TProtocol) error { - _field := NewThinkingConfig() - if err := _field.Read(iprot); err != nil { - return err - } - p.Thinking = _field - return nil -} -func (p *LLMConfig) ReadField11(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Extra = _field - return nil -} - -func (p *LLMConfig) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("LLMConfig"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } - if err = p.writeField4(oprot); err != nil { - fieldId = 4 - goto WriteFieldError - } - if err = p.writeField5(oprot); err != nil { - fieldId = 5 - goto WriteFieldError - } - if err = p.writeField6(oprot); err != nil { - fieldId = 6 - goto WriteFieldError - } - if err = p.writeField7(oprot); err != nil { - fieldId = 7 - goto WriteFieldError - } - if err = p.writeField8(oprot); err != nil { - fieldId = 8 - goto WriteFieldError - } - if err = p.writeField9(oprot); err != nil { - fieldId = 9 - goto WriteFieldError - } - if err = p.writeField10(oprot); err != nil { - fieldId = 10 - goto WriteFieldError - } - if err = p.writeField11(oprot); err != nil { - fieldId = 11 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *LLMConfig) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetTemperature() { - if err = oprot.WriteFieldBegin("temperature", thrift.DOUBLE, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteDouble(*p.Temperature); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *LLMConfig) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetMaxTokens() { - if err = oprot.WriteFieldBegin("max_tokens", thrift.I32, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI32(*p.MaxTokens); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *LLMConfig) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetTopK() { - if err = oprot.WriteFieldBegin("top_k", thrift.I32, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI32(*p.TopK); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} -func (p *LLMConfig) writeField4(oprot thrift.TProtocol) (err error) { - if p.IsSetTopP() { - if err = oprot.WriteFieldBegin("top_p", thrift.DOUBLE, 4); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteDouble(*p.TopP); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) -} -func (p *LLMConfig) writeField5(oprot thrift.TProtocol) (err error) { - if p.IsSetPresencePenalty() { - if err = oprot.WriteFieldBegin("presence_penalty", thrift.DOUBLE, 5); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteDouble(*p.PresencePenalty); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) -} -func (p *LLMConfig) writeField6(oprot thrift.TProtocol) (err error) { - if p.IsSetFrequencyPenalty() { - if err = oprot.WriteFieldBegin("frequency_penalty", thrift.DOUBLE, 6); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteDouble(*p.FrequencyPenalty); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) -} -func (p *LLMConfig) writeField7(oprot thrift.TProtocol) (err error) { - if p.IsSetJSONMode() { - if err = oprot.WriteFieldBegin("json_mode", thrift.BOOL, 7); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteBool(*p.JSONMode); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 7 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) -} -func (p *LLMConfig) writeField8(oprot thrift.TProtocol) (err error) { - if p.IsSetID() { - if err = oprot.WriteFieldBegin("id", thrift.I64, 8); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(*p.ID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 8 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 8 end error: ", p), err) -} -func (p *LLMConfig) writeField9(oprot thrift.TProtocol) (err error) { - if p.IsSetName() { - if err = oprot.WriteFieldBegin("name", thrift.STRING, 9); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Name); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 9 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 9 end error: ", p), err) -} -func (p *LLMConfig) writeField10(oprot thrift.TProtocol) (err error) { - if p.IsSetThinking() { - if err = oprot.WriteFieldBegin("thinking", thrift.STRUCT, 10); err != nil { - goto WriteFieldBeginError - } - if err := p.Thinking.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 10 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 10 end error: ", p), err) -} -func (p *LLMConfig) writeField11(oprot thrift.TProtocol) (err error) { - if p.IsSetExtra() { - if err = oprot.WriteFieldBegin("extra", thrift.STRING, 11); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Extra); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 11 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 11 end error: ", p), err) -} - -func (p *LLMConfig) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("LLMConfig(%+v)", *p) - -} - -func (p *LLMConfig) DeepEqual(ano *LLMConfig) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.Temperature) { - return false - } - if !p.Field2DeepEqual(ano.MaxTokens) { - return false - } - if !p.Field3DeepEqual(ano.TopK) { - return false - } - if !p.Field4DeepEqual(ano.TopP) { - return false - } - if !p.Field5DeepEqual(ano.PresencePenalty) { - return false - } - if !p.Field6DeepEqual(ano.FrequencyPenalty) { - return false - } - if !p.Field7DeepEqual(ano.JSONMode) { - return false - } - if !p.Field8DeepEqual(ano.ID) { - return false - } - if !p.Field9DeepEqual(ano.Name) { - return false - } - if !p.Field10DeepEqual(ano.Thinking) { - return false - } - if !p.Field11DeepEqual(ano.Extra) { - return false - } - return true -} - -func (p *LLMConfig) Field1DeepEqual(src *float64) bool { - - if p.Temperature == src { - return true - } else if p.Temperature == nil || src == nil { - return false - } - if *p.Temperature != *src { - return false - } - return true -} -func (p *LLMConfig) Field2DeepEqual(src *int32) bool { - - if p.MaxTokens == src { - return true - } else if p.MaxTokens == nil || src == nil { - return false - } - if *p.MaxTokens != *src { - return false - } - return true -} -func (p *LLMConfig) Field3DeepEqual(src *int32) bool { - - if p.TopK == src { - return true - } else if p.TopK == nil || src == nil { - return false - } - if *p.TopK != *src { - return false - } - return true -} -func (p *LLMConfig) Field4DeepEqual(src *float64) bool { - - if p.TopP == src { - return true - } else if p.TopP == nil || src == nil { - return false - } - if *p.TopP != *src { - return false - } - return true -} -func (p *LLMConfig) Field5DeepEqual(src *float64) bool { - - if p.PresencePenalty == src { - return true - } else if p.PresencePenalty == nil || src == nil { - return false - } - if *p.PresencePenalty != *src { - return false - } - return true -} -func (p *LLMConfig) Field6DeepEqual(src *float64) bool { - - if p.FrequencyPenalty == src { - return true - } else if p.FrequencyPenalty == nil || src == nil { - return false - } - if *p.FrequencyPenalty != *src { - return false - } - return true -} -func (p *LLMConfig) Field7DeepEqual(src *bool) bool { - - if p.JSONMode == src { - return true - } else if p.JSONMode == nil || src == nil { - return false - } - if *p.JSONMode != *src { - return false - } - return true -} -func (p *LLMConfig) Field8DeepEqual(src *int64) bool { - - if p.ID == src { - return true - } else if p.ID == nil || src == nil { - return false - } - if *p.ID != *src { - return false - } - return true -} -func (p *LLMConfig) Field9DeepEqual(src *string) bool { - - if p.Name == src { - return true - } else if p.Name == nil || src == nil { - return false - } - if strings.Compare(*p.Name, *src) != 0 { - return false - } - return true -} -func (p *LLMConfig) Field10DeepEqual(src *ThinkingConfig) bool { - - if !p.Thinking.DeepEqual(src) { - return false - } - return true -} -func (p *LLMConfig) Field11DeepEqual(src *string) bool { - - if p.Extra == src { - return true - } else if p.Extra == nil || src == nil { - return false - } - if strings.Compare(*p.Extra, *src) != 0 { - return false - } - return true -} - -type VariableVal struct { - // 变量key - Key *string `thrift:"key,1,optional" frugal:"1,optional,string" form:"key" json:"key,omitempty" query:"key"` - // 普通变量值(非string类型,如boolean、integer、float、object等,序列化后传入) - Value *string `thrift:"value,2,optional" frugal:"2,optional,string" form:"value" json:"value,omitempty" query:"value"` - // placeholder变量值 - PlaceholderMessages []*Message `thrift:"placeholder_messages,3,optional" frugal:"3,optional,list" form:"placeholder_messages" json:"placeholder_messages,omitempty" query:"placeholder_messages"` - // 多模态变量值 - MultiPartValues []*ContentPart `thrift:"multi_part_values,4,optional" frugal:"4,optional,list" form:"multi_part_values" json:"multi_part_values,omitempty" query:"multi_part_values"` -} - -func NewVariableVal() *VariableVal { - return &VariableVal{} -} - -func (p *VariableVal) InitDefault() { -} - -var VariableVal_Key_DEFAULT string - -func (p *VariableVal) GetKey() (v string) { - if p == nil { - return - } - if !p.IsSetKey() { - return VariableVal_Key_DEFAULT - } - return *p.Key -} - -var VariableVal_Value_DEFAULT string - -func (p *VariableVal) GetValue() (v string) { - if p == nil { - return - } - if !p.IsSetValue() { - return VariableVal_Value_DEFAULT - } - return *p.Value -} - -var VariableVal_PlaceholderMessages_DEFAULT []*Message - -func (p *VariableVal) GetPlaceholderMessages() (v []*Message) { - if p == nil { - return - } - if !p.IsSetPlaceholderMessages() { - return VariableVal_PlaceholderMessages_DEFAULT - } - return p.PlaceholderMessages -} - -var VariableVal_MultiPartValues_DEFAULT []*ContentPart - -func (p *VariableVal) GetMultiPartValues() (v []*ContentPart) { - if p == nil { - return - } - if !p.IsSetMultiPartValues() { - return VariableVal_MultiPartValues_DEFAULT - } - return p.MultiPartValues -} -func (p *VariableVal) SetKey(val *string) { - p.Key = val -} -func (p *VariableVal) SetValue(val *string) { - p.Value = val -} -func (p *VariableVal) SetPlaceholderMessages(val []*Message) { - p.PlaceholderMessages = val -} -func (p *VariableVal) SetMultiPartValues(val []*ContentPart) { - p.MultiPartValues = val -} - -var fieldIDToName_VariableVal = map[int16]string{ - 1: "key", - 2: "value", - 3: "placeholder_messages", - 4: "multi_part_values", -} - -func (p *VariableVal) IsSetKey() bool { - return p.Key != nil -} - -func (p *VariableVal) IsSetValue() bool { - return p.Value != nil -} - -func (p *VariableVal) IsSetPlaceholderMessages() bool { - return p.PlaceholderMessages != nil -} - -func (p *VariableVal) IsSetMultiPartValues() bool { - return p.MultiPartValues != nil -} - -func (p *VariableVal) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.STRING { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.LIST { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 4: - if fieldTypeId == thrift.LIST { - if err = p.ReadField4(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_VariableVal[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *VariableVal) ReadField1(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Key = _field - return nil -} -func (p *VariableVal) ReadField2(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Value = _field - return nil -} -func (p *VariableVal) ReadField3(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { - return err - } - _field := make([]*Message, 0, size) - values := make([]Message, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - - if err := _elem.Read(iprot); err != nil { - return err - } - - _field = append(_field, _elem) - } - if err := iprot.ReadListEnd(); err != nil { - return err - } - p.PlaceholderMessages = _field - return nil -} -func (p *VariableVal) ReadField4(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { - return err - } - _field := make([]*ContentPart, 0, size) - values := make([]ContentPart, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - - if err := _elem.Read(iprot); err != nil { - return err - } - - _field = append(_field, _elem) - } - if err := iprot.ReadListEnd(); err != nil { - return err - } - p.MultiPartValues = _field - return nil -} - -func (p *VariableVal) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("VariableVal"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } - if err = p.writeField4(oprot); err != nil { - fieldId = 4 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *VariableVal) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetKey() { - if err = oprot.WriteFieldBegin("key", thrift.STRING, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Key); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *VariableVal) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetValue() { - if err = oprot.WriteFieldBegin("value", thrift.STRING, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Value); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *VariableVal) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetPlaceholderMessages() { - if err = oprot.WriteFieldBegin("placeholder_messages", thrift.LIST, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.PlaceholderMessages)); err != nil { - return err - } - for _, v := range p.PlaceholderMessages { - if err := v.Write(oprot); err != nil { - return err - } - } - if err := oprot.WriteListEnd(); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} -func (p *VariableVal) writeField4(oprot thrift.TProtocol) (err error) { - if p.IsSetMultiPartValues() { - if err = oprot.WriteFieldBegin("multi_part_values", thrift.LIST, 4); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.MultiPartValues)); err != nil { - return err - } - for _, v := range p.MultiPartValues { - if err := v.Write(oprot); err != nil { - return err - } - } - if err := oprot.WriteListEnd(); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) -} - -func (p *VariableVal) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("VariableVal(%+v)", *p) - -} - -func (p *VariableVal) DeepEqual(ano *VariableVal) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.Key) { - return false - } - if !p.Field2DeepEqual(ano.Value) { - return false - } - if !p.Field3DeepEqual(ano.PlaceholderMessages) { - return false - } - if !p.Field4DeepEqual(ano.MultiPartValues) { - return false - } - return true -} - -func (p *VariableVal) Field1DeepEqual(src *string) bool { - - if p.Key == src { - return true - } else if p.Key == nil || src == nil { - return false - } - if strings.Compare(*p.Key, *src) != 0 { - return false - } - return true -} -func (p *VariableVal) Field2DeepEqual(src *string) bool { - - if p.Value == src { - return true - } else if p.Value == nil || src == nil { - return false - } - if strings.Compare(*p.Value, *src) != 0 { - return false - } - return true -} -func (p *VariableVal) Field3DeepEqual(src []*Message) bool { - - if len(p.PlaceholderMessages) != len(src) { - return false - } - for i, v := range p.PlaceholderMessages { - _src := src[i] - if !v.DeepEqual(_src) { - return false - } - } - return true -} -func (p *VariableVal) Field4DeepEqual(src []*ContentPart) bool { - - if len(p.MultiPartValues) != len(src) { - return false - } - for i, v := range p.MultiPartValues { - _src := src[i] - if !v.DeepEqual(_src) { - return false - } - } - return true -} - -type TokenUsage struct { - // 输入消耗 - InputTokens *int32 `thrift:"input_tokens,1,optional" frugal:"1,optional,i32" form:"input_tokens" json:"input_tokens,omitempty" query:"input_tokens"` - // 输出消耗 - OutputTokens *int32 `thrift:"output_tokens,2,optional" frugal:"2,optional,i32" form:"output_tokens" json:"output_tokens,omitempty" query:"output_tokens"` -} - -func NewTokenUsage() *TokenUsage { - return &TokenUsage{} -} - -func (p *TokenUsage) InitDefault() { -} - -var TokenUsage_InputTokens_DEFAULT int32 - -func (p *TokenUsage) GetInputTokens() (v int32) { - if p == nil { - return - } - if !p.IsSetInputTokens() { - return TokenUsage_InputTokens_DEFAULT - } - return *p.InputTokens -} - -var TokenUsage_OutputTokens_DEFAULT int32 - -func (p *TokenUsage) GetOutputTokens() (v int32) { - if p == nil { - return - } - if !p.IsSetOutputTokens() { - return TokenUsage_OutputTokens_DEFAULT - } - return *p.OutputTokens -} -func (p *TokenUsage) SetInputTokens(val *int32) { - p.InputTokens = val -} -func (p *TokenUsage) SetOutputTokens(val *int32) { - p.OutputTokens = val -} - -var fieldIDToName_TokenUsage = map[int16]string{ - 1: "input_tokens", - 2: "output_tokens", -} - -func (p *TokenUsage) IsSetInputTokens() bool { - return p.InputTokens != nil -} - -func (p *TokenUsage) IsSetOutputTokens() bool { - return p.OutputTokens != nil -} - -func (p *TokenUsage) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.I32 { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.I32 { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_TokenUsage[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *TokenUsage) ReadField1(iprot thrift.TProtocol) error { - - var _field *int32 - if v, err := iprot.ReadI32(); err != nil { - return err - } else { - _field = &v - } - p.InputTokens = _field - return nil -} -func (p *TokenUsage) ReadField2(iprot thrift.TProtocol) error { - - var _field *int32 - if v, err := iprot.ReadI32(); err != nil { - return err - } else { - _field = &v - } - p.OutputTokens = _field - return nil -} - -func (p *TokenUsage) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("TokenUsage"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *TokenUsage) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetInputTokens() { - if err = oprot.WriteFieldBegin("input_tokens", thrift.I32, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI32(*p.InputTokens); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *TokenUsage) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetOutputTokens() { - if err = oprot.WriteFieldBegin("output_tokens", thrift.I32, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI32(*p.OutputTokens); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} - -func (p *TokenUsage) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("TokenUsage(%+v)", *p) - -} - -func (p *TokenUsage) DeepEqual(ano *TokenUsage) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.InputTokens) { - return false - } - if !p.Field2DeepEqual(ano.OutputTokens) { - return false - } - return true -} - -func (p *TokenUsage) Field1DeepEqual(src *int32) bool { - - if p.InputTokens == src { - return true - } else if p.InputTokens == nil || src == nil { - return false - } - if *p.InputTokens != *src { - return false - } - return true -} -func (p *TokenUsage) Field2DeepEqual(src *int32) bool { - - if p.OutputTokens == src { - return true - } else if p.OutputTokens == nil || src == nil { - return false - } - if *p.OutputTokens != *src { - return false - } - return true -} - -type ListPromptBasicRequest struct { - WorkspaceID *int64 `thrift:"workspace_id,1,optional" frugal:"1,optional,i64" json:"workspace_id" form:"workspace_id" ` - PageNumber *int32 `thrift:"page_number,2,optional" frugal:"2,optional,i32" form:"page_number" json:"page_number,omitempty"` - PageSize *int32 `thrift:"page_size,3,optional" frugal:"3,optional,i32" form:"page_size" json:"page_size,omitempty"` - // name/key前缀匹配 - KeyWord *string `thrift:"key_word,4,optional" frugal:"4,optional,string" form:"key_word" json:"key_word,omitempty"` - // 创建人 - Creator *string `thrift:"creator,5,optional" frugal:"5,optional,string" form:"creator" json:"creator,omitempty"` - // 额外查询条件 - Extra map[string]string `thrift:"extra,6,optional" frugal:"6,optional,map" form:"extra" json:"extra,omitempty"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` -} - -func NewListPromptBasicRequest() *ListPromptBasicRequest { - return &ListPromptBasicRequest{} -} - -func (p *ListPromptBasicRequest) InitDefault() { -} - -var ListPromptBasicRequest_WorkspaceID_DEFAULT int64 - -func (p *ListPromptBasicRequest) GetWorkspaceID() (v int64) { - if p == nil { - return - } - if !p.IsSetWorkspaceID() { - return ListPromptBasicRequest_WorkspaceID_DEFAULT - } - return *p.WorkspaceID -} - -var ListPromptBasicRequest_PageNumber_DEFAULT int32 - -func (p *ListPromptBasicRequest) GetPageNumber() (v int32) { - if p == nil { - return - } - if !p.IsSetPageNumber() { - return ListPromptBasicRequest_PageNumber_DEFAULT - } - return *p.PageNumber -} - -var ListPromptBasicRequest_PageSize_DEFAULT int32 - -func (p *ListPromptBasicRequest) GetPageSize() (v int32) { - if p == nil { - return - } - if !p.IsSetPageSize() { - return ListPromptBasicRequest_PageSize_DEFAULT - } - return *p.PageSize -} - -var ListPromptBasicRequest_KeyWord_DEFAULT string - -func (p *ListPromptBasicRequest) GetKeyWord() (v string) { - if p == nil { - return - } - if !p.IsSetKeyWord() { - return ListPromptBasicRequest_KeyWord_DEFAULT - } - return *p.KeyWord -} - -var ListPromptBasicRequest_Creator_DEFAULT string - -func (p *ListPromptBasicRequest) GetCreator() (v string) { - if p == nil { - return - } - if !p.IsSetCreator() { - return ListPromptBasicRequest_Creator_DEFAULT - } - return *p.Creator -} - -var ListPromptBasicRequest_Extra_DEFAULT map[string]string - -func (p *ListPromptBasicRequest) GetExtra() (v map[string]string) { - if p == nil { - return - } - if !p.IsSetExtra() { - return ListPromptBasicRequest_Extra_DEFAULT - } - return p.Extra -} - -var ListPromptBasicRequest_Base_DEFAULT *base.Base - -func (p *ListPromptBasicRequest) GetBase() (v *base.Base) { - if p == nil { - return - } - if !p.IsSetBase() { - return ListPromptBasicRequest_Base_DEFAULT - } - return p.Base -} -func (p *ListPromptBasicRequest) SetWorkspaceID(val *int64) { - p.WorkspaceID = val -} -func (p *ListPromptBasicRequest) SetPageNumber(val *int32) { - p.PageNumber = val -} -func (p *ListPromptBasicRequest) SetPageSize(val *int32) { - p.PageSize = val -} -func (p *ListPromptBasicRequest) SetKeyWord(val *string) { - p.KeyWord = val -} -func (p *ListPromptBasicRequest) SetCreator(val *string) { - p.Creator = val -} -func (p *ListPromptBasicRequest) SetExtra(val map[string]string) { - p.Extra = val -} -func (p *ListPromptBasicRequest) SetBase(val *base.Base) { - p.Base = val -} - -var fieldIDToName_ListPromptBasicRequest = map[int16]string{ - 1: "workspace_id", - 2: "page_number", - 3: "page_size", - 4: "key_word", - 5: "creator", - 6: "extra", - 255: "Base", -} - -func (p *ListPromptBasicRequest) IsSetWorkspaceID() bool { - return p.WorkspaceID != nil -} - -func (p *ListPromptBasicRequest) IsSetPageNumber() bool { - return p.PageNumber != nil -} - -func (p *ListPromptBasicRequest) IsSetPageSize() bool { - return p.PageSize != nil -} - -func (p *ListPromptBasicRequest) IsSetKeyWord() bool { - return p.KeyWord != nil -} - -func (p *ListPromptBasicRequest) IsSetCreator() bool { - return p.Creator != nil -} - -func (p *ListPromptBasicRequest) IsSetExtra() bool { - return p.Extra != nil -} - -func (p *ListPromptBasicRequest) IsSetBase() bool { - return p.Base != nil -} - -func (p *ListPromptBasicRequest) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.I64 { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.I32 { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.I32 { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 4: - if fieldTypeId == thrift.STRING { - if err = p.ReadField4(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 5: - if fieldTypeId == thrift.STRING { - if err = p.ReadField5(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 6: - if fieldTypeId == thrift.MAP { - if err = p.ReadField6(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 255: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField255(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListPromptBasicRequest[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *ListPromptBasicRequest) ReadField1(iprot thrift.TProtocol) error { - - var _field *int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _field = &v - } - p.WorkspaceID = _field - return nil -} -func (p *ListPromptBasicRequest) ReadField2(iprot thrift.TProtocol) error { - - var _field *int32 - if v, err := iprot.ReadI32(); err != nil { - return err - } else { - _field = &v - } - p.PageNumber = _field - return nil -} -func (p *ListPromptBasicRequest) ReadField3(iprot thrift.TProtocol) error { - - var _field *int32 - if v, err := iprot.ReadI32(); err != nil { - return err - } else { - _field = &v - } - p.PageSize = _field - return nil -} -func (p *ListPromptBasicRequest) ReadField4(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.KeyWord = _field - return nil -} -func (p *ListPromptBasicRequest) ReadField5(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Creator = _field - return nil -} -func (p *ListPromptBasicRequest) ReadField6(iprot thrift.TProtocol) error { - _, _, size, err := iprot.ReadMapBegin() - if err != nil { - return err - } - _field := make(map[string]string, size) - for i := 0; i < size; i++ { - var _key string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _key = v - } - - var _val string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _val = v - } - - _field[_key] = _val - } - if err := iprot.ReadMapEnd(); err != nil { - return err - } - p.Extra = _field - return nil -} -func (p *ListPromptBasicRequest) ReadField255(iprot thrift.TProtocol) error { - _field := base.NewBase() - if err := _field.Read(iprot); err != nil { - return err - } - p.Base = _field - return nil -} - -func (p *ListPromptBasicRequest) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("ListPromptBasicRequest"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } - if err = p.writeField4(oprot); err != nil { - fieldId = 4 - goto WriteFieldError - } - if err = p.writeField5(oprot); err != nil { - fieldId = 5 - goto WriteFieldError - } - if err = p.writeField6(oprot); err != nil { - fieldId = 6 - goto WriteFieldError - } - if err = p.writeField255(oprot); err != nil { - fieldId = 255 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *ListPromptBasicRequest) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetWorkspaceID() { - if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(*p.WorkspaceID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *ListPromptBasicRequest) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetPageNumber() { - if err = oprot.WriteFieldBegin("page_number", thrift.I32, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI32(*p.PageNumber); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *ListPromptBasicRequest) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetPageSize() { - if err = oprot.WriteFieldBegin("page_size", thrift.I32, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI32(*p.PageSize); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} -func (p *ListPromptBasicRequest) writeField4(oprot thrift.TProtocol) (err error) { - if p.IsSetKeyWord() { - if err = oprot.WriteFieldBegin("key_word", thrift.STRING, 4); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.KeyWord); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) -} -func (p *ListPromptBasicRequest) writeField5(oprot thrift.TProtocol) (err error) { - if p.IsSetCreator() { - if err = oprot.WriteFieldBegin("creator", thrift.STRING, 5); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Creator); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) -} -func (p *ListPromptBasicRequest) writeField6(oprot thrift.TProtocol) (err error) { - if p.IsSetExtra() { - if err = oprot.WriteFieldBegin("extra", thrift.MAP, 6); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.Extra)); err != nil { - return err - } - for k, v := range p.Extra { - if err := oprot.WriteString(k); err != nil { - return err - } - if err := oprot.WriteString(v); err != nil { - return err - } - } - if err := oprot.WriteMapEnd(); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) -} -func (p *ListPromptBasicRequest) writeField255(oprot thrift.TProtocol) (err error) { - if p.IsSetBase() { - if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { - goto WriteFieldBeginError - } - if err := p.Base.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 255 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) -} - -func (p *ListPromptBasicRequest) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("ListPromptBasicRequest(%+v)", *p) - -} - -func (p *ListPromptBasicRequest) DeepEqual(ano *ListPromptBasicRequest) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.WorkspaceID) { - return false - } - if !p.Field2DeepEqual(ano.PageNumber) { - return false - } - if !p.Field3DeepEqual(ano.PageSize) { - return false - } - if !p.Field4DeepEqual(ano.KeyWord) { - return false - } - if !p.Field5DeepEqual(ano.Creator) { - return false - } - if !p.Field6DeepEqual(ano.Extra) { - return false - } - if !p.Field255DeepEqual(ano.Base) { - return false - } - return true -} - -func (p *ListPromptBasicRequest) Field1DeepEqual(src *int64) bool { - - if p.WorkspaceID == src { - return true - } else if p.WorkspaceID == nil || src == nil { - return false - } - if *p.WorkspaceID != *src { - return false - } - return true -} -func (p *ListPromptBasicRequest) Field2DeepEqual(src *int32) bool { - - if p.PageNumber == src { - return true - } else if p.PageNumber == nil || src == nil { - return false - } - if *p.PageNumber != *src { - return false - } - return true -} -func (p *ListPromptBasicRequest) Field3DeepEqual(src *int32) bool { - - if p.PageSize == src { - return true - } else if p.PageSize == nil || src == nil { - return false - } - if *p.PageSize != *src { - return false - } - return true -} -func (p *ListPromptBasicRequest) Field4DeepEqual(src *string) bool { - - if p.KeyWord == src { - return true - } else if p.KeyWord == nil || src == nil { - return false - } - if strings.Compare(*p.KeyWord, *src) != 0 { - return false - } - return true -} -func (p *ListPromptBasicRequest) Field5DeepEqual(src *string) bool { - - if p.Creator == src { - return true - } else if p.Creator == nil || src == nil { - return false - } - if strings.Compare(*p.Creator, *src) != 0 { - return false - } - return true -} -func (p *ListPromptBasicRequest) Field6DeepEqual(src map[string]string) bool { - - if len(p.Extra) != len(src) { - return false - } - for k, v := range p.Extra { - _src := src[k] - if strings.Compare(v, _src) != 0 { - return false - } - } - return true -} -func (p *ListPromptBasicRequest) Field255DeepEqual(src *base.Base) bool { - - if !p.Base.DeepEqual(src) { - return false - } - return true -} - -type ListPromptBasicResponse struct { - Code *int32 `thrift:"code,1,optional" frugal:"1,optional,i32" form:"code" json:"code,omitempty" query:"code"` - Msg *string `thrift:"msg,2,optional" frugal:"2,optional,string" form:"msg" json:"msg,omitempty" query:"msg"` - Data *ListPromptBasicData `thrift:"data,3,optional" frugal:"3,optional,ListPromptBasicData" form:"data" json:"data,omitempty" query:"data"` - BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` -} - -func NewListPromptBasicResponse() *ListPromptBasicResponse { - return &ListPromptBasicResponse{} -} - -func (p *ListPromptBasicResponse) InitDefault() { -} - -var ListPromptBasicResponse_Code_DEFAULT int32 - -func (p *ListPromptBasicResponse) GetCode() (v int32) { - if p == nil { - return - } - if !p.IsSetCode() { - return ListPromptBasicResponse_Code_DEFAULT - } - return *p.Code -} - -var ListPromptBasicResponse_Msg_DEFAULT string - -func (p *ListPromptBasicResponse) GetMsg() (v string) { - if p == nil { - return - } - if !p.IsSetMsg() { - return ListPromptBasicResponse_Msg_DEFAULT - } - return *p.Msg -} - -var ListPromptBasicResponse_Data_DEFAULT *ListPromptBasicData - -func (p *ListPromptBasicResponse) GetData() (v *ListPromptBasicData) { - if p == nil { - return - } - if !p.IsSetData() { - return ListPromptBasicResponse_Data_DEFAULT - } - return p.Data -} - -var ListPromptBasicResponse_BaseResp_DEFAULT *base.BaseResp - -func (p *ListPromptBasicResponse) GetBaseResp() (v *base.BaseResp) { - if p == nil { - return - } - if !p.IsSetBaseResp() { - return ListPromptBasicResponse_BaseResp_DEFAULT - } - return p.BaseResp -} -func (p *ListPromptBasicResponse) SetCode(val *int32) { - p.Code = val -} -func (p *ListPromptBasicResponse) SetMsg(val *string) { - p.Msg = val -} -func (p *ListPromptBasicResponse) SetData(val *ListPromptBasicData) { - p.Data = val -} -func (p *ListPromptBasicResponse) SetBaseResp(val *base.BaseResp) { - p.BaseResp = val -} - -var fieldIDToName_ListPromptBasicResponse = map[int16]string{ - 1: "code", - 2: "msg", - 3: "data", - 255: "BaseResp", -} - -func (p *ListPromptBasicResponse) IsSetCode() bool { - return p.Code != nil -} - -func (p *ListPromptBasicResponse) IsSetMsg() bool { - return p.Msg != nil -} - -func (p *ListPromptBasicResponse) IsSetData() bool { - return p.Data != nil -} - -func (p *ListPromptBasicResponse) IsSetBaseResp() bool { - return p.BaseResp != nil -} - -func (p *ListPromptBasicResponse) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.I32 { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.STRING { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 255: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField255(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListPromptBasicResponse[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *ListPromptBasicResponse) ReadField1(iprot thrift.TProtocol) error { - - var _field *int32 - if v, err := iprot.ReadI32(); err != nil { - return err - } else { - _field = &v - } - p.Code = _field - return nil -} -func (p *ListPromptBasicResponse) ReadField2(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Msg = _field - return nil -} -func (p *ListPromptBasicResponse) ReadField3(iprot thrift.TProtocol) error { - _field := NewListPromptBasicData() - if err := _field.Read(iprot); err != nil { - return err - } - p.Data = _field - return nil -} -func (p *ListPromptBasicResponse) ReadField255(iprot thrift.TProtocol) error { - _field := base.NewBaseResp() - if err := _field.Read(iprot); err != nil { - return err - } - p.BaseResp = _field - return nil -} - -func (p *ListPromptBasicResponse) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("ListPromptBasicResponse"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } - if err = p.writeField255(oprot); err != nil { - fieldId = 255 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *ListPromptBasicResponse) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetCode() { - if err = oprot.WriteFieldBegin("code", thrift.I32, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI32(*p.Code); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *ListPromptBasicResponse) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetMsg() { - if err = oprot.WriteFieldBegin("msg", thrift.STRING, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Msg); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *ListPromptBasicResponse) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetData() { - if err = oprot.WriteFieldBegin("data", thrift.STRUCT, 3); err != nil { - goto WriteFieldBeginError - } - if err := p.Data.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} -func (p *ListPromptBasicResponse) writeField255(oprot thrift.TProtocol) (err error) { - if p.IsSetBaseResp() { - if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { - goto WriteFieldBeginError - } - if err := p.BaseResp.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 255 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) -} - -func (p *ListPromptBasicResponse) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("ListPromptBasicResponse(%+v)", *p) - -} - -func (p *ListPromptBasicResponse) DeepEqual(ano *ListPromptBasicResponse) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.Code) { - return false - } - if !p.Field2DeepEqual(ano.Msg) { - return false - } - if !p.Field3DeepEqual(ano.Data) { - return false - } - if !p.Field255DeepEqual(ano.BaseResp) { - return false - } - return true -} - -func (p *ListPromptBasicResponse) Field1DeepEqual(src *int32) bool { - - if p.Code == src { - return true - } else if p.Code == nil || src == nil { - return false - } - if *p.Code != *src { - return false - } - return true -} -func (p *ListPromptBasicResponse) Field2DeepEqual(src *string) bool { - - if p.Msg == src { - return true - } else if p.Msg == nil || src == nil { - return false - } - if strings.Compare(*p.Msg, *src) != 0 { - return false - } - return true -} -func (p *ListPromptBasicResponse) Field3DeepEqual(src *ListPromptBasicData) bool { - - if !p.Data.DeepEqual(src) { - return false - } - return true -} -func (p *ListPromptBasicResponse) Field255DeepEqual(src *base.BaseResp) bool { - - if !p.BaseResp.DeepEqual(src) { - return false - } - return true -} - -type PromptBasic struct { - // Prompt ID - ID *int64 `thrift:"id,1,optional" frugal:"1,optional,i64" json:"id" form:"id" query:"id"` - // 工作空间ID - WorkspaceID *int64 `thrift:"workspace_id,2,optional" frugal:"2,optional,i64" json:"workspace_id" form:"workspace_id" query:"workspace_id"` - // 唯一标识 - PromptKey *string `thrift:"prompt_key,3,optional" frugal:"3,optional,string" form:"prompt_key" json:"prompt_key,omitempty" query:"prompt_key"` - // Prompt名称 - DisplayName *string `thrift:"display_name,4,optional" frugal:"4,optional,string" form:"display_name" json:"display_name,omitempty" query:"display_name"` - // Prompt描述 - Description *string `thrift:"description,5,optional" frugal:"5,optional,string" form:"description" json:"description,omitempty" query:"description"` - // 最新版本 - LatestVersion *string `thrift:"latest_version,6,optional" frugal:"6,optional,string" form:"latest_version" json:"latest_version,omitempty" query:"latest_version"` - // 创建者 - CreatedBy *string `thrift:"created_by,7,optional" frugal:"7,optional,string" form:"created_by" json:"created_by,omitempty" query:"created_by"` - // 更新者 - UpdatedBy *string `thrift:"updated_by,8,optional" frugal:"8,optional,string" form:"updated_by" json:"updated_by,omitempty" query:"updated_by"` - // 创建时间 - CreatedAt *int64 `thrift:"created_at,9,optional" frugal:"9,optional,i64" json:"created_at" form:"created_at" query:"created_at"` - // 更新时间 - UpdatedAt *int64 `thrift:"updated_at,10,optional" frugal:"10,optional,i64" json:"updated_at" form:"updated_at" query:"updated_at"` - // 最后提交时间 - LatestCommittedAt *int64 `thrift:"latest_committed_at,11,optional" frugal:"11,optional,i64" json:"latest_committed_at" form:"latest_committed_at" query:"latest_committed_at"` -} - -func NewPromptBasic() *PromptBasic { - return &PromptBasic{} -} - -func (p *PromptBasic) InitDefault() { -} - -var PromptBasic_ID_DEFAULT int64 - -func (p *PromptBasic) GetID() (v int64) { - if p == nil { - return - } - if !p.IsSetID() { - return PromptBasic_ID_DEFAULT - } - return *p.ID -} - -var PromptBasic_WorkspaceID_DEFAULT int64 - -func (p *PromptBasic) GetWorkspaceID() (v int64) { - if p == nil { - return - } - if !p.IsSetWorkspaceID() { - return PromptBasic_WorkspaceID_DEFAULT - } - return *p.WorkspaceID -} - -var PromptBasic_PromptKey_DEFAULT string - -func (p *PromptBasic) GetPromptKey() (v string) { - if p == nil { - return - } - if !p.IsSetPromptKey() { - return PromptBasic_PromptKey_DEFAULT - } - return *p.PromptKey -} - -var PromptBasic_DisplayName_DEFAULT string - -func (p *PromptBasic) GetDisplayName() (v string) { - if p == nil { - return - } - if !p.IsSetDisplayName() { - return PromptBasic_DisplayName_DEFAULT - } - return *p.DisplayName -} - -var PromptBasic_Description_DEFAULT string - -func (p *PromptBasic) GetDescription() (v string) { - if p == nil { - return - } - if !p.IsSetDescription() { - return PromptBasic_Description_DEFAULT - } - return *p.Description -} - -var PromptBasic_LatestVersion_DEFAULT string - -func (p *PromptBasic) GetLatestVersion() (v string) { - if p == nil { - return - } - if !p.IsSetLatestVersion() { - return PromptBasic_LatestVersion_DEFAULT - } - return *p.LatestVersion -} - -var PromptBasic_CreatedBy_DEFAULT string - -func (p *PromptBasic) GetCreatedBy() (v string) { - if p == nil { - return - } - if !p.IsSetCreatedBy() { - return PromptBasic_CreatedBy_DEFAULT - } - return *p.CreatedBy -} - -var PromptBasic_UpdatedBy_DEFAULT string - -func (p *PromptBasic) GetUpdatedBy() (v string) { - if p == nil { - return - } - if !p.IsSetUpdatedBy() { - return PromptBasic_UpdatedBy_DEFAULT - } - return *p.UpdatedBy -} - -var PromptBasic_CreatedAt_DEFAULT int64 - -func (p *PromptBasic) GetCreatedAt() (v int64) { - if p == nil { - return - } - if !p.IsSetCreatedAt() { - return PromptBasic_CreatedAt_DEFAULT - } - return *p.CreatedAt -} - -var PromptBasic_UpdatedAt_DEFAULT int64 - -func (p *PromptBasic) GetUpdatedAt() (v int64) { - if p == nil { - return - } - if !p.IsSetUpdatedAt() { - return PromptBasic_UpdatedAt_DEFAULT - } - return *p.UpdatedAt -} - -var PromptBasic_LatestCommittedAt_DEFAULT int64 - -func (p *PromptBasic) GetLatestCommittedAt() (v int64) { - if p == nil { - return - } - if !p.IsSetLatestCommittedAt() { - return PromptBasic_LatestCommittedAt_DEFAULT - } - return *p.LatestCommittedAt -} -func (p *PromptBasic) SetID(val *int64) { - p.ID = val -} -func (p *PromptBasic) SetWorkspaceID(val *int64) { - p.WorkspaceID = val -} -func (p *PromptBasic) SetPromptKey(val *string) { - p.PromptKey = val -} -func (p *PromptBasic) SetDisplayName(val *string) { - p.DisplayName = val -} -func (p *PromptBasic) SetDescription(val *string) { - p.Description = val -} -func (p *PromptBasic) SetLatestVersion(val *string) { - p.LatestVersion = val -} -func (p *PromptBasic) SetCreatedBy(val *string) { - p.CreatedBy = val -} -func (p *PromptBasic) SetUpdatedBy(val *string) { - p.UpdatedBy = val -} -func (p *PromptBasic) SetCreatedAt(val *int64) { - p.CreatedAt = val -} -func (p *PromptBasic) SetUpdatedAt(val *int64) { - p.UpdatedAt = val -} -func (p *PromptBasic) SetLatestCommittedAt(val *int64) { - p.LatestCommittedAt = val -} - -var fieldIDToName_PromptBasic = map[int16]string{ - 1: "id", - 2: "workspace_id", - 3: "prompt_key", - 4: "display_name", - 5: "description", - 6: "latest_version", - 7: "created_by", - 8: "updated_by", - 9: "created_at", - 10: "updated_at", - 11: "latest_committed_at", -} - -func (p *PromptBasic) IsSetID() bool { - return p.ID != nil -} - -func (p *PromptBasic) IsSetWorkspaceID() bool { - return p.WorkspaceID != nil -} - -func (p *PromptBasic) IsSetPromptKey() bool { - return p.PromptKey != nil -} - -func (p *PromptBasic) IsSetDisplayName() bool { - return p.DisplayName != nil -} - -func (p *PromptBasic) IsSetDescription() bool { - return p.Description != nil -} - -func (p *PromptBasic) IsSetLatestVersion() bool { - return p.LatestVersion != nil -} - -func (p *PromptBasic) IsSetCreatedBy() bool { - return p.CreatedBy != nil -} - -func (p *PromptBasic) IsSetUpdatedBy() bool { - return p.UpdatedBy != nil -} - -func (p *PromptBasic) IsSetCreatedAt() bool { - return p.CreatedAt != nil -} - -func (p *PromptBasic) IsSetUpdatedAt() bool { - return p.UpdatedAt != nil -} - -func (p *PromptBasic) IsSetLatestCommittedAt() bool { - return p.LatestCommittedAt != nil -} - -func (p *PromptBasic) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.I64 { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.I64 { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.STRING { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 4: - if fieldTypeId == thrift.STRING { - if err = p.ReadField4(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 5: - if fieldTypeId == thrift.STRING { - if err = p.ReadField5(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 6: - if fieldTypeId == thrift.STRING { - if err = p.ReadField6(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 7: - if fieldTypeId == thrift.STRING { - if err = p.ReadField7(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 8: - if fieldTypeId == thrift.STRING { - if err = p.ReadField8(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 9: - if fieldTypeId == thrift.I64 { - if err = p.ReadField9(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 10: - if fieldTypeId == thrift.I64 { - if err = p.ReadField10(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 11: - if fieldTypeId == thrift.I64 { - if err = p.ReadField11(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptBasic[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *PromptBasic) ReadField1(iprot thrift.TProtocol) error { - - var _field *int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _field = &v - } - p.ID = _field - return nil -} -func (p *PromptBasic) ReadField2(iprot thrift.TProtocol) error { - - var _field *int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _field = &v - } - p.WorkspaceID = _field - return nil -} -func (p *PromptBasic) ReadField3(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.PromptKey = _field - return nil -} -func (p *PromptBasic) ReadField4(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.DisplayName = _field - return nil -} -func (p *PromptBasic) ReadField5(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Description = _field - return nil -} -func (p *PromptBasic) ReadField6(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.LatestVersion = _field - return nil -} -func (p *PromptBasic) ReadField7(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.CreatedBy = _field - return nil -} -func (p *PromptBasic) ReadField8(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.UpdatedBy = _field - return nil -} -func (p *PromptBasic) ReadField9(iprot thrift.TProtocol) error { - - var _field *int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _field = &v - } - p.CreatedAt = _field - return nil -} -func (p *PromptBasic) ReadField10(iprot thrift.TProtocol) error { - - var _field *int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _field = &v - } - p.UpdatedAt = _field - return nil -} -func (p *PromptBasic) ReadField11(iprot thrift.TProtocol) error { - - var _field *int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _field = &v - } - p.LatestCommittedAt = _field - return nil -} - -func (p *PromptBasic) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("PromptBasic"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } - if err = p.writeField4(oprot); err != nil { - fieldId = 4 - goto WriteFieldError - } - if err = p.writeField5(oprot); err != nil { - fieldId = 5 - goto WriteFieldError - } - if err = p.writeField6(oprot); err != nil { - fieldId = 6 - goto WriteFieldError - } - if err = p.writeField7(oprot); err != nil { - fieldId = 7 - goto WriteFieldError - } - if err = p.writeField8(oprot); err != nil { - fieldId = 8 - goto WriteFieldError - } - if err = p.writeField9(oprot); err != nil { - fieldId = 9 - goto WriteFieldError - } - if err = p.writeField10(oprot); err != nil { - fieldId = 10 - goto WriteFieldError - } - if err = p.writeField11(oprot); err != nil { - fieldId = 11 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *PromptBasic) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetID() { - if err = oprot.WriteFieldBegin("id", thrift.I64, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(*p.ID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *PromptBasic) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetWorkspaceID() { - if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(*p.WorkspaceID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *PromptBasic) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetPromptKey() { - if err = oprot.WriteFieldBegin("prompt_key", thrift.STRING, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.PromptKey); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} -func (p *PromptBasic) writeField4(oprot thrift.TProtocol) (err error) { - if p.IsSetDisplayName() { - if err = oprot.WriteFieldBegin("display_name", thrift.STRING, 4); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.DisplayName); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) -} -func (p *PromptBasic) writeField5(oprot thrift.TProtocol) (err error) { - if p.IsSetDescription() { - if err = oprot.WriteFieldBegin("description", thrift.STRING, 5); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Description); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) -} -func (p *PromptBasic) writeField6(oprot thrift.TProtocol) (err error) { - if p.IsSetLatestVersion() { - if err = oprot.WriteFieldBegin("latest_version", thrift.STRING, 6); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.LatestVersion); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) -} -func (p *PromptBasic) writeField7(oprot thrift.TProtocol) (err error) { - if p.IsSetCreatedBy() { - if err = oprot.WriteFieldBegin("created_by", thrift.STRING, 7); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.CreatedBy); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 7 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) -} -func (p *PromptBasic) writeField8(oprot thrift.TProtocol) (err error) { - if p.IsSetUpdatedBy() { - if err = oprot.WriteFieldBegin("updated_by", thrift.STRING, 8); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.UpdatedBy); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 8 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 8 end error: ", p), err) -} -func (p *PromptBasic) writeField9(oprot thrift.TProtocol) (err error) { - if p.IsSetCreatedAt() { - if err = oprot.WriteFieldBegin("created_at", thrift.I64, 9); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(*p.CreatedAt); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 9 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 9 end error: ", p), err) -} -func (p *PromptBasic) writeField10(oprot thrift.TProtocol) (err error) { - if p.IsSetUpdatedAt() { - if err = oprot.WriteFieldBegin("updated_at", thrift.I64, 10); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(*p.UpdatedAt); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 10 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 10 end error: ", p), err) -} -func (p *PromptBasic) writeField11(oprot thrift.TProtocol) (err error) { - if p.IsSetLatestCommittedAt() { - if err = oprot.WriteFieldBegin("latest_committed_at", thrift.I64, 11); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(*p.LatestCommittedAt); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 11 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 11 end error: ", p), err) -} - -func (p *PromptBasic) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("PromptBasic(%+v)", *p) - -} - -func (p *PromptBasic) DeepEqual(ano *PromptBasic) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.ID) { - return false - } - if !p.Field2DeepEqual(ano.WorkspaceID) { - return false - } - if !p.Field3DeepEqual(ano.PromptKey) { - return false - } - if !p.Field4DeepEqual(ano.DisplayName) { - return false - } - if !p.Field5DeepEqual(ano.Description) { - return false - } - if !p.Field6DeepEqual(ano.LatestVersion) { - return false - } - if !p.Field7DeepEqual(ano.CreatedBy) { - return false - } - if !p.Field8DeepEqual(ano.UpdatedBy) { - return false - } - if !p.Field9DeepEqual(ano.CreatedAt) { - return false - } - if !p.Field10DeepEqual(ano.UpdatedAt) { - return false - } - if !p.Field11DeepEqual(ano.LatestCommittedAt) { - return false - } - return true -} - -func (p *PromptBasic) Field1DeepEqual(src *int64) bool { - - if p.ID == src { - return true - } else if p.ID == nil || src == nil { - return false - } - if *p.ID != *src { - return false - } - return true -} -func (p *PromptBasic) Field2DeepEqual(src *int64) bool { - - if p.WorkspaceID == src { - return true - } else if p.WorkspaceID == nil || src == nil { - return false - } - if *p.WorkspaceID != *src { - return false - } - return true -} -func (p *PromptBasic) Field3DeepEqual(src *string) bool { - - if p.PromptKey == src { - return true - } else if p.PromptKey == nil || src == nil { - return false - } - if strings.Compare(*p.PromptKey, *src) != 0 { - return false - } - return true -} -func (p *PromptBasic) Field4DeepEqual(src *string) bool { - - if p.DisplayName == src { - return true - } else if p.DisplayName == nil || src == nil { - return false - } - if strings.Compare(*p.DisplayName, *src) != 0 { - return false - } - return true -} -func (p *PromptBasic) Field5DeepEqual(src *string) bool { - - if p.Description == src { - return true - } else if p.Description == nil || src == nil { - return false - } - if strings.Compare(*p.Description, *src) != 0 { - return false - } - return true -} -func (p *PromptBasic) Field6DeepEqual(src *string) bool { - - if p.LatestVersion == src { - return true - } else if p.LatestVersion == nil || src == nil { - return false - } - if strings.Compare(*p.LatestVersion, *src) != 0 { - return false - } - return true -} -func (p *PromptBasic) Field7DeepEqual(src *string) bool { - - if p.CreatedBy == src { - return true - } else if p.CreatedBy == nil || src == nil { - return false - } - if strings.Compare(*p.CreatedBy, *src) != 0 { - return false - } - return true -} -func (p *PromptBasic) Field8DeepEqual(src *string) bool { - - if p.UpdatedBy == src { - return true - } else if p.UpdatedBy == nil || src == nil { - return false - } - if strings.Compare(*p.UpdatedBy, *src) != 0 { - return false - } - return true -} -func (p *PromptBasic) Field9DeepEqual(src *int64) bool { - - if p.CreatedAt == src { - return true - } else if p.CreatedAt == nil || src == nil { - return false - } - if *p.CreatedAt != *src { - return false - } - return true -} -func (p *PromptBasic) Field10DeepEqual(src *int64) bool { - - if p.UpdatedAt == src { - return true - } else if p.UpdatedAt == nil || src == nil { - return false - } - if *p.UpdatedAt != *src { - return false - } - return true -} -func (p *PromptBasic) Field11DeepEqual(src *int64) bool { - - if p.LatestCommittedAt == src { - return true - } else if p.LatestCommittedAt == nil || src == nil { - return false - } - if *p.LatestCommittedAt != *src { - return false - } - return true -} - -type ListPromptBasicData struct { - // Prompt列表 - Prompts []*PromptBasic `thrift:"prompts,1,optional" frugal:"1,optional,list" form:"prompts" json:"prompts,omitempty" query:"prompts"` - Total *int32 `thrift:"total,2,optional" frugal:"2,optional,i32" form:"total" json:"total,omitempty" query:"total"` -} - -func NewListPromptBasicData() *ListPromptBasicData { - return &ListPromptBasicData{} -} - -func (p *ListPromptBasicData) InitDefault() { -} - -var ListPromptBasicData_Prompts_DEFAULT []*PromptBasic - -func (p *ListPromptBasicData) GetPrompts() (v []*PromptBasic) { - if p == nil { - return - } - if !p.IsSetPrompts() { - return ListPromptBasicData_Prompts_DEFAULT - } - return p.Prompts -} - -var ListPromptBasicData_Total_DEFAULT int32 - -func (p *ListPromptBasicData) GetTotal() (v int32) { - if p == nil { - return - } - if !p.IsSetTotal() { - return ListPromptBasicData_Total_DEFAULT - } - return *p.Total -} -func (p *ListPromptBasicData) SetPrompts(val []*PromptBasic) { - p.Prompts = val -} -func (p *ListPromptBasicData) SetTotal(val *int32) { - p.Total = val -} - -var fieldIDToName_ListPromptBasicData = map[int16]string{ - 1: "prompts", - 2: "total", -} - -func (p *ListPromptBasicData) IsSetPrompts() bool { - return p.Prompts != nil -} - -func (p *ListPromptBasicData) IsSetTotal() bool { - return p.Total != nil -} - -func (p *ListPromptBasicData) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.LIST { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.I32 { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListPromptBasicData[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *ListPromptBasicData) ReadField1(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { - return err - } - _field := make([]*PromptBasic, 0, size) - values := make([]PromptBasic, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - - if err := _elem.Read(iprot); err != nil { - return err - } - - _field = append(_field, _elem) - } - if err := iprot.ReadListEnd(); err != nil { - return err - } - p.Prompts = _field - return nil -} -func (p *ListPromptBasicData) ReadField2(iprot thrift.TProtocol) error { - - var _field *int32 - if v, err := iprot.ReadI32(); err != nil { - return err - } else { - _field = &v - } - p.Total = _field - return nil -} - -func (p *ListPromptBasicData) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("ListPromptBasicData"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *ListPromptBasicData) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetPrompts() { - if err = oprot.WriteFieldBegin("prompts", thrift.LIST, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Prompts)); err != nil { - return err - } - for _, v := range p.Prompts { - if err := v.Write(oprot); err != nil { - return err - } - } - if err := oprot.WriteListEnd(); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *ListPromptBasicData) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetTotal() { - if err = oprot.WriteFieldBegin("total", thrift.I32, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI32(*p.Total); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} - -func (p *ListPromptBasicData) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("ListPromptBasicData(%+v)", *p) - -} - -func (p *ListPromptBasicData) DeepEqual(ano *ListPromptBasicData) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.Prompts) { - return false - } - if !p.Field2DeepEqual(ano.Total) { - return false - } - return true -} - -func (p *ListPromptBasicData) Field1DeepEqual(src []*PromptBasic) bool { - - if len(p.Prompts) != len(src) { - return false - } - for i, v := range p.Prompts { - _src := src[i] - if !v.DeepEqual(_src) { - return false - } - } - return true -} -func (p *ListPromptBasicData) Field2DeepEqual(src *int32) bool { - - if p.Total == src { - return true - } else if p.Total == nil || src == nil { - return false - } - if *p.Total != *src { - return false - } - return true -} - -type PromptPublishInfo struct { - // 发布者 - Publisher string `thrift:"publisher,1" frugal:"1,default,string" form:"publisher" json:"publisher" query:"publisher"` - // 发布描述 - PublishDescription string `thrift:"publish_description,2" frugal:"2,default,string" form:"publish_description" json:"publish_description" query:"publish_description"` - // 发布时间 - PublishAt *int64 `thrift:"publish_at,3,optional" frugal:"3,optional,i64" json:"publish_at" form:"publish_at" query:"publish_at"` -} - -func NewPromptPublishInfo() *PromptPublishInfo { - return &PromptPublishInfo{} -} - -func (p *PromptPublishInfo) InitDefault() { -} - -func (p *PromptPublishInfo) GetPublisher() (v string) { - if p != nil { - return p.Publisher - } - return -} - -func (p *PromptPublishInfo) GetPublishDescription() (v string) { - if p != nil { - return p.PublishDescription - } - return -} - -var PromptPublishInfo_PublishAt_DEFAULT int64 - -func (p *PromptPublishInfo) GetPublishAt() (v int64) { - if p == nil { - return - } - if !p.IsSetPublishAt() { - return PromptPublishInfo_PublishAt_DEFAULT - } - return *p.PublishAt -} -func (p *PromptPublishInfo) SetPublisher(val string) { - p.Publisher = val -} -func (p *PromptPublishInfo) SetPublishDescription(val string) { - p.PublishDescription = val -} -func (p *PromptPublishInfo) SetPublishAt(val *int64) { - p.PublishAt = val -} - -var fieldIDToName_PromptPublishInfo = map[int16]string{ - 1: "publisher", - 2: "publish_description", - 3: "publish_at", -} - -func (p *PromptPublishInfo) IsSetPublishAt() bool { - return p.PublishAt != nil -} - -func (p *PromptPublishInfo) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.STRING { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.I64 { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptPublishInfo[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *PromptPublishInfo) ReadField1(iprot thrift.TProtocol) error { - - var _field string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = v - } - p.Publisher = _field - return nil -} -func (p *PromptPublishInfo) ReadField2(iprot thrift.TProtocol) error { - - var _field string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = v - } - p.PublishDescription = _field - return nil -} -func (p *PromptPublishInfo) ReadField3(iprot thrift.TProtocol) error { - - var _field *int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _field = &v - } - p.PublishAt = _field - return nil -} - -func (p *PromptPublishInfo) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("PromptPublishInfo"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *PromptPublishInfo) writeField1(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("publisher", thrift.STRING, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(p.Publisher); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *PromptPublishInfo) writeField2(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("publish_description", thrift.STRING, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(p.PublishDescription); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *PromptPublishInfo) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetPublishAt() { - if err = oprot.WriteFieldBegin("publish_at", thrift.I64, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(*p.PublishAt); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} - -func (p *PromptPublishInfo) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("PromptPublishInfo(%+v)", *p) - -} - -func (p *PromptPublishInfo) DeepEqual(ano *PromptPublishInfo) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.Publisher) { - return false - } - if !p.Field2DeepEqual(ano.PublishDescription) { - return false - } - if !p.Field3DeepEqual(ano.PublishAt) { - return false - } - return true -} - -func (p *PromptPublishInfo) Field1DeepEqual(src string) bool { - - if strings.Compare(p.Publisher, src) != 0 { - return false - } - return true -} -func (p *PromptPublishInfo) Field2DeepEqual(src string) bool { - - if strings.Compare(p.PublishDescription, src) != 0 { - return false - } - return true -} -func (p *PromptPublishInfo) Field3DeepEqual(src *int64) bool { - - if p.PublishAt == src { - return true - } else if p.PublishAt == nil || src == nil { - return false - } - if *p.PublishAt != *src { - return false - } - return true -} - -type ThinkingConfig struct { - // thinking内容的最大输出token - BudgetTokens *int64 `thrift:"budget_tokens,1,optional" frugal:"1,optional,i64" json:"budget_tokens" form:"budget_tokens" query:"budget_tokens"` - ThinkingOption *ThinkingOption `thrift:"thinking_option,2,optional" frugal:"2,optional,string" form:"thinking_option" json:"thinking_option,omitempty" query:"thinking_option"` - // 思考长度 - ReasoningEffort *ReasoningEffort `thrift:"reasoning_effort,3,optional" frugal:"3,optional,string" form:"reasoning_effort" json:"reasoning_effort,omitempty" query:"reasoning_effort"` -} - -func NewThinkingConfig() *ThinkingConfig { - return &ThinkingConfig{} -} - -func (p *ThinkingConfig) InitDefault() { -} - -var ThinkingConfig_BudgetTokens_DEFAULT int64 - -func (p *ThinkingConfig) GetBudgetTokens() (v int64) { - if p == nil { - return - } - if !p.IsSetBudgetTokens() { - return ThinkingConfig_BudgetTokens_DEFAULT - } - return *p.BudgetTokens -} - -var ThinkingConfig_ThinkingOption_DEFAULT ThinkingOption - -func (p *ThinkingConfig) GetThinkingOption() (v ThinkingOption) { - if p == nil { - return - } - if !p.IsSetThinkingOption() { - return ThinkingConfig_ThinkingOption_DEFAULT - } - return *p.ThinkingOption -} - -var ThinkingConfig_ReasoningEffort_DEFAULT ReasoningEffort - -func (p *ThinkingConfig) GetReasoningEffort() (v ReasoningEffort) { - if p == nil { - return - } - if !p.IsSetReasoningEffort() { - return ThinkingConfig_ReasoningEffort_DEFAULT - } - return *p.ReasoningEffort -} -func (p *ThinkingConfig) SetBudgetTokens(val *int64) { - p.BudgetTokens = val -} -func (p *ThinkingConfig) SetThinkingOption(val *ThinkingOption) { - p.ThinkingOption = val -} -func (p *ThinkingConfig) SetReasoningEffort(val *ReasoningEffort) { - p.ReasoningEffort = val -} - -var fieldIDToName_ThinkingConfig = map[int16]string{ - 1: "budget_tokens", - 2: "thinking_option", - 3: "reasoning_effort", -} - -func (p *ThinkingConfig) IsSetBudgetTokens() bool { - return p.BudgetTokens != nil -} - -func (p *ThinkingConfig) IsSetThinkingOption() bool { - return p.ThinkingOption != nil -} - -func (p *ThinkingConfig) IsSetReasoningEffort() bool { - return p.ReasoningEffort != nil -} - -func (p *ThinkingConfig) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.I64 { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.STRING { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.STRING { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ThinkingConfig[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *ThinkingConfig) ReadField1(iprot thrift.TProtocol) error { - - var _field *int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _field = &v - } - p.BudgetTokens = _field - return nil -} -func (p *ThinkingConfig) ReadField2(iprot thrift.TProtocol) error { - - var _field *ThinkingOption - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.ThinkingOption = _field - return nil -} -func (p *ThinkingConfig) ReadField3(iprot thrift.TProtocol) error { - - var _field *ReasoningEffort - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.ReasoningEffort = _field - return nil -} - -func (p *ThinkingConfig) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("ThinkingConfig"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *ThinkingConfig) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetBudgetTokens() { - if err = oprot.WriteFieldBegin("budget_tokens", thrift.I64, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(*p.BudgetTokens); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *ThinkingConfig) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetThinkingOption() { - if err = oprot.WriteFieldBegin("thinking_option", thrift.STRING, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.ThinkingOption); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *ThinkingConfig) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetReasoningEffort() { - if err = oprot.WriteFieldBegin("reasoning_effort", thrift.STRING, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.ReasoningEffort); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} - -func (p *ThinkingConfig) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("ThinkingConfig(%+v)", *p) - -} - -func (p *ThinkingConfig) DeepEqual(ano *ThinkingConfig) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.BudgetTokens) { - return false - } - if !p.Field2DeepEqual(ano.ThinkingOption) { - return false - } - if !p.Field3DeepEqual(ano.ReasoningEffort) { - return false - } - return true -} - -func (p *ThinkingConfig) Field1DeepEqual(src *int64) bool { - - if p.BudgetTokens == src { - return true - } else if p.BudgetTokens == nil || src == nil { - return false - } - if *p.BudgetTokens != *src { - return false - } - return true -} -func (p *ThinkingConfig) Field2DeepEqual(src *ThinkingOption) bool { - - if p.ThinkingOption == src { - return true - } else if p.ThinkingOption == nil || src == nil { - return false - } - if strings.Compare(*p.ThinkingOption, *src) != 0 { - return false - } - return true -} -func (p *ThinkingConfig) Field3DeepEqual(src *ReasoningEffort) bool { - - if p.ReasoningEffort == src { - return true - } else if p.ReasoningEffort == nil || src == nil { - return false - } - if strings.Compare(*p.ReasoningEffort, *src) != 0 { - return false - } - return true -} - -type ModelConfig struct { - ModelID *int64 `thrift:"model_id,1,optional" frugal:"1,optional,i64" json:"model_id" form:"model_id" query:"model_id"` - MaxTokens *int32 `thrift:"max_tokens,2,optional" frugal:"2,optional,i32" form:"max_tokens" json:"max_tokens,omitempty" query:"max_tokens"` - Temperature *float64 `thrift:"temperature,3,optional" frugal:"3,optional,double" form:"temperature" json:"temperature,omitempty" query:"temperature"` - TopK *int32 `thrift:"top_k,4,optional" frugal:"4,optional,i32" form:"top_k" json:"top_k,omitempty" query:"top_k"` - TopP *float64 `thrift:"top_p,5,optional" frugal:"5,optional,double" form:"top_p" json:"top_p,omitempty" query:"top_p"` - PresencePenalty *float64 `thrift:"presence_penalty,6,optional" frugal:"6,optional,double" form:"presence_penalty" json:"presence_penalty,omitempty" query:"presence_penalty"` - FrequencyPenalty *float64 `thrift:"frequency_penalty,7,optional" frugal:"7,optional,double" form:"frequency_penalty" json:"frequency_penalty,omitempty" query:"frequency_penalty"` - JSONMode *bool `thrift:"json_mode,8,optional" frugal:"8,optional,bool" form:"json_mode" json:"json_mode,omitempty" query:"json_mode"` - Extra *string `thrift:"extra,9,optional" frugal:"9,optional,string" form:"extra" json:"extra,omitempty" query:"extra"` - Thinking *ThinkingConfig `thrift:"thinking,10,optional" frugal:"10,optional,ThinkingConfig" form:"thinking" json:"thinking,omitempty" query:"thinking"` - ParamConfigValues []*ParamConfigValue `thrift:"param_config_values,100,optional" frugal:"100,optional,list" form:"param_config_values" json:"param_config_values,omitempty" query:"param_config_values"` -} - -func NewModelConfig() *ModelConfig { - return &ModelConfig{} -} - -func (p *ModelConfig) InitDefault() { -} - -var ModelConfig_ModelID_DEFAULT int64 - -func (p *ModelConfig) GetModelID() (v int64) { - if p == nil { - return - } - if !p.IsSetModelID() { - return ModelConfig_ModelID_DEFAULT - } - return *p.ModelID -} - -var ModelConfig_MaxTokens_DEFAULT int32 - -func (p *ModelConfig) GetMaxTokens() (v int32) { - if p == nil { - return - } - if !p.IsSetMaxTokens() { - return ModelConfig_MaxTokens_DEFAULT - } - return *p.MaxTokens -} - -var ModelConfig_Temperature_DEFAULT float64 - -func (p *ModelConfig) GetTemperature() (v float64) { - if p == nil { - return - } - if !p.IsSetTemperature() { - return ModelConfig_Temperature_DEFAULT - } - return *p.Temperature -} - -var ModelConfig_TopK_DEFAULT int32 - -func (p *ModelConfig) GetTopK() (v int32) { - if p == nil { - return - } - if !p.IsSetTopK() { - return ModelConfig_TopK_DEFAULT - } - return *p.TopK -} - -var ModelConfig_TopP_DEFAULT float64 - -func (p *ModelConfig) GetTopP() (v float64) { - if p == nil { - return - } - if !p.IsSetTopP() { - return ModelConfig_TopP_DEFAULT - } - return *p.TopP -} - -var ModelConfig_PresencePenalty_DEFAULT float64 - -func (p *ModelConfig) GetPresencePenalty() (v float64) { - if p == nil { - return - } - if !p.IsSetPresencePenalty() { - return ModelConfig_PresencePenalty_DEFAULT - } - return *p.PresencePenalty -} - -var ModelConfig_FrequencyPenalty_DEFAULT float64 - -func (p *ModelConfig) GetFrequencyPenalty() (v float64) { - if p == nil { - return - } - if !p.IsSetFrequencyPenalty() { - return ModelConfig_FrequencyPenalty_DEFAULT - } - return *p.FrequencyPenalty -} - -var ModelConfig_JSONMode_DEFAULT bool - -func (p *ModelConfig) GetJSONMode() (v bool) { - if p == nil { - return - } - if !p.IsSetJSONMode() { - return ModelConfig_JSONMode_DEFAULT - } - return *p.JSONMode -} - -var ModelConfig_Extra_DEFAULT string - -func (p *ModelConfig) GetExtra() (v string) { - if p == nil { - return - } - if !p.IsSetExtra() { - return ModelConfig_Extra_DEFAULT - } - return *p.Extra -} - -var ModelConfig_Thinking_DEFAULT *ThinkingConfig - -func (p *ModelConfig) GetThinking() (v *ThinkingConfig) { - if p == nil { - return - } - if !p.IsSetThinking() { - return ModelConfig_Thinking_DEFAULT - } - return p.Thinking -} - -var ModelConfig_ParamConfigValues_DEFAULT []*ParamConfigValue - -func (p *ModelConfig) GetParamConfigValues() (v []*ParamConfigValue) { - if p == nil { - return - } - if !p.IsSetParamConfigValues() { - return ModelConfig_ParamConfigValues_DEFAULT - } - return p.ParamConfigValues -} -func (p *ModelConfig) SetModelID(val *int64) { - p.ModelID = val -} -func (p *ModelConfig) SetMaxTokens(val *int32) { - p.MaxTokens = val -} -func (p *ModelConfig) SetTemperature(val *float64) { - p.Temperature = val -} -func (p *ModelConfig) SetTopK(val *int32) { - p.TopK = val -} -func (p *ModelConfig) SetTopP(val *float64) { - p.TopP = val -} -func (p *ModelConfig) SetPresencePenalty(val *float64) { - p.PresencePenalty = val -} -func (p *ModelConfig) SetFrequencyPenalty(val *float64) { - p.FrequencyPenalty = val -} -func (p *ModelConfig) SetJSONMode(val *bool) { - p.JSONMode = val -} -func (p *ModelConfig) SetExtra(val *string) { - p.Extra = val -} -func (p *ModelConfig) SetThinking(val *ThinkingConfig) { - p.Thinking = val -} -func (p *ModelConfig) SetParamConfigValues(val []*ParamConfigValue) { - p.ParamConfigValues = val -} - -var fieldIDToName_ModelConfig = map[int16]string{ - 1: "model_id", - 2: "max_tokens", - 3: "temperature", - 4: "top_k", - 5: "top_p", - 6: "presence_penalty", - 7: "frequency_penalty", - 8: "json_mode", - 9: "extra", - 10: "thinking", - 100: "param_config_values", -} - -func (p *ModelConfig) IsSetModelID() bool { - return p.ModelID != nil -} - -func (p *ModelConfig) IsSetMaxTokens() bool { - return p.MaxTokens != nil -} - -func (p *ModelConfig) IsSetTemperature() bool { - return p.Temperature != nil -} - -func (p *ModelConfig) IsSetTopK() bool { - return p.TopK != nil -} - -func (p *ModelConfig) IsSetTopP() bool { - return p.TopP != nil -} - -func (p *ModelConfig) IsSetPresencePenalty() bool { - return p.PresencePenalty != nil -} - -func (p *ModelConfig) IsSetFrequencyPenalty() bool { - return p.FrequencyPenalty != nil -} - -func (p *ModelConfig) IsSetJSONMode() bool { - return p.JSONMode != nil -} - -func (p *ModelConfig) IsSetExtra() bool { - return p.Extra != nil -} - -func (p *ModelConfig) IsSetThinking() bool { - return p.Thinking != nil -} - -func (p *ModelConfig) IsSetParamConfigValues() bool { - return p.ParamConfigValues != nil -} - -func (p *ModelConfig) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.I64 { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.I32 { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.DOUBLE { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 4: - if fieldTypeId == thrift.I32 { - if err = p.ReadField4(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 5: - if fieldTypeId == thrift.DOUBLE { - if err = p.ReadField5(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 6: - if fieldTypeId == thrift.DOUBLE { - if err = p.ReadField6(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 7: - if fieldTypeId == thrift.DOUBLE { - if err = p.ReadField7(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 8: - if fieldTypeId == thrift.BOOL { - if err = p.ReadField8(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 9: - if fieldTypeId == thrift.STRING { - if err = p.ReadField9(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 10: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField10(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 100: - if fieldTypeId == thrift.LIST { - if err = p.ReadField100(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ModelConfig[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *ModelConfig) ReadField1(iprot thrift.TProtocol) error { - - var _field *int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _field = &v - } - p.ModelID = _field - return nil -} -func (p *ModelConfig) ReadField2(iprot thrift.TProtocol) error { - - var _field *int32 - if v, err := iprot.ReadI32(); err != nil { - return err - } else { - _field = &v - } - p.MaxTokens = _field - return nil -} -func (p *ModelConfig) ReadField3(iprot thrift.TProtocol) error { - - var _field *float64 - if v, err := iprot.ReadDouble(); err != nil { - return err - } else { - _field = &v - } - p.Temperature = _field - return nil -} -func (p *ModelConfig) ReadField4(iprot thrift.TProtocol) error { - - var _field *int32 - if v, err := iprot.ReadI32(); err != nil { - return err - } else { - _field = &v - } - p.TopK = _field - return nil -} -func (p *ModelConfig) ReadField5(iprot thrift.TProtocol) error { - - var _field *float64 - if v, err := iprot.ReadDouble(); err != nil { - return err - } else { - _field = &v - } - p.TopP = _field - return nil -} -func (p *ModelConfig) ReadField6(iprot thrift.TProtocol) error { - - var _field *float64 - if v, err := iprot.ReadDouble(); err != nil { - return err - } else { - _field = &v - } - p.PresencePenalty = _field - return nil -} -func (p *ModelConfig) ReadField7(iprot thrift.TProtocol) error { - - var _field *float64 - if v, err := iprot.ReadDouble(); err != nil { - return err - } else { - _field = &v - } - p.FrequencyPenalty = _field - return nil -} -func (p *ModelConfig) ReadField8(iprot thrift.TProtocol) error { - - var _field *bool - if v, err := iprot.ReadBool(); err != nil { - return err - } else { - _field = &v - } - p.JSONMode = _field - return nil -} -func (p *ModelConfig) ReadField9(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Extra = _field - return nil -} -func (p *ModelConfig) ReadField10(iprot thrift.TProtocol) error { - _field := NewThinkingConfig() - if err := _field.Read(iprot); err != nil { - return err - } - p.Thinking = _field - return nil -} -func (p *ModelConfig) ReadField100(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { - return err - } - _field := make([]*ParamConfigValue, 0, size) - values := make([]ParamConfigValue, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - - if err := _elem.Read(iprot); err != nil { - return err - } - - _field = append(_field, _elem) - } - if err := iprot.ReadListEnd(); err != nil { - return err - } - p.ParamConfigValues = _field - return nil -} - -func (p *ModelConfig) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("ModelConfig"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } - if err = p.writeField4(oprot); err != nil { - fieldId = 4 - goto WriteFieldError - } - if err = p.writeField5(oprot); err != nil { - fieldId = 5 - goto WriteFieldError - } - if err = p.writeField6(oprot); err != nil { - fieldId = 6 - goto WriteFieldError - } - if err = p.writeField7(oprot); err != nil { - fieldId = 7 - goto WriteFieldError - } - if err = p.writeField8(oprot); err != nil { - fieldId = 8 - goto WriteFieldError - } - if err = p.writeField9(oprot); err != nil { - fieldId = 9 - goto WriteFieldError - } - if err = p.writeField10(oprot); err != nil { - fieldId = 10 - goto WriteFieldError - } - if err = p.writeField100(oprot); err != nil { - fieldId = 100 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *ModelConfig) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetModelID() { - if err = oprot.WriteFieldBegin("model_id", thrift.I64, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(*p.ModelID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *ModelConfig) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetMaxTokens() { - if err = oprot.WriteFieldBegin("max_tokens", thrift.I32, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI32(*p.MaxTokens); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *ModelConfig) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetTemperature() { - if err = oprot.WriteFieldBegin("temperature", thrift.DOUBLE, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteDouble(*p.Temperature); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} -func (p *ModelConfig) writeField4(oprot thrift.TProtocol) (err error) { - if p.IsSetTopK() { - if err = oprot.WriteFieldBegin("top_k", thrift.I32, 4); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI32(*p.TopK); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) -} -func (p *ModelConfig) writeField5(oprot thrift.TProtocol) (err error) { - if p.IsSetTopP() { - if err = oprot.WriteFieldBegin("top_p", thrift.DOUBLE, 5); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteDouble(*p.TopP); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) -} -func (p *ModelConfig) writeField6(oprot thrift.TProtocol) (err error) { - if p.IsSetPresencePenalty() { - if err = oprot.WriteFieldBegin("presence_penalty", thrift.DOUBLE, 6); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteDouble(*p.PresencePenalty); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) -} -func (p *ModelConfig) writeField7(oprot thrift.TProtocol) (err error) { - if p.IsSetFrequencyPenalty() { - if err = oprot.WriteFieldBegin("frequency_penalty", thrift.DOUBLE, 7); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteDouble(*p.FrequencyPenalty); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 7 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) -} -func (p *ModelConfig) writeField8(oprot thrift.TProtocol) (err error) { - if p.IsSetJSONMode() { - if err = oprot.WriteFieldBegin("json_mode", thrift.BOOL, 8); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteBool(*p.JSONMode); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 8 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 8 end error: ", p), err) -} -func (p *ModelConfig) writeField9(oprot thrift.TProtocol) (err error) { - if p.IsSetExtra() { - if err = oprot.WriteFieldBegin("extra", thrift.STRING, 9); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Extra); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 9 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 9 end error: ", p), err) -} -func (p *ModelConfig) writeField10(oprot thrift.TProtocol) (err error) { - if p.IsSetThinking() { - if err = oprot.WriteFieldBegin("thinking", thrift.STRUCT, 10); err != nil { - goto WriteFieldBeginError - } - if err := p.Thinking.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 10 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 10 end error: ", p), err) -} -func (p *ModelConfig) writeField100(oprot thrift.TProtocol) (err error) { - if p.IsSetParamConfigValues() { - if err = oprot.WriteFieldBegin("param_config_values", thrift.LIST, 100); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.ParamConfigValues)); err != nil { - return err - } - for _, v := range p.ParamConfigValues { - if err := v.Write(oprot); err != nil { - return err - } - } - if err := oprot.WriteListEnd(); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 100 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 100 end error: ", p), err) -} - -func (p *ModelConfig) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("ModelConfig(%+v)", *p) - -} - -func (p *ModelConfig) DeepEqual(ano *ModelConfig) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.ModelID) { - return false - } - if !p.Field2DeepEqual(ano.MaxTokens) { - return false - } - if !p.Field3DeepEqual(ano.Temperature) { - return false - } - if !p.Field4DeepEqual(ano.TopK) { - return false - } - if !p.Field5DeepEqual(ano.TopP) { - return false - } - if !p.Field6DeepEqual(ano.PresencePenalty) { - return false - } - if !p.Field7DeepEqual(ano.FrequencyPenalty) { - return false - } - if !p.Field8DeepEqual(ano.JSONMode) { - return false - } - if !p.Field9DeepEqual(ano.Extra) { - return false - } - if !p.Field10DeepEqual(ano.Thinking) { - return false - } - if !p.Field100DeepEqual(ano.ParamConfigValues) { - return false - } - return true -} - -func (p *ModelConfig) Field1DeepEqual(src *int64) bool { - - if p.ModelID == src { - return true - } else if p.ModelID == nil || src == nil { - return false - } - if *p.ModelID != *src { - return false - } - return true -} -func (p *ModelConfig) Field2DeepEqual(src *int32) bool { - - if p.MaxTokens == src { - return true - } else if p.MaxTokens == nil || src == nil { - return false - } - if *p.MaxTokens != *src { - return false - } - return true -} -func (p *ModelConfig) Field3DeepEqual(src *float64) bool { - - if p.Temperature == src { - return true - } else if p.Temperature == nil || src == nil { - return false - } - if *p.Temperature != *src { - return false - } - return true -} -func (p *ModelConfig) Field4DeepEqual(src *int32) bool { - - if p.TopK == src { - return true - } else if p.TopK == nil || src == nil { - return false - } - if *p.TopK != *src { - return false - } - return true -} -func (p *ModelConfig) Field5DeepEqual(src *float64) bool { - - if p.TopP == src { - return true - } else if p.TopP == nil || src == nil { - return false - } - if *p.TopP != *src { - return false - } - return true -} -func (p *ModelConfig) Field6DeepEqual(src *float64) bool { - - if p.PresencePenalty == src { - return true - } else if p.PresencePenalty == nil || src == nil { - return false - } - if *p.PresencePenalty != *src { - return false - } - return true -} -func (p *ModelConfig) Field7DeepEqual(src *float64) bool { - - if p.FrequencyPenalty == src { - return true - } else if p.FrequencyPenalty == nil || src == nil { - return false - } - if *p.FrequencyPenalty != *src { - return false - } - return true -} -func (p *ModelConfig) Field8DeepEqual(src *bool) bool { - - if p.JSONMode == src { - return true - } else if p.JSONMode == nil || src == nil { - return false - } - if *p.JSONMode != *src { - return false - } - return true -} -func (p *ModelConfig) Field9DeepEqual(src *string) bool { - - if p.Extra == src { - return true - } else if p.Extra == nil || src == nil { - return false - } - if strings.Compare(*p.Extra, *src) != 0 { - return false - } - return true -} -func (p *ModelConfig) Field10DeepEqual(src *ThinkingConfig) bool { - - if !p.Thinking.DeepEqual(src) { - return false - } - return true -} -func (p *ModelConfig) Field100DeepEqual(src []*ParamConfigValue) bool { - - if len(p.ParamConfigValues) != len(src) { - return false - } - for i, v := range p.ParamConfigValues { - _src := src[i] - if !v.DeepEqual(_src) { - return false - } - } - return true -} - -type ResponseAPIConfig struct { - // 上一次响应的ID - PreviousResponseID *string `thrift:"previous_response_id,1,optional" frugal:"1,optional,string" form:"previous_response_id" json:"previous_response_id,omitempty" query:"previous_response_id"` - // 是否开启缓存 - EnableCaching *bool `thrift:"enable_caching,2,optional" frugal:"2,optional,bool" form:"enable_caching" json:"enable_caching,omitempty" query:"enable_caching"` - // 一轮会话的唯一标识 - SessionID *string `thrift:"session_id,3,optional" frugal:"3,optional,string" form:"session_id" json:"session_id,omitempty" query:"session_id"` -} - -func NewResponseAPIConfig() *ResponseAPIConfig { - return &ResponseAPIConfig{} -} - -func (p *ResponseAPIConfig) InitDefault() { -} - -var ResponseAPIConfig_PreviousResponseID_DEFAULT string - -func (p *ResponseAPIConfig) GetPreviousResponseID() (v string) { - if p == nil { - return - } - if !p.IsSetPreviousResponseID() { - return ResponseAPIConfig_PreviousResponseID_DEFAULT - } - return *p.PreviousResponseID -} - -var ResponseAPIConfig_EnableCaching_DEFAULT bool - -func (p *ResponseAPIConfig) GetEnableCaching() (v bool) { - if p == nil { - return - } - if !p.IsSetEnableCaching() { - return ResponseAPIConfig_EnableCaching_DEFAULT - } - return *p.EnableCaching -} - -var ResponseAPIConfig_SessionID_DEFAULT string - -func (p *ResponseAPIConfig) GetSessionID() (v string) { - if p == nil { - return - } - if !p.IsSetSessionID() { - return ResponseAPIConfig_SessionID_DEFAULT - } - return *p.SessionID -} -func (p *ResponseAPIConfig) SetPreviousResponseID(val *string) { - p.PreviousResponseID = val -} -func (p *ResponseAPIConfig) SetEnableCaching(val *bool) { - p.EnableCaching = val -} -func (p *ResponseAPIConfig) SetSessionID(val *string) { - p.SessionID = val -} - -var fieldIDToName_ResponseAPIConfig = map[int16]string{ - 1: "previous_response_id", - 2: "enable_caching", - 3: "session_id", -} - -func (p *ResponseAPIConfig) IsSetPreviousResponseID() bool { - return p.PreviousResponseID != nil -} - -func (p *ResponseAPIConfig) IsSetEnableCaching() bool { - return p.EnableCaching != nil -} - -func (p *ResponseAPIConfig) IsSetSessionID() bool { - return p.SessionID != nil -} - -func (p *ResponseAPIConfig) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.BOOL { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.STRING { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ResponseAPIConfig[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *ResponseAPIConfig) ReadField1(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.PreviousResponseID = _field - return nil -} -func (p *ResponseAPIConfig) ReadField2(iprot thrift.TProtocol) error { - - var _field *bool - if v, err := iprot.ReadBool(); err != nil { - return err - } else { - _field = &v - } - p.EnableCaching = _field - return nil -} -func (p *ResponseAPIConfig) ReadField3(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.SessionID = _field - return nil -} - -func (p *ResponseAPIConfig) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("ResponseAPIConfig"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *ResponseAPIConfig) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetPreviousResponseID() { - if err = oprot.WriteFieldBegin("previous_response_id", thrift.STRING, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.PreviousResponseID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *ResponseAPIConfig) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetEnableCaching() { - if err = oprot.WriteFieldBegin("enable_caching", thrift.BOOL, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteBool(*p.EnableCaching); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *ResponseAPIConfig) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetSessionID() { - if err = oprot.WriteFieldBegin("session_id", thrift.STRING, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.SessionID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} - -func (p *ResponseAPIConfig) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("ResponseAPIConfig(%+v)", *p) - -} - -func (p *ResponseAPIConfig) DeepEqual(ano *ResponseAPIConfig) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.PreviousResponseID) { - return false - } - if !p.Field2DeepEqual(ano.EnableCaching) { - return false - } - if !p.Field3DeepEqual(ano.SessionID) { - return false - } - return true -} - -func (p *ResponseAPIConfig) Field1DeepEqual(src *string) bool { - - if p.PreviousResponseID == src { - return true - } else if p.PreviousResponseID == nil || src == nil { - return false - } - if strings.Compare(*p.PreviousResponseID, *src) != 0 { - return false - } - return true -} -func (p *ResponseAPIConfig) Field2DeepEqual(src *bool) bool { - - if p.EnableCaching == src { - return true - } else if p.EnableCaching == nil || src == nil { - return false - } - if *p.EnableCaching != *src { - return false - } - return true -} -func (p *ResponseAPIConfig) Field3DeepEqual(src *string) bool { - - if p.SessionID == src { - return true - } else if p.SessionID == nil || src == nil { - return false - } - if strings.Compare(*p.SessionID, *src) != 0 { - return false - } - return true -} - -type ParamConfigValue struct { - // 传给下游模型的key,与ParamSchema.name对齐 - Name *string `thrift:"name,1,optional" frugal:"1,optional,string" form:"name" json:"name,omitempty" query:"name"` - // 展示名称 - Label *string `thrift:"label,2,optional" frugal:"2,optional,string" form:"label" json:"label,omitempty" query:"label"` - // 传给下游模型的value,与ParamSchema.options对齐 - Value *ParamOption `thrift:"value,3,optional" frugal:"3,optional,ParamOption" form:"value" json:"value,omitempty" query:"value"` -} - -func NewParamConfigValue() *ParamConfigValue { - return &ParamConfigValue{} -} - -func (p *ParamConfigValue) InitDefault() { -} - -var ParamConfigValue_Name_DEFAULT string - -func (p *ParamConfigValue) GetName() (v string) { - if p == nil { - return - } - if !p.IsSetName() { - return ParamConfigValue_Name_DEFAULT - } - return *p.Name -} - -var ParamConfigValue_Label_DEFAULT string - -func (p *ParamConfigValue) GetLabel() (v string) { - if p == nil { - return - } - if !p.IsSetLabel() { - return ParamConfigValue_Label_DEFAULT - } - return *p.Label -} - -var ParamConfigValue_Value_DEFAULT *ParamOption - -func (p *ParamConfigValue) GetValue() (v *ParamOption) { - if p == nil { - return - } - if !p.IsSetValue() { - return ParamConfigValue_Value_DEFAULT - } - return p.Value -} -func (p *ParamConfigValue) SetName(val *string) { - p.Name = val -} -func (p *ParamConfigValue) SetLabel(val *string) { - p.Label = val -} -func (p *ParamConfigValue) SetValue(val *ParamOption) { - p.Value = val -} - -var fieldIDToName_ParamConfigValue = map[int16]string{ - 1: "name", - 2: "label", - 3: "value", -} - -func (p *ParamConfigValue) IsSetName() bool { - return p.Name != nil -} - -func (p *ParamConfigValue) IsSetLabel() bool { - return p.Label != nil -} - -func (p *ParamConfigValue) IsSetValue() bool { - return p.Value != nil -} - -func (p *ParamConfigValue) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.STRING { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ParamConfigValue[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *ParamConfigValue) ReadField1(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Name = _field - return nil -} -func (p *ParamConfigValue) ReadField2(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Label = _field - return nil -} -func (p *ParamConfigValue) ReadField3(iprot thrift.TProtocol) error { - _field := NewParamOption() - if err := _field.Read(iprot); err != nil { - return err - } - p.Value = _field - return nil -} - -func (p *ParamConfigValue) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("ParamConfigValue"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *ParamConfigValue) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetName() { - if err = oprot.WriteFieldBegin("name", thrift.STRING, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Name); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *ParamConfigValue) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetLabel() { - if err = oprot.WriteFieldBegin("label", thrift.STRING, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Label); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *ParamConfigValue) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetValue() { - if err = oprot.WriteFieldBegin("value", thrift.STRUCT, 3); err != nil { - goto WriteFieldBeginError - } - if err := p.Value.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} - -func (p *ParamConfigValue) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("ParamConfigValue(%+v)", *p) - -} - -func (p *ParamConfigValue) DeepEqual(ano *ParamConfigValue) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.Name) { - return false - } - if !p.Field2DeepEqual(ano.Label) { - return false - } - if !p.Field3DeepEqual(ano.Value) { - return false - } - return true -} - -func (p *ParamConfigValue) Field1DeepEqual(src *string) bool { - - if p.Name == src { - return true - } else if p.Name == nil || src == nil { - return false - } - if strings.Compare(*p.Name, *src) != 0 { - return false - } - return true -} -func (p *ParamConfigValue) Field2DeepEqual(src *string) bool { - - if p.Label == src { - return true - } else if p.Label == nil || src == nil { - return false - } - if strings.Compare(*p.Label, *src) != 0 { - return false - } - return true -} -func (p *ParamConfigValue) Field3DeepEqual(src *ParamOption) bool { - - if !p.Value.DeepEqual(src) { - return false - } - return true -} - -type ParamOption struct { - // 实际值 - Value *string `thrift:"value,1,optional" frugal:"1,optional,string" form:"value" json:"value,omitempty" query:"value"` - // 展示值 - Label *string `thrift:"label,2,optional" frugal:"2,optional,string" form:"label" json:"label,omitempty" query:"label"` -} - -func NewParamOption() *ParamOption { - return &ParamOption{} -} - -func (p *ParamOption) InitDefault() { -} - -var ParamOption_Value_DEFAULT string - -func (p *ParamOption) GetValue() (v string) { - if p == nil { - return - } - if !p.IsSetValue() { - return ParamOption_Value_DEFAULT - } - return *p.Value -} - -var ParamOption_Label_DEFAULT string - -func (p *ParamOption) GetLabel() (v string) { - if p == nil { - return - } - if !p.IsSetLabel() { - return ParamOption_Label_DEFAULT - } - return *p.Label -} -func (p *ParamOption) SetValue(val *string) { - p.Value = val -} -func (p *ParamOption) SetLabel(val *string) { - p.Label = val -} - -var fieldIDToName_ParamOption = map[int16]string{ - 1: "value", - 2: "label", -} - -func (p *ParamOption) IsSetValue() bool { - return p.Value != nil -} - -func (p *ParamOption) IsSetLabel() bool { - return p.Label != nil -} - -func (p *ParamOption) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.STRING { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ParamOption[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *ParamOption) ReadField1(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Value = _field - return nil -} -func (p *ParamOption) ReadField2(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Label = _field - return nil -} - -func (p *ParamOption) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("ParamOption"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *ParamOption) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetValue() { - if err = oprot.WriteFieldBegin("value", thrift.STRING, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Value); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *ParamOption) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetLabel() { - if err = oprot.WriteFieldBegin("label", thrift.STRING, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Label); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} - -func (p *ParamOption) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("ParamOption(%+v)", *p) - -} - -func (p *ParamOption) DeepEqual(ano *ParamOption) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.Value) { - return false - } - if !p.Field2DeepEqual(ano.Label) { - return false - } - return true -} - -func (p *ParamOption) Field1DeepEqual(src *string) bool { - - if p.Value == src { - return true - } else if p.Value == nil || src == nil { - return false - } - if strings.Compare(*p.Value, *src) != 0 { - return false - } - return true -} -func (p *ParamOption) Field2DeepEqual(src *string) bool { - - if p.Label == src { - return true - } else if p.Label == nil || src == nil { - return false - } - if strings.Compare(*p.Label, *src) != 0 { + if !p.BaseResp.DeepEqual(src) { return false } return true diff --git a/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi_validator.go b/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi_validator.go index 205ff428f..d31741f0b 100644 --- a/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi_validator.go +++ b/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi_validator.go @@ -42,9 +42,6 @@ func (p *BatchGetPromptByPromptKeyResponse) IsValid() error { } return nil } -func (p *PromptResultData) IsValid() error { - return nil -} func (p *ExecuteRequest) IsValid() error { if p.PromptIdentifier != nil { if err := p.PromptIdentifier.IsValid(); err != nil { @@ -91,19 +88,6 @@ func (p *ExecuteResponse) IsValid() error { } return nil } -func (p *ExecuteData) IsValid() error { - if p.Message != nil { - if err := p.Message.IsValid(); err != nil { - return fmt.Errorf("field Message not valid, %w", err) - } - } - if p.Usage != nil { - if err := p.Usage.IsValid(); err != nil { - return fmt.Errorf("field Usage not valid, %w", err) - } - } - return nil -} func (p *ExecuteStreamingResponse) IsValid() error { if p.Data != nil { if err := p.Data.IsValid(); err != nil { @@ -117,133 +101,6 @@ func (p *ExecuteStreamingResponse) IsValid() error { } return nil } -func (p *ExecuteStreamingData) IsValid() error { - if p.Message != nil { - if err := p.Message.IsValid(); err != nil { - return fmt.Errorf("field Message not valid, %w", err) - } - } - if p.Usage != nil { - if err := p.Usage.IsValid(); err != nil { - return fmt.Errorf("field Usage not valid, %w", err) - } - } - return nil -} -func (p *PromptQuery) IsValid() error { - return nil -} -func (p *PromptResult_) IsValid() error { - if p.Query != nil { - if err := p.Query.IsValid(); err != nil { - return fmt.Errorf("field Query not valid, %w", err) - } - } - if p.Prompt != nil { - if err := p.Prompt.IsValid(); err != nil { - return fmt.Errorf("field Prompt not valid, %w", err) - } - } - return nil -} -func (p *Prompt) IsValid() error { - if p.PromptTemplate != nil { - if err := p.PromptTemplate.IsValid(); err != nil { - return fmt.Errorf("field PromptTemplate not valid, %w", err) - } - } - if p.ToolCallConfig != nil { - if err := p.ToolCallConfig.IsValid(); err != nil { - return fmt.Errorf("field ToolCallConfig not valid, %w", err) - } - } - if p.LlmConfig != nil { - if err := p.LlmConfig.IsValid(); err != nil { - return fmt.Errorf("field LlmConfig not valid, %w", err) - } - } - if p.PublishInfo != nil { - if err := p.PublishInfo.IsValid(); err != nil { - return fmt.Errorf("field PublishInfo not valid, %w", err) - } - } - return nil -} -func (p *PromptTemplate) IsValid() error { - return nil -} -func (p *ToolCallConfig) IsValid() error { - if p.ToolChoiceSpecification != nil { - if err := p.ToolChoiceSpecification.IsValid(); err != nil { - return fmt.Errorf("field ToolChoiceSpecification not valid, %w", err) - } - } - return nil -} -func (p *ToolChoiceSpecification) IsValid() error { - return nil -} -func (p *Message) IsValid() error { - return nil -} -func (p *ContentPart) IsValid() error { - if p.Config != nil { - if err := p.Config.IsValid(); err != nil { - return fmt.Errorf("field Config not valid, %w", err) - } - } - return nil -} -func (p *MediaConfig) IsValid() error { - if p.Fps != nil { - if *p.Fps < float64(0.2) { - return fmt.Errorf("field Fps ge rule failed, current value: %v", *p.Fps) - } - if *p.Fps > float64(5) { - return fmt.Errorf("field Fps le rule failed, current value: %v", *p.Fps) - } - } - return nil -} -func (p *VariableDef) IsValid() error { - return nil -} -func (p *Tool) IsValid() error { - if p.Function != nil { - if err := p.Function.IsValid(); err != nil { - return fmt.Errorf("field Function not valid, %w", err) - } - } - return nil -} -func (p *Function) IsValid() error { - return nil -} -func (p *ToolCall) IsValid() error { - if p.FunctionCall != nil { - if err := p.FunctionCall.IsValid(); err != nil { - return fmt.Errorf("field FunctionCall not valid, %w", err) - } - } - return nil -} -func (p *FunctionCall) IsValid() error { - return nil -} -func (p *LLMConfig) IsValid() error { - if p.Thinking != nil { - if err := p.Thinking.IsValid(); err != nil { - return fmt.Errorf("field Thinking not valid, %w", err) - } - } - return nil -} -func (p *VariableVal) IsValid() error { - return nil -} -func (p *TokenUsage) IsValid() error { - return nil -} func (p *ListPromptBasicRequest) IsValid() error { if p.PageNumber != nil { if *p.PageNumber <= int32(0) { @@ -278,37 +135,3 @@ func (p *ListPromptBasicResponse) IsValid() error { } return nil } -func (p *PromptBasic) IsValid() error { - return nil -} -func (p *ListPromptBasicData) IsValid() error { - return nil -} -func (p *PromptPublishInfo) IsValid() error { - return nil -} -func (p *ThinkingConfig) IsValid() error { - return nil -} -func (p *ModelConfig) IsValid() error { - if p.Thinking != nil { - if err := p.Thinking.IsValid(); err != nil { - return fmt.Errorf("field Thinking not valid, %w", err) - } - } - return nil -} -func (p *ResponseAPIConfig) IsValid() error { - return nil -} -func (p *ParamConfigValue) IsValid() error { - if p.Value != nil { - if err := p.Value.IsValid(); err != nil { - return fmt.Errorf("field Value not valid, %w", err) - } - } - return nil -} -func (p *ParamOption) IsValid() error { - return nil -} diff --git a/backend/kitex_gen/coze/loop/prompt/openapi/k-coze.loop.prompt.openapi.go b/backend/kitex_gen/coze/loop/prompt/openapi/k-coze.loop.prompt.openapi.go index 243a197cf..cac9dcacc 100644 --- a/backend/kitex_gen/coze/loop/prompt/openapi/k-coze.loop.prompt.openapi.go +++ b/backend/kitex_gen/coze/loop/prompt/openapi/k-coze.loop.prompt.openapi.go @@ -12,7 +12,7 @@ import ( kutils "github.com/cloudwego/kitex/pkg/utils" "github.com/coze-dev/coze-loop/backend/kitex_gen/base" - "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/prompt/domain/prompt" + "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/prompt/domain_openapi/prompt" ) var ( @@ -128,8 +128,8 @@ func (p *BatchGetPromptByPromptKeyRequest) FastReadField2(buf []byte) (int, erro if err != nil { return offset, err } - _field := make([]*PromptQuery, 0, size) - values := make([]PromptQuery, size) + _field := make([]*prompt.PromptQuery, 0, size) + values := make([]prompt.PromptQuery, size) for i := 0; i < size; i++ { _elem := &values[i] _elem.InitDefault() @@ -260,11 +260,11 @@ func (p *BatchGetPromptByPromptKeyRequest) DeepCopy(s interface{}) error { } if src.Queries != nil { - p.Queries = make([]*PromptQuery, 0, len(src.Queries)) + p.Queries = make([]*prompt.PromptQuery, 0, len(src.Queries)) for _, elem := range src.Queries { - var _elem *PromptQuery + var _elem *prompt.PromptQuery if elem != nil { - _elem = &PromptQuery{} + _elem = &prompt.PromptQuery{} if err := _elem.DeepCopy(elem); err != nil { return err } @@ -407,7 +407,7 @@ func (p *BatchGetPromptByPromptKeyResponse) FastReadField2(buf []byte) (int, err func (p *BatchGetPromptByPromptKeyResponse) FastReadField3(buf []byte) (int, error) { offset := 0 - _field := NewPromptResultData() + _field := prompt.NewPromptResultData() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -548,9 +548,9 @@ func (p *BatchGetPromptByPromptKeyResponse) DeepCopy(s interface{}) error { p.Msg = &tmp } - var _data *PromptResultData + var _data *prompt.PromptResultData if src.Data != nil { - _data = &PromptResultData{} + _data = &prompt.PromptResultData{} if err := _data.DeepCopy(src.Data); err != nil { return err } @@ -569,155 +569,6 @@ func (p *BatchGetPromptByPromptKeyResponse) DeepCopy(s interface{}) error { return nil } -func (p *PromptResultData) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.LIST { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptResultData[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *PromptResultData) FastReadField1(buf []byte) (int, error) { - offset := 0 - - _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) - offset += l - if err != nil { - return offset, err - } - _field := make([]*PromptResult_, 0, size) - values := make([]PromptResult_, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - if l, err := _elem.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - - _field = append(_field, _elem) - } - p.Items = _field - return offset, nil -} - -func (p *PromptResultData) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *PromptResultData) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *PromptResultData) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *PromptResultData) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetItems() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 1) - listBeginOffset := offset - offset += thrift.Binary.ListBeginLength() - var length int - for _, v := range p.Items { - length++ - offset += v.FastWriteNocopy(buf[offset:], w) - } - thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) - } - return offset -} - -func (p *PromptResultData) field1Length() int { - l := 0 - if p.IsSetItems() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.ListBeginLength() - for _, v := range p.Items { - _ = v - l += v.BLength() - } - } - return l -} - -func (p *PromptResultData) DeepCopy(s interface{}) error { - src, ok := s.(*PromptResultData) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.Items != nil { - p.Items = make([]*PromptResult_, 0, len(src.Items)) - for _, elem := range src.Items { - var _elem *PromptResult_ - if elem != nil { - _elem = &PromptResult_{} - if err := _elem.DeepCopy(elem); err != nil { - return err - } - } - - p.Items = append(p.Items, _elem) - } - } - - return nil -} - func (p *ExecuteRequest) FastRead(buf []byte) (int, error) { var err error @@ -951,7 +802,7 @@ func (p *ExecuteRequest) FastReadField1(buf []byte) (int, error) { func (p *ExecuteRequest) FastReadField2(buf []byte) (int, error) { offset := 0 - _field := NewPromptQuery() + _field := prompt.NewPromptQuery() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -969,8 +820,8 @@ func (p *ExecuteRequest) FastReadField10(buf []byte) (int, error) { if err != nil { return offset, err } - _field := make([]*VariableVal, 0, size) - values := make([]VariableVal, size) + _field := make([]*prompt.VariableVal, 0, size) + values := make([]prompt.VariableVal, size) for i := 0; i < size; i++ { _elem := &values[i] _elem.InitDefault() @@ -994,8 +845,8 @@ func (p *ExecuteRequest) FastReadField11(buf []byte) (int, error) { if err != nil { return offset, err } - _field := make([]*Message, 0, size) - values := make([]Message, size) + _field := make([]*prompt.Message, 0, size) + values := make([]prompt.Message, size) for i := 0; i < size; i++ { _elem := &values[i] _elem.InitDefault() @@ -1019,8 +870,8 @@ func (p *ExecuteRequest) FastReadField20(buf []byte) (int, error) { if err != nil { return offset, err } - _field := make([]*Tool, 0, size) - values := make([]Tool, size) + _field := make([]*prompt.Tool, 0, size) + values := make([]prompt.Tool, size) for i := 0; i < size; i++ { _elem := &values[i] _elem.InitDefault() @@ -1038,7 +889,7 @@ func (p *ExecuteRequest) FastReadField20(buf []byte) (int, error) { func (p *ExecuteRequest) FastReadField21(buf []byte) (int, error) { offset := 0 - _field := NewToolCallConfig() + _field := prompt.NewToolCallConfig() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -1050,7 +901,7 @@ func (p *ExecuteRequest) FastReadField21(buf []byte) (int, error) { func (p *ExecuteRequest) FastReadField22(buf []byte) (int, error) { offset := 0 - _field := NewModelConfig() + _field := prompt.NewModelConfig() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -1062,7 +913,7 @@ func (p *ExecuteRequest) FastReadField22(buf []byte) (int, error) { func (p *ExecuteRequest) FastReadField23(buf []byte) (int, error) { offset := 0 - _field := NewResponseAPIConfig() + _field := prompt.NewResponseAPIConfig() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -1075,7 +926,7 @@ func (p *ExecuteRequest) FastReadField23(buf []byte) (int, error) { func (p *ExecuteRequest) FastReadField24(buf []byte) (int, error) { offset := 0 - var _field *AccountMode + var _field *prompt.AccountMode if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { return offset, err } else { @@ -1089,7 +940,7 @@ func (p *ExecuteRequest) FastReadField24(buf []byte) (int, error) { func (p *ExecuteRequest) FastReadField26(buf []byte) (int, error) { offset := 0 - var _field *UsageScenario + var _field *prompt.UsageScenario if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { return offset, err } else { @@ -1116,7 +967,7 @@ func (p *ExecuteRequest) FastReadField28(buf []byte) (int, error) { func (p *ExecuteRequest) FastReadField29(buf []byte) (int, error) { offset := 0 - _field := NewToolCallConfig() + _field := prompt.NewToolCallConfig() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -1462,9 +1313,9 @@ func (p *ExecuteRequest) DeepCopy(s interface{}) error { p.WorkspaceID = &tmp } - var _promptIdentifier *PromptQuery + var _promptIdentifier *prompt.PromptQuery if src.PromptIdentifier != nil { - _promptIdentifier = &PromptQuery{} + _promptIdentifier = &prompt.PromptQuery{} if err := _promptIdentifier.DeepCopy(src.PromptIdentifier); err != nil { return err } @@ -1472,11 +1323,11 @@ func (p *ExecuteRequest) DeepCopy(s interface{}) error { p.PromptIdentifier = _promptIdentifier if src.VariableVals != nil { - p.VariableVals = make([]*VariableVal, 0, len(src.VariableVals)) + p.VariableVals = make([]*prompt.VariableVal, 0, len(src.VariableVals)) for _, elem := range src.VariableVals { - var _elem *VariableVal + var _elem *prompt.VariableVal if elem != nil { - _elem = &VariableVal{} + _elem = &prompt.VariableVal{} if err := _elem.DeepCopy(elem); err != nil { return err } @@ -1487,11 +1338,11 @@ func (p *ExecuteRequest) DeepCopy(s interface{}) error { } if src.Messages != nil { - p.Messages = make([]*Message, 0, len(src.Messages)) + p.Messages = make([]*prompt.Message, 0, len(src.Messages)) for _, elem := range src.Messages { - var _elem *Message + var _elem *prompt.Message if elem != nil { - _elem = &Message{} + _elem = &prompt.Message{} if err := _elem.DeepCopy(elem); err != nil { return err } @@ -1502,11 +1353,11 @@ func (p *ExecuteRequest) DeepCopy(s interface{}) error { } if src.CustomTools != nil { - p.CustomTools = make([]*Tool, 0, len(src.CustomTools)) + p.CustomTools = make([]*prompt.Tool, 0, len(src.CustomTools)) for _, elem := range src.CustomTools { - var _elem *Tool + var _elem *prompt.Tool if elem != nil { - _elem = &Tool{} + _elem = &prompt.Tool{} if err := _elem.DeepCopy(elem); err != nil { return err } @@ -1516,27 +1367,27 @@ func (p *ExecuteRequest) DeepCopy(s interface{}) error { } } - var _customToolCallConfig *ToolCallConfig + var _customToolCallConfig *prompt.ToolCallConfig if src.CustomToolCallConfig != nil { - _customToolCallConfig = &ToolCallConfig{} + _customToolCallConfig = &prompt.ToolCallConfig{} if err := _customToolCallConfig.DeepCopy(src.CustomToolCallConfig); err != nil { return err } } p.CustomToolCallConfig = _customToolCallConfig - var _customModelConfig *ModelConfig + var _customModelConfig *prompt.ModelConfig if src.CustomModelConfig != nil { - _customModelConfig = &ModelConfig{} + _customModelConfig = &prompt.ModelConfig{} if err := _customModelConfig.DeepCopy(src.CustomModelConfig); err != nil { return err } } p.CustomModelConfig = _customModelConfig - var _responseAPIConfig *ResponseAPIConfig + var _responseAPIConfig *prompt.ResponseAPIConfig if src.ResponseAPIConfig != nil { - _responseAPIConfig = &ResponseAPIConfig{} + _responseAPIConfig = &prompt.ResponseAPIConfig{} if err := _responseAPIConfig.DeepCopy(src.ResponseAPIConfig); err != nil { return err } @@ -1561,9 +1412,9 @@ func (p *ExecuteRequest) DeepCopy(s interface{}) error { p.ReleaseLabel = &tmp } - var _customToolConfig *ToolCallConfig + var _customToolConfig *prompt.ToolCallConfig if src.CustomToolConfig != nil { - _customToolConfig = &ToolCallConfig{} + _customToolConfig = &prompt.ToolCallConfig{} if err := _customToolConfig.DeepCopy(src.CustomToolConfig); err != nil { return err } @@ -1703,7 +1554,7 @@ func (p *ExecuteResponse) FastReadField2(buf []byte) (int, error) { func (p *ExecuteResponse) FastReadField3(buf []byte) (int, error) { offset := 0 - _field := NewExecuteData() + _field := prompt.NewExecuteData() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -1844,9 +1695,9 @@ func (p *ExecuteResponse) DeepCopy(s interface{}) error { p.Msg = &tmp } - var _data *ExecuteData + var _data *prompt.ExecuteData if src.Data != nil { - _data = &ExecuteData{} + _data = &prompt.ExecuteData{} if err := _data.DeepCopy(src.Data); err != nil { return err } @@ -1865,7 +1716,7 @@ func (p *ExecuteResponse) DeepCopy(s interface{}) error { return nil } -func (p *ExecuteData) FastRead(buf []byte) (int, error) { +func (p *ExecuteStreamingResponse) FastRead(buf []byte) (int, error) { var err error var offset int @@ -1883,7 +1734,7 @@ func (p *ExecuteData) FastRead(buf []byte) (int, error) { } switch fieldId { case 1: - if fieldTypeId == thrift.STRUCT { + if fieldTypeId == thrift.STRING { l, err = p.FastReadField1(buf[offset:]) offset += l if err != nil { @@ -1911,7 +1762,7 @@ func (p *ExecuteData) FastRead(buf []byte) (int, error) { } } case 3: - if fieldTypeId == thrift.STRUCT { + if fieldTypeId == thrift.I64 { l, err = p.FastReadField3(buf[offset:]) offset += l if err != nil { @@ -1924,6 +1775,34 @@ func (p *ExecuteData) FastRead(buf []byte) (int, error) { goto SkipFieldError } } + case 4: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField4(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 255: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField255(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } default: l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -1937,24 +1816,26 @@ func (p *ExecuteData) FastRead(buf []byte) (int, error) { ReadFieldBeginError: return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExecuteData[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExecuteStreamingResponse[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExecuteData) FastReadField1(buf []byte) (int, error) { +func (p *ExecuteStreamingResponse) FastReadField1(buf []byte) (int, error) { offset := 0 - _field := NewMessage() - if l, err := _field.FastRead(buf[offset:]); err != nil { + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { return offset, err } else { offset += l + _field = &v } - p.Message = _field + p.ID = _field return offset, nil } -func (p *ExecuteData) FastReadField2(buf []byte) (int, error) { +func (p *ExecuteStreamingResponse) FastReadField2(buf []byte) (int, error) { offset := 0 var _field *string @@ -1964,138 +1845,217 @@ func (p *ExecuteData) FastReadField2(buf []byte) (int, error) { offset += l _field = &v } - p.FinishReason = _field + p.Event = _field + return offset, nil +} + +func (p *ExecuteStreamingResponse) FastReadField3(buf []byte) (int, error) { + offset := 0 + + var _field *int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Retry = _field + return offset, nil +} + +func (p *ExecuteStreamingResponse) FastReadField4(buf []byte) (int, error) { + offset := 0 + _field := prompt.NewExecuteStreamingData() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Data = _field return offset, nil } -func (p *ExecuteData) FastReadField3(buf []byte) (int, error) { +func (p *ExecuteStreamingResponse) FastReadField255(buf []byte) (int, error) { offset := 0 - _field := NewTokenUsage() + _field := base.NewBaseResp() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { offset += l } - p.Usage = _field + p.BaseResp = _field return offset, nil } -func (p *ExecuteData) FastWrite(buf []byte) int { +func (p *ExecuteStreamingResponse) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExecuteData) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExecuteStreamingResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { + offset += p.fastWriteField3(buf[offset:], w) offset += p.fastWriteField1(buf[offset:], w) offset += p.fastWriteField2(buf[offset:], w) - offset += p.fastWriteField3(buf[offset:], w) + offset += p.fastWriteField4(buf[offset:], w) + offset += p.fastWriteField255(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) return offset } -func (p *ExecuteData) BLength() int { +func (p *ExecuteStreamingResponse) BLength() int { l := 0 if p != nil { l += p.field1Length() l += p.field2Length() l += p.field3Length() + l += p.field4Length() + l += p.field255Length() } l += thrift.Binary.FieldStopLength() return l } -func (p *ExecuteData) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ExecuteStreamingResponse) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetMessage() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) - offset += p.Message.FastWriteNocopy(buf[offset:], w) + if p.IsSetID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.ID) } return offset } -func (p *ExecuteData) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { +func (p *ExecuteStreamingResponse) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetFinishReason() { + if p.IsSetEvent() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.FinishReason) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Event) } return offset } -func (p *ExecuteData) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { +func (p *ExecuteStreamingResponse) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetUsage() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 3) - offset += p.Usage.FastWriteNocopy(buf[offset:], w) + if p.IsSetRetry() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 3) + offset += thrift.Binary.WriteI64(buf[offset:], *p.Retry) + } + return offset +} + +func (p *ExecuteStreamingResponse) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetData() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 4) + offset += p.Data.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *ExecuteStreamingResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetBaseResp() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) + offset += p.BaseResp.FastWriteNocopy(buf[offset:], w) } return offset } -func (p *ExecuteData) field1Length() int { +func (p *ExecuteStreamingResponse) field1Length() int { l := 0 - if p.IsSetMessage() { + if p.IsSetID() { l += thrift.Binary.FieldBeginLength() - l += p.Message.BLength() + l += thrift.Binary.StringLengthNocopy(*p.ID) } return l } -func (p *ExecuteData) field2Length() int { +func (p *ExecuteStreamingResponse) field2Length() int { l := 0 - if p.IsSetFinishReason() { + if p.IsSetEvent() { l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.FinishReason) + l += thrift.Binary.StringLengthNocopy(*p.Event) } return l } -func (p *ExecuteData) field3Length() int { +func (p *ExecuteStreamingResponse) field3Length() int { l := 0 - if p.IsSetUsage() { + if p.IsSetRetry() { l += thrift.Binary.FieldBeginLength() - l += p.Usage.BLength() + l += thrift.Binary.I64Length() } return l } -func (p *ExecuteData) DeepCopy(s interface{}) error { - src, ok := s.(*ExecuteData) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) +func (p *ExecuteStreamingResponse) field4Length() int { + l := 0 + if p.IsSetData() { + l += thrift.Binary.FieldBeginLength() + l += p.Data.BLength() } + return l +} - var _message *Message - if src.Message != nil { - _message = &Message{} - if err := _message.DeepCopy(src.Message); err != nil { - return err - } - } - p.Message = _message +func (p *ExecuteStreamingResponse) field255Length() int { + l := 0 + if p.IsSetBaseResp() { + l += thrift.Binary.FieldBeginLength() + l += p.BaseResp.BLength() + } + return l +} + +func (p *ExecuteStreamingResponse) DeepCopy(s interface{}) error { + src, ok := s.(*ExecuteStreamingResponse) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.ID != nil { + var tmp string + if *src.ID != "" { + tmp = kutils.StringDeepCopy(*src.ID) + } + p.ID = &tmp + } - if src.FinishReason != nil { + if src.Event != nil { var tmp string - if *src.FinishReason != "" { - tmp = kutils.StringDeepCopy(*src.FinishReason) + if *src.Event != "" { + tmp = kutils.StringDeepCopy(*src.Event) + } + p.Event = &tmp + } + + if src.Retry != nil { + tmp := *src.Retry + p.Retry = &tmp + } + + var _data *prompt.ExecuteStreamingData + if src.Data != nil { + _data = &prompt.ExecuteStreamingData{} + if err := _data.DeepCopy(src.Data); err != nil { + return err } - p.FinishReason = &tmp } + p.Data = _data - var _usage *TokenUsage - if src.Usage != nil { - _usage = &TokenUsage{} - if err := _usage.DeepCopy(src.Usage); err != nil { + var _baseResp *base.BaseResp + if src.BaseResp != nil { + _baseResp = &base.BaseResp{} + if err := _baseResp.DeepCopy(src.BaseResp); err != nil { return err } } - p.Usage = _usage + p.BaseResp = _baseResp return nil } -func (p *ExecuteStreamingResponse) FastRead(buf []byte) (int, error) { +func (p *ListPromptBasicRequest) FastRead(buf []byte) (int, error) { var err error var offset int @@ -2113,7 +2073,7 @@ func (p *ExecuteStreamingResponse) FastRead(buf []byte) (int, error) { } switch fieldId { case 1: - if fieldTypeId == thrift.STRING { + if fieldTypeId == thrift.I64 { l, err = p.FastReadField1(buf[offset:]) offset += l if err != nil { @@ -2127,7 +2087,7 @@ func (p *ExecuteStreamingResponse) FastRead(buf []byte) (int, error) { } } case 2: - if fieldTypeId == thrift.STRING { + if fieldTypeId == thrift.I32 { l, err = p.FastReadField2(buf[offset:]) offset += l if err != nil { @@ -2141,7 +2101,7 @@ func (p *ExecuteStreamingResponse) FastRead(buf []byte) (int, error) { } } case 3: - if fieldTypeId == thrift.I64 { + if fieldTypeId == thrift.I32 { l, err = p.FastReadField3(buf[offset:]) offset += l if err != nil { @@ -2155,7 +2115,7 @@ func (p *ExecuteStreamingResponse) FastRead(buf []byte) (int, error) { } } case 4: - if fieldTypeId == thrift.STRUCT { + if fieldTypeId == thrift.STRING { l, err = p.FastReadField4(buf[offset:]) offset += l if err != nil { @@ -2168,6 +2128,34 @@ func (p *ExecuteStreamingResponse) FastRead(buf []byte) (int, error) { goto SkipFieldError } } + case 5: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField5(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 6: + if fieldTypeId == thrift.MAP { + l, err = p.FastReadField6(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } case 255: if fieldTypeId == thrift.STRUCT { l, err = p.FastReadField255(buf[offset:]) @@ -2195,246 +2183,366 @@ func (p *ExecuteStreamingResponse) FastRead(buf []byte) (int, error) { ReadFieldBeginError: return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExecuteStreamingResponse[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListPromptBasicRequest[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExecuteStreamingResponse) FastReadField1(buf []byte) (int, error) { +func (p *ListPromptBasicRequest) FastReadField1(buf []byte) (int, error) { offset := 0 - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + var _field *int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { return offset, err } else { offset += l _field = &v } - p.ID = _field + p.WorkspaceID = _field return offset, nil } -func (p *ExecuteStreamingResponse) FastReadField2(buf []byte) (int, error) { +func (p *ListPromptBasicRequest) FastReadField2(buf []byte) (int, error) { offset := 0 - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + var _field *int32 + if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { return offset, err } else { offset += l _field = &v } - p.Event = _field + p.PageNumber = _field return offset, nil } -func (p *ExecuteStreamingResponse) FastReadField3(buf []byte) (int, error) { +func (p *ListPromptBasicRequest) FastReadField3(buf []byte) (int, error) { offset := 0 - var _field *int64 - if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + var _field *int32 + if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { return offset, err } else { offset += l _field = &v } - p.Retry = _field + p.PageSize = _field return offset, nil } -func (p *ExecuteStreamingResponse) FastReadField4(buf []byte) (int, error) { +func (p *ListPromptBasicRequest) FastReadField4(buf []byte) (int, error) { offset := 0 - _field := NewExecuteStreamingData() - if l, err := _field.FastRead(buf[offset:]); err != nil { + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { return offset, err } else { offset += l + _field = &v } - p.Data = _field + p.KeyWord = _field return offset, nil } -func (p *ExecuteStreamingResponse) FastReadField255(buf []byte) (int, error) { +func (p *ListPromptBasicRequest) FastReadField5(buf []byte) (int, error) { offset := 0 - _field := base.NewBaseResp() + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Creator = _field + return offset, nil +} + +func (p *ListPromptBasicRequest) FastReadField6(buf []byte) (int, error) { + offset := 0 + + _, _, size, l, err := thrift.Binary.ReadMapBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make(map[string]string, size) + for i := 0; i < size; i++ { + var _key string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _key = v + } + + var _val string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _val = v + } + + _field[_key] = _val + } + p.Extra = _field + return offset, nil +} + +func (p *ListPromptBasicRequest) FastReadField255(buf []byte) (int, error) { + offset := 0 + _field := base.NewBase() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { offset += l } - p.BaseResp = _field + p.Base = _field return offset, nil } -func (p *ExecuteStreamingResponse) FastWrite(buf []byte) int { +func (p *ListPromptBasicRequest) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExecuteStreamingResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ListPromptBasicRequest) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { - offset += p.fastWriteField3(buf[offset:], w) offset += p.fastWriteField1(buf[offset:], w) offset += p.fastWriteField2(buf[offset:], w) + offset += p.fastWriteField3(buf[offset:], w) offset += p.fastWriteField4(buf[offset:], w) + offset += p.fastWriteField5(buf[offset:], w) + offset += p.fastWriteField6(buf[offset:], w) offset += p.fastWriteField255(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) return offset } -func (p *ExecuteStreamingResponse) BLength() int { +func (p *ListPromptBasicRequest) BLength() int { l := 0 if p != nil { l += p.field1Length() l += p.field2Length() l += p.field3Length() l += p.field4Length() + l += p.field5Length() + l += p.field6Length() l += p.field255Length() } l += thrift.Binary.FieldStopLength() return l } -func (p *ExecuteStreamingResponse) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ListPromptBasicRequest) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetID() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.ID) + if p.IsSetWorkspaceID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 1) + offset += thrift.Binary.WriteI64(buf[offset:], *p.WorkspaceID) } return offset } -func (p *ExecuteStreamingResponse) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { +func (p *ListPromptBasicRequest) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetEvent() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Event) + if p.IsSetPageNumber() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 2) + offset += thrift.Binary.WriteI32(buf[offset:], *p.PageNumber) } return offset } -func (p *ExecuteStreamingResponse) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { +func (p *ListPromptBasicRequest) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetRetry() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 3) - offset += thrift.Binary.WriteI64(buf[offset:], *p.Retry) + if p.IsSetPageSize() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 3) + offset += thrift.Binary.WriteI32(buf[offset:], *p.PageSize) } return offset } -func (p *ExecuteStreamingResponse) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { +func (p *ListPromptBasicRequest) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetData() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 4) - offset += p.Data.FastWriteNocopy(buf[offset:], w) + if p.IsSetKeyWord() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 4) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.KeyWord) } return offset } -func (p *ExecuteStreamingResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { +func (p *ListPromptBasicRequest) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetBaseResp() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) - offset += p.BaseResp.FastWriteNocopy(buf[offset:], w) + if p.IsSetCreator() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 5) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Creator) } return offset } -func (p *ExecuteStreamingResponse) field1Length() int { - l := 0 - if p.IsSetID() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.ID) +func (p *ListPromptBasicRequest) fastWriteField6(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetExtra() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.MAP, 6) + mapBeginOffset := offset + offset += thrift.Binary.MapBeginLength() + var length int + for k, v := range p.Extra { + length++ + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, k) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, v) + } + thrift.Binary.WriteMapBegin(buf[mapBeginOffset:], thrift.STRING, thrift.STRING, length) } - return l + return offset } -func (p *ExecuteStreamingResponse) field2Length() int { - l := 0 - if p.IsSetEvent() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Event) +func (p *ListPromptBasicRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetBase() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) + offset += p.Base.FastWriteNocopy(buf[offset:], w) } - return l + return offset } -func (p *ExecuteStreamingResponse) field3Length() int { +func (p *ListPromptBasicRequest) field1Length() int { l := 0 - if p.IsSetRetry() { + if p.IsSetWorkspaceID() { l += thrift.Binary.FieldBeginLength() l += thrift.Binary.I64Length() } return l } -func (p *ExecuteStreamingResponse) field4Length() int { +func (p *ListPromptBasicRequest) field2Length() int { l := 0 - if p.IsSetData() { + if p.IsSetPageNumber() { l += thrift.Binary.FieldBeginLength() - l += p.Data.BLength() + l += thrift.Binary.I32Length() } return l } -func (p *ExecuteStreamingResponse) field255Length() int { +func (p *ListPromptBasicRequest) field3Length() int { l := 0 - if p.IsSetBaseResp() { + if p.IsSetPageSize() { l += thrift.Binary.FieldBeginLength() - l += p.BaseResp.BLength() + l += thrift.Binary.I32Length() } return l } -func (p *ExecuteStreamingResponse) DeepCopy(s interface{}) error { - src, ok := s.(*ExecuteStreamingResponse) +func (p *ListPromptBasicRequest) field4Length() int { + l := 0 + if p.IsSetKeyWord() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.KeyWord) + } + return l +} + +func (p *ListPromptBasicRequest) field5Length() int { + l := 0 + if p.IsSetCreator() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Creator) + } + return l +} + +func (p *ListPromptBasicRequest) field6Length() int { + l := 0 + if p.IsSetExtra() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.MapBeginLength() + for k, v := range p.Extra { + _, _ = k, v + + l += thrift.Binary.StringLengthNocopy(k) + l += thrift.Binary.StringLengthNocopy(v) + } + } + return l +} + +func (p *ListPromptBasicRequest) field255Length() int { + l := 0 + if p.IsSetBase() { + l += thrift.Binary.FieldBeginLength() + l += p.Base.BLength() + } + return l +} + +func (p *ListPromptBasicRequest) DeepCopy(s interface{}) error { + src, ok := s.(*ListPromptBasicRequest) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - if src.ID != nil { + if src.WorkspaceID != nil { + tmp := *src.WorkspaceID + p.WorkspaceID = &tmp + } + + if src.PageNumber != nil { + tmp := *src.PageNumber + p.PageNumber = &tmp + } + + if src.PageSize != nil { + tmp := *src.PageSize + p.PageSize = &tmp + } + + if src.KeyWord != nil { var tmp string - if *src.ID != "" { - tmp = kutils.StringDeepCopy(*src.ID) + if *src.KeyWord != "" { + tmp = kutils.StringDeepCopy(*src.KeyWord) } - p.ID = &tmp + p.KeyWord = &tmp } - if src.Event != nil { + if src.Creator != nil { var tmp string - if *src.Event != "" { - tmp = kutils.StringDeepCopy(*src.Event) + if *src.Creator != "" { + tmp = kutils.StringDeepCopy(*src.Creator) } - p.Event = &tmp + p.Creator = &tmp } - if src.Retry != nil { - tmp := *src.Retry - p.Retry = &tmp - } + if src.Extra != nil { + p.Extra = make(map[string]string, len(src.Extra)) + for key, val := range src.Extra { + var _key string + if key != "" { + _key = kutils.StringDeepCopy(key) + } - var _data *ExecuteStreamingData - if src.Data != nil { - _data = &ExecuteStreamingData{} - if err := _data.DeepCopy(src.Data); err != nil { - return err + var _val string + if val != "" { + _val = kutils.StringDeepCopy(val) + } + + p.Extra[_key] = _val } } - p.Data = _data - var _baseResp *base.BaseResp - if src.BaseResp != nil { - _baseResp = &base.BaseResp{} - if err := _baseResp.DeepCopy(src.BaseResp); err != nil { + var _base *base.Base + if src.Base != nil { + _base = &base.Base{} + if err := _base.DeepCopy(src.Base); err != nil { return err } } - p.BaseResp = _baseResp + p.Base = _base return nil } -func (p *ExecuteStreamingData) FastRead(buf []byte) (int, error) { +func (p *ListPromptBasicResponse) FastRead(buf []byte) (int, error) { var err error var offset int @@ -2493,23 +2601,9 @@ func (p *ExecuteStreamingData) FastRead(buf []byte) (int, error) { goto SkipFieldError } } - case 4: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField4(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 5: + case 255: if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField5(buf[offset:]) + l, err = p.FastReadField255(buf[offset:]) offset += l if err != nil { goto ReadFieldError @@ -2534,12 +2628,12 @@ func (p *ExecuteStreamingData) FastRead(buf []byte) (int, error) { ReadFieldBeginError: return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExecuteStreamingData[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListPromptBasicResponse[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExecuteStreamingData) FastReadField1(buf []byte) (int, error) { +func (p *ListPromptBasicResponse) FastReadField1(buf []byte) (int, error) { offset := 0 var _field *int32 @@ -2553,7 +2647,7 @@ func (p *ExecuteStreamingData) FastReadField1(buf []byte) (int, error) { return offset, nil } -func (p *ExecuteStreamingData) FastReadField2(buf []byte) (int, error) { +func (p *ListPromptBasicResponse) FastReadField2(buf []byte) (int, error) { offset := 0 var _field *string @@ -2567,75 +2661,59 @@ func (p *ExecuteStreamingData) FastReadField2(buf []byte) (int, error) { return offset, nil } -func (p *ExecuteStreamingData) FastReadField3(buf []byte) (int, error) { +func (p *ListPromptBasicResponse) FastReadField3(buf []byte) (int, error) { offset := 0 - _field := NewMessage() + _field := prompt.NewListPromptBasicData() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { offset += l } - p.Message = _field - return offset, nil -} - -func (p *ExecuteStreamingData) FastReadField4(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.FinishReason = _field + p.Data = _field return offset, nil } -func (p *ExecuteStreamingData) FastReadField5(buf []byte) (int, error) { +func (p *ListPromptBasicResponse) FastReadField255(buf []byte) (int, error) { offset := 0 - _field := NewTokenUsage() + _field := base.NewBaseResp() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { offset += l } - p.Usage = _field + p.BaseResp = _field return offset, nil } -func (p *ExecuteStreamingData) FastWrite(buf []byte) int { +func (p *ListPromptBasicResponse) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExecuteStreamingData) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ListPromptBasicResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) offset += p.fastWriteField2(buf[offset:], w) offset += p.fastWriteField3(buf[offset:], w) - offset += p.fastWriteField4(buf[offset:], w) - offset += p.fastWriteField5(buf[offset:], w) + offset += p.fastWriteField255(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) return offset } -func (p *ExecuteStreamingData) BLength() int { +func (p *ListPromptBasicResponse) BLength() int { l := 0 if p != nil { l += p.field1Length() l += p.field2Length() l += p.field3Length() - l += p.field4Length() - l += p.field5Length() + l += p.field255Length() } l += thrift.Binary.FieldStopLength() return l } -func (p *ExecuteStreamingData) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ListPromptBasicResponse) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetCode() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 1) @@ -2644,7 +2722,7 @@ func (p *ExecuteStreamingData) fastWriteField1(buf []byte, w thrift.NocopyWriter return offset } -func (p *ExecuteStreamingData) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { +func (p *ListPromptBasicResponse) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetMsg() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) @@ -2653,34 +2731,25 @@ func (p *ExecuteStreamingData) fastWriteField2(buf []byte, w thrift.NocopyWriter return offset } -func (p *ExecuteStreamingData) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { +func (p *ListPromptBasicResponse) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetMessage() { + if p.IsSetData() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 3) - offset += p.Message.FastWriteNocopy(buf[offset:], w) - } - return offset -} - -func (p *ExecuteStreamingData) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetFinishReason() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 4) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.FinishReason) + offset += p.Data.FastWriteNocopy(buf[offset:], w) } return offset } -func (p *ExecuteStreamingData) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { +func (p *ListPromptBasicResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetUsage() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 5) - offset += p.Usage.FastWriteNocopy(buf[offset:], w) + if p.IsSetBaseResp() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) + offset += p.BaseResp.FastWriteNocopy(buf[offset:], w) } return offset } -func (p *ExecuteStreamingData) field1Length() int { +func (p *ListPromptBasicResponse) field1Length() int { l := 0 if p.IsSetCode() { l += thrift.Binary.FieldBeginLength() @@ -2689,7 +2758,7 @@ func (p *ExecuteStreamingData) field1Length() int { return l } -func (p *ExecuteStreamingData) field2Length() int { +func (p *ListPromptBasicResponse) field2Length() int { l := 0 if p.IsSetMsg() { l += thrift.Binary.FieldBeginLength() @@ -2698,35 +2767,26 @@ func (p *ExecuteStreamingData) field2Length() int { return l } -func (p *ExecuteStreamingData) field3Length() int { - l := 0 - if p.IsSetMessage() { - l += thrift.Binary.FieldBeginLength() - l += p.Message.BLength() - } - return l -} - -func (p *ExecuteStreamingData) field4Length() int { +func (p *ListPromptBasicResponse) field3Length() int { l := 0 - if p.IsSetFinishReason() { + if p.IsSetData() { l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.FinishReason) + l += p.Data.BLength() } return l } -func (p *ExecuteStreamingData) field5Length() int { +func (p *ListPromptBasicResponse) field255Length() int { l := 0 - if p.IsSetUsage() { + if p.IsSetBaseResp() { l += thrift.Binary.FieldBeginLength() - l += p.Usage.BLength() + l += p.BaseResp.BLength() } return l } -func (p *ExecuteStreamingData) DeepCopy(s interface{}) error { - src, ok := s.(*ExecuteStreamingData) +func (p *ListPromptBasicResponse) DeepCopy(s interface{}) error { + src, ok := s.(*ListPromptBasicResponse) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } @@ -2744,9403 +2804,23 @@ func (p *ExecuteStreamingData) DeepCopy(s interface{}) error { p.Msg = &tmp } - var _message *Message - if src.Message != nil { - _message = &Message{} - if err := _message.DeepCopy(src.Message); err != nil { + var _data *prompt.ListPromptBasicData + if src.Data != nil { + _data = &prompt.ListPromptBasicData{} + if err := _data.DeepCopy(src.Data); err != nil { return err } } - p.Message = _message - - if src.FinishReason != nil { - var tmp string - if *src.FinishReason != "" { - tmp = kutils.StringDeepCopy(*src.FinishReason) - } - p.FinishReason = &tmp - } + p.Data = _data - var _usage *TokenUsage - if src.Usage != nil { - _usage = &TokenUsage{} - if err := _usage.DeepCopy(src.Usage); err != nil { + var _baseResp *base.BaseResp + if src.BaseResp != nil { + _baseResp = &base.BaseResp{} + if err := _baseResp.DeepCopy(src.BaseResp); err != nil { return err } } - p.Usage = _usage - - return nil -} - -func (p *PromptQuery) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 3: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField3(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptQuery[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *PromptQuery) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.PromptKey = _field - return offset, nil -} - -func (p *PromptQuery) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Version = _field - return offset, nil -} - -func (p *PromptQuery) FastReadField3(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Label = _field - return offset, nil -} - -func (p *PromptQuery) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *PromptQuery) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - offset += p.fastWriteField3(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *PromptQuery) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - l += p.field3Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *PromptQuery) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetPromptKey() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.PromptKey) - } - return offset -} - -func (p *PromptQuery) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetVersion() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Version) - } - return offset -} - -func (p *PromptQuery) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetLabel() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 3) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Label) - } - return offset -} - -func (p *PromptQuery) field1Length() int { - l := 0 - if p.IsSetPromptKey() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.PromptKey) - } - return l -} - -func (p *PromptQuery) field2Length() int { - l := 0 - if p.IsSetVersion() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Version) - } - return l -} - -func (p *PromptQuery) field3Length() int { - l := 0 - if p.IsSetLabel() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Label) - } - return l -} - -func (p *PromptQuery) DeepCopy(s interface{}) error { - src, ok := s.(*PromptQuery) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.PromptKey != nil { - var tmp string - if *src.PromptKey != "" { - tmp = kutils.StringDeepCopy(*src.PromptKey) - } - p.PromptKey = &tmp - } - - if src.Version != nil { - var tmp string - if *src.Version != "" { - tmp = kutils.StringDeepCopy(*src.Version) - } - p.Version = &tmp - } - - if src.Label != nil { - var tmp string - if *src.Label != "" { - tmp = kutils.StringDeepCopy(*src.Label) - } - p.Label = &tmp - } - - return nil -} - -func (p *PromptResult_) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptResult_[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *PromptResult_) FastReadField1(buf []byte) (int, error) { - offset := 0 - _field := NewPromptQuery() - if l, err := _field.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - p.Query = _field - return offset, nil -} - -func (p *PromptResult_) FastReadField2(buf []byte) (int, error) { - offset := 0 - _field := NewPrompt() - if l, err := _field.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - p.Prompt = _field - return offset, nil -} - -func (p *PromptResult_) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *PromptResult_) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *PromptResult_) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *PromptResult_) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetQuery() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) - offset += p.Query.FastWriteNocopy(buf[offset:], w) - } - return offset -} - -func (p *PromptResult_) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetPrompt() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 2) - offset += p.Prompt.FastWriteNocopy(buf[offset:], w) - } - return offset -} - -func (p *PromptResult_) field1Length() int { - l := 0 - if p.IsSetQuery() { - l += thrift.Binary.FieldBeginLength() - l += p.Query.BLength() - } - return l -} - -func (p *PromptResult_) field2Length() int { - l := 0 - if p.IsSetPrompt() { - l += thrift.Binary.FieldBeginLength() - l += p.Prompt.BLength() - } - return l -} - -func (p *PromptResult_) DeepCopy(s interface{}) error { - src, ok := s.(*PromptResult_) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - var _query *PromptQuery - if src.Query != nil { - _query = &PromptQuery{} - if err := _query.DeepCopy(src.Query); err != nil { - return err - } - } - p.Query = _query - - var _prompt *Prompt - if src.Prompt != nil { - _prompt = &Prompt{} - if err := _prompt.DeepCopy(src.Prompt); err != nil { - return err - } - } - p.Prompt = _prompt - - return nil -} - -func (p *Prompt) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.I64 { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 3: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField3(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 4: - if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField4(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 5: - if fieldTypeId == thrift.LIST { - l, err = p.FastReadField5(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 6: - if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField6(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 7: - if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField7(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 8: - if fieldTypeId == thrift.I64 { - l, err = p.FastReadField8(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 9: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField9(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 10: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField10(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 11: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField11(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 12: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField12(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 14: - if fieldTypeId == thrift.I64 { - l, err = p.FastReadField14(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 15: - if fieldTypeId == thrift.I64 { - l, err = p.FastReadField15(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 16: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField16(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 17: - if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField17(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 18: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField18(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_Prompt[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *Prompt) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *int64 - if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.WorkspaceID = _field - return offset, nil -} - -func (p *Prompt) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.PromptKey = _field - return offset, nil -} - -func (p *Prompt) FastReadField3(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Version = _field - return offset, nil -} - -func (p *Prompt) FastReadField4(buf []byte) (int, error) { - offset := 0 - _field := NewPromptTemplate() - if l, err := _field.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - p.PromptTemplate = _field - return offset, nil -} - -func (p *Prompt) FastReadField5(buf []byte) (int, error) { - offset := 0 - - _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) - offset += l - if err != nil { - return offset, err - } - _field := make([]*Tool, 0, size) - values := make([]Tool, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - if l, err := _elem.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - - _field = append(_field, _elem) - } - p.Tools = _field - return offset, nil -} - -func (p *Prompt) FastReadField6(buf []byte) (int, error) { - offset := 0 - _field := NewToolCallConfig() - if l, err := _field.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - p.ToolCallConfig = _field - return offset, nil -} - -func (p *Prompt) FastReadField7(buf []byte) (int, error) { - offset := 0 - _field := NewLLMConfig() - if l, err := _field.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - p.LlmConfig = _field - return offset, nil -} - -func (p *Prompt) FastReadField8(buf []byte) (int, error) { - offset := 0 - - var _field *int64 - if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.ID = _field - return offset, nil -} - -func (p *Prompt) FastReadField9(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.DisplayName = _field - return offset, nil -} - -func (p *Prompt) FastReadField10(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Description = _field - return offset, nil -} - -func (p *Prompt) FastReadField11(buf []byte) (int, error) { - offset := 0 - - var _field *PromptType - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.PromptType = _field - return offset, nil -} - -func (p *Prompt) FastReadField12(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.CreatedBy = _field - return offset, nil -} - -func (p *Prompt) FastReadField14(buf []byte) (int, error) { - offset := 0 - - var _field *int64 - if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.CreatedAt = _field - return offset, nil -} - -func (p *Prompt) FastReadField15(buf []byte) (int, error) { - offset := 0 - - var _field *int64 - if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.UpdatedAt = _field - return offset, nil -} - -func (p *Prompt) FastReadField16(buf []byte) (int, error) { - offset := 0 - - var _field *PublishStatus - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Status = _field - return offset, nil -} - -func (p *Prompt) FastReadField17(buf []byte) (int, error) { - offset := 0 - _field := NewPromptPublishInfo() - if l, err := _field.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - p.PublishInfo = _field - return offset, nil -} - -func (p *Prompt) FastReadField18(buf []byte) (int, error) { - offset := 0 - - var _field *SecurityLevel - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.SecurityLevel = _field - return offset, nil -} - -func (p *Prompt) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *Prompt) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField8(buf[offset:], w) - offset += p.fastWriteField14(buf[offset:], w) - offset += p.fastWriteField15(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - offset += p.fastWriteField3(buf[offset:], w) - offset += p.fastWriteField4(buf[offset:], w) - offset += p.fastWriteField5(buf[offset:], w) - offset += p.fastWriteField6(buf[offset:], w) - offset += p.fastWriteField7(buf[offset:], w) - offset += p.fastWriteField9(buf[offset:], w) - offset += p.fastWriteField10(buf[offset:], w) - offset += p.fastWriteField11(buf[offset:], w) - offset += p.fastWriteField12(buf[offset:], w) - offset += p.fastWriteField16(buf[offset:], w) - offset += p.fastWriteField17(buf[offset:], w) - offset += p.fastWriteField18(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *Prompt) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - l += p.field3Length() - l += p.field4Length() - l += p.field5Length() - l += p.field6Length() - l += p.field7Length() - l += p.field8Length() - l += p.field9Length() - l += p.field10Length() - l += p.field11Length() - l += p.field12Length() - l += p.field14Length() - l += p.field15Length() - l += p.field16Length() - l += p.field17Length() - l += p.field18Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *Prompt) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetWorkspaceID() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 1) - offset += thrift.Binary.WriteI64(buf[offset:], *p.WorkspaceID) - } - return offset -} - -func (p *Prompt) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetPromptKey() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.PromptKey) - } - return offset -} - -func (p *Prompt) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetVersion() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 3) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Version) - } - return offset -} - -func (p *Prompt) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetPromptTemplate() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 4) - offset += p.PromptTemplate.FastWriteNocopy(buf[offset:], w) - } - return offset -} - -func (p *Prompt) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetTools() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 5) - listBeginOffset := offset - offset += thrift.Binary.ListBeginLength() - var length int - for _, v := range p.Tools { - length++ - offset += v.FastWriteNocopy(buf[offset:], w) - } - thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) - } - return offset -} - -func (p *Prompt) fastWriteField6(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetToolCallConfig() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 6) - offset += p.ToolCallConfig.FastWriteNocopy(buf[offset:], w) - } - return offset -} - -func (p *Prompt) fastWriteField7(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetLlmConfig() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 7) - offset += p.LlmConfig.FastWriteNocopy(buf[offset:], w) - } - return offset -} - -func (p *Prompt) fastWriteField8(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetID() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 8) - offset += thrift.Binary.WriteI64(buf[offset:], *p.ID) - } - return offset -} - -func (p *Prompt) fastWriteField9(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetDisplayName() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 9) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.DisplayName) - } - return offset -} - -func (p *Prompt) fastWriteField10(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetDescription() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 10) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Description) - } - return offset -} - -func (p *Prompt) fastWriteField11(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetPromptType() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 11) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.PromptType) - } - return offset -} - -func (p *Prompt) fastWriteField12(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetCreatedBy() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 12) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.CreatedBy) - } - return offset -} - -func (p *Prompt) fastWriteField14(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetCreatedAt() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 14) - offset += thrift.Binary.WriteI64(buf[offset:], *p.CreatedAt) - } - return offset -} - -func (p *Prompt) fastWriteField15(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetUpdatedAt() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 15) - offset += thrift.Binary.WriteI64(buf[offset:], *p.UpdatedAt) - } - return offset -} - -func (p *Prompt) fastWriteField16(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetStatus() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 16) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Status) - } - return offset -} - -func (p *Prompt) fastWriteField17(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetPublishInfo() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 17) - offset += p.PublishInfo.FastWriteNocopy(buf[offset:], w) - } - return offset -} - -func (p *Prompt) fastWriteField18(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetSecurityLevel() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 18) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.SecurityLevel) - } - return offset -} - -func (p *Prompt) field1Length() int { - l := 0 - if p.IsSetWorkspaceID() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() - } - return l -} - -func (p *Prompt) field2Length() int { - l := 0 - if p.IsSetPromptKey() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.PromptKey) - } - return l -} - -func (p *Prompt) field3Length() int { - l := 0 - if p.IsSetVersion() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Version) - } - return l -} - -func (p *Prompt) field4Length() int { - l := 0 - if p.IsSetPromptTemplate() { - l += thrift.Binary.FieldBeginLength() - l += p.PromptTemplate.BLength() - } - return l -} - -func (p *Prompt) field5Length() int { - l := 0 - if p.IsSetTools() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.ListBeginLength() - for _, v := range p.Tools { - _ = v - l += v.BLength() - } - } - return l -} - -func (p *Prompt) field6Length() int { - l := 0 - if p.IsSetToolCallConfig() { - l += thrift.Binary.FieldBeginLength() - l += p.ToolCallConfig.BLength() - } - return l -} - -func (p *Prompt) field7Length() int { - l := 0 - if p.IsSetLlmConfig() { - l += thrift.Binary.FieldBeginLength() - l += p.LlmConfig.BLength() - } - return l -} - -func (p *Prompt) field8Length() int { - l := 0 - if p.IsSetID() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() - } - return l -} - -func (p *Prompt) field9Length() int { - l := 0 - if p.IsSetDisplayName() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.DisplayName) - } - return l -} - -func (p *Prompt) field10Length() int { - l := 0 - if p.IsSetDescription() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Description) - } - return l -} - -func (p *Prompt) field11Length() int { - l := 0 - if p.IsSetPromptType() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.PromptType) - } - return l -} - -func (p *Prompt) field12Length() int { - l := 0 - if p.IsSetCreatedBy() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.CreatedBy) - } - return l -} - -func (p *Prompt) field14Length() int { - l := 0 - if p.IsSetCreatedAt() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() - } - return l -} - -func (p *Prompt) field15Length() int { - l := 0 - if p.IsSetUpdatedAt() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() - } - return l -} - -func (p *Prompt) field16Length() int { - l := 0 - if p.IsSetStatus() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Status) - } - return l -} - -func (p *Prompt) field17Length() int { - l := 0 - if p.IsSetPublishInfo() { - l += thrift.Binary.FieldBeginLength() - l += p.PublishInfo.BLength() - } - return l -} - -func (p *Prompt) field18Length() int { - l := 0 - if p.IsSetSecurityLevel() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.SecurityLevel) - } - return l -} - -func (p *Prompt) DeepCopy(s interface{}) error { - src, ok := s.(*Prompt) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.WorkspaceID != nil { - tmp := *src.WorkspaceID - p.WorkspaceID = &tmp - } - - if src.PromptKey != nil { - var tmp string - if *src.PromptKey != "" { - tmp = kutils.StringDeepCopy(*src.PromptKey) - } - p.PromptKey = &tmp - } - - if src.Version != nil { - var tmp string - if *src.Version != "" { - tmp = kutils.StringDeepCopy(*src.Version) - } - p.Version = &tmp - } - - var _promptTemplate *PromptTemplate - if src.PromptTemplate != nil { - _promptTemplate = &PromptTemplate{} - if err := _promptTemplate.DeepCopy(src.PromptTemplate); err != nil { - return err - } - } - p.PromptTemplate = _promptTemplate - - if src.Tools != nil { - p.Tools = make([]*Tool, 0, len(src.Tools)) - for _, elem := range src.Tools { - var _elem *Tool - if elem != nil { - _elem = &Tool{} - if err := _elem.DeepCopy(elem); err != nil { - return err - } - } - - p.Tools = append(p.Tools, _elem) - } - } - - var _toolCallConfig *ToolCallConfig - if src.ToolCallConfig != nil { - _toolCallConfig = &ToolCallConfig{} - if err := _toolCallConfig.DeepCopy(src.ToolCallConfig); err != nil { - return err - } - } - p.ToolCallConfig = _toolCallConfig - - var _llmConfig *LLMConfig - if src.LlmConfig != nil { - _llmConfig = &LLMConfig{} - if err := _llmConfig.DeepCopy(src.LlmConfig); err != nil { - return err - } - } - p.LlmConfig = _llmConfig - - if src.ID != nil { - tmp := *src.ID - p.ID = &tmp - } - - if src.DisplayName != nil { - var tmp string - if *src.DisplayName != "" { - tmp = kutils.StringDeepCopy(*src.DisplayName) - } - p.DisplayName = &tmp - } - - if src.Description != nil { - var tmp string - if *src.Description != "" { - tmp = kutils.StringDeepCopy(*src.Description) - } - p.Description = &tmp - } - - if src.PromptType != nil { - tmp := *src.PromptType - p.PromptType = &tmp - } - - if src.CreatedBy != nil { - var tmp string - if *src.CreatedBy != "" { - tmp = kutils.StringDeepCopy(*src.CreatedBy) - } - p.CreatedBy = &tmp - } - - if src.CreatedAt != nil { - tmp := *src.CreatedAt - p.CreatedAt = &tmp - } - - if src.UpdatedAt != nil { - tmp := *src.UpdatedAt - p.UpdatedAt = &tmp - } - - if src.Status != nil { - tmp := *src.Status - p.Status = &tmp - } - - var _publishInfo *PromptPublishInfo - if src.PublishInfo != nil { - _publishInfo = &PromptPublishInfo{} - if err := _publishInfo.DeepCopy(src.PublishInfo); err != nil { - return err - } - } - p.PublishInfo = _publishInfo - - if src.SecurityLevel != nil { - tmp := *src.SecurityLevel - p.SecurityLevel = &tmp - } - - return nil -} - -func (p *PromptTemplate) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.LIST { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 3: - if fieldTypeId == thrift.LIST { - l, err = p.FastReadField3(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 100: - if fieldTypeId == thrift.MAP { - l, err = p.FastReadField100(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptTemplate[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *PromptTemplate) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *TemplateType - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.TemplateType = _field - return offset, nil -} - -func (p *PromptTemplate) FastReadField2(buf []byte) (int, error) { - offset := 0 - - _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) - offset += l - if err != nil { - return offset, err - } - _field := make([]*Message, 0, size) - values := make([]Message, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - if l, err := _elem.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - - _field = append(_field, _elem) - } - p.Messages = _field - return offset, nil -} - -func (p *PromptTemplate) FastReadField3(buf []byte) (int, error) { - offset := 0 - - _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) - offset += l - if err != nil { - return offset, err - } - _field := make([]*VariableDef, 0, size) - values := make([]VariableDef, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - if l, err := _elem.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - - _field = append(_field, _elem) - } - p.VariableDefs = _field - return offset, nil -} - -func (p *PromptTemplate) FastReadField100(buf []byte) (int, error) { - offset := 0 - - _, _, size, l, err := thrift.Binary.ReadMapBegin(buf[offset:]) - offset += l - if err != nil { - return offset, err - } - _field := make(map[string]string, size) - for i := 0; i < size; i++ { - var _key string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _key = v - } - - var _val string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _val = v - } - - _field[_key] = _val - } - p.Metadata = _field - return offset, nil -} - -func (p *PromptTemplate) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *PromptTemplate) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - offset += p.fastWriteField3(buf[offset:], w) - offset += p.fastWriteField100(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *PromptTemplate) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - l += p.field3Length() - l += p.field100Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *PromptTemplate) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetTemplateType() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.TemplateType) - } - return offset -} - -func (p *PromptTemplate) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetMessages() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 2) - listBeginOffset := offset - offset += thrift.Binary.ListBeginLength() - var length int - for _, v := range p.Messages { - length++ - offset += v.FastWriteNocopy(buf[offset:], w) - } - thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) - } - return offset -} - -func (p *PromptTemplate) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetVariableDefs() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 3) - listBeginOffset := offset - offset += thrift.Binary.ListBeginLength() - var length int - for _, v := range p.VariableDefs { - length++ - offset += v.FastWriteNocopy(buf[offset:], w) - } - thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) - } - return offset -} - -func (p *PromptTemplate) fastWriteField100(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetMetadata() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.MAP, 100) - mapBeginOffset := offset - offset += thrift.Binary.MapBeginLength() - var length int - for k, v := range p.Metadata { - length++ - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, k) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, v) - } - thrift.Binary.WriteMapBegin(buf[mapBeginOffset:], thrift.STRING, thrift.STRING, length) - } - return offset -} - -func (p *PromptTemplate) field1Length() int { - l := 0 - if p.IsSetTemplateType() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.TemplateType) - } - return l -} - -func (p *PromptTemplate) field2Length() int { - l := 0 - if p.IsSetMessages() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.ListBeginLength() - for _, v := range p.Messages { - _ = v - l += v.BLength() - } - } - return l -} - -func (p *PromptTemplate) field3Length() int { - l := 0 - if p.IsSetVariableDefs() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.ListBeginLength() - for _, v := range p.VariableDefs { - _ = v - l += v.BLength() - } - } - return l -} - -func (p *PromptTemplate) field100Length() int { - l := 0 - if p.IsSetMetadata() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.MapBeginLength() - for k, v := range p.Metadata { - _, _ = k, v - - l += thrift.Binary.StringLengthNocopy(k) - l += thrift.Binary.StringLengthNocopy(v) - } - } - return l -} - -func (p *PromptTemplate) DeepCopy(s interface{}) error { - src, ok := s.(*PromptTemplate) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.TemplateType != nil { - tmp := *src.TemplateType - p.TemplateType = &tmp - } - - if src.Messages != nil { - p.Messages = make([]*Message, 0, len(src.Messages)) - for _, elem := range src.Messages { - var _elem *Message - if elem != nil { - _elem = &Message{} - if err := _elem.DeepCopy(elem); err != nil { - return err - } - } - - p.Messages = append(p.Messages, _elem) - } - } - - if src.VariableDefs != nil { - p.VariableDefs = make([]*VariableDef, 0, len(src.VariableDefs)) - for _, elem := range src.VariableDefs { - var _elem *VariableDef - if elem != nil { - _elem = &VariableDef{} - if err := _elem.DeepCopy(elem); err != nil { - return err - } - } - - p.VariableDefs = append(p.VariableDefs, _elem) - } - } - - if src.Metadata != nil { - p.Metadata = make(map[string]string, len(src.Metadata)) - for key, val := range src.Metadata { - var _key string - if key != "" { - _key = kutils.StringDeepCopy(key) - } - - var _val string - if val != "" { - _val = kutils.StringDeepCopy(val) - } - - p.Metadata[_key] = _val - } - } - - return nil -} - -func (p *ToolCallConfig) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ToolCallConfig[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *ToolCallConfig) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *ToolChoiceType - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.ToolChoice = _field - return offset, nil -} - -func (p *ToolCallConfig) FastReadField2(buf []byte) (int, error) { - offset := 0 - _field := NewToolChoiceSpecification() - if l, err := _field.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - p.ToolChoiceSpecification = _field - return offset, nil -} - -func (p *ToolCallConfig) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *ToolCallConfig) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *ToolCallConfig) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *ToolCallConfig) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetToolChoice() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.ToolChoice) - } - return offset -} - -func (p *ToolCallConfig) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetToolChoiceSpecification() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 2) - offset += p.ToolChoiceSpecification.FastWriteNocopy(buf[offset:], w) - } - return offset -} - -func (p *ToolCallConfig) field1Length() int { - l := 0 - if p.IsSetToolChoice() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.ToolChoice) - } - return l -} - -func (p *ToolCallConfig) field2Length() int { - l := 0 - if p.IsSetToolChoiceSpecification() { - l += thrift.Binary.FieldBeginLength() - l += p.ToolChoiceSpecification.BLength() - } - return l -} - -func (p *ToolCallConfig) DeepCopy(s interface{}) error { - src, ok := s.(*ToolCallConfig) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.ToolChoice != nil { - tmp := *src.ToolChoice - p.ToolChoice = &tmp - } - - var _toolChoiceSpecification *ToolChoiceSpecification - if src.ToolChoiceSpecification != nil { - _toolChoiceSpecification = &ToolChoiceSpecification{} - if err := _toolChoiceSpecification.DeepCopy(src.ToolChoiceSpecification); err != nil { - return err - } - } - p.ToolChoiceSpecification = _toolChoiceSpecification - - return nil -} - -func (p *ToolChoiceSpecification) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ToolChoiceSpecification[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *ToolChoiceSpecification) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *ToolType - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Type = _field - return offset, nil -} - -func (p *ToolChoiceSpecification) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Name = _field - return offset, nil -} - -func (p *ToolChoiceSpecification) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *ToolChoiceSpecification) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *ToolChoiceSpecification) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *ToolChoiceSpecification) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetType() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Type) - } - return offset -} - -func (p *ToolChoiceSpecification) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetName() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Name) - } - return offset -} - -func (p *ToolChoiceSpecification) field1Length() int { - l := 0 - if p.IsSetType() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Type) - } - return l -} - -func (p *ToolChoiceSpecification) field2Length() int { - l := 0 - if p.IsSetName() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Name) - } - return l -} - -func (p *ToolChoiceSpecification) DeepCopy(s interface{}) error { - src, ok := s.(*ToolChoiceSpecification) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.Type != nil { - tmp := *src.Type - p.Type = &tmp - } - - if src.Name != nil { - var tmp string - if *src.Name != "" { - tmp = kutils.StringDeepCopy(*src.Name) - } - p.Name = &tmp - } - - return nil -} - -func (p *Message) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 3: - if fieldTypeId == thrift.LIST { - l, err = p.FastReadField3(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 4: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField4(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 5: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField5(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 6: - if fieldTypeId == thrift.LIST { - l, err = p.FastReadField6(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 7: - if fieldTypeId == thrift.BOOL { - l, err = p.FastReadField7(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 8: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField8(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 100: - if fieldTypeId == thrift.MAP { - l, err = p.FastReadField100(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_Message[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *Message) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *Role - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Role = _field - return offset, nil -} - -func (p *Message) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Content = _field - return offset, nil -} - -func (p *Message) FastReadField3(buf []byte) (int, error) { - offset := 0 - - _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) - offset += l - if err != nil { - return offset, err - } - _field := make([]*ContentPart, 0, size) - values := make([]ContentPart, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - if l, err := _elem.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - - _field = append(_field, _elem) - } - p.Parts = _field - return offset, nil -} - -func (p *Message) FastReadField4(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.ReasoningContent = _field - return offset, nil -} - -func (p *Message) FastReadField5(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.ToolCallID = _field - return offset, nil -} - -func (p *Message) FastReadField6(buf []byte) (int, error) { - offset := 0 - - _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) - offset += l - if err != nil { - return offset, err - } - _field := make([]*ToolCall, 0, size) - values := make([]ToolCall, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - if l, err := _elem.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - - _field = append(_field, _elem) - } - p.ToolCalls = _field - return offset, nil -} - -func (p *Message) FastReadField7(buf []byte) (int, error) { - offset := 0 - - var _field *bool - if v, l, err := thrift.Binary.ReadBool(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.SkipRender = _field - return offset, nil -} - -func (p *Message) FastReadField8(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Signature = _field - return offset, nil -} - -func (p *Message) FastReadField100(buf []byte) (int, error) { - offset := 0 - - _, _, size, l, err := thrift.Binary.ReadMapBegin(buf[offset:]) - offset += l - if err != nil { - return offset, err - } - _field := make(map[string]string, size) - for i := 0; i < size; i++ { - var _key string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _key = v - } - - var _val string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _val = v - } - - _field[_key] = _val - } - p.Metadata = _field - return offset, nil -} - -func (p *Message) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *Message) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField7(buf[offset:], w) - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - offset += p.fastWriteField3(buf[offset:], w) - offset += p.fastWriteField4(buf[offset:], w) - offset += p.fastWriteField5(buf[offset:], w) - offset += p.fastWriteField6(buf[offset:], w) - offset += p.fastWriteField8(buf[offset:], w) - offset += p.fastWriteField100(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *Message) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - l += p.field3Length() - l += p.field4Length() - l += p.field5Length() - l += p.field6Length() - l += p.field7Length() - l += p.field8Length() - l += p.field100Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *Message) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetRole() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Role) - } - return offset -} - -func (p *Message) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetContent() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Content) - } - return offset -} - -func (p *Message) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetParts() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 3) - listBeginOffset := offset - offset += thrift.Binary.ListBeginLength() - var length int - for _, v := range p.Parts { - length++ - offset += v.FastWriteNocopy(buf[offset:], w) - } - thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) - } - return offset -} - -func (p *Message) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetReasoningContent() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 4) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.ReasoningContent) - } - return offset -} - -func (p *Message) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetToolCallID() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 5) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.ToolCallID) - } - return offset -} - -func (p *Message) fastWriteField6(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetToolCalls() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 6) - listBeginOffset := offset - offset += thrift.Binary.ListBeginLength() - var length int - for _, v := range p.ToolCalls { - length++ - offset += v.FastWriteNocopy(buf[offset:], w) - } - thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) - } - return offset -} - -func (p *Message) fastWriteField7(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetSkipRender() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.BOOL, 7) - offset += thrift.Binary.WriteBool(buf[offset:], *p.SkipRender) - } - return offset -} - -func (p *Message) fastWriteField8(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetSignature() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 8) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Signature) - } - return offset -} - -func (p *Message) fastWriteField100(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetMetadata() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.MAP, 100) - mapBeginOffset := offset - offset += thrift.Binary.MapBeginLength() - var length int - for k, v := range p.Metadata { - length++ - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, k) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, v) - } - thrift.Binary.WriteMapBegin(buf[mapBeginOffset:], thrift.STRING, thrift.STRING, length) - } - return offset -} - -func (p *Message) field1Length() int { - l := 0 - if p.IsSetRole() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Role) - } - return l -} - -func (p *Message) field2Length() int { - l := 0 - if p.IsSetContent() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Content) - } - return l -} - -func (p *Message) field3Length() int { - l := 0 - if p.IsSetParts() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.ListBeginLength() - for _, v := range p.Parts { - _ = v - l += v.BLength() - } - } - return l -} - -func (p *Message) field4Length() int { - l := 0 - if p.IsSetReasoningContent() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.ReasoningContent) - } - return l -} - -func (p *Message) field5Length() int { - l := 0 - if p.IsSetToolCallID() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.ToolCallID) - } - return l -} - -func (p *Message) field6Length() int { - l := 0 - if p.IsSetToolCalls() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.ListBeginLength() - for _, v := range p.ToolCalls { - _ = v - l += v.BLength() - } - } - return l -} - -func (p *Message) field7Length() int { - l := 0 - if p.IsSetSkipRender() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.BoolLength() - } - return l -} - -func (p *Message) field8Length() int { - l := 0 - if p.IsSetSignature() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Signature) - } - return l -} - -func (p *Message) field100Length() int { - l := 0 - if p.IsSetMetadata() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.MapBeginLength() - for k, v := range p.Metadata { - _, _ = k, v - - l += thrift.Binary.StringLengthNocopy(k) - l += thrift.Binary.StringLengthNocopy(v) - } - } - return l -} - -func (p *Message) DeepCopy(s interface{}) error { - src, ok := s.(*Message) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.Role != nil { - tmp := *src.Role - p.Role = &tmp - } - - if src.Content != nil { - var tmp string - if *src.Content != "" { - tmp = kutils.StringDeepCopy(*src.Content) - } - p.Content = &tmp - } - - if src.Parts != nil { - p.Parts = make([]*ContentPart, 0, len(src.Parts)) - for _, elem := range src.Parts { - var _elem *ContentPart - if elem != nil { - _elem = &ContentPart{} - if err := _elem.DeepCopy(elem); err != nil { - return err - } - } - - p.Parts = append(p.Parts, _elem) - } - } - - if src.ReasoningContent != nil { - var tmp string - if *src.ReasoningContent != "" { - tmp = kutils.StringDeepCopy(*src.ReasoningContent) - } - p.ReasoningContent = &tmp - } - - if src.ToolCallID != nil { - var tmp string - if *src.ToolCallID != "" { - tmp = kutils.StringDeepCopy(*src.ToolCallID) - } - p.ToolCallID = &tmp - } - - if src.ToolCalls != nil { - p.ToolCalls = make([]*ToolCall, 0, len(src.ToolCalls)) - for _, elem := range src.ToolCalls { - var _elem *ToolCall - if elem != nil { - _elem = &ToolCall{} - if err := _elem.DeepCopy(elem); err != nil { - return err - } - } - - p.ToolCalls = append(p.ToolCalls, _elem) - } - } - - if src.SkipRender != nil { - tmp := *src.SkipRender - p.SkipRender = &tmp - } - - if src.Signature != nil { - var tmp string - if *src.Signature != "" { - tmp = kutils.StringDeepCopy(*src.Signature) - } - p.Signature = &tmp - } - - if src.Metadata != nil { - p.Metadata = make(map[string]string, len(src.Metadata)) - for key, val := range src.Metadata { - var _key string - if key != "" { - _key = kutils.StringDeepCopy(key) - } - - var _val string - if val != "" { - _val = kutils.StringDeepCopy(val) - } - - p.Metadata[_key] = _val - } - } - - return nil -} - -func (p *ContentPart) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 3: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField3(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 4: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField4(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 5: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField5(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 6: - if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField6(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 7: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField7(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 8: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField8(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 9: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField9(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ContentPart[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *ContentPart) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *ContentType - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Type = _field - return offset, nil -} - -func (p *ContentPart) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Text = _field - return offset, nil -} - -func (p *ContentPart) FastReadField3(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.ImageURL = _field - return offset, nil -} - -func (p *ContentPart) FastReadField4(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Base64Data = _field - return offset, nil -} - -func (p *ContentPart) FastReadField5(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.VideoURL = _field - return offset, nil -} - -func (p *ContentPart) FastReadField6(buf []byte) (int, error) { - offset := 0 - _field := NewMediaConfig() - if l, err := _field.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - p.Config = _field - return offset, nil -} - -func (p *ContentPart) FastReadField7(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Signature = _field - return offset, nil -} - -func (p *ContentPart) FastReadField8(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.ImageURI = _field - return offset, nil -} - -func (p *ContentPart) FastReadField9(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.VideoURI = _field - return offset, nil -} - -func (p *ContentPart) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *ContentPart) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - offset += p.fastWriteField3(buf[offset:], w) - offset += p.fastWriteField4(buf[offset:], w) - offset += p.fastWriteField5(buf[offset:], w) - offset += p.fastWriteField6(buf[offset:], w) - offset += p.fastWriteField7(buf[offset:], w) - offset += p.fastWriteField8(buf[offset:], w) - offset += p.fastWriteField9(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *ContentPart) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - l += p.field3Length() - l += p.field4Length() - l += p.field5Length() - l += p.field6Length() - l += p.field7Length() - l += p.field8Length() - l += p.field9Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *ContentPart) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetType() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Type) - } - return offset -} - -func (p *ContentPart) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetText() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Text) - } - return offset -} - -func (p *ContentPart) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetImageURL() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 3) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.ImageURL) - } - return offset -} - -func (p *ContentPart) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetBase64Data() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 4) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Base64Data) - } - return offset -} - -func (p *ContentPart) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetVideoURL() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 5) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.VideoURL) - } - return offset -} - -func (p *ContentPart) fastWriteField6(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetConfig() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 6) - offset += p.Config.FastWriteNocopy(buf[offset:], w) - } - return offset -} - -func (p *ContentPart) fastWriteField7(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetSignature() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 7) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Signature) - } - return offset -} - -func (p *ContentPart) fastWriteField8(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetImageURI() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 8) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.ImageURI) - } - return offset -} - -func (p *ContentPart) fastWriteField9(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetVideoURI() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 9) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.VideoURI) - } - return offset -} - -func (p *ContentPart) field1Length() int { - l := 0 - if p.IsSetType() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Type) - } - return l -} - -func (p *ContentPart) field2Length() int { - l := 0 - if p.IsSetText() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Text) - } - return l -} - -func (p *ContentPart) field3Length() int { - l := 0 - if p.IsSetImageURL() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.ImageURL) - } - return l -} - -func (p *ContentPart) field4Length() int { - l := 0 - if p.IsSetBase64Data() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Base64Data) - } - return l -} - -func (p *ContentPart) field5Length() int { - l := 0 - if p.IsSetVideoURL() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.VideoURL) - } - return l -} - -func (p *ContentPart) field6Length() int { - l := 0 - if p.IsSetConfig() { - l += thrift.Binary.FieldBeginLength() - l += p.Config.BLength() - } - return l -} - -func (p *ContentPart) field7Length() int { - l := 0 - if p.IsSetSignature() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Signature) - } - return l -} - -func (p *ContentPart) field8Length() int { - l := 0 - if p.IsSetImageURI() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.ImageURI) - } - return l -} - -func (p *ContentPart) field9Length() int { - l := 0 - if p.IsSetVideoURI() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.VideoURI) - } - return l -} - -func (p *ContentPart) DeepCopy(s interface{}) error { - src, ok := s.(*ContentPart) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.Type != nil { - tmp := *src.Type - p.Type = &tmp - } - - if src.Text != nil { - var tmp string - if *src.Text != "" { - tmp = kutils.StringDeepCopy(*src.Text) - } - p.Text = &tmp - } - - if src.ImageURL != nil { - var tmp string - if *src.ImageURL != "" { - tmp = kutils.StringDeepCopy(*src.ImageURL) - } - p.ImageURL = &tmp - } - - if src.Base64Data != nil { - var tmp string - if *src.Base64Data != "" { - tmp = kutils.StringDeepCopy(*src.Base64Data) - } - p.Base64Data = &tmp - } - - if src.VideoURL != nil { - var tmp string - if *src.VideoURL != "" { - tmp = kutils.StringDeepCopy(*src.VideoURL) - } - p.VideoURL = &tmp - } - - var _config *MediaConfig - if src.Config != nil { - _config = &MediaConfig{} - if err := _config.DeepCopy(src.Config); err != nil { - return err - } - } - p.Config = _config - - if src.Signature != nil { - var tmp string - if *src.Signature != "" { - tmp = kutils.StringDeepCopy(*src.Signature) - } - p.Signature = &tmp - } - - if src.ImageURI != nil { - var tmp string - if *src.ImageURI != "" { - tmp = kutils.StringDeepCopy(*src.ImageURI) - } - p.ImageURI = &tmp - } - - if src.VideoURI != nil { - var tmp string - if *src.VideoURI != "" { - tmp = kutils.StringDeepCopy(*src.VideoURI) - } - p.VideoURI = &tmp - } - - return nil -} - -func (p *MediaConfig) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.DOUBLE { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_MediaConfig[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *MediaConfig) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *float64 - if v, l, err := thrift.Binary.ReadDouble(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Fps = _field - return offset, nil -} - -func (p *MediaConfig) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.ImageResolution = _field - return offset, nil -} - -func (p *MediaConfig) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *MediaConfig) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *MediaConfig) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *MediaConfig) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetFps() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.DOUBLE, 1) - offset += thrift.Binary.WriteDouble(buf[offset:], *p.Fps) - } - return offset -} - -func (p *MediaConfig) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetImageResolution() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.ImageResolution) - } - return offset -} - -func (p *MediaConfig) field1Length() int { - l := 0 - if p.IsSetFps() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.DoubleLength() - } - return l -} - -func (p *MediaConfig) field2Length() int { - l := 0 - if p.IsSetImageResolution() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.ImageResolution) - } - return l -} - -func (p *MediaConfig) DeepCopy(s interface{}) error { - src, ok := s.(*MediaConfig) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.Fps != nil { - tmp := *src.Fps - p.Fps = &tmp - } - - if src.ImageResolution != nil { - var tmp string - if *src.ImageResolution != "" { - tmp = kutils.StringDeepCopy(*src.ImageResolution) - } - p.ImageResolution = &tmp - } - - return nil -} - -func (p *VariableDef) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 3: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField3(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_VariableDef[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *VariableDef) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Key = _field - return offset, nil -} - -func (p *VariableDef) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Desc = _field - return offset, nil -} - -func (p *VariableDef) FastReadField3(buf []byte) (int, error) { - offset := 0 - - var _field *VariableType - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Type = _field - return offset, nil -} - -func (p *VariableDef) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *VariableDef) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - offset += p.fastWriteField3(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *VariableDef) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - l += p.field3Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *VariableDef) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetKey() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Key) - } - return offset -} - -func (p *VariableDef) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetDesc() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Desc) - } - return offset -} - -func (p *VariableDef) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetType() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 3) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Type) - } - return offset -} - -func (p *VariableDef) field1Length() int { - l := 0 - if p.IsSetKey() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Key) - } - return l -} - -func (p *VariableDef) field2Length() int { - l := 0 - if p.IsSetDesc() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Desc) - } - return l -} - -func (p *VariableDef) field3Length() int { - l := 0 - if p.IsSetType() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Type) - } - return l -} - -func (p *VariableDef) DeepCopy(s interface{}) error { - src, ok := s.(*VariableDef) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.Key != nil { - var tmp string - if *src.Key != "" { - tmp = kutils.StringDeepCopy(*src.Key) - } - p.Key = &tmp - } - - if src.Desc != nil { - var tmp string - if *src.Desc != "" { - tmp = kutils.StringDeepCopy(*src.Desc) - } - p.Desc = &tmp - } - - if src.Type != nil { - tmp := *src.Type - p.Type = &tmp - } - - return nil -} - -func (p *Tool) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 3: - if fieldTypeId == thrift.BOOL { - l, err = p.FastReadField3(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_Tool[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *Tool) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *ToolType - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Type = _field - return offset, nil -} - -func (p *Tool) FastReadField2(buf []byte) (int, error) { - offset := 0 - _field := NewFunction() - if l, err := _field.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - p.Function = _field - return offset, nil -} - -func (p *Tool) FastReadField3(buf []byte) (int, error) { - offset := 0 - - var _field *bool - if v, l, err := thrift.Binary.ReadBool(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Disable = _field - return offset, nil -} - -func (p *Tool) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *Tool) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField3(buf[offset:], w) - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *Tool) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - l += p.field3Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *Tool) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetType() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Type) - } - return offset -} - -func (p *Tool) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetFunction() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 2) - offset += p.Function.FastWriteNocopy(buf[offset:], w) - } - return offset -} - -func (p *Tool) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetDisable() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.BOOL, 3) - offset += thrift.Binary.WriteBool(buf[offset:], *p.Disable) - } - return offset -} - -func (p *Tool) field1Length() int { - l := 0 - if p.IsSetType() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Type) - } - return l -} - -func (p *Tool) field2Length() int { - l := 0 - if p.IsSetFunction() { - l += thrift.Binary.FieldBeginLength() - l += p.Function.BLength() - } - return l -} - -func (p *Tool) field3Length() int { - l := 0 - if p.IsSetDisable() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.BoolLength() - } - return l -} - -func (p *Tool) DeepCopy(s interface{}) error { - src, ok := s.(*Tool) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.Type != nil { - tmp := *src.Type - p.Type = &tmp - } - - var _function *Function - if src.Function != nil { - _function = &Function{} - if err := _function.DeepCopy(src.Function); err != nil { - return err - } - } - p.Function = _function - - if src.Disable != nil { - tmp := *src.Disable - p.Disable = &tmp - } - - return nil -} - -func (p *Function) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 3: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField3(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_Function[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *Function) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Name = _field - return offset, nil -} - -func (p *Function) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Description = _field - return offset, nil -} - -func (p *Function) FastReadField3(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Parameters = _field - return offset, nil -} - -func (p *Function) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *Function) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - offset += p.fastWriteField3(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *Function) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - l += p.field3Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *Function) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetName() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Name) - } - return offset -} - -func (p *Function) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetDescription() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Description) - } - return offset -} - -func (p *Function) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetParameters() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 3) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Parameters) - } - return offset -} - -func (p *Function) field1Length() int { - l := 0 - if p.IsSetName() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Name) - } - return l -} - -func (p *Function) field2Length() int { - l := 0 - if p.IsSetDescription() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Description) - } - return l -} - -func (p *Function) field3Length() int { - l := 0 - if p.IsSetParameters() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Parameters) - } - return l -} - -func (p *Function) DeepCopy(s interface{}) error { - src, ok := s.(*Function) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.Name != nil { - var tmp string - if *src.Name != "" { - tmp = kutils.StringDeepCopy(*src.Name) - } - p.Name = &tmp - } - - if src.Description != nil { - var tmp string - if *src.Description != "" { - tmp = kutils.StringDeepCopy(*src.Description) - } - p.Description = &tmp - } - - if src.Parameters != nil { - var tmp string - if *src.Parameters != "" { - tmp = kutils.StringDeepCopy(*src.Parameters) - } - p.Parameters = &tmp - } - - return nil -} - -func (p *ToolCall) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.I32 { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 3: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField3(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 4: - if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField4(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 5: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField5(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 6: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField6(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ToolCall[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *ToolCall) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *int32 - if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Index = _field - return offset, nil -} - -func (p *ToolCall) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.ID = _field - return offset, nil -} - -func (p *ToolCall) FastReadField3(buf []byte) (int, error) { - offset := 0 - - var _field *ToolType - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Type = _field - return offset, nil -} - -func (p *ToolCall) FastReadField4(buf []byte) (int, error) { - offset := 0 - _field := NewFunctionCall() - if l, err := _field.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - p.FunctionCall = _field - return offset, nil -} - -func (p *ToolCall) FastReadField5(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.OutputID = _field - return offset, nil -} - -func (p *ToolCall) FastReadField6(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Signature = _field - return offset, nil -} - -func (p *ToolCall) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *ToolCall) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - offset += p.fastWriteField3(buf[offset:], w) - offset += p.fastWriteField4(buf[offset:], w) - offset += p.fastWriteField5(buf[offset:], w) - offset += p.fastWriteField6(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *ToolCall) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - l += p.field3Length() - l += p.field4Length() - l += p.field5Length() - l += p.field6Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *ToolCall) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetIndex() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 1) - offset += thrift.Binary.WriteI32(buf[offset:], *p.Index) - } - return offset -} - -func (p *ToolCall) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetID() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.ID) - } - return offset -} - -func (p *ToolCall) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetType() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 3) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Type) - } - return offset -} - -func (p *ToolCall) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetFunctionCall() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 4) - offset += p.FunctionCall.FastWriteNocopy(buf[offset:], w) - } - return offset -} - -func (p *ToolCall) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetOutputID() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 5) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.OutputID) - } - return offset -} - -func (p *ToolCall) fastWriteField6(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetSignature() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 6) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Signature) - } - return offset -} - -func (p *ToolCall) field1Length() int { - l := 0 - if p.IsSetIndex() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I32Length() - } - return l -} - -func (p *ToolCall) field2Length() int { - l := 0 - if p.IsSetID() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.ID) - } - return l -} - -func (p *ToolCall) field3Length() int { - l := 0 - if p.IsSetType() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Type) - } - return l -} - -func (p *ToolCall) field4Length() int { - l := 0 - if p.IsSetFunctionCall() { - l += thrift.Binary.FieldBeginLength() - l += p.FunctionCall.BLength() - } - return l -} - -func (p *ToolCall) field5Length() int { - l := 0 - if p.IsSetOutputID() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.OutputID) - } - return l -} - -func (p *ToolCall) field6Length() int { - l := 0 - if p.IsSetSignature() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Signature) - } - return l -} - -func (p *ToolCall) DeepCopy(s interface{}) error { - src, ok := s.(*ToolCall) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.Index != nil { - tmp := *src.Index - p.Index = &tmp - } - - if src.ID != nil { - var tmp string - if *src.ID != "" { - tmp = kutils.StringDeepCopy(*src.ID) - } - p.ID = &tmp - } - - if src.Type != nil { - tmp := *src.Type - p.Type = &tmp - } - - var _functionCall *FunctionCall - if src.FunctionCall != nil { - _functionCall = &FunctionCall{} - if err := _functionCall.DeepCopy(src.FunctionCall); err != nil { - return err - } - } - p.FunctionCall = _functionCall - - if src.OutputID != nil { - var tmp string - if *src.OutputID != "" { - tmp = kutils.StringDeepCopy(*src.OutputID) - } - p.OutputID = &tmp - } - - if src.Signature != nil { - var tmp string - if *src.Signature != "" { - tmp = kutils.StringDeepCopy(*src.Signature) - } - p.Signature = &tmp - } - - return nil -} - -func (p *FunctionCall) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_FunctionCall[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *FunctionCall) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Name = _field - return offset, nil -} - -func (p *FunctionCall) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Arguments = _field - return offset, nil -} - -func (p *FunctionCall) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *FunctionCall) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *FunctionCall) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *FunctionCall) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetName() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Name) - } - return offset -} - -func (p *FunctionCall) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetArguments() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Arguments) - } - return offset -} - -func (p *FunctionCall) field1Length() int { - l := 0 - if p.IsSetName() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Name) - } - return l -} - -func (p *FunctionCall) field2Length() int { - l := 0 - if p.IsSetArguments() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Arguments) - } - return l -} - -func (p *FunctionCall) DeepCopy(s interface{}) error { - src, ok := s.(*FunctionCall) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.Name != nil { - var tmp string - if *src.Name != "" { - tmp = kutils.StringDeepCopy(*src.Name) - } - p.Name = &tmp - } - - if src.Arguments != nil { - var tmp string - if *src.Arguments != "" { - tmp = kutils.StringDeepCopy(*src.Arguments) - } - p.Arguments = &tmp - } - - return nil -} - -func (p *LLMConfig) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.DOUBLE { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.I32 { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 3: - if fieldTypeId == thrift.I32 { - l, err = p.FastReadField3(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 4: - if fieldTypeId == thrift.DOUBLE { - l, err = p.FastReadField4(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 5: - if fieldTypeId == thrift.DOUBLE { - l, err = p.FastReadField5(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 6: - if fieldTypeId == thrift.DOUBLE { - l, err = p.FastReadField6(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 7: - if fieldTypeId == thrift.BOOL { - l, err = p.FastReadField7(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 8: - if fieldTypeId == thrift.I64 { - l, err = p.FastReadField8(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 9: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField9(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 10: - if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField10(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 11: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField11(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_LLMConfig[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *LLMConfig) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *float64 - if v, l, err := thrift.Binary.ReadDouble(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Temperature = _field - return offset, nil -} - -func (p *LLMConfig) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field *int32 - if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.MaxTokens = _field - return offset, nil -} - -func (p *LLMConfig) FastReadField3(buf []byte) (int, error) { - offset := 0 - - var _field *int32 - if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.TopK = _field - return offset, nil -} - -func (p *LLMConfig) FastReadField4(buf []byte) (int, error) { - offset := 0 - - var _field *float64 - if v, l, err := thrift.Binary.ReadDouble(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.TopP = _field - return offset, nil -} - -func (p *LLMConfig) FastReadField5(buf []byte) (int, error) { - offset := 0 - - var _field *float64 - if v, l, err := thrift.Binary.ReadDouble(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.PresencePenalty = _field - return offset, nil -} - -func (p *LLMConfig) FastReadField6(buf []byte) (int, error) { - offset := 0 - - var _field *float64 - if v, l, err := thrift.Binary.ReadDouble(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.FrequencyPenalty = _field - return offset, nil -} - -func (p *LLMConfig) FastReadField7(buf []byte) (int, error) { - offset := 0 - - var _field *bool - if v, l, err := thrift.Binary.ReadBool(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.JSONMode = _field - return offset, nil -} - -func (p *LLMConfig) FastReadField8(buf []byte) (int, error) { - offset := 0 - - var _field *int64 - if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.ID = _field - return offset, nil -} - -func (p *LLMConfig) FastReadField9(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Name = _field - return offset, nil -} - -func (p *LLMConfig) FastReadField10(buf []byte) (int, error) { - offset := 0 - _field := NewThinkingConfig() - if l, err := _field.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - p.Thinking = _field - return offset, nil -} - -func (p *LLMConfig) FastReadField11(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Extra = _field - return offset, nil -} - -func (p *LLMConfig) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *LLMConfig) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - offset += p.fastWriteField3(buf[offset:], w) - offset += p.fastWriteField4(buf[offset:], w) - offset += p.fastWriteField5(buf[offset:], w) - offset += p.fastWriteField6(buf[offset:], w) - offset += p.fastWriteField7(buf[offset:], w) - offset += p.fastWriteField8(buf[offset:], w) - offset += p.fastWriteField9(buf[offset:], w) - offset += p.fastWriteField10(buf[offset:], w) - offset += p.fastWriteField11(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *LLMConfig) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - l += p.field3Length() - l += p.field4Length() - l += p.field5Length() - l += p.field6Length() - l += p.field7Length() - l += p.field8Length() - l += p.field9Length() - l += p.field10Length() - l += p.field11Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *LLMConfig) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetTemperature() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.DOUBLE, 1) - offset += thrift.Binary.WriteDouble(buf[offset:], *p.Temperature) - } - return offset -} - -func (p *LLMConfig) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetMaxTokens() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 2) - offset += thrift.Binary.WriteI32(buf[offset:], *p.MaxTokens) - } - return offset -} - -func (p *LLMConfig) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetTopK() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 3) - offset += thrift.Binary.WriteI32(buf[offset:], *p.TopK) - } - return offset -} - -func (p *LLMConfig) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetTopP() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.DOUBLE, 4) - offset += thrift.Binary.WriteDouble(buf[offset:], *p.TopP) - } - return offset -} - -func (p *LLMConfig) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetPresencePenalty() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.DOUBLE, 5) - offset += thrift.Binary.WriteDouble(buf[offset:], *p.PresencePenalty) - } - return offset -} - -func (p *LLMConfig) fastWriteField6(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetFrequencyPenalty() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.DOUBLE, 6) - offset += thrift.Binary.WriteDouble(buf[offset:], *p.FrequencyPenalty) - } - return offset -} - -func (p *LLMConfig) fastWriteField7(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetJSONMode() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.BOOL, 7) - offset += thrift.Binary.WriteBool(buf[offset:], *p.JSONMode) - } - return offset -} - -func (p *LLMConfig) fastWriteField8(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetID() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 8) - offset += thrift.Binary.WriteI64(buf[offset:], *p.ID) - } - return offset -} - -func (p *LLMConfig) fastWriteField9(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetName() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 9) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Name) - } - return offset -} - -func (p *LLMConfig) fastWriteField10(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetThinking() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 10) - offset += p.Thinking.FastWriteNocopy(buf[offset:], w) - } - return offset -} - -func (p *LLMConfig) fastWriteField11(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetExtra() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 11) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Extra) - } - return offset -} - -func (p *LLMConfig) field1Length() int { - l := 0 - if p.IsSetTemperature() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.DoubleLength() - } - return l -} - -func (p *LLMConfig) field2Length() int { - l := 0 - if p.IsSetMaxTokens() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I32Length() - } - return l -} - -func (p *LLMConfig) field3Length() int { - l := 0 - if p.IsSetTopK() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I32Length() - } - return l -} - -func (p *LLMConfig) field4Length() int { - l := 0 - if p.IsSetTopP() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.DoubleLength() - } - return l -} - -func (p *LLMConfig) field5Length() int { - l := 0 - if p.IsSetPresencePenalty() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.DoubleLength() - } - return l -} - -func (p *LLMConfig) field6Length() int { - l := 0 - if p.IsSetFrequencyPenalty() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.DoubleLength() - } - return l -} - -func (p *LLMConfig) field7Length() int { - l := 0 - if p.IsSetJSONMode() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.BoolLength() - } - return l -} - -func (p *LLMConfig) field8Length() int { - l := 0 - if p.IsSetID() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() - } - return l -} - -func (p *LLMConfig) field9Length() int { - l := 0 - if p.IsSetName() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Name) - } - return l -} - -func (p *LLMConfig) field10Length() int { - l := 0 - if p.IsSetThinking() { - l += thrift.Binary.FieldBeginLength() - l += p.Thinking.BLength() - } - return l -} - -func (p *LLMConfig) field11Length() int { - l := 0 - if p.IsSetExtra() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Extra) - } - return l -} - -func (p *LLMConfig) DeepCopy(s interface{}) error { - src, ok := s.(*LLMConfig) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.Temperature != nil { - tmp := *src.Temperature - p.Temperature = &tmp - } - - if src.MaxTokens != nil { - tmp := *src.MaxTokens - p.MaxTokens = &tmp - } - - if src.TopK != nil { - tmp := *src.TopK - p.TopK = &tmp - } - - if src.TopP != nil { - tmp := *src.TopP - p.TopP = &tmp - } - - if src.PresencePenalty != nil { - tmp := *src.PresencePenalty - p.PresencePenalty = &tmp - } - - if src.FrequencyPenalty != nil { - tmp := *src.FrequencyPenalty - p.FrequencyPenalty = &tmp - } - - if src.JSONMode != nil { - tmp := *src.JSONMode - p.JSONMode = &tmp - } - - if src.ID != nil { - tmp := *src.ID - p.ID = &tmp - } - - if src.Name != nil { - var tmp string - if *src.Name != "" { - tmp = kutils.StringDeepCopy(*src.Name) - } - p.Name = &tmp - } - - var _thinking *ThinkingConfig - if src.Thinking != nil { - _thinking = &ThinkingConfig{} - if err := _thinking.DeepCopy(src.Thinking); err != nil { - return err - } - } - p.Thinking = _thinking - - if src.Extra != nil { - var tmp string - if *src.Extra != "" { - tmp = kutils.StringDeepCopy(*src.Extra) - } - p.Extra = &tmp - } - - return nil -} - -func (p *VariableVal) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 3: - if fieldTypeId == thrift.LIST { - l, err = p.FastReadField3(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 4: - if fieldTypeId == thrift.LIST { - l, err = p.FastReadField4(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_VariableVal[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *VariableVal) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Key = _field - return offset, nil -} - -func (p *VariableVal) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Value = _field - return offset, nil -} - -func (p *VariableVal) FastReadField3(buf []byte) (int, error) { - offset := 0 - - _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) - offset += l - if err != nil { - return offset, err - } - _field := make([]*Message, 0, size) - values := make([]Message, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - if l, err := _elem.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - - _field = append(_field, _elem) - } - p.PlaceholderMessages = _field - return offset, nil -} - -func (p *VariableVal) FastReadField4(buf []byte) (int, error) { - offset := 0 - - _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) - offset += l - if err != nil { - return offset, err - } - _field := make([]*ContentPart, 0, size) - values := make([]ContentPart, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - if l, err := _elem.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - - _field = append(_field, _elem) - } - p.MultiPartValues = _field - return offset, nil -} - -func (p *VariableVal) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *VariableVal) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - offset += p.fastWriteField3(buf[offset:], w) - offset += p.fastWriteField4(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *VariableVal) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - l += p.field3Length() - l += p.field4Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *VariableVal) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetKey() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Key) - } - return offset -} - -func (p *VariableVal) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetValue() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Value) - } - return offset -} - -func (p *VariableVal) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetPlaceholderMessages() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 3) - listBeginOffset := offset - offset += thrift.Binary.ListBeginLength() - var length int - for _, v := range p.PlaceholderMessages { - length++ - offset += v.FastWriteNocopy(buf[offset:], w) - } - thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) - } - return offset -} - -func (p *VariableVal) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetMultiPartValues() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 4) - listBeginOffset := offset - offset += thrift.Binary.ListBeginLength() - var length int - for _, v := range p.MultiPartValues { - length++ - offset += v.FastWriteNocopy(buf[offset:], w) - } - thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) - } - return offset -} - -func (p *VariableVal) field1Length() int { - l := 0 - if p.IsSetKey() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Key) - } - return l -} - -func (p *VariableVal) field2Length() int { - l := 0 - if p.IsSetValue() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Value) - } - return l -} - -func (p *VariableVal) field3Length() int { - l := 0 - if p.IsSetPlaceholderMessages() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.ListBeginLength() - for _, v := range p.PlaceholderMessages { - _ = v - l += v.BLength() - } - } - return l -} - -func (p *VariableVal) field4Length() int { - l := 0 - if p.IsSetMultiPartValues() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.ListBeginLength() - for _, v := range p.MultiPartValues { - _ = v - l += v.BLength() - } - } - return l -} - -func (p *VariableVal) DeepCopy(s interface{}) error { - src, ok := s.(*VariableVal) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.Key != nil { - var tmp string - if *src.Key != "" { - tmp = kutils.StringDeepCopy(*src.Key) - } - p.Key = &tmp - } - - if src.Value != nil { - var tmp string - if *src.Value != "" { - tmp = kutils.StringDeepCopy(*src.Value) - } - p.Value = &tmp - } - - if src.PlaceholderMessages != nil { - p.PlaceholderMessages = make([]*Message, 0, len(src.PlaceholderMessages)) - for _, elem := range src.PlaceholderMessages { - var _elem *Message - if elem != nil { - _elem = &Message{} - if err := _elem.DeepCopy(elem); err != nil { - return err - } - } - - p.PlaceholderMessages = append(p.PlaceholderMessages, _elem) - } - } - - if src.MultiPartValues != nil { - p.MultiPartValues = make([]*ContentPart, 0, len(src.MultiPartValues)) - for _, elem := range src.MultiPartValues { - var _elem *ContentPart - if elem != nil { - _elem = &ContentPart{} - if err := _elem.DeepCopy(elem); err != nil { - return err - } - } - - p.MultiPartValues = append(p.MultiPartValues, _elem) - } - } - - return nil -} - -func (p *TokenUsage) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.I32 { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.I32 { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_TokenUsage[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *TokenUsage) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *int32 - if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.InputTokens = _field - return offset, nil -} - -func (p *TokenUsage) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field *int32 - if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.OutputTokens = _field - return offset, nil -} - -func (p *TokenUsage) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *TokenUsage) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *TokenUsage) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *TokenUsage) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetInputTokens() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 1) - offset += thrift.Binary.WriteI32(buf[offset:], *p.InputTokens) - } - return offset -} - -func (p *TokenUsage) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetOutputTokens() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 2) - offset += thrift.Binary.WriteI32(buf[offset:], *p.OutputTokens) - } - return offset -} - -func (p *TokenUsage) field1Length() int { - l := 0 - if p.IsSetInputTokens() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I32Length() - } - return l -} - -func (p *TokenUsage) field2Length() int { - l := 0 - if p.IsSetOutputTokens() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I32Length() - } - return l -} - -func (p *TokenUsage) DeepCopy(s interface{}) error { - src, ok := s.(*TokenUsage) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.InputTokens != nil { - tmp := *src.InputTokens - p.InputTokens = &tmp - } - - if src.OutputTokens != nil { - tmp := *src.OutputTokens - p.OutputTokens = &tmp - } - - return nil -} - -func (p *ListPromptBasicRequest) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.I64 { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.I32 { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 3: - if fieldTypeId == thrift.I32 { - l, err = p.FastReadField3(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 4: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField4(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 5: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField5(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 6: - if fieldTypeId == thrift.MAP { - l, err = p.FastReadField6(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 255: - if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField255(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListPromptBasicRequest[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *ListPromptBasicRequest) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *int64 - if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.WorkspaceID = _field - return offset, nil -} - -func (p *ListPromptBasicRequest) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field *int32 - if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.PageNumber = _field - return offset, nil -} - -func (p *ListPromptBasicRequest) FastReadField3(buf []byte) (int, error) { - offset := 0 - - var _field *int32 - if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.PageSize = _field - return offset, nil -} - -func (p *ListPromptBasicRequest) FastReadField4(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.KeyWord = _field - return offset, nil -} - -func (p *ListPromptBasicRequest) FastReadField5(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Creator = _field - return offset, nil -} - -func (p *ListPromptBasicRequest) FastReadField6(buf []byte) (int, error) { - offset := 0 - - _, _, size, l, err := thrift.Binary.ReadMapBegin(buf[offset:]) - offset += l - if err != nil { - return offset, err - } - _field := make(map[string]string, size) - for i := 0; i < size; i++ { - var _key string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _key = v - } - - var _val string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _val = v - } - - _field[_key] = _val - } - p.Extra = _field - return offset, nil -} - -func (p *ListPromptBasicRequest) FastReadField255(buf []byte) (int, error) { - offset := 0 - _field := base.NewBase() - if l, err := _field.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - p.Base = _field - return offset, nil -} - -func (p *ListPromptBasicRequest) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *ListPromptBasicRequest) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - offset += p.fastWriteField3(buf[offset:], w) - offset += p.fastWriteField4(buf[offset:], w) - offset += p.fastWriteField5(buf[offset:], w) - offset += p.fastWriteField6(buf[offset:], w) - offset += p.fastWriteField255(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *ListPromptBasicRequest) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - l += p.field3Length() - l += p.field4Length() - l += p.field5Length() - l += p.field6Length() - l += p.field255Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *ListPromptBasicRequest) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetWorkspaceID() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 1) - offset += thrift.Binary.WriteI64(buf[offset:], *p.WorkspaceID) - } - return offset -} - -func (p *ListPromptBasicRequest) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetPageNumber() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 2) - offset += thrift.Binary.WriteI32(buf[offset:], *p.PageNumber) - } - return offset -} - -func (p *ListPromptBasicRequest) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetPageSize() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 3) - offset += thrift.Binary.WriteI32(buf[offset:], *p.PageSize) - } - return offset -} - -func (p *ListPromptBasicRequest) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetKeyWord() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 4) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.KeyWord) - } - return offset -} - -func (p *ListPromptBasicRequest) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetCreator() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 5) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Creator) - } - return offset -} - -func (p *ListPromptBasicRequest) fastWriteField6(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetExtra() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.MAP, 6) - mapBeginOffset := offset - offset += thrift.Binary.MapBeginLength() - var length int - for k, v := range p.Extra { - length++ - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, k) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, v) - } - thrift.Binary.WriteMapBegin(buf[mapBeginOffset:], thrift.STRING, thrift.STRING, length) - } - return offset -} - -func (p *ListPromptBasicRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetBase() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) - offset += p.Base.FastWriteNocopy(buf[offset:], w) - } - return offset -} - -func (p *ListPromptBasicRequest) field1Length() int { - l := 0 - if p.IsSetWorkspaceID() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() - } - return l -} - -func (p *ListPromptBasicRequest) field2Length() int { - l := 0 - if p.IsSetPageNumber() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I32Length() - } - return l -} - -func (p *ListPromptBasicRequest) field3Length() int { - l := 0 - if p.IsSetPageSize() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I32Length() - } - return l -} - -func (p *ListPromptBasicRequest) field4Length() int { - l := 0 - if p.IsSetKeyWord() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.KeyWord) - } - return l -} - -func (p *ListPromptBasicRequest) field5Length() int { - l := 0 - if p.IsSetCreator() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Creator) - } - return l -} - -func (p *ListPromptBasicRequest) field6Length() int { - l := 0 - if p.IsSetExtra() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.MapBeginLength() - for k, v := range p.Extra { - _, _ = k, v - - l += thrift.Binary.StringLengthNocopy(k) - l += thrift.Binary.StringLengthNocopy(v) - } - } - return l -} - -func (p *ListPromptBasicRequest) field255Length() int { - l := 0 - if p.IsSetBase() { - l += thrift.Binary.FieldBeginLength() - l += p.Base.BLength() - } - return l -} - -func (p *ListPromptBasicRequest) DeepCopy(s interface{}) error { - src, ok := s.(*ListPromptBasicRequest) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.WorkspaceID != nil { - tmp := *src.WorkspaceID - p.WorkspaceID = &tmp - } - - if src.PageNumber != nil { - tmp := *src.PageNumber - p.PageNumber = &tmp - } - - if src.PageSize != nil { - tmp := *src.PageSize - p.PageSize = &tmp - } - - if src.KeyWord != nil { - var tmp string - if *src.KeyWord != "" { - tmp = kutils.StringDeepCopy(*src.KeyWord) - } - p.KeyWord = &tmp - } - - if src.Creator != nil { - var tmp string - if *src.Creator != "" { - tmp = kutils.StringDeepCopy(*src.Creator) - } - p.Creator = &tmp - } - - if src.Extra != nil { - p.Extra = make(map[string]string, len(src.Extra)) - for key, val := range src.Extra { - var _key string - if key != "" { - _key = kutils.StringDeepCopy(key) - } - - var _val string - if val != "" { - _val = kutils.StringDeepCopy(val) - } - - p.Extra[_key] = _val - } - } - - var _base *base.Base - if src.Base != nil { - _base = &base.Base{} - if err := _base.DeepCopy(src.Base); err != nil { - return err - } - } - p.Base = _base - - return nil -} - -func (p *ListPromptBasicResponse) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.I32 { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 3: - if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField3(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 255: - if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField255(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListPromptBasicResponse[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *ListPromptBasicResponse) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *int32 - if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Code = _field - return offset, nil -} - -func (p *ListPromptBasicResponse) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Msg = _field - return offset, nil -} - -func (p *ListPromptBasicResponse) FastReadField3(buf []byte) (int, error) { - offset := 0 - _field := NewListPromptBasicData() - if l, err := _field.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - p.Data = _field - return offset, nil -} - -func (p *ListPromptBasicResponse) FastReadField255(buf []byte) (int, error) { - offset := 0 - _field := base.NewBaseResp() - if l, err := _field.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - p.BaseResp = _field - return offset, nil -} - -func (p *ListPromptBasicResponse) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *ListPromptBasicResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - offset += p.fastWriteField3(buf[offset:], w) - offset += p.fastWriteField255(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *ListPromptBasicResponse) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - l += p.field3Length() - l += p.field255Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *ListPromptBasicResponse) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetCode() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 1) - offset += thrift.Binary.WriteI32(buf[offset:], *p.Code) - } - return offset -} - -func (p *ListPromptBasicResponse) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetMsg() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Msg) - } - return offset -} - -func (p *ListPromptBasicResponse) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetData() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 3) - offset += p.Data.FastWriteNocopy(buf[offset:], w) - } - return offset -} - -func (p *ListPromptBasicResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetBaseResp() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) - offset += p.BaseResp.FastWriteNocopy(buf[offset:], w) - } - return offset -} - -func (p *ListPromptBasicResponse) field1Length() int { - l := 0 - if p.IsSetCode() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I32Length() - } - return l -} - -func (p *ListPromptBasicResponse) field2Length() int { - l := 0 - if p.IsSetMsg() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Msg) - } - return l -} - -func (p *ListPromptBasicResponse) field3Length() int { - l := 0 - if p.IsSetData() { - l += thrift.Binary.FieldBeginLength() - l += p.Data.BLength() - } - return l -} - -func (p *ListPromptBasicResponse) field255Length() int { - l := 0 - if p.IsSetBaseResp() { - l += thrift.Binary.FieldBeginLength() - l += p.BaseResp.BLength() - } - return l -} - -func (p *ListPromptBasicResponse) DeepCopy(s interface{}) error { - src, ok := s.(*ListPromptBasicResponse) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.Code != nil { - tmp := *src.Code - p.Code = &tmp - } - - if src.Msg != nil { - var tmp string - if *src.Msg != "" { - tmp = kutils.StringDeepCopy(*src.Msg) - } - p.Msg = &tmp - } - - var _data *ListPromptBasicData - if src.Data != nil { - _data = &ListPromptBasicData{} - if err := _data.DeepCopy(src.Data); err != nil { - return err - } - } - p.Data = _data - - var _baseResp *base.BaseResp - if src.BaseResp != nil { - _baseResp = &base.BaseResp{} - if err := _baseResp.DeepCopy(src.BaseResp); err != nil { - return err - } - } - p.BaseResp = _baseResp - - return nil -} - -func (p *PromptBasic) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.I64 { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.I64 { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 3: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField3(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 4: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField4(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 5: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField5(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 6: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField6(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 7: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField7(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 8: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField8(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 9: - if fieldTypeId == thrift.I64 { - l, err = p.FastReadField9(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 10: - if fieldTypeId == thrift.I64 { - l, err = p.FastReadField10(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 11: - if fieldTypeId == thrift.I64 { - l, err = p.FastReadField11(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptBasic[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *PromptBasic) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *int64 - if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.ID = _field - return offset, nil -} - -func (p *PromptBasic) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field *int64 - if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.WorkspaceID = _field - return offset, nil -} - -func (p *PromptBasic) FastReadField3(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.PromptKey = _field - return offset, nil -} - -func (p *PromptBasic) FastReadField4(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.DisplayName = _field - return offset, nil -} - -func (p *PromptBasic) FastReadField5(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Description = _field - return offset, nil -} - -func (p *PromptBasic) FastReadField6(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.LatestVersion = _field - return offset, nil -} - -func (p *PromptBasic) FastReadField7(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.CreatedBy = _field - return offset, nil -} - -func (p *PromptBasic) FastReadField8(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.UpdatedBy = _field - return offset, nil -} - -func (p *PromptBasic) FastReadField9(buf []byte) (int, error) { - offset := 0 - - var _field *int64 - if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.CreatedAt = _field - return offset, nil -} - -func (p *PromptBasic) FastReadField10(buf []byte) (int, error) { - offset := 0 - - var _field *int64 - if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.UpdatedAt = _field - return offset, nil -} - -func (p *PromptBasic) FastReadField11(buf []byte) (int, error) { - offset := 0 - - var _field *int64 - if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.LatestCommittedAt = _field - return offset, nil -} - -func (p *PromptBasic) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *PromptBasic) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - offset += p.fastWriteField9(buf[offset:], w) - offset += p.fastWriteField10(buf[offset:], w) - offset += p.fastWriteField11(buf[offset:], w) - offset += p.fastWriteField3(buf[offset:], w) - offset += p.fastWriteField4(buf[offset:], w) - offset += p.fastWriteField5(buf[offset:], w) - offset += p.fastWriteField6(buf[offset:], w) - offset += p.fastWriteField7(buf[offset:], w) - offset += p.fastWriteField8(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *PromptBasic) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - l += p.field3Length() - l += p.field4Length() - l += p.field5Length() - l += p.field6Length() - l += p.field7Length() - l += p.field8Length() - l += p.field9Length() - l += p.field10Length() - l += p.field11Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *PromptBasic) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetID() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 1) - offset += thrift.Binary.WriteI64(buf[offset:], *p.ID) - } - return offset -} - -func (p *PromptBasic) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetWorkspaceID() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 2) - offset += thrift.Binary.WriteI64(buf[offset:], *p.WorkspaceID) - } - return offset -} - -func (p *PromptBasic) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetPromptKey() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 3) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.PromptKey) - } - return offset -} - -func (p *PromptBasic) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetDisplayName() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 4) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.DisplayName) - } - return offset -} - -func (p *PromptBasic) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetDescription() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 5) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Description) - } - return offset -} - -func (p *PromptBasic) fastWriteField6(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetLatestVersion() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 6) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.LatestVersion) - } - return offset -} - -func (p *PromptBasic) fastWriteField7(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetCreatedBy() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 7) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.CreatedBy) - } - return offset -} - -func (p *PromptBasic) fastWriteField8(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetUpdatedBy() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 8) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.UpdatedBy) - } - return offset -} - -func (p *PromptBasic) fastWriteField9(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetCreatedAt() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 9) - offset += thrift.Binary.WriteI64(buf[offset:], *p.CreatedAt) - } - return offset -} - -func (p *PromptBasic) fastWriteField10(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetUpdatedAt() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 10) - offset += thrift.Binary.WriteI64(buf[offset:], *p.UpdatedAt) - } - return offset -} - -func (p *PromptBasic) fastWriteField11(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetLatestCommittedAt() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 11) - offset += thrift.Binary.WriteI64(buf[offset:], *p.LatestCommittedAt) - } - return offset -} - -func (p *PromptBasic) field1Length() int { - l := 0 - if p.IsSetID() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() - } - return l -} - -func (p *PromptBasic) field2Length() int { - l := 0 - if p.IsSetWorkspaceID() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() - } - return l -} - -func (p *PromptBasic) field3Length() int { - l := 0 - if p.IsSetPromptKey() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.PromptKey) - } - return l -} - -func (p *PromptBasic) field4Length() int { - l := 0 - if p.IsSetDisplayName() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.DisplayName) - } - return l -} - -func (p *PromptBasic) field5Length() int { - l := 0 - if p.IsSetDescription() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Description) - } - return l -} - -func (p *PromptBasic) field6Length() int { - l := 0 - if p.IsSetLatestVersion() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.LatestVersion) - } - return l -} - -func (p *PromptBasic) field7Length() int { - l := 0 - if p.IsSetCreatedBy() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.CreatedBy) - } - return l -} - -func (p *PromptBasic) field8Length() int { - l := 0 - if p.IsSetUpdatedBy() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.UpdatedBy) - } - return l -} - -func (p *PromptBasic) field9Length() int { - l := 0 - if p.IsSetCreatedAt() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() - } - return l -} - -func (p *PromptBasic) field10Length() int { - l := 0 - if p.IsSetUpdatedAt() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() - } - return l -} - -func (p *PromptBasic) field11Length() int { - l := 0 - if p.IsSetLatestCommittedAt() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() - } - return l -} - -func (p *PromptBasic) DeepCopy(s interface{}) error { - src, ok := s.(*PromptBasic) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.ID != nil { - tmp := *src.ID - p.ID = &tmp - } - - if src.WorkspaceID != nil { - tmp := *src.WorkspaceID - p.WorkspaceID = &tmp - } - - if src.PromptKey != nil { - var tmp string - if *src.PromptKey != "" { - tmp = kutils.StringDeepCopy(*src.PromptKey) - } - p.PromptKey = &tmp - } - - if src.DisplayName != nil { - var tmp string - if *src.DisplayName != "" { - tmp = kutils.StringDeepCopy(*src.DisplayName) - } - p.DisplayName = &tmp - } - - if src.Description != nil { - var tmp string - if *src.Description != "" { - tmp = kutils.StringDeepCopy(*src.Description) - } - p.Description = &tmp - } - - if src.LatestVersion != nil { - var tmp string - if *src.LatestVersion != "" { - tmp = kutils.StringDeepCopy(*src.LatestVersion) - } - p.LatestVersion = &tmp - } - - if src.CreatedBy != nil { - var tmp string - if *src.CreatedBy != "" { - tmp = kutils.StringDeepCopy(*src.CreatedBy) - } - p.CreatedBy = &tmp - } - - if src.UpdatedBy != nil { - var tmp string - if *src.UpdatedBy != "" { - tmp = kutils.StringDeepCopy(*src.UpdatedBy) - } - p.UpdatedBy = &tmp - } - - if src.CreatedAt != nil { - tmp := *src.CreatedAt - p.CreatedAt = &tmp - } - - if src.UpdatedAt != nil { - tmp := *src.UpdatedAt - p.UpdatedAt = &tmp - } - - if src.LatestCommittedAt != nil { - tmp := *src.LatestCommittedAt - p.LatestCommittedAt = &tmp - } - - return nil -} - -func (p *ListPromptBasicData) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.LIST { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.I32 { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListPromptBasicData[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *ListPromptBasicData) FastReadField1(buf []byte) (int, error) { - offset := 0 - - _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) - offset += l - if err != nil { - return offset, err - } - _field := make([]*PromptBasic, 0, size) - values := make([]PromptBasic, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - if l, err := _elem.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - - _field = append(_field, _elem) - } - p.Prompts = _field - return offset, nil -} - -func (p *ListPromptBasicData) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field *int32 - if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Total = _field - return offset, nil -} - -func (p *ListPromptBasicData) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *ListPromptBasicData) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField2(buf[offset:], w) - offset += p.fastWriteField1(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *ListPromptBasicData) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *ListPromptBasicData) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetPrompts() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 1) - listBeginOffset := offset - offset += thrift.Binary.ListBeginLength() - var length int - for _, v := range p.Prompts { - length++ - offset += v.FastWriteNocopy(buf[offset:], w) - } - thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) - } - return offset -} - -func (p *ListPromptBasicData) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetTotal() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 2) - offset += thrift.Binary.WriteI32(buf[offset:], *p.Total) - } - return offset -} - -func (p *ListPromptBasicData) field1Length() int { - l := 0 - if p.IsSetPrompts() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.ListBeginLength() - for _, v := range p.Prompts { - _ = v - l += v.BLength() - } - } - return l -} - -func (p *ListPromptBasicData) field2Length() int { - l := 0 - if p.IsSetTotal() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I32Length() - } - return l -} - -func (p *ListPromptBasicData) DeepCopy(s interface{}) error { - src, ok := s.(*ListPromptBasicData) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.Prompts != nil { - p.Prompts = make([]*PromptBasic, 0, len(src.Prompts)) - for _, elem := range src.Prompts { - var _elem *PromptBasic - if elem != nil { - _elem = &PromptBasic{} - if err := _elem.DeepCopy(elem); err != nil { - return err - } - } - - p.Prompts = append(p.Prompts, _elem) - } - } - - if src.Total != nil { - tmp := *src.Total - p.Total = &tmp - } - - return nil -} - -func (p *PromptPublishInfo) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 3: - if fieldTypeId == thrift.I64 { - l, err = p.FastReadField3(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptPublishInfo[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *PromptPublishInfo) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = v - } - p.Publisher = _field - return offset, nil -} - -func (p *PromptPublishInfo) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = v - } - p.PublishDescription = _field - return offset, nil -} - -func (p *PromptPublishInfo) FastReadField3(buf []byte) (int, error) { - offset := 0 - - var _field *int64 - if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.PublishAt = _field - return offset, nil -} - -func (p *PromptPublishInfo) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *PromptPublishInfo) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField3(buf[offset:], w) - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *PromptPublishInfo) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - l += p.field3Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *PromptPublishInfo) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, p.Publisher) - return offset -} - -func (p *PromptPublishInfo) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, p.PublishDescription) - return offset -} - -func (p *PromptPublishInfo) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetPublishAt() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 3) - offset += thrift.Binary.WriteI64(buf[offset:], *p.PublishAt) - } - return offset -} - -func (p *PromptPublishInfo) field1Length() int { - l := 0 - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(p.Publisher) - return l -} - -func (p *PromptPublishInfo) field2Length() int { - l := 0 - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(p.PublishDescription) - return l -} - -func (p *PromptPublishInfo) field3Length() int { - l := 0 - if p.IsSetPublishAt() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() - } - return l -} - -func (p *PromptPublishInfo) DeepCopy(s interface{}) error { - src, ok := s.(*PromptPublishInfo) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.Publisher != "" { - p.Publisher = kutils.StringDeepCopy(src.Publisher) - } - - if src.PublishDescription != "" { - p.PublishDescription = kutils.StringDeepCopy(src.PublishDescription) - } - - if src.PublishAt != nil { - tmp := *src.PublishAt - p.PublishAt = &tmp - } - - return nil -} - -func (p *ThinkingConfig) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.I64 { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 3: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField3(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ThinkingConfig[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *ThinkingConfig) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *int64 - if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.BudgetTokens = _field - return offset, nil -} - -func (p *ThinkingConfig) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field *ThinkingOption - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.ThinkingOption = _field - return offset, nil -} - -func (p *ThinkingConfig) FastReadField3(buf []byte) (int, error) { - offset := 0 - - var _field *ReasoningEffort - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.ReasoningEffort = _field - return offset, nil -} - -func (p *ThinkingConfig) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *ThinkingConfig) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - offset += p.fastWriteField3(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *ThinkingConfig) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - l += p.field3Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *ThinkingConfig) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetBudgetTokens() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 1) - offset += thrift.Binary.WriteI64(buf[offset:], *p.BudgetTokens) - } - return offset -} - -func (p *ThinkingConfig) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetThinkingOption() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.ThinkingOption) - } - return offset -} - -func (p *ThinkingConfig) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetReasoningEffort() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 3) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.ReasoningEffort) - } - return offset -} - -func (p *ThinkingConfig) field1Length() int { - l := 0 - if p.IsSetBudgetTokens() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() - } - return l -} - -func (p *ThinkingConfig) field2Length() int { - l := 0 - if p.IsSetThinkingOption() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.ThinkingOption) - } - return l -} - -func (p *ThinkingConfig) field3Length() int { - l := 0 - if p.IsSetReasoningEffort() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.ReasoningEffort) - } - return l -} - -func (p *ThinkingConfig) DeepCopy(s interface{}) error { - src, ok := s.(*ThinkingConfig) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.BudgetTokens != nil { - tmp := *src.BudgetTokens - p.BudgetTokens = &tmp - } - - if src.ThinkingOption != nil { - tmp := *src.ThinkingOption - p.ThinkingOption = &tmp - } - - if src.ReasoningEffort != nil { - tmp := *src.ReasoningEffort - p.ReasoningEffort = &tmp - } - - return nil -} - -func (p *ModelConfig) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.I64 { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.I32 { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 3: - if fieldTypeId == thrift.DOUBLE { - l, err = p.FastReadField3(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 4: - if fieldTypeId == thrift.I32 { - l, err = p.FastReadField4(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 5: - if fieldTypeId == thrift.DOUBLE { - l, err = p.FastReadField5(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 6: - if fieldTypeId == thrift.DOUBLE { - l, err = p.FastReadField6(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 7: - if fieldTypeId == thrift.DOUBLE { - l, err = p.FastReadField7(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 8: - if fieldTypeId == thrift.BOOL { - l, err = p.FastReadField8(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 9: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField9(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 10: - if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField10(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 100: - if fieldTypeId == thrift.LIST { - l, err = p.FastReadField100(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ModelConfig[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *ModelConfig) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *int64 - if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.ModelID = _field - return offset, nil -} - -func (p *ModelConfig) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field *int32 - if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.MaxTokens = _field - return offset, nil -} - -func (p *ModelConfig) FastReadField3(buf []byte) (int, error) { - offset := 0 - - var _field *float64 - if v, l, err := thrift.Binary.ReadDouble(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Temperature = _field - return offset, nil -} - -func (p *ModelConfig) FastReadField4(buf []byte) (int, error) { - offset := 0 - - var _field *int32 - if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.TopK = _field - return offset, nil -} - -func (p *ModelConfig) FastReadField5(buf []byte) (int, error) { - offset := 0 - - var _field *float64 - if v, l, err := thrift.Binary.ReadDouble(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.TopP = _field - return offset, nil -} - -func (p *ModelConfig) FastReadField6(buf []byte) (int, error) { - offset := 0 - - var _field *float64 - if v, l, err := thrift.Binary.ReadDouble(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.PresencePenalty = _field - return offset, nil -} - -func (p *ModelConfig) FastReadField7(buf []byte) (int, error) { - offset := 0 - - var _field *float64 - if v, l, err := thrift.Binary.ReadDouble(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.FrequencyPenalty = _field - return offset, nil -} - -func (p *ModelConfig) FastReadField8(buf []byte) (int, error) { - offset := 0 - - var _field *bool - if v, l, err := thrift.Binary.ReadBool(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.JSONMode = _field - return offset, nil -} - -func (p *ModelConfig) FastReadField9(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Extra = _field - return offset, nil -} - -func (p *ModelConfig) FastReadField10(buf []byte) (int, error) { - offset := 0 - _field := NewThinkingConfig() - if l, err := _field.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - p.Thinking = _field - return offset, nil -} - -func (p *ModelConfig) FastReadField100(buf []byte) (int, error) { - offset := 0 - - _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) - offset += l - if err != nil { - return offset, err - } - _field := make([]*ParamConfigValue, 0, size) - values := make([]ParamConfigValue, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - if l, err := _elem.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - - _field = append(_field, _elem) - } - p.ParamConfigValues = _field - return offset, nil -} - -func (p *ModelConfig) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *ModelConfig) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - offset += p.fastWriteField3(buf[offset:], w) - offset += p.fastWriteField4(buf[offset:], w) - offset += p.fastWriteField5(buf[offset:], w) - offset += p.fastWriteField6(buf[offset:], w) - offset += p.fastWriteField7(buf[offset:], w) - offset += p.fastWriteField8(buf[offset:], w) - offset += p.fastWriteField9(buf[offset:], w) - offset += p.fastWriteField10(buf[offset:], w) - offset += p.fastWriteField100(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *ModelConfig) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - l += p.field3Length() - l += p.field4Length() - l += p.field5Length() - l += p.field6Length() - l += p.field7Length() - l += p.field8Length() - l += p.field9Length() - l += p.field10Length() - l += p.field100Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *ModelConfig) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetModelID() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 1) - offset += thrift.Binary.WriteI64(buf[offset:], *p.ModelID) - } - return offset -} - -func (p *ModelConfig) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetMaxTokens() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 2) - offset += thrift.Binary.WriteI32(buf[offset:], *p.MaxTokens) - } - return offset -} - -func (p *ModelConfig) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetTemperature() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.DOUBLE, 3) - offset += thrift.Binary.WriteDouble(buf[offset:], *p.Temperature) - } - return offset -} - -func (p *ModelConfig) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetTopK() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 4) - offset += thrift.Binary.WriteI32(buf[offset:], *p.TopK) - } - return offset -} - -func (p *ModelConfig) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetTopP() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.DOUBLE, 5) - offset += thrift.Binary.WriteDouble(buf[offset:], *p.TopP) - } - return offset -} - -func (p *ModelConfig) fastWriteField6(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetPresencePenalty() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.DOUBLE, 6) - offset += thrift.Binary.WriteDouble(buf[offset:], *p.PresencePenalty) - } - return offset -} - -func (p *ModelConfig) fastWriteField7(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetFrequencyPenalty() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.DOUBLE, 7) - offset += thrift.Binary.WriteDouble(buf[offset:], *p.FrequencyPenalty) - } - return offset -} - -func (p *ModelConfig) fastWriteField8(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetJSONMode() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.BOOL, 8) - offset += thrift.Binary.WriteBool(buf[offset:], *p.JSONMode) - } - return offset -} - -func (p *ModelConfig) fastWriteField9(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetExtra() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 9) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Extra) - } - return offset -} - -func (p *ModelConfig) fastWriteField10(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetThinking() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 10) - offset += p.Thinking.FastWriteNocopy(buf[offset:], w) - } - return offset -} - -func (p *ModelConfig) fastWriteField100(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetParamConfigValues() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 100) - listBeginOffset := offset - offset += thrift.Binary.ListBeginLength() - var length int - for _, v := range p.ParamConfigValues { - length++ - offset += v.FastWriteNocopy(buf[offset:], w) - } - thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) - } - return offset -} - -func (p *ModelConfig) field1Length() int { - l := 0 - if p.IsSetModelID() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() - } - return l -} - -func (p *ModelConfig) field2Length() int { - l := 0 - if p.IsSetMaxTokens() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I32Length() - } - return l -} - -func (p *ModelConfig) field3Length() int { - l := 0 - if p.IsSetTemperature() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.DoubleLength() - } - return l -} - -func (p *ModelConfig) field4Length() int { - l := 0 - if p.IsSetTopK() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I32Length() - } - return l -} - -func (p *ModelConfig) field5Length() int { - l := 0 - if p.IsSetTopP() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.DoubleLength() - } - return l -} - -func (p *ModelConfig) field6Length() int { - l := 0 - if p.IsSetPresencePenalty() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.DoubleLength() - } - return l -} - -func (p *ModelConfig) field7Length() int { - l := 0 - if p.IsSetFrequencyPenalty() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.DoubleLength() - } - return l -} - -func (p *ModelConfig) field8Length() int { - l := 0 - if p.IsSetJSONMode() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.BoolLength() - } - return l -} - -func (p *ModelConfig) field9Length() int { - l := 0 - if p.IsSetExtra() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Extra) - } - return l -} - -func (p *ModelConfig) field10Length() int { - l := 0 - if p.IsSetThinking() { - l += thrift.Binary.FieldBeginLength() - l += p.Thinking.BLength() - } - return l -} - -func (p *ModelConfig) field100Length() int { - l := 0 - if p.IsSetParamConfigValues() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.ListBeginLength() - for _, v := range p.ParamConfigValues { - _ = v - l += v.BLength() - } - } - return l -} - -func (p *ModelConfig) DeepCopy(s interface{}) error { - src, ok := s.(*ModelConfig) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.ModelID != nil { - tmp := *src.ModelID - p.ModelID = &tmp - } - - if src.MaxTokens != nil { - tmp := *src.MaxTokens - p.MaxTokens = &tmp - } - - if src.Temperature != nil { - tmp := *src.Temperature - p.Temperature = &tmp - } - - if src.TopK != nil { - tmp := *src.TopK - p.TopK = &tmp - } - - if src.TopP != nil { - tmp := *src.TopP - p.TopP = &tmp - } - - if src.PresencePenalty != nil { - tmp := *src.PresencePenalty - p.PresencePenalty = &tmp - } - - if src.FrequencyPenalty != nil { - tmp := *src.FrequencyPenalty - p.FrequencyPenalty = &tmp - } - - if src.JSONMode != nil { - tmp := *src.JSONMode - p.JSONMode = &tmp - } - - if src.Extra != nil { - var tmp string - if *src.Extra != "" { - tmp = kutils.StringDeepCopy(*src.Extra) - } - p.Extra = &tmp - } - - var _thinking *ThinkingConfig - if src.Thinking != nil { - _thinking = &ThinkingConfig{} - if err := _thinking.DeepCopy(src.Thinking); err != nil { - return err - } - } - p.Thinking = _thinking - - if src.ParamConfigValues != nil { - p.ParamConfigValues = make([]*ParamConfigValue, 0, len(src.ParamConfigValues)) - for _, elem := range src.ParamConfigValues { - var _elem *ParamConfigValue - if elem != nil { - _elem = &ParamConfigValue{} - if err := _elem.DeepCopy(elem); err != nil { - return err - } - } - - p.ParamConfigValues = append(p.ParamConfigValues, _elem) - } - } - - return nil -} - -func (p *ResponseAPIConfig) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.BOOL { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 3: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField3(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ResponseAPIConfig[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *ResponseAPIConfig) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.PreviousResponseID = _field - return offset, nil -} - -func (p *ResponseAPIConfig) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field *bool - if v, l, err := thrift.Binary.ReadBool(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.EnableCaching = _field - return offset, nil -} - -func (p *ResponseAPIConfig) FastReadField3(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.SessionID = _field - return offset, nil -} - -func (p *ResponseAPIConfig) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *ResponseAPIConfig) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField2(buf[offset:], w) - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField3(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *ResponseAPIConfig) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - l += p.field3Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *ResponseAPIConfig) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetPreviousResponseID() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.PreviousResponseID) - } - return offset -} - -func (p *ResponseAPIConfig) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetEnableCaching() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.BOOL, 2) - offset += thrift.Binary.WriteBool(buf[offset:], *p.EnableCaching) - } - return offset -} - -func (p *ResponseAPIConfig) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetSessionID() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 3) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.SessionID) - } - return offset -} - -func (p *ResponseAPIConfig) field1Length() int { - l := 0 - if p.IsSetPreviousResponseID() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.PreviousResponseID) - } - return l -} - -func (p *ResponseAPIConfig) field2Length() int { - l := 0 - if p.IsSetEnableCaching() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.BoolLength() - } - return l -} - -func (p *ResponseAPIConfig) field3Length() int { - l := 0 - if p.IsSetSessionID() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.SessionID) - } - return l -} - -func (p *ResponseAPIConfig) DeepCopy(s interface{}) error { - src, ok := s.(*ResponseAPIConfig) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.PreviousResponseID != nil { - var tmp string - if *src.PreviousResponseID != "" { - tmp = kutils.StringDeepCopy(*src.PreviousResponseID) - } - p.PreviousResponseID = &tmp - } - - if src.EnableCaching != nil { - tmp := *src.EnableCaching - p.EnableCaching = &tmp - } - - if src.SessionID != nil { - var tmp string - if *src.SessionID != "" { - tmp = kutils.StringDeepCopy(*src.SessionID) - } - p.SessionID = &tmp - } - - return nil -} - -func (p *ParamConfigValue) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 3: - if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField3(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ParamConfigValue[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *ParamConfigValue) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Name = _field - return offset, nil -} - -func (p *ParamConfigValue) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Label = _field - return offset, nil -} - -func (p *ParamConfigValue) FastReadField3(buf []byte) (int, error) { - offset := 0 - _field := NewParamOption() - if l, err := _field.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - p.Value = _field - return offset, nil -} - -func (p *ParamConfigValue) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *ParamConfigValue) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - offset += p.fastWriteField3(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *ParamConfigValue) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - l += p.field3Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *ParamConfigValue) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetName() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Name) - } - return offset -} - -func (p *ParamConfigValue) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetLabel() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Label) - } - return offset -} - -func (p *ParamConfigValue) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetValue() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 3) - offset += p.Value.FastWriteNocopy(buf[offset:], w) - } - return offset -} - -func (p *ParamConfigValue) field1Length() int { - l := 0 - if p.IsSetName() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Name) - } - return l -} - -func (p *ParamConfigValue) field2Length() int { - l := 0 - if p.IsSetLabel() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Label) - } - return l -} - -func (p *ParamConfigValue) field3Length() int { - l := 0 - if p.IsSetValue() { - l += thrift.Binary.FieldBeginLength() - l += p.Value.BLength() - } - return l -} - -func (p *ParamConfigValue) DeepCopy(s interface{}) error { - src, ok := s.(*ParamConfigValue) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.Name != nil { - var tmp string - if *src.Name != "" { - tmp = kutils.StringDeepCopy(*src.Name) - } - p.Name = &tmp - } - - if src.Label != nil { - var tmp string - if *src.Label != "" { - tmp = kutils.StringDeepCopy(*src.Label) - } - p.Label = &tmp - } - - var _value *ParamOption - if src.Value != nil { - _value = &ParamOption{} - if err := _value.DeepCopy(src.Value); err != nil { - return err - } - } - p.Value = _value - - return nil -} - -func (p *ParamOption) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ParamOption[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *ParamOption) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Value = _field - return offset, nil -} - -func (p *ParamOption) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Label = _field - return offset, nil -} - -func (p *ParamOption) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *ParamOption) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *ParamOption) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *ParamOption) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetValue() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Value) - } - return offset -} - -func (p *ParamOption) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetLabel() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Label) - } - return offset -} - -func (p *ParamOption) field1Length() int { - l := 0 - if p.IsSetValue() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Value) - } - return l -} - -func (p *ParamOption) field2Length() int { - l := 0 - if p.IsSetLabel() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Label) - } - return l -} - -func (p *ParamOption) DeepCopy(s interface{}) error { - src, ok := s.(*ParamOption) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.Value != nil { - var tmp string - if *src.Value != "" { - tmp = kutils.StringDeepCopy(*src.Value) - } - p.Value = &tmp - } - - if src.Label != nil { - var tmp string - if *src.Label != "" { - tmp = kutils.StringDeepCopy(*src.Label) - } - p.Label = &tmp - } + p.BaseResp = _baseResp return nil } diff --git a/backend/modules/prompt/application/convertor/openapi.go b/backend/modules/prompt/application/convertor/openapi.go index 0bf5b8ce7..45a127832 100644 --- a/backend/modules/prompt/application/convertor/openapi.go +++ b/backend/modules/prompt/application/convertor/openapi.go @@ -4,13 +4,12 @@ package convertor import ( - "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/prompt/domain/prompt" - "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/prompt/openapi" + domainopenapi "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/prompt/domain_openapi/prompt" "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/entity" "github.com/coze-dev/coze-loop/backend/pkg/lang/ptr" ) -func OpenAPIPromptDO2DTO(do *entity.Prompt) *openapi.Prompt { +func OpenAPIPromptDO2DTO(do *entity.Prompt) *domainopenapi.Prompt { if do == nil { return nil } @@ -24,7 +23,7 @@ func OpenAPIPromptDO2DTO(do *entity.Prompt) *openapi.Prompt { toolCallConfig = promptDetail.ToolCallConfig modelConfig = promptDetail.ModelConfig } - return &openapi.Prompt{ + return &domainopenapi.Prompt{ WorkspaceID: ptr.Of(do.SpaceID), PromptKey: ptr.Of(do.PromptKey), Version: ptr.Of(do.GetVersion()), @@ -35,23 +34,23 @@ func OpenAPIPromptDO2DTO(do *entity.Prompt) *openapi.Prompt { } } -func OpenAPIPromptTemplateDO2DTO(do *entity.PromptTemplate) *openapi.PromptTemplate { +func OpenAPIPromptTemplateDO2DTO(do *entity.PromptTemplate) *domainopenapi.PromptTemplate { if do == nil { return nil } - return &openapi.PromptTemplate{ - TemplateType: ptr.Of(prompt.TemplateType(do.TemplateType)), + return &domainopenapi.PromptTemplate{ + TemplateType: ptr.Of(domainopenapi.TemplateType(do.TemplateType)), Messages: OpenAPIBatchMessageDO2DTO(do.Messages), VariableDefs: OpenAPIBatchVariableDefDO2DTO(do.VariableDefs), Metadata: do.Metadata, } } -func OpenAPIBatchMessageDO2DTO(dos []*entity.Message) []*openapi.Message { +func OpenAPIBatchMessageDO2DTO(dos []*entity.Message) []*domainopenapi.Message { if len(dos) == 0 { return nil } - dtos := make([]*openapi.Message, 0, len(dos)) + dtos := make([]*domainopenapi.Message, 0, len(dos)) for _, do := range dos { if do == nil { continue @@ -61,11 +60,11 @@ func OpenAPIBatchMessageDO2DTO(dos []*entity.Message) []*openapi.Message { return dtos } -func OpenAPIMessageDO2DTO(do *entity.Message) *openapi.Message { +func OpenAPIMessageDO2DTO(do *entity.Message) *domainopenapi.Message { if do == nil { return nil } - return &openapi.Message{ + return &domainopenapi.Message{ Role: ptr.Of(RoleDO2DTO(do.Role)), ReasoningContent: do.ReasoningContent, Content: do.Content, @@ -78,8 +77,8 @@ func OpenAPIMessageDO2DTO(do *entity.Message) *openapi.Message { } } -func OpenAPIBatchVariableDefDO2DTO(dos []*entity.VariableDef) []*openapi.VariableDef { - dtos := make([]*openapi.VariableDef, 0, len(dos)) +func OpenAPIBatchVariableDefDO2DTO(dos []*entity.VariableDef) []*domainopenapi.VariableDef { + dtos := make([]*domainopenapi.VariableDef, 0, len(dos)) for _, do := range dos { if do == nil { continue @@ -89,22 +88,22 @@ func OpenAPIBatchVariableDefDO2DTO(dos []*entity.VariableDef) []*openapi.Variabl return dtos } -func OpenAPIVariableDefDO2DTO(do *entity.VariableDef) *openapi.VariableDef { +func OpenAPIVariableDefDO2DTO(do *entity.VariableDef) *domainopenapi.VariableDef { if do == nil { return nil } - return &openapi.VariableDef{ + return &domainopenapi.VariableDef{ Key: ptr.Of(do.Key), Desc: ptr.Of(do.Desc), - Type: ptr.Of(prompt.VariableType(do.Type)), + Type: ptr.Of(domainopenapi.VariableType(do.Type)), } } -func OpenAPIBatchToolDO2DTO(dos []*entity.Tool) []*openapi.Tool { +func OpenAPIBatchToolDO2DTO(dos []*entity.Tool) []*domainopenapi.Tool { if dos == nil { return nil } - dtos := make([]*openapi.Tool, 0, len(dos)) + dtos := make([]*domainopenapi.Tool, 0, len(dos)) for _, do := range dos { if do == nil { continue @@ -114,52 +113,52 @@ func OpenAPIBatchToolDO2DTO(dos []*entity.Tool) []*openapi.Tool { return dtos } -func OpenAPIToolDO2DTO(do *entity.Tool) *openapi.Tool { +func OpenAPIToolDO2DTO(do *entity.Tool) *domainopenapi.Tool { if do == nil { return nil } - return &openapi.Tool{ - Type: ptr.Of(prompt.ToolType(do.Type)), + return &domainopenapi.Tool{ + Type: ptr.Of(domainopenapi.ToolType(do.Type)), Function: OpenAPIFunctionDO2DTO(do.Function), } } -func OpenAPIFunctionDO2DTO(do *entity.Function) *openapi.Function { +func OpenAPIFunctionDO2DTO(do *entity.Function) *domainopenapi.Function { if do == nil { return nil } - return &openapi.Function{ + return &domainopenapi.Function{ Name: ptr.Of(do.Name), Description: ptr.Of(do.Description), Parameters: ptr.Of(do.Parameters), } } -func OpenAPIToolCallConfigDO2DTO(do *entity.ToolCallConfig) *openapi.ToolCallConfig { +func OpenAPIToolCallConfigDO2DTO(do *entity.ToolCallConfig) *domainopenapi.ToolCallConfig { if do == nil { return nil } - return &openapi.ToolCallConfig{ - ToolChoice: ptr.Of(prompt.ToolChoiceType(do.ToolChoice)), + return &domainopenapi.ToolCallConfig{ + ToolChoice: ptr.Of(domainopenapi.ToolChoiceType(do.ToolChoice)), ToolChoiceSpecification: OpenAPIToolChoiceSpecificationDO2DTO(do.ToolChoiceSpecification), } } -func OpenAPIToolChoiceSpecificationDO2DTO(do *entity.ToolChoiceSpecification) *openapi.ToolChoiceSpecification { +func OpenAPIToolChoiceSpecificationDO2DTO(do *entity.ToolChoiceSpecification) *domainopenapi.ToolChoiceSpecification { if do == nil { return nil } - return &openapi.ToolChoiceSpecification{ - Type: ptr.Of(prompt.ToolType(do.Type)), + return &domainopenapi.ToolChoiceSpecification{ + Type: ptr.Of(domainopenapi.ToolType(do.Type)), Name: ptr.Of(do.Name), } } -func OpenAPIModelConfigDO2DTO(do *entity.ModelConfig) *openapi.LLMConfig { +func OpenAPIModelConfigDO2DTO(do *entity.ModelConfig) *domainopenapi.LLMConfig { if do == nil { return nil } - return &openapi.LLMConfig{ + return &domainopenapi.LLMConfig{ MaxTokens: do.MaxTokens, Temperature: do.Temperature, TopK: do.TopK, @@ -172,11 +171,11 @@ func OpenAPIModelConfigDO2DTO(do *entity.ModelConfig) *openapi.LLMConfig { } } -func OpenAPIBatchContentPartDO2DTO(dos []*entity.ContentPart) []*openapi.ContentPart { +func OpenAPIBatchContentPartDO2DTO(dos []*entity.ContentPart) []*domainopenapi.ContentPart { if dos == nil { return nil } - parts := make([]*openapi.ContentPart, 0, len(dos)) + parts := make([]*domainopenapi.ContentPart, 0, len(dos)) for _, do := range dos { if do == nil { continue @@ -186,7 +185,7 @@ func OpenAPIBatchContentPartDO2DTO(dos []*entity.ContentPart) []*openapi.Content return parts } -func OpenAPIContentPartDO2DTO(do *entity.ContentPart) *openapi.ContentPart { +func OpenAPIContentPartDO2DTO(do *entity.ContentPart) *domainopenapi.ContentPart { if do == nil { return nil } @@ -195,7 +194,7 @@ func OpenAPIContentPartDO2DTO(do *entity.ContentPart) *openapi.ContentPart { imageURL = ptr.Of(do.ImageURL.URL) } var videoURL *string - var config *openapi.MediaConfig + var config *domainopenapi.MediaConfig if do.VideoURL != nil { if do.VideoURL.URL != "" { videoURL = ptr.Of(do.VideoURL.URL) @@ -203,11 +202,11 @@ func OpenAPIContentPartDO2DTO(do *entity.ContentPart) *openapi.ContentPart { } // Set Config with fps if available if do.MediaConfig != nil && do.MediaConfig.Fps != nil { - config = &openapi.MediaConfig{ + config = &domainopenapi.MediaConfig{ Fps: do.MediaConfig.Fps, } } - return &openapi.ContentPart{ + return &domainopenapi.ContentPart{ Type: ptr.Of(OpenAPIContentTypeDO2DTO(do.Type)), Text: do.Text, ImageURL: imageURL, @@ -218,25 +217,25 @@ func OpenAPIContentPartDO2DTO(do *entity.ContentPart) *openapi.ContentPart { } } -func OpenAPIContentTypeDO2DTO(do entity.ContentType) openapi.ContentType { +func OpenAPIContentTypeDO2DTO(do entity.ContentType) domainopenapi.ContentType { switch do { case entity.ContentTypeText: - return openapi.ContentTypeText + return domainopenapi.ContentTypeText case entity.ContentTypeImageURL: - return openapi.ContentTypeImageURL + return domainopenapi.ContentTypeImageURL case entity.ContentTypeVideoURL: - return openapi.ContentTypeVideoURL + return domainopenapi.ContentTypeVideoURL case entity.ContentTypeBase64Data: - return openapi.ContentTypeBase64Data + return domainopenapi.ContentTypeBase64Data case entity.ContentTypeMultiPartVariable: - return openapi.ContentTypeMultiPartVariable + return domainopenapi.ContentTypeMultiPartVariable default: - return openapi.ContentTypeText + return domainopenapi.ContentTypeText } } // OpenAPIBatchMessageDTO2DO 将openapi Message转换为entity Message -func OpenAPIBatchMessageDTO2DO(dtos []*openapi.Message) []*entity.Message { +func OpenAPIBatchMessageDTO2DO(dtos []*domainopenapi.Message) []*entity.Message { if len(dtos) == 0 { return nil } @@ -251,7 +250,7 @@ func OpenAPIBatchMessageDTO2DO(dtos []*openapi.Message) []*entity.Message { } // OpenAPIMessageDTO2DO 将openapi Message转换为entity Message -func OpenAPIMessageDTO2DO(dto *openapi.Message) *entity.Message { +func OpenAPIMessageDTO2DO(dto *domainopenapi.Message) *entity.Message { if dto == nil { return nil } @@ -269,7 +268,7 @@ func OpenAPIMessageDTO2DO(dto *openapi.Message) *entity.Message { } // OpenAPIBatchContentPartDTO2DO 将openapi ContentPart转换为entity ContentPart -func OpenAPIBatchContentPartDTO2DO(dtos []*openapi.ContentPart) []*entity.ContentPart { +func OpenAPIBatchContentPartDTO2DO(dtos []*domainopenapi.ContentPart) []*entity.ContentPart { if dtos == nil { return nil } @@ -284,7 +283,7 @@ func OpenAPIBatchContentPartDTO2DO(dtos []*openapi.ContentPart) []*entity.Conten } // OpenAPIContentPartDTO2DO 将openapi ContentPart转换为entity ContentPart -func OpenAPIContentPartDTO2DO(dto *openapi.ContentPart) *entity.ContentPart { +func OpenAPIContentPartDTO2DO(dto *domainopenapi.ContentPart) *entity.ContentPart { if dto == nil { return nil } @@ -319,17 +318,17 @@ func OpenAPIContentPartDTO2DO(dto *openapi.ContentPart) *entity.ContentPart { } // OpenAPIContentTypeDTO2DO 将openapi ContentType转换为entity ContentType -func OpenAPIContentTypeDTO2DO(dto openapi.ContentType) entity.ContentType { +func OpenAPIContentTypeDTO2DO(dto domainopenapi.ContentType) entity.ContentType { switch dto { - case openapi.ContentTypeText: + case domainopenapi.ContentTypeText: return entity.ContentTypeText - case openapi.ContentTypeImageURL: + case domainopenapi.ContentTypeImageURL: return entity.ContentTypeImageURL - case openapi.ContentTypeVideoURL: + case domainopenapi.ContentTypeVideoURL: return entity.ContentTypeVideoURL - case openapi.ContentTypeBase64Data: + case domainopenapi.ContentTypeBase64Data: return entity.ContentTypeBase64Data - case openapi.ContentTypeMultiPartVariable: + case domainopenapi.ContentTypeMultiPartVariable: return entity.ContentTypeMultiPartVariable default: return entity.ContentTypeText @@ -337,7 +336,7 @@ func OpenAPIContentTypeDTO2DO(dto openapi.ContentType) entity.ContentType { } // OpenAPIBatchVariableValDTO2DO 将openapi VariableVal转换为entity VariableVal -func OpenAPIBatchVariableValDTO2DO(dtos []*openapi.VariableVal) []*entity.VariableVal { +func OpenAPIBatchVariableValDTO2DO(dtos []*domainopenapi.VariableVal) []*entity.VariableVal { if len(dtos) == 0 { return nil } @@ -352,7 +351,7 @@ func OpenAPIBatchVariableValDTO2DO(dtos []*openapi.VariableVal) []*entity.Variab } // OpenAPIVariableValDTO2DO 将openapi VariableVal转换为entity VariableVal -func OpenAPIVariableValDTO2DO(dto *openapi.VariableVal) *entity.VariableVal { +func OpenAPIVariableValDTO2DO(dto *domainopenapi.VariableVal) *entity.VariableVal { if dto == nil { return nil } @@ -365,22 +364,22 @@ func OpenAPIVariableValDTO2DO(dto *openapi.VariableVal) *entity.VariableVal { } // OpenAPITokenUsageDO2DTO 将entity TokenUsage转换为openapi TokenUsage -func OpenAPITokenUsageDO2DTO(do *entity.TokenUsage) *openapi.TokenUsage { +func OpenAPITokenUsageDO2DTO(do *entity.TokenUsage) *domainopenapi.TokenUsage { if do == nil { return nil } - return &openapi.TokenUsage{ + return &domainopenapi.TokenUsage{ InputTokens: ptr.Of(int32(do.InputTokens)), OutputTokens: ptr.Of(int32(do.OutputTokens)), } } // OpenAPIBatchToolCallDO2DTO 将entity ToolCall转换为openapi ToolCall -func OpenAPIBatchToolCallDO2DTO(dos []*entity.ToolCall) []*openapi.ToolCall { +func OpenAPIBatchToolCallDO2DTO(dos []*entity.ToolCall) []*domainopenapi.ToolCall { if dos == nil { return nil } - toolCalls := make([]*openapi.ToolCall, 0, len(dos)) + toolCalls := make([]*domainopenapi.ToolCall, 0, len(dos)) for _, do := range dos { if do == nil { continue @@ -391,11 +390,11 @@ func OpenAPIBatchToolCallDO2DTO(dos []*entity.ToolCall) []*openapi.ToolCall { } // OpenAPIToolCallDO2DTO 将entity ToolCall转换为openapi ToolCall -func OpenAPIToolCallDO2DTO(do *entity.ToolCall) *openapi.ToolCall { +func OpenAPIToolCallDO2DTO(do *entity.ToolCall) *domainopenapi.ToolCall { if do == nil { return nil } - return &openapi.ToolCall{ + return &domainopenapi.ToolCall{ Index: ptr.Of(int32(do.Index)), ID: ptr.Of(do.ID), Type: ptr.Of(OpenAPIToolTypeDO2DTO(do.Type)), @@ -405,30 +404,30 @@ func OpenAPIToolCallDO2DTO(do *entity.ToolCall) *openapi.ToolCall { } // OpenAPIToolTypeDO2DTO 将entity ToolType转换为openapi ToolType -func OpenAPIToolTypeDO2DTO(do entity.ToolType) openapi.ToolType { +func OpenAPIToolTypeDO2DTO(do entity.ToolType) domainopenapi.ToolType { switch do { case entity.ToolTypeFunction: - return openapi.ToolTypeFunction + return domainopenapi.ToolTypeFunction case entity.ToolTypeGoogleSearch: - return openapi.ToolTypeGoogleSearch + return domainopenapi.ToolTypeGoogleSearch default: - return openapi.ToolTypeFunction + return domainopenapi.ToolTypeFunction } } // OpenAPIFunctionCallDO2DTO 将entity FunctionCall转换为openapi FunctionCall -func OpenAPIFunctionCallDO2DTO(do *entity.FunctionCall) *openapi.FunctionCall { +func OpenAPIFunctionCallDO2DTO(do *entity.FunctionCall) *domainopenapi.FunctionCall { if do == nil { return nil } - return &openapi.FunctionCall{ + return &domainopenapi.FunctionCall{ Name: ptr.Of(do.Name), Arguments: do.Arguments, } } // OpenAPIBatchToolCallDTO2DO 将openapi ToolCall转换为entity ToolCall -func OpenAPIBatchToolCallDTO2DO(dtos []*openapi.ToolCall) []*entity.ToolCall { +func OpenAPIBatchToolCallDTO2DO(dtos []*domainopenapi.ToolCall) []*entity.ToolCall { if dtos == nil { return nil } @@ -443,7 +442,7 @@ func OpenAPIBatchToolCallDTO2DO(dtos []*openapi.ToolCall) []*entity.ToolCall { } // OpenAPIToolCallDTO2DO 将openapi ToolCall转换为entity ToolCall -func OpenAPIToolCallDTO2DO(dto *openapi.ToolCall) *entity.ToolCall { +func OpenAPIToolCallDTO2DO(dto *domainopenapi.ToolCall) *entity.ToolCall { if dto == nil { return nil } @@ -457,11 +456,11 @@ func OpenAPIToolCallDTO2DO(dto *openapi.ToolCall) *entity.ToolCall { } // OpenAPIToolTypeDTO2DO 将openapi ToolType转换为entity ToolType -func OpenAPIToolTypeDTO2DO(dto openapi.ToolType) entity.ToolType { +func OpenAPIToolTypeDTO2DO(dto domainopenapi.ToolType) entity.ToolType { switch dto { - case openapi.ToolTypeFunction: + case domainopenapi.ToolTypeFunction: return entity.ToolTypeFunction - case openapi.ToolTypeGoogleSearch: + case domainopenapi.ToolTypeGoogleSearch: return entity.ToolTypeGoogleSearch default: return entity.ToolTypeFunction @@ -469,7 +468,7 @@ func OpenAPIToolTypeDTO2DO(dto openapi.ToolType) entity.ToolType { } // OpenAPIFunctionCallDTO2DO 将openapi FunctionCall转换为entity FunctionCall -func OpenAPIFunctionCallDTO2DO(dto *openapi.FunctionCall) *entity.FunctionCall { +func OpenAPIFunctionCallDTO2DO(dto *domainopenapi.FunctionCall) *entity.FunctionCall { if dto == nil { return nil } @@ -480,11 +479,11 @@ func OpenAPIFunctionCallDTO2DO(dto *openapi.FunctionCall) *entity.FunctionCall { } // OpenAPIPromptBasicDO2DTO 将entity Prompt转换为openapi PromptBasic -func OpenAPIPromptBasicDO2DTO(do *entity.Prompt) *openapi.PromptBasic { +func OpenAPIPromptBasicDO2DTO(do *entity.Prompt) *domainopenapi.PromptBasic { if do == nil || do.PromptBasic == nil { return nil } - return &openapi.PromptBasic{ + return &domainopenapi.PromptBasic{ ID: ptr.Of(do.ID), WorkspaceID: ptr.Of(do.SpaceID), PromptKey: ptr.Of(do.PromptKey), @@ -505,7 +504,7 @@ func OpenAPIPromptBasicDO2DTO(do *entity.Prompt) *openapi.PromptBasic { } // OpenAPIBatchToolDTO2DO 将openapi Tool转换为entity Tool -func OpenAPIBatchToolDTO2DO(dtos []*openapi.Tool) []*entity.Tool { +func OpenAPIBatchToolDTO2DO(dtos []*domainopenapi.Tool) []*entity.Tool { if dtos == nil { return nil } @@ -519,7 +518,7 @@ func OpenAPIBatchToolDTO2DO(dtos []*openapi.Tool) []*entity.Tool { } // OpenAPIToolDTO2DO 将openapi Tool转换为entity Tool -func OpenAPIToolDTO2DO(dto *openapi.Tool) *entity.Tool { +func OpenAPIToolDTO2DO(dto *domainopenapi.Tool) *entity.Tool { if dto == nil { return nil } @@ -530,7 +529,7 @@ func OpenAPIToolDTO2DO(dto *openapi.Tool) *entity.Tool { } // OpenAPIFunctionDTO2DO 将openapi Function转换为entity Function -func OpenAPIFunctionDTO2DO(dto *openapi.Function) *entity.Function { +func OpenAPIFunctionDTO2DO(dto *domainopenapi.Function) *entity.Function { if dto == nil { return nil } @@ -542,7 +541,7 @@ func OpenAPIFunctionDTO2DO(dto *openapi.Function) *entity.Function { } // OpenAPIToolCallConfigDTO2DO 将openapi ToolCallConfig转换为entity ToolCallConfig -func OpenAPIToolCallConfigDTO2DO(dto *openapi.ToolCallConfig) *entity.ToolCallConfig { +func OpenAPIToolCallConfigDTO2DO(dto *domainopenapi.ToolCallConfig) *entity.ToolCallConfig { if dto == nil { return nil } @@ -553,12 +552,12 @@ func OpenAPIToolCallConfigDTO2DO(dto *openapi.ToolCallConfig) *entity.ToolCallCo } // OpenAPIToolChoiceTypeDTO2DO 将openapi ToolChoiceType转换为entity ToolChoiceType -func OpenAPIToolChoiceTypeDTO2DO(dto openapi.ToolChoiceType) entity.ToolChoiceType { +func OpenAPIToolChoiceTypeDTO2DO(dto domainopenapi.ToolChoiceType) entity.ToolChoiceType { return entity.ToolChoiceType(dto) } // OpenAPIToolChoiceSpecificationDTO2DO 将openapi ToolChoiceSpecification转换为entity ToolChoiceSpecification -func OpenAPIToolChoiceSpecificationDTO2DO(dto *openapi.ToolChoiceSpecification) *entity.ToolChoiceSpecification { +func OpenAPIToolChoiceSpecificationDTO2DO(dto *domainopenapi.ToolChoiceSpecification) *entity.ToolChoiceSpecification { if dto == nil { return nil } @@ -569,7 +568,7 @@ func OpenAPIToolChoiceSpecificationDTO2DO(dto *openapi.ToolChoiceSpecification) } // OpenAPIModelConfigDTO2DO 将openapi ModelConfig转换为entity ModelConfig -func OpenAPIModelConfigDTO2DO(dto *openapi.ModelConfig) *entity.ModelConfig { +func OpenAPIModelConfigDTO2DO(dto *domainopenapi.ModelConfig) *entity.ModelConfig { if dto == nil { return nil } @@ -589,7 +588,7 @@ func OpenAPIModelConfigDTO2DO(dto *openapi.ModelConfig) *entity.ModelConfig { } // OpenAPIThinkingConfigDTO2DO 将openapi ThinkingConfig转换为entity ThinkingConfig -func OpenAPIThinkingConfigDTO2DO(dto *openapi.ThinkingConfig) *entity.ThinkingConfig { +func OpenAPIThinkingConfigDTO2DO(dto *domainopenapi.ThinkingConfig) *entity.ThinkingConfig { if dto == nil { return nil } @@ -601,17 +600,17 @@ func OpenAPIThinkingConfigDTO2DO(dto *openapi.ThinkingConfig) *entity.ThinkingCo } // OpenAPIThinkingOptionDTO2DO 将openapi ThinkingOption转换为entity ThinkingOption -func OpenAPIThinkingOptionDTO2DO(dto *openapi.ThinkingOption) *entity.ThinkingOption { +func OpenAPIThinkingOptionDTO2DO(dto *domainopenapi.ThinkingOption) *entity.ThinkingOption { if dto == nil { return nil } var result entity.ThinkingOption switch *dto { - case openapi.ThinkingOptionDisabled: + case domainopenapi.ThinkingOptionDisabled: result = entity.ThinkingOptionDisabled - case openapi.ThinkingOptionEnabled: + case domainopenapi.ThinkingOptionEnabled: result = entity.ThinkingOptionEnabled - case openapi.ThinkingOptionAuto: + case domainopenapi.ThinkingOptionAuto: result = entity.ThinkingOptionAuto default: return nil @@ -620,19 +619,19 @@ func OpenAPIThinkingOptionDTO2DO(dto *openapi.ThinkingOption) *entity.ThinkingOp } // OpenAPIReasoningEffortDTO2DO 将openapi ReasoningEffort转换为entity ReasoningEffort -func OpenAPIReasoningEffortDTO2DO(dto *openapi.ReasoningEffort) *entity.ReasoningEffort { +func OpenAPIReasoningEffortDTO2DO(dto *domainopenapi.ReasoningEffort) *entity.ReasoningEffort { if dto == nil { return nil } var result entity.ReasoningEffort switch *dto { - case openapi.ReasoningEffortMinimal: + case domainopenapi.ReasoningEffortMinimal: result = entity.ReasoningEffortMinimal - case openapi.ReasoningEffortLow: + case domainopenapi.ReasoningEffortLow: result = entity.ReasoningEffortLow - case openapi.ReasoningEffortMedium: + case domainopenapi.ReasoningEffortMedium: result = entity.ReasoningEffortMedium - case openapi.ReasoningEffortHigh: + case domainopenapi.ReasoningEffortHigh: result = entity.ReasoningEffortHigh default: return nil @@ -641,11 +640,11 @@ func OpenAPIReasoningEffortDTO2DO(dto *openapi.ReasoningEffort) *entity.Reasonin } // OpenAPIThinkingConfigDO2DTO 将entity ThinkingConfig转换为openapi ThinkingConfig -func OpenAPIThinkingConfigDO2DTO(do *entity.ThinkingConfig) *openapi.ThinkingConfig { +func OpenAPIThinkingConfigDO2DTO(do *entity.ThinkingConfig) *domainopenapi.ThinkingConfig { if do == nil { return nil } - return &openapi.ThinkingConfig{ + return &domainopenapi.ThinkingConfig{ BudgetTokens: do.BudgetTokens, ThinkingOption: OpenAPIThinkingOptionDO2DTO(do.ThinkingOption), ReasoningEffort: OpenAPIReasoningEffortDO2DTO(do.ReasoningEffort), @@ -653,18 +652,18 @@ func OpenAPIThinkingConfigDO2DTO(do *entity.ThinkingConfig) *openapi.ThinkingCon } // OpenAPIThinkingOptionDO2DTO 将entity ThinkingOption转换为openapi ThinkingOption -func OpenAPIThinkingOptionDO2DTO(do *entity.ThinkingOption) *openapi.ThinkingOption { +func OpenAPIThinkingOptionDO2DTO(do *entity.ThinkingOption) *domainopenapi.ThinkingOption { if do == nil { return nil } - var result openapi.ThinkingOption + var result domainopenapi.ThinkingOption switch *do { case entity.ThinkingOptionDisabled: - result = openapi.ThinkingOptionDisabled + result = domainopenapi.ThinkingOptionDisabled case entity.ThinkingOptionEnabled: - result = openapi.ThinkingOptionEnabled + result = domainopenapi.ThinkingOptionEnabled case entity.ThinkingOptionAuto: - result = openapi.ThinkingOptionAuto + result = domainopenapi.ThinkingOptionAuto default: return nil } @@ -672,20 +671,20 @@ func OpenAPIThinkingOptionDO2DTO(do *entity.ThinkingOption) *openapi.ThinkingOpt } // OpenAPIReasoningEffortDO2DTO 将entity ReasoningEffort转换为openapi ReasoningEffort -func OpenAPIReasoningEffortDO2DTO(do *entity.ReasoningEffort) *openapi.ReasoningEffort { +func OpenAPIReasoningEffortDO2DTO(do *entity.ReasoningEffort) *domainopenapi.ReasoningEffort { if do == nil { return nil } - var result openapi.ReasoningEffort + var result domainopenapi.ReasoningEffort switch *do { case entity.ReasoningEffortMinimal: - result = openapi.ReasoningEffortMinimal + result = domainopenapi.ReasoningEffortMinimal case entity.ReasoningEffortLow: - result = openapi.ReasoningEffortLow + result = domainopenapi.ReasoningEffortLow case entity.ReasoningEffortMedium: - result = openapi.ReasoningEffortMedium + result = domainopenapi.ReasoningEffortMedium case entity.ReasoningEffortHigh: - result = openapi.ReasoningEffortHigh + result = domainopenapi.ReasoningEffortHigh default: return nil } @@ -693,7 +692,7 @@ func OpenAPIReasoningEffortDO2DTO(do *entity.ReasoningEffort) *openapi.Reasoning } // OpenAPIBatchParamConfigValueDTO2DO 将openapi ParamConfigValue转换为entity ParamConfigValue -func OpenAPIBatchParamConfigValueDTO2DO(dtos []*openapi.ParamConfigValue) []*entity.ParamConfigValue { +func OpenAPIBatchParamConfigValueDTO2DO(dtos []*domainopenapi.ParamConfigValue) []*entity.ParamConfigValue { if dtos == nil { return nil } @@ -707,7 +706,7 @@ func OpenAPIBatchParamConfigValueDTO2DO(dtos []*openapi.ParamConfigValue) []*ent } // OpenAPIParamConfigValueDTO2DO 将openapi ParamConfigValue转换为entity ParamConfigValue -func OpenAPIParamConfigValueDTO2DO(dto *openapi.ParamConfigValue) *entity.ParamConfigValue { +func OpenAPIParamConfigValueDTO2DO(dto *domainopenapi.ParamConfigValue) *entity.ParamConfigValue { if dto == nil { return nil } @@ -719,7 +718,7 @@ func OpenAPIParamConfigValueDTO2DO(dto *openapi.ParamConfigValue) *entity.ParamC } // OpenAPIParamOptionDTO2DO 将openapi ParamOption转换为entity ParamOption -func OpenAPIParamOptionDTO2DO(dto *openapi.ParamOption) *entity.ParamOption { +func OpenAPIParamOptionDTO2DO(dto *domainopenapi.ParamOption) *entity.ParamOption { if dto == nil { return nil } @@ -730,7 +729,7 @@ func OpenAPIParamOptionDTO2DO(dto *openapi.ParamOption) *entity.ParamOption { } // OpenAPIResponseAPIConfigDTO2DO 将openapi ResponseAPIConfig转换为entity ResponseAPIConfig -func OpenAPIResponseAPIConfigDTO2DO(dto *openapi.ResponseAPIConfig) *entity.ResponseAPIConfig { +func OpenAPIResponseAPIConfigDTO2DO(dto *domainopenapi.ResponseAPIConfig) *entity.ResponseAPIConfig { if dto == nil { return nil } diff --git a/backend/modules/prompt/application/openapi.go b/backend/modules/prompt/application/openapi.go index e9fd06566..4dfd8b77e 100644 --- a/backend/modules/prompt/application/openapi.go +++ b/backend/modules/prompt/application/openapi.go @@ -22,6 +22,7 @@ import ( "github.com/coze-dev/coze-loop/backend/infra/limiter" "github.com/coze-dev/coze-loop/backend/infra/looptracer" "github.com/coze-dev/coze-loop/backend/infra/metrics" + domainopenapi "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/prompt/domain_openapi/prompt" "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/prompt/openapi" "github.com/coze-dev/coze-loop/backend/modules/prompt/application/convertor" "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/component/conf" @@ -122,9 +123,9 @@ func (p *PromptOpenAPIApplicationImpl) ListPromptBasic(ctx context.Context, req } // 构建响应 - r.Data = openapi.NewListPromptBasicData() + r.Data = domainopenapi.NewListPromptBasicData() r.Data.Total = ptr.Of(int32(result.Total)) - r.Data.Prompts = make([]*openapi.PromptBasic, 0, len(result.PromptDOs)) + r.Data.Prompts = make([]*domainopenapi.PromptBasic, 0, len(result.PromptDOs)) for _, promptDO := range result.PromptDOs { promptBasic := convertor.OpenAPIPromptBasicDO2DTO(promptDO) if promptBasic != nil { @@ -295,7 +296,7 @@ func (p *PromptOpenAPIApplicationImpl) fetchPromptResults(ctx context.Context, r // 构建响应 r := openapi.NewBatchGetPromptByPromptKeyResponse() - r.Data = openapi.NewPromptResultData() + r.Data = domainopenapi.NewPromptResultData() for _, q := range req.Queries { if q == nil { @@ -322,7 +323,7 @@ func (p *PromptOpenAPIApplicationImpl) fetchPromptResults(ctx context.Context, r errorx.WithExtra(map[string]string{"prompt_key": q.GetPromptKey(), "version": q.GetVersion()})) } - r.Data.Items = append(r.Data.Items, &openapi.PromptResult_{ + r.Data.Items = append(r.Data.Items, &domainopenapi.PromptResult_{ Query: q, Prompt: promptDTO, }) @@ -422,7 +423,7 @@ func (p *PromptOpenAPIApplicationImpl) Execute(ctx context.Context, req *openapi } // 构建返回结果 if reply != nil && reply.Item != nil { - r.Data = &openapi.ExecuteData{ + r.Data = &domainopenapi.ExecuteData{ Message: convertor.OpenAPIMessageDO2DTO(reply.Item.Message), FinishReason: &reply.Item.FinishReason, Usage: convertor.OpenAPITokenUsageDO2DTO(reply.Item.TokenUsage), @@ -635,7 +636,7 @@ func (p *PromptOpenAPIApplicationImpl) doExecuteStreaming(ctx context.Context, r } } chunk := &openapi.ExecuteStreamingResponse{ - Data: &openapi.ExecuteStreamingData{ + Data: &domainopenapi.ExecuteStreamingData{ Message: convertor.OpenAPIMessageDO2DTO(reply.Item.Message), FinishReason: ptr.Of(reply.Item.FinishReason), Usage: convertor.OpenAPITokenUsageDO2DTO(reply.Item.TokenUsage), @@ -699,7 +700,7 @@ func (p *PromptOpenAPIApplicationImpl) ptaasAllowByPromptKey(ctx context.Context } // getPromptByPromptKey 根据prompt_key获取prompt -func (p *PromptOpenAPIApplicationImpl) getPromptByPromptKey(ctx context.Context, spaceID int64, promptIdentifier *openapi.PromptQuery) (prompt *entity.Prompt, err error) { +func (p *PromptOpenAPIApplicationImpl) getPromptByPromptKey(ctx context.Context, spaceID int64, promptIdentifier *domainopenapi.PromptQuery) (prompt *entity.Prompt, err error) { if promptIdentifier == nil { return nil, errors.New("prompt identifier is nil") } @@ -839,7 +840,7 @@ func normalizeExecuteRequest(req *openapi.ExecuteRequest) *openapi.ExecuteReques if normalizedReq.GetReleaseLabel() != "" { if normalizedReq.PromptIdentifier == nil { - normalizedReq.PromptIdentifier = openapi.NewPromptQuery() + normalizedReq.PromptIdentifier = domainopenapi.NewPromptQuery() } if normalizedReq.PromptIdentifier.GetLabel() == "" { normalizedReq.PromptIdentifier.Label = ptr.Of(normalizedReq.GetReleaseLabel()) @@ -851,8 +852,8 @@ func normalizeExecuteRequest(req *openapi.ExecuteRequest) *openapi.ExecuteReques // custom_tool_config 兼容字段优先级低于 custom_tool_call_config normalizedReq.CustomToolCallConfig = normalizedReq.CustomToolConfig } else if len(normalizedReq.CustomTools) > 0 { - normalizedReq.CustomToolCallConfig = &openapi.ToolCallConfig{ - ToolChoice: ptr.Of(openapi.ToolChoiceTypeAuto), + normalizedReq.CustomToolCallConfig = &domainopenapi.ToolCallConfig{ + ToolChoice: ptr.Of(domainopenapi.ToolChoiceTypeAuto), } } } @@ -867,16 +868,16 @@ func getRequestPromptKey(req *openapi.ExecuteRequest) string { return req.GetPromptIdentifier().GetPromptKey() } -func getRequestAccountMode(req *openapi.ExecuteRequest) openapi.AccountMode { +func getRequestAccountMode(req *openapi.ExecuteRequest) domainopenapi.AccountMode { if req == nil || req.AccountMode == nil { - return openapi.AccountModeSharedAccount + return domainopenapi.AccountModeSharedAccount } return req.GetAccountMode() } -func getRequestUsageScenario(req *openapi.ExecuteRequest) openapi.UsageScenario { +func getRequestUsageScenario(req *openapi.ExecuteRequest) domainopenapi.UsageScenario { if req == nil || req.UsageScenario == nil { - return openapi.UsageScenarioPromptAsAService + return domainopenapi.UsageScenarioPromptAsAService } return req.GetUsageScenario() } @@ -973,14 +974,14 @@ func validateExecuteRequest(req *openapi.ExecuteRequest) error { if req.GetPromptIdentifier() == nil || req.GetPromptIdentifier().GetPromptKey() == "" { return errorx.NewByCode(prompterr.CommonInvalidParamCode, errorx.WithExtra(map[string]string{"invalid_param": "prompt_key参数为空"})) } - validateParts := func(parts []*openapi.ContentPart) error { + validateParts := func(parts []*domainopenapi.ContentPart) error { for _, part := range parts { switch part.GetType() { - case openapi.ContentTypeImageURL: + case domainopenapi.ContentTypeImageURL: if !govalidator.IsURL(part.GetImageURL()) { return errorx.NewByCode(prompterr.CommonInvalidParamCode, errorx.WithExtra(map[string]string{"invalid_param": fmt.Sprintf("%s不是有效的URL", part.GetImageURL())})) } - case openapi.ContentTypeBase64Data: + case domainopenapi.ContentTypeBase64Data: if _, err = dataurl.DecodeString(part.GetBase64Data()); err != nil { return errorx.NewByCode(prompterr.CommonInvalidParamCode, errorx.WithExtra(map[string]string{"invalid_param": "存在无效的base64数据,数据格式应该符合data:[][;base64],"})) } @@ -1065,7 +1066,7 @@ func (p *PromptOpenAPIApplicationImpl) applyCustomOverrides(promptDO *entity.Pro } // validateAndApplyCustomModelConfig 验证并应用自定义模型配置(全量覆盖) -func (p *PromptOpenAPIApplicationImpl) validateAndApplyCustomModelConfig(promptDO *entity.Prompt, customModelConfig *openapi.ModelConfig) error { +func (p *PromptOpenAPIApplicationImpl) validateAndApplyCustomModelConfig(promptDO *entity.Prompt, customModelConfig *domainopenapi.ModelConfig) error { if customModelConfig == nil { return nil } diff --git a/backend/modules/prompt/domain/entity/prompt_detail.go b/backend/modules/prompt/domain/entity/prompt_detail.go index f0c0303bb..cae798e1a 100644 --- a/backend/modules/prompt/domain/entity/prompt_detail.go +++ b/backend/modules/prompt/domain/entity/prompt_detail.go @@ -212,22 +212,22 @@ type ThinkingConfig struct { } // ThinkingOption thinking开关选项 -type ThinkingOption int64 +type ThinkingOption string const ( - ThinkingOptionDisabled ThinkingOption = 1 - ThinkingOptionEnabled ThinkingOption = 2 - ThinkingOptionAuto ThinkingOption = 3 + ThinkingOptionDisabled ThinkingOption = "disabled" + ThinkingOptionEnabled ThinkingOption = "enabled" + ThinkingOptionAuto ThinkingOption = "auto" ) // ReasoningEffort 思考长度 -type ReasoningEffort int64 +type ReasoningEffort string const ( - ReasoningEffortMinimal ReasoningEffort = 1 - ReasoningEffortLow ReasoningEffort = 2 - ReasoningEffortMedium ReasoningEffort = 3 - ReasoningEffortHigh ReasoningEffort = 4 + ReasoningEffortMinimal ReasoningEffort = "minimal" + ReasoningEffortLow ReasoningEffort = "low" + ReasoningEffortMedium ReasoningEffort = "medium" + ReasoningEffortHigh ReasoningEffort = "high" ) type ParamConfigValue struct { diff --git a/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift b/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift index 18bef999a..a55f2d1bb 100644 --- a/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift +++ b/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift @@ -1,7 +1,7 @@ namespace go coze.loop.prompt.openapi include "../../../base.thrift" -include "./domain/prompt.thrift" +include "./domain_openapi/prompt.thrift" service PromptOpenAPIService { BatchGetPromptByPromptKeyResponse BatchGetPromptByPromptKey(1: BatchGetPromptByPromptKeyRequest req) (api.tag="openapi", api.post='/v1/loop/prompts/mget') @@ -12,7 +12,7 @@ service PromptOpenAPIService { struct BatchGetPromptByPromptKeyRequest { 1: optional i64 workspace_id (api.body="workspace_id", api.js_conv='true', go.tag='json:"workspace_id"') - 2: optional list queries (api.body="queries") + 2: optional list queries (api.body="queries") 255: optional base.Base Base } @@ -20,30 +20,26 @@ struct BatchGetPromptByPromptKeyRequest { struct BatchGetPromptByPromptKeyResponse { 1: optional i32 code 2: optional string msg - 3: optional PromptResultData data + 3: optional prompt.PromptResultData data 255: optional base.BaseResp BaseResp } -struct PromptResultData { - 1: optional list items -} - struct ExecuteRequest { 1: optional i64 workspace_id (api.body="workspace_id", api.js_conv='true', go.tag='json:"workspace_id"') // 工作空间ID - 2: optional PromptQuery prompt_identifier (api.body="prompt_identifier") // Prompt 标识 + 2: optional prompt.PromptQuery prompt_identifier (api.body="prompt_identifier") // Prompt 标识 - 10: optional list variable_vals (api.body="variable_vals") // 变量值 - 11: optional list messages (api.body="messages") // 消息 + 10: optional list variable_vals (api.body="variable_vals") // 变量值 + 11: optional list messages (api.body="messages") // 消息 - 20: optional list custom_tools (api.body="custom_tools") // 自定义工具 - 21: optional ToolCallConfig custom_tool_call_config (api.body="custom_tool_call_config") // 自定义工具调用配置 - 22: optional ModelConfig custom_model_config (api.body="custom_model_config") // 自定义模型配置 - 23: optional ResponseAPIConfig response_api_config (api.body="response_api_config") // response api 配置 - 24: optional AccountMode account_mode (api.body="account_mode") // 账号模式(兼容字段) - 26: optional UsageScenario usage_scenario (api.body="usage_scenario") // 使用场景(兼容字段) + 20: optional list custom_tools (api.body="custom_tools") // 自定义工具 + 21: optional prompt.ToolCallConfig custom_tool_call_config (api.body="custom_tool_call_config") // 自定义工具调用配置 + 22: optional prompt.ModelConfig custom_model_config (api.body="custom_model_config") // 自定义模型配置 + 23: optional prompt.ResponseAPIConfig response_api_config (api.body="response_api_config") // response api 配置 + 24: optional prompt.AccountMode account_mode (api.body="account_mode") // 账号模式(兼容字段) + 26: optional prompt.UsageScenario usage_scenario (api.body="usage_scenario") // 使用场景(兼容字段) 28: optional string release_label (api.body="release_label") // 发布标签(兼容字段) - 29: optional ToolCallConfig custom_tool_config (api.body="custom_tool_config") // 自定义工具配置(兼容字段) + 29: optional prompt.ToolCallConfig custom_tool_config (api.body="custom_tool_config") // 自定义工具配置(兼容字段) 255: optional base.Base Base } @@ -51,218 +47,20 @@ struct ExecuteRequest { struct ExecuteResponse { 1: optional i32 code 2: optional string msg - 3: optional ExecuteData data + 3: optional prompt.ExecuteData data 255: optional base.BaseResp BaseResp } -struct ExecuteData { - 1: optional Message message // 消息 - 2: optional string finish_reason // 结束原因 - 3: optional TokenUsage usage // token消耗 -} - struct ExecuteStreamingResponse { 1: optional string id 2: optional string event 3: optional i64 retry - 4: optional ExecuteStreamingData data + 4: optional prompt.ExecuteStreamingData data 255: optional base.BaseResp BaseResp } -struct ExecuteStreamingData { - 1: optional i32 code - 2: optional string msg - 3: optional Message message // 消息 - 4: optional string finish_reason // 结束原因 - 5: optional TokenUsage usage // token消耗 -} - -struct PromptQuery { - 1: optional string prompt_key // prompt_key - 2: optional string version // prompt版本 - 3: optional string label // prompt版本标识(如果version不为空,该字段会被忽略) -} - -struct PromptResult { - 1: optional PromptQuery query - 2: optional Prompt prompt -} - -struct Prompt { - 1: optional i64 workspace_id (api.js_conv='true', go.tag='json:"workspace_id"') // 空间ID - 2: optional string prompt_key // 唯一标识 - 3: optional string version // 版本 - 4: optional PromptTemplate prompt_template // Prompt模板 - 5: optional list tools // tool定义 - 6: optional ToolCallConfig tool_call_config // tool调用配置 - 7: optional LLMConfig llm_config // 模型配置 - 8: optional i64 id (api.js_conv='true', go.tag='json:"id"') // promptId - 9: optional string display_name // Prompt名称 - 10: optional string description // Prompt描述 - 11: optional PromptType prompt_type // Prompt类型 - 12: optional string created_by - 14: optional i64 created_at (api.js_conv="true", go.tag='json:"created_at"') - 15: optional i64 updated_at (api.js_conv="true", go.tag='json:"updated_at"') - 16: optional PublishStatus status // 发布状态 - 17: optional PromptPublishInfo PublishInfo // 发布信息 - 18: optional SecurityLevel security_level // 密级标签 -} - -typedef string PromptType (ts.enum="true") -const PromptType PromptType_Normal = "normal" -const PromptType PromptType_Snippet = "snippet" - -struct PromptTemplate { - 1: optional TemplateType template_type // 模板类型 - 2: optional list messages // 只支持message list形式托管 - 3: optional list variable_defs // 变量定义 - - 100: optional map metadata // 模板级元信息 -} - -typedef string TemplateType (ts.enum="true") -const TemplateType TemplateType_Normal = "normal" -const TemplateType TemplateType_Jinja2 = "jinja2" -const TemplateType TemplateType_GoTemplate = "go_template" -const TemplateType TemplateType_CustomTemplate_M = "custom_template_m" - -struct ToolCallConfig { - 1: optional ToolChoiceType tool_choice - 2: optional ToolChoiceSpecification tool_choice_specification -} - -struct ToolChoiceSpecification { - 1: optional ToolType type - 2: optional string name -} - -typedef string ToolChoiceType (ts.enum="true") -const ToolChoiceType ToolChoiceType_Auto = "auto" -const ToolChoiceType ToolChoiceType_None = "none" -const ToolChoiceType ToolChoiceType_Specific = "specific" - -struct Message { - 1: optional Role role // 角色 - 2: optional string content // 消息内容 - 3: optional list parts // 多模态内容 - 4: optional string reasoning_content // 推理思考内容 - 5: optional string tool_call_id // tool调用ID(role为tool时有效) - 6: optional list tool_calls // tool调用(role为assistant时有效) - 7: optional bool skip_render // 是否跳过需要渲染 - 8: optional string signature // gemini的签名 - - 100: optional map metadata // 消息元信息 -} - -struct ContentPart { - 1: optional ContentType type - 2: optional string text - 3: optional string image_url - 4: optional string base64_data - 5: optional string video_url - 6: optional MediaConfig config - 7: optional string signature - 8: optional string image_uri - 9: optional string video_uri -} - -struct MediaConfig { - 1: optional double fps (vt.ge="0.2", vt.le="5") - 2: optional string image_resolution -} - -typedef string ContentType (ts.enum="true") -const ContentType ContentType_Text = "text" -const ContentType ContentType_ImageURL = "image_url" -const ContentType ContentType_VideoURL = "video_url" -const ContentType ContentType_Base64Data = "base64_data" -const ContentType ContentType_MultiPartVariable = "multi_part_variable" - -struct VariableDef { - 1: optional string key // 变量名字 - 2: optional string desc // 变量描述 - 3: optional VariableType type // 变量类型 -} - -typedef string VariableType (ts.enum="true") -const VariableType VariableType_String = "string" -const VariableType VariableType_Boolean = "boolean" -const VariableType VariableType_Integer = "integer" -const VariableType VariableType_Float = "float" -const VariableType VariableType_Object = "object" -const VariableType VariableType_Array_String = "array" -const VariableType VariableType_Array_Boolean = "array" -const VariableType VariableType_Array_Integer = "array" -const VariableType VariableType_Array_Float = "array" -const VariableType VariableType_Array_Object = "array" -const VariableType VariableType_Placeholder = "placeholder" -const VariableType VariableType_MultiPart = "multi_part" - -typedef string Role (ts.enum="true") -const Role Role_System = "system" -const Role Role_User = "user" -const Role Role_Assistant = "assistant" -const Role Role_Tool = "tool" -const Role Role_Placeholder = "placeholder" - -struct Tool { - 1: optional ToolType type - 2: optional Function function - 3: optional bool disable // 时候禁用 -} - -typedef string ToolType (ts.enum="true") -const ToolType ToolType_Function = "function" -const ToolType ToolType_GoogleSearch = "google_search" - -struct Function { - 1: optional string name - 2: optional string description - 3: optional string parameters -} - -struct ToolCall { - 1: optional i32 index - 2: optional string id - 3: optional ToolType type - 4: optional FunctionCall function_call - 5: optional string output_id - 6: optional string signature -} - -struct FunctionCall { - 1: optional string name - 2: optional string arguments -} - -struct LLMConfig { - 1: optional double temperature - 2: optional i32 max_tokens - 3: optional i32 top_k - 4: optional double top_p - 5: optional double presence_penalty - 6: optional double frequency_penalty - 7: optional bool json_mode - 8: optional i64 id (api.js_conv='true', go.tag='json:"id"') - 9: optional string name - 10: optional ThinkingConfig thinking - 11: optional string extra -} - -struct VariableVal { - 1: optional string key // 变量key - 2: optional string value // 普通变量值(非string类型,如boolean、integer、float、object等,序列化后传入) - 3: optional list placeholder_messages // placeholder变量值 - 4: optional list multi_part_values // 多模态变量值 -} - -struct TokenUsage { - 1: optional i32 input_tokens // 输入消耗 - 2: optional i32 output_tokens // 输出消耗 -} - struct ListPromptBasicRequest { 1: optional i64 workspace_id (api.body="workspace_id", api.js_conv='true', go.tag='json:"workspace_id"') 2: optional i32 page_number (api.body="page_number", vt.gt = "0") @@ -277,105 +75,7 @@ struct ListPromptBasicRequest { struct ListPromptBasicResponse { 1: optional i32 code 2: optional string msg - 3: optional ListPromptBasicData data + 3: optional prompt.ListPromptBasicData data 255: optional base.BaseResp BaseResp } - -struct PromptBasic { - 1: optional i64 id (api.js_conv='true', go.tag='json:"id"') // Prompt ID - 2: optional i64 workspace_id (api.js_conv='true', go.tag='json:"workspace_id"') // 工作空间ID - 3: optional string prompt_key // 唯一标识 - 4: optional string display_name // Prompt名称 - 5: optional string description // Prompt描述 - 6: optional string latest_version // 最新版本 - 7: optional string created_by // 创建者 - 8: optional string updated_by // 更新者 - 9: optional i64 created_at (api.js_conv='true', go.tag='json:"created_at"') // 创建时间 - 10: optional i64 updated_at (api.js_conv='true', go.tag='json:"updated_at"') // 更新时间 - 11: optional i64 latest_committed_at (api.js_conv='true', go.tag='json:"latest_committed_at"') // 最后提交时间 -} - -struct ListPromptBasicData { - 1: optional list prompts // Prompt列表 - 2: optional i32 total -} - -struct PromptPublishInfo { - 1: string publisher // 发布者 - 2: string publish_description // 发布描述 - 3: optional i64 publish_at (api.js_conv='true', go.tag='json:"publish_at"') // 发布时间 -} - -typedef string PublishStatus (ts.enum="true") -const PublishStatus PublishStatus_Undefined = "undefined" -const PublishStatus PublishStatus_UnPublish = "unpublish" -const PublishStatus PublishStatus_Published = "published" - -typedef string SecurityLevel (ts.enum="true") -const SecurityLevel SecurityLevel_Undefined = "undefined" -const SecurityLevel SecurityLevel_L1 = "L1" -const SecurityLevel SecurityLevel_L2 = "L2" -const SecurityLevel SecurityLevel_L3 = "L3" -const SecurityLevel SecurityLevel_L4 = "L4" - -struct ThinkingConfig { - 1: optional i64 budget_tokens (agw.key="budget_tokens", api.js_conv='true', go.tag='json:"budget_tokens"') // thinking内容的最大输出token - 2: optional ThinkingOption thinking_option (agw.key="thinking_option") - 3: optional ReasoningEffort reasoning_effort (agw.key="reasoning_effort") // 思考长度 -} - -typedef string ReasoningEffort (ts.enum="true") -const ReasoningEffort ReasoningEffort_Minimal = "minimal" -const ReasoningEffort ReasoningEffort_Low = "low" -const ReasoningEffort ReasoningEffort_Medium = "medium" -const ReasoningEffort ReasoningEffort_High = "high" - -typedef string ThinkingOption (ts.enum="true") -const ThinkingOption ThinkingOption_Disabled = "disabled" -const ThinkingOption ThinkingOption_Enabled = "enabled" -const ThinkingOption ThinkingOption_Auto = "auto" - -struct ModelConfig { - 1: optional i64 model_id (api.js_conv="true", go.tag='json:"model_id"') - 2: optional i32 max_tokens - 3: optional double temperature - 4: optional i32 top_k - 5: optional double top_p - 6: optional double presence_penalty - 7: optional double frequency_penalty - 8: optional bool json_mode - 9: optional string extra - 10: optional ThinkingConfig thinking - - 100: optional list param_config_values -} - -struct ResponseAPIConfig { - 1: optional string previous_response_id // 上一次响应的ID - 2: optional bool enable_caching // 是否开启缓存 - 3: optional string session_id // 一轮会话的唯一标识 -} - -typedef string AccountMode (ts.enum="true") -const AccountMode AccountMode_SharedAccount = "shared_account" // 使用共享模型账号 -const AccountMode AccountMode_CustomAccount = "custom_account" // 使用自定义模型账号 - -typedef string UsageScenario (ts.enum="true") -const UsageScenario UsageScenario_Default = "default" -const UsageScenario UsageScenario_Evaluation = "evaluation" -const UsageScenario UsageScenario_PromptAsAService = "prompt_as_a_service" -const UsageScenario UsageScenario_AIAnnotate = "ai_annotate" -const UsageScenario UsageScenario_AIScore = "ai_score" -const UsageScenario UsageScenario_AITag = "ai_tag" - -struct ParamConfigValue { - 1: optional string name // 传给下游模型的key,与ParamSchema.name对齐 - 2: optional string label // 展示名称 - 3: optional ParamOption value // 传给下游模型的value,与ParamSchema.options对齐 -} - -struct ParamOption { - 1: optional string value // 实际值 - 2: optional string label // 展示值 -} diff --git a/idl/thrift/coze/loop/prompt/domain/prompt.thrift b/idl/thrift/coze/loop/prompt/domain/prompt.thrift index 57c5b1346..87fbf4649 100644 --- a/idl/thrift/coze/loop/prompt/domain/prompt.thrift +++ b/idl/thrift/coze/loop/prompt/domain/prompt.thrift @@ -150,18 +150,16 @@ struct ThinkingConfig { 3: optional ReasoningEffort reasoning_effort (agw.key="reasoning_effort") // 思考长度 } -enum ReasoningEffort { - Minimal = 1 - Low = 2 - Medium = 3 - High = 4 -} - -enum ThinkingOption { - Disabled = 1 - Enabled = 2 - Auto = 3 -} +typedef string ReasoningEffort (ts.enum="true") +const ReasoningEffort ReasoningEffort_Minimal = "minimal" +const ReasoningEffort ReasoningEffort_Low = "low" +const ReasoningEffort ReasoningEffort_Medium = "medium" +const ReasoningEffort ReasoningEffort_High = "high" + +typedef string ThinkingOption (ts.enum="true") +const ThinkingOption ThinkingOption_Disabled = "disabled" +const ThinkingOption ThinkingOption_Enabled = "enabled" +const ThinkingOption ThinkingOption_Auto = "auto" struct ParamConfigValue { 1: optional string name // 传给下游模型的key,与ParamSchema.name对齐 diff --git a/idl/thrift/coze/loop/prompt/domain_openapi/prompt.thrift b/idl/thrift/coze/loop/prompt/domain_openapi/prompt.thrift new file mode 100644 index 000000000..7a13d3457 --- /dev/null +++ b/idl/thrift/coze/loop/prompt/domain_openapi/prompt.thrift @@ -0,0 +1,301 @@ +namespace go coze.loop.prompt.domain_openapi.prompt + +typedef string PromptType (ts.enum="true") +const PromptType PromptType_Normal = "normal" +const PromptType PromptType_Snippet = "snippet" + +typedef string TemplateType (ts.enum="true") +const TemplateType TemplateType_Normal = "normal" +const TemplateType TemplateType_Jinja2 = "jinja2" +const TemplateType TemplateType_GoTemplate = "go_template" +const TemplateType TemplateType_CustomTemplate_M = "custom_template_m" + +typedef string ToolChoiceType (ts.enum="true") +const ToolChoiceType ToolChoiceType_Auto = "auto" +const ToolChoiceType ToolChoiceType_None = "none" +const ToolChoiceType ToolChoiceType_Specific = "specific" + +typedef string ContentType (ts.enum="true") +const ContentType ContentType_Text = "text" +const ContentType ContentType_ImageURL = "image_url" +const ContentType ContentType_VideoURL = "video_url" +const ContentType ContentType_Base64Data = "base64_data" +const ContentType ContentType_MultiPartVariable = "multi_part_variable" + +typedef string VariableType (ts.enum="true") +const VariableType VariableType_String = "string" +const VariableType VariableType_Boolean = "boolean" +const VariableType VariableType_Integer = "integer" +const VariableType VariableType_Float = "float" +const VariableType VariableType_Object = "object" +const VariableType VariableType_Array_String = "array" +const VariableType VariableType_Array_Boolean = "array" +const VariableType VariableType_Array_Integer = "array" +const VariableType VariableType_Array_Float = "array" +const VariableType VariableType_Array_Object = "array" +const VariableType VariableType_Placeholder = "placeholder" +const VariableType VariableType_MultiPart = "multi_part" + +typedef string Role (ts.enum="true") +const Role Role_System = "system" +const Role Role_User = "user" +const Role Role_Assistant = "assistant" +const Role Role_Tool = "tool" +const Role Role_Placeholder = "placeholder" + +typedef string ToolType (ts.enum="true") +const ToolType ToolType_Function = "function" +const ToolType ToolType_GoogleSearch = "google_search" + +typedef string PublishStatus (ts.enum="true") +const PublishStatus PublishStatus_Undefined = "undefined" +const PublishStatus PublishStatus_UnPublish = "unpublish" +const PublishStatus PublishStatus_Published = "published" + +typedef string SecurityLevel (ts.enum="true") +const SecurityLevel SecurityLevel_Undefined = "undefined" +const SecurityLevel SecurityLevel_L1 = "L1" +const SecurityLevel SecurityLevel_L2 = "L2" +const SecurityLevel SecurityLevel_L3 = "L3" +const SecurityLevel SecurityLevel_L4 = "L4" + +typedef string ReasoningEffort (ts.enum="true") +const ReasoningEffort ReasoningEffort_Minimal = "minimal" +const ReasoningEffort ReasoningEffort_Low = "low" +const ReasoningEffort ReasoningEffort_Medium = "medium" +const ReasoningEffort ReasoningEffort_High = "high" + +typedef string ThinkingOption (ts.enum="true") +const ThinkingOption ThinkingOption_Disabled = "disabled" +const ThinkingOption ThinkingOption_Enabled = "enabled" +const ThinkingOption ThinkingOption_Auto = "auto" + +typedef string AccountMode (ts.enum="true") +const AccountMode AccountMode_SharedAccount = "shared_account" +const AccountMode AccountMode_CustomAccount = "custom_account" + +typedef string UsageScenario (ts.enum="true") +const UsageScenario UsageScenario_Default = "default" +const UsageScenario UsageScenario_Evaluation = "evaluation" +const UsageScenario UsageScenario_PromptAsAService = "prompt_as_a_service" +const UsageScenario UsageScenario_AIAnnotate = "ai_annotate" +const UsageScenario UsageScenario_AIScore = "ai_score" +const UsageScenario UsageScenario_AITag = "ai_tag" + +struct PromptQuery { + 1: optional string prompt_key // prompt_key + 2: optional string version // prompt版本 + 3: optional string label // prompt版本标识(如果version不为空,该字段会被忽略) +} + +struct PromptResultData { + 1: optional list items +} + +struct PromptResult { + 1: optional PromptQuery query + 2: optional Prompt prompt +} + +struct Prompt { + 1: optional i64 workspace_id (api.js_conv='true', go.tag='json:"workspace_id"') // 空间ID + 2: optional string prompt_key // 唯一标识 + 3: optional string version // 版本 + 4: optional PromptTemplate prompt_template // Prompt模板 + 5: optional list tools // tool定义 + 6: optional ToolCallConfig tool_call_config // tool调用配置 + 7: optional LLMConfig llm_config // 模型配置 + 8: optional i64 id (api.js_conv='true', go.tag='json:"id"') // promptId + 9: optional string display_name // Prompt名称 + 10: optional string description // Prompt描述 + 11: optional PromptType prompt_type // Prompt类型 + 12: optional string created_by + 14: optional i64 created_at (api.js_conv="true", go.tag='json:"created_at"') + 15: optional i64 updated_at (api.js_conv="true", go.tag='json:"updated_at"') + 16: optional PublishStatus status // 发布状态 + 17: optional PromptPublishInfo PublishInfo // 发布信息 + 18: optional SecurityLevel security_level // 密级标签 +} + +struct PromptTemplate { + 1: optional TemplateType template_type // 模板类型 + 2: optional list messages // 只支持message list形式托管 + 3: optional list variable_defs // 变量定义 + + 100: optional map metadata // 模板级元信息 +} + +struct ToolCallConfig { + 1: optional ToolChoiceType tool_choice + 2: optional ToolChoiceSpecification tool_choice_specification +} + +struct ToolChoiceSpecification { + 1: optional ToolType type + 2: optional string name +} + +struct Message { + 1: optional Role role // 角色 + 2: optional string content // 消息内容 + 3: optional list parts // 多模态内容 + 4: optional string reasoning_content // 推理思考内容 + 5: optional string tool_call_id // tool调用ID(role为tool时有效) + 6: optional list tool_calls // tool调用(role为assistant时有效) + 7: optional bool skip_render // 是否跳过需要渲染 + 8: optional string signature // gemini的签名 + + 100: optional map metadata // 消息元信息 +} + +struct ContentPart { + 1: optional ContentType type + 2: optional string text + 3: optional string image_url + 4: optional string base64_data + 5: optional string video_url + 6: optional MediaConfig config + 7: optional string signature + 8: optional string image_uri + 9: optional string video_uri +} + +struct MediaConfig { + 1: optional double fps (vt.ge="0.2", vt.le="5") + 2: optional string image_resolution +} + +struct VariableDef { + 1: optional string key // 变量名字 + 2: optional string desc // 变量描述 + 3: optional VariableType type // 变量类型 +} + +struct Tool { + 1: optional ToolType type + 2: optional Function function + 3: optional bool disable // 时候禁用 +} + +struct Function { + 1: optional string name + 2: optional string description + 3: optional string parameters +} + +struct ToolCall { + 1: optional i32 index + 2: optional string id + 3: optional ToolType type + 4: optional FunctionCall function_call + 5: optional string output_id + 6: optional string signature +} + +struct FunctionCall { + 1: optional string name + 2: optional string arguments +} + +struct LLMConfig { + 1: optional double temperature + 2: optional i32 max_tokens + 3: optional i32 top_k + 4: optional double top_p + 5: optional double presence_penalty + 6: optional double frequency_penalty + 7: optional bool json_mode + 8: optional i64 id (api.js_conv='true', go.tag='json:"id"') + 9: optional string name + 10: optional ThinkingConfig thinking + 11: optional string extra +} + +struct VariableVal { + 1: optional string key // 变量key + 2: optional string value // 普通变量值(非string类型,如boolean、integer、float、object等,序列化后传入) + 3: optional list placeholder_messages // placeholder变量值 + 4: optional list multi_part_values // 多模态变量值 +} + +struct TokenUsage { + 1: optional i32 input_tokens // 输入消耗 + 2: optional i32 output_tokens // 输出消耗 +} + +struct PromptBasic { + 1: optional i64 id (api.js_conv='true', go.tag='json:"id"') // Prompt ID + 2: optional i64 workspace_id (api.js_conv='true', go.tag='json:"workspace_id"') // 工作空间ID + 3: optional string prompt_key // 唯一标识 + 4: optional string display_name // Prompt名称 + 5: optional string description // Prompt描述 + 6: optional string latest_version // 最新版本 + 7: optional string created_by // 创建者 + 8: optional string updated_by // 更新者 + 9: optional i64 created_at (api.js_conv='true', go.tag='json:"created_at"') // 创建时间 + 10: optional i64 updated_at (api.js_conv='true', go.tag='json:"updated_at"') // 更新时间 + 11: optional i64 latest_committed_at (api.js_conv='true', go.tag='json:"latest_committed_at"') // 最后提交时间 +} + +struct ListPromptBasicData { + 1: optional list prompts // Prompt列表 + 2: optional i32 total +} + +struct PromptPublishInfo { + 1: string publisher // 发布者 + 2: string publish_description // 发布描述 + 3: optional i64 publish_at (api.js_conv='true', go.tag='json:"publish_at"') // 发布时间 +} + +struct ThinkingConfig { + 1: optional i64 budget_tokens (agw.key="budget_tokens", api.js_conv='true', go.tag='json:"budget_tokens"') // thinking内容的最大输出token + 2: optional ThinkingOption thinking_option (agw.key="thinking_option") + 3: optional ReasoningEffort reasoning_effort (agw.key="reasoning_effort") // 思考长度 +} + +struct ModelConfig { + 1: optional i64 model_id (api.js_conv="true", go.tag='json:"model_id"') + 2: optional i32 max_tokens + 3: optional double temperature + 4: optional i32 top_k + 5: optional double top_p + 6: optional double presence_penalty + 7: optional double frequency_penalty + 8: optional bool json_mode + 9: optional string extra + 10: optional ThinkingConfig thinking + + 100: optional list param_config_values +} + +struct ResponseAPIConfig { + 1: optional string previous_response_id // 上一次响应的ID + 2: optional bool enable_caching // 是否开启缓存 + 3: optional string session_id // 一轮会话的唯一标识 +} + +struct ParamConfigValue { + 1: optional string name // 传给下游模型的key,与ParamSchema.name对齐 + 2: optional string label // 展示名称 + 3: optional ParamOption value // 传给下游模型的value,与ParamSchema.options对齐 +} + +struct ParamOption { + 1: optional string value // 实际值 + 2: optional string label // 展示值 +} + +struct ExecuteData { + 1: optional Message message // 消息 + 2: optional string finish_reason // 结束原因 + 3: optional TokenUsage usage // token消耗 +} + +struct ExecuteStreamingData { + 1: optional i32 code + 2: optional string msg + 3: optional Message message // 消息 + 4: optional string finish_reason // 结束原因 + 5: optional TokenUsage usage // token消耗 +} From 59d756dc5cc2a28e1bc01ccd58c52a814b5b7aae Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Wed, 18 Mar 2026 15:21:23 +0800 Subject: [PATCH 52/58] [feat][prompt]: fix enum --- .../coze/loop/prompt/domain/prompt/prompt.go | 149 ++++-------------- 1 file changed, 32 insertions(+), 117 deletions(-) diff --git a/backend/kitex_gen/coze/loop/prompt/domain/prompt/prompt.go b/backend/kitex_gen/coze/loop/prompt/domain/prompt/prompt.go index 9d636ffbd..f9ed439a1 100644 --- a/backend/kitex_gen/coze/loop/prompt/domain/prompt/prompt.go +++ b/backend/kitex_gen/coze/loop/prompt/domain/prompt/prompt.go @@ -3,8 +3,6 @@ package prompt import ( - "database/sql" - "database/sql/driver" "fmt" "github.com/apache/thrift/lib/go/thrift" "strings" @@ -41,6 +39,20 @@ const ( ToolChoiceTypeSpecific = "specific" + ReasoningEffortMinimal = "minimal" + + ReasoningEffortLow = "low" + + ReasoningEffortMedium = "medium" + + ReasoningEffortHigh = "high" + + ThinkingOptionDisabled = "disabled" + + ThinkingOptionEnabled = "enabled" + + ThinkingOptionAuto = "auto" + RoleSystem = "system" RoleUser = "user" @@ -88,105 +100,6 @@ const ( ScenarioEvalTarget = "eval_target" ) -type ReasoningEffort int64 - -const ( - ReasoningEffort_Minimal ReasoningEffort = 1 - ReasoningEffort_Low ReasoningEffort = 2 - ReasoningEffort_Medium ReasoningEffort = 3 - ReasoningEffort_High ReasoningEffort = 4 -) - -func (p ReasoningEffort) String() string { - switch p { - case ReasoningEffort_Minimal: - return "Minimal" - case ReasoningEffort_Low: - return "Low" - case ReasoningEffort_Medium: - return "Medium" - case ReasoningEffort_High: - return "High" - } - return "" -} - -func ReasoningEffortFromString(s string) (ReasoningEffort, error) { - switch s { - case "Minimal": - return ReasoningEffort_Minimal, nil - case "Low": - return ReasoningEffort_Low, nil - case "Medium": - return ReasoningEffort_Medium, nil - case "High": - return ReasoningEffort_High, nil - } - return ReasoningEffort(0), fmt.Errorf("not a valid ReasoningEffort string") -} - -func ReasoningEffortPtr(v ReasoningEffort) *ReasoningEffort { return &v } -func (p *ReasoningEffort) Scan(value interface{}) (err error) { - var result sql.NullInt64 - err = result.Scan(value) - *p = ReasoningEffort(result.Int64) - return -} - -func (p *ReasoningEffort) Value() (driver.Value, error) { - if p == nil { - return nil, nil - } - return int64(*p), nil -} - -type ThinkingOption int64 - -const ( - ThinkingOption_Disabled ThinkingOption = 1 - ThinkingOption_Enabled ThinkingOption = 2 - ThinkingOption_Auto ThinkingOption = 3 -) - -func (p ThinkingOption) String() string { - switch p { - case ThinkingOption_Disabled: - return "Disabled" - case ThinkingOption_Enabled: - return "Enabled" - case ThinkingOption_Auto: - return "Auto" - } - return "" -} - -func ThinkingOptionFromString(s string) (ThinkingOption, error) { - switch s { - case "Disabled": - return ThinkingOption_Disabled, nil - case "Enabled": - return ThinkingOption_Enabled, nil - case "Auto": - return ThinkingOption_Auto, nil - } - return ThinkingOption(0), fmt.Errorf("not a valid ThinkingOption string") -} - -func ThinkingOptionPtr(v ThinkingOption) *ThinkingOption { return &v } -func (p *ThinkingOption) Scan(value interface{}) (err error) { - var result sql.NullInt64 - err = result.Scan(value) - *p = ThinkingOption(result.Int64) - return -} - -func (p *ThinkingOption) Value() (driver.Value, error) { - if p == nil { - return nil, nil - } - return int64(*p), nil -} - type PromptType = string type SecurityLevel = string @@ -197,6 +110,10 @@ type ToolType = string type ToolChoiceType = string +type ReasoningEffort = string + +type ThinkingOption = string + type Role = string type ContentType = string @@ -7197,9 +7114,9 @@ func (p *ModelConfig) Field100DeepEqual(src []*ParamConfigValue) bool { type ThinkingConfig struct { // thinking内容的最大输出token BudgetTokens *int64 `thrift:"budget_tokens,1,optional" frugal:"1,optional,i64" json:"budget_tokens" form:"budget_tokens" query:"budget_tokens"` - ThinkingOption *ThinkingOption `thrift:"thinking_option,2,optional" frugal:"2,optional,ThinkingOption" form:"thinking_option" json:"thinking_option,omitempty" query:"thinking_option"` + ThinkingOption *ThinkingOption `thrift:"thinking_option,2,optional" frugal:"2,optional,string" form:"thinking_option" json:"thinking_option,omitempty" query:"thinking_option"` // 思考长度 - ReasoningEffort *ReasoningEffort `thrift:"reasoning_effort,3,optional" frugal:"3,optional,ReasoningEffort" form:"reasoning_effort" json:"reasoning_effort,omitempty" query:"reasoning_effort"` + ReasoningEffort *ReasoningEffort `thrift:"reasoning_effort,3,optional" frugal:"3,optional,string" form:"reasoning_effort" json:"reasoning_effort,omitempty" query:"reasoning_effort"` } func NewThinkingConfig() *ThinkingConfig { @@ -7299,7 +7216,7 @@ func (p *ThinkingConfig) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 2: - if fieldTypeId == thrift.I32 { + if fieldTypeId == thrift.STRING { if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } @@ -7307,7 +7224,7 @@ func (p *ThinkingConfig) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 3: - if fieldTypeId == thrift.I32 { + if fieldTypeId == thrift.STRING { if err = p.ReadField3(iprot); err != nil { goto ReadFieldError } @@ -7357,11 +7274,10 @@ func (p *ThinkingConfig) ReadField1(iprot thrift.TProtocol) error { func (p *ThinkingConfig) ReadField2(iprot thrift.TProtocol) error { var _field *ThinkingOption - if v, err := iprot.ReadI32(); err != nil { + if v, err := iprot.ReadString(); err != nil { return err } else { - tmp := ThinkingOption(v) - _field = &tmp + _field = &v } p.ThinkingOption = _field return nil @@ -7369,11 +7285,10 @@ func (p *ThinkingConfig) ReadField2(iprot thrift.TProtocol) error { func (p *ThinkingConfig) ReadField3(iprot thrift.TProtocol) error { var _field *ReasoningEffort - if v, err := iprot.ReadI32(); err != nil { + if v, err := iprot.ReadString(); err != nil { return err } else { - tmp := ReasoningEffort(v) - _field = &tmp + _field = &v } p.ReasoningEffort = _field return nil @@ -7435,10 +7350,10 @@ WriteFieldEndError: } func (p *ThinkingConfig) writeField2(oprot thrift.TProtocol) (err error) { if p.IsSetThinkingOption() { - if err = oprot.WriteFieldBegin("thinking_option", thrift.I32, 2); err != nil { + if err = oprot.WriteFieldBegin("thinking_option", thrift.STRING, 2); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI32(int32(*p.ThinkingOption)); err != nil { + if err := oprot.WriteString(*p.ThinkingOption); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -7453,10 +7368,10 @@ WriteFieldEndError: } func (p *ThinkingConfig) writeField3(oprot thrift.TProtocol) (err error) { if p.IsSetReasoningEffort() { - if err = oprot.WriteFieldBegin("reasoning_effort", thrift.I32, 3); err != nil { + if err = oprot.WriteFieldBegin("reasoning_effort", thrift.STRING, 3); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI32(int32(*p.ReasoningEffort)); err != nil { + if err := oprot.WriteString(*p.ReasoningEffort); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -7515,7 +7430,7 @@ func (p *ThinkingConfig) Field2DeepEqual(src *ThinkingOption) bool { } else if p.ThinkingOption == nil || src == nil { return false } - if *p.ThinkingOption != *src { + if strings.Compare(*p.ThinkingOption, *src) != 0 { return false } return true @@ -7527,7 +7442,7 @@ func (p *ThinkingConfig) Field3DeepEqual(src *ReasoningEffort) bool { } else if p.ReasoningEffort == nil || src == nil { return false } - if *p.ReasoningEffort != *src { + if strings.Compare(*p.ReasoningEffort, *src) != 0 { return false } return true From 40160be5c68e91a613a7c5a8713b51ecbb345d7b Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Wed, 18 Mar 2026 18:02:48 +0800 Subject: [PATCH 53/58] [feat][prompt]: fix lint and ut --- backend/modules/data/application/item_app.go | 2 +- .../data/domain/component/vfs/fs_rw_test.go | 2 +- .../modules/data/domain/dataset/entity/job.go | 2 +- .../domain/dataset/service/import_file.go | 2 +- .../dataset/service/import_file_test.go | 2 +- .../llm/domain/entity/eino_convertor.go | 2 +- backend/modules/llm/domain/entity/runtime.go | 4 +- .../task/service/taskexe/tracehub/backfill.go | 8 +- .../application/convertor/openapi_test.go | 543 +++++++++--------- .../application/convertor/prompt_test.go | 8 +- .../openapi_custom_overrides_test.go | 27 +- .../openapi_request_normalize_test.go | 15 +- .../prompt/application/openapi_test.go | 325 +++++------ .../prompt/domain/service/execute_test.go | 4 +- .../service/tool_results_collector_test.go | 25 +- 15 files changed, 496 insertions(+), 475 deletions(-) diff --git a/backend/modules/data/application/item_app.go b/backend/modules/data/application/item_app.go index 9aba3c3ce..f578f5e73 100644 --- a/backend/modules/data/application/item_app.go +++ b/backend/modules/data/application/item_app.go @@ -36,7 +36,7 @@ func (h *DatasetApplicationImpl) BatchCreateDatasetItems(ctx context.Context, re } rc, err := h.prepare(ctx, req) if err != nil { - return + return resp, err } if rc != nil && rc.ds != nil { rc.ds.UpdatedBy = session.UserIDInCtxOrEmpty(ctx) diff --git a/backend/modules/data/domain/component/vfs/fs_rw_test.go b/backend/modules/data/domain/component/vfs/fs_rw_test.go index 12a5518da..484c6d7e6 100644 --- a/backend/modules/data/domain/component/vfs/fs_rw_test.go +++ b/backend/modules/data/domain/component/vfs/fs_rw_test.go @@ -33,7 +33,7 @@ func (m *MockReader) Read(p []byte) (n int, err error) { } n = copy(p, m.content[m.pos:]) m.pos += n - return + return n, err } func (m *MockReader) Close() error { diff --git a/backend/modules/data/domain/dataset/entity/job.go b/backend/modules/data/domain/dataset/entity/job.go index 7053eada0..cd5fc1230 100644 --- a/backend/modules/data/domain/dataset/entity/job.go +++ b/backend/modules/data/domain/dataset/entity/job.go @@ -225,7 +225,7 @@ func (p *IOJob) GetID() (v int64) { if p != nil { return p.ID } - return + return v } func (p *IOJob) SetID(val int64) { diff --git a/backend/modules/data/domain/dataset/service/import_file.go b/backend/modules/data/domain/dataset/service/import_file.go index d46461524..0b00ae0ce 100644 --- a/backend/modules/data/domain/dataset/service/import_file.go +++ b/backend/modules/data/domain/dataset/service/import_file.go @@ -203,7 +203,7 @@ func (h *importHandler) nextFile(ctx context.Context, w *importWorkspace) (fr *v return nil, false, err } } - return + return fr, ok, err } func (h *importHandler) importFile(ctx context.Context, w *importWorkspace, fr *vfs.FileReader) (err error) { diff --git a/backend/modules/data/domain/dataset/service/import_file_test.go b/backend/modules/data/domain/dataset/service/import_file_test.go index 7183ed9d6..691f7ffb2 100644 --- a/backend/modules/data/domain/dataset/service/import_file_test.go +++ b/backend/modules/data/domain/dataset/service/import_file_test.go @@ -824,7 +824,7 @@ func (m *MockReader) Read(p []byte) (n int, err error) { } n = copy(p, m.content[m.pos:]) m.pos += n - return + return n, err } func (m *MockReader) Close() error { diff --git a/backend/modules/llm/domain/entity/eino_convertor.go b/backend/modules/llm/domain/entity/eino_convertor.go index 8d59518ec..5326be941 100644 --- a/backend/modules/llm/domain/entity/eino_convertor.go +++ b/backend/modules/llm/domain/entity/eino_convertor.go @@ -149,7 +149,7 @@ func FromDOToolChoice(do ToolChoice) (einoToolChoice schema.ToolChoice) { case ToolChoiceRequired: return schema.ToolChoiceForced default: - return + return einoToolChoice } } diff --git a/backend/modules/llm/domain/entity/runtime.go b/backend/modules/llm/domain/entity/runtime.go index d2940e50e..e03db1bb8 100644 --- a/backend/modules/llm/domain/entity/runtime.go +++ b/backend/modules/llm/domain/entity/runtime.go @@ -57,7 +57,7 @@ func (m *Message) HasMultiModalContent() bool { func (m *Message) GetImageCountAndMaxSize() (hasUrl, hasBinary bool, cnt int64, maxSizeInByte int64) { if !m.HasMultiModalContent() { - return + return hasUrl, hasBinary, cnt, maxSizeInByte } for _, p := range m.MultiModalContent { if p.IsURL() { @@ -73,7 +73,7 @@ func (m *Message) GetImageCountAndMaxSize() (hasUrl, hasBinary bool, cnt int64, } } } - return + return hasUrl, hasBinary, cnt, maxSizeInByte } type Role string diff --git a/backend/modules/observability/domain/task/service/taskexe/tracehub/backfill.go b/backend/modules/observability/domain/task/service/taskexe/tracehub/backfill.go index 01a56a588..79f477bb4 100644 --- a/backend/modules/observability/domain/task/service/taskexe/tracehub/backfill.go +++ b/backend/modules/observability/domain/task/service/taskexe/tracehub/backfill.go @@ -362,12 +362,12 @@ func (h *TraceHubServiceImpl) flushSpans(ctx context.Context, spans []*loop_span err, shouldFinish = h.processSpansForBackfill(ctx, sampledSpans, sub) if err != nil { logs.CtxError(ctx, "process spans failed, task_id=%d, err=%v", sub.t.ID, err) - return + return err, shouldFinish } logs.CtxInfo(ctx, "successfully processed %d spans (sampled from %d), task_id=%d", len(sampledSpans), len(spans), sub.t.ID) - return + return err, shouldFinish } // applySampling applies sampling logic @@ -419,11 +419,11 @@ func (h *TraceHubServiceImpl) processSpansForBackfill(ctx context.Context, spans if err != nil { logs.CtxError(ctx, "process batch spans failed, task_id=%d, batch_start=%d, err=%v", sub.t.ID, i, err) - return + return err, shouldFinish } if shouldFinish { - return + return err, shouldFinish } // ml_flow rate-limited: 50/5s diff --git a/backend/modules/prompt/application/convertor/openapi_test.go b/backend/modules/prompt/application/convertor/openapi_test.go index 5d7cd2302..f8845039c 100755 --- a/backend/modules/prompt/application/convertor/openapi_test.go +++ b/backend/modules/prompt/application/convertor/openapi_test.go @@ -9,8 +9,7 @@ import ( "github.com/stretchr/testify/assert" - "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/prompt/domain/prompt" - "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/prompt/openapi" + domainopenapi "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/prompt/domain_openapi/prompt" "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/entity" "github.com/coze-dev/coze-loop/backend/pkg/lang/ptr" ) @@ -18,7 +17,7 @@ import ( type openAPIPromptTestCase struct { name string do *entity.Prompt - dto *openapi.Prompt + dto *domainopenapi.Prompt } func mockOpenAPIPromptCases() []openAPIPromptTestCase { @@ -35,7 +34,7 @@ func mockOpenAPIPromptCases() []openAPIPromptTestCase { SpaceID: 0, PromptKey: "", }, - dto: &openapi.Prompt{ + dto: &domainopenapi.Prompt{ WorkspaceID: ptr.Of(int64(0)), PromptKey: ptr.Of(""), Version: ptr.Of(""), @@ -53,7 +52,7 @@ func mockOpenAPIPromptCases() []openAPIPromptTestCase { }, }, }, - dto: &openapi.Prompt{ + dto: &domainopenapi.Prompt{ WorkspaceID: ptr.Of(int64(456)), PromptKey: ptr.Of("test_prompt"), Version: ptr.Of("1.0.0"), @@ -92,23 +91,23 @@ func mockOpenAPIPromptCases() []openAPIPromptTestCase { }, }, }, - dto: &openapi.Prompt{ + dto: &domainopenapi.Prompt{ WorkspaceID: ptr.Of(int64(456)), PromptKey: ptr.Of("test_prompt"), Version: ptr.Of("1.0.0"), - PromptTemplate: &openapi.PromptTemplate{ - TemplateType: ptr.Of(prompt.TemplateTypeNormal), - Messages: []*openapi.Message{ + PromptTemplate: &domainopenapi.PromptTemplate{ + TemplateType: ptr.Of(domainopenapi.TemplateTypeNormal), + Messages: []*domainopenapi.Message{ { - Role: ptr.Of(prompt.RoleSystem), + Role: ptr.Of(domainopenapi.RoleSystem), Content: ptr.Of("You are a helpful assistant."), }, }, - VariableDefs: []*openapi.VariableDef{ + VariableDefs: []*domainopenapi.VariableDef{ { Key: ptr.Of("var1"), Desc: ptr.Of("Variable 1"), - Type: ptr.Of(prompt.VariableTypeString), + Type: ptr.Of(domainopenapi.VariableTypeString), }, }, }, @@ -141,14 +140,14 @@ func mockOpenAPIPromptCases() []openAPIPromptTestCase { }, }, }, - dto: &openapi.Prompt{ + dto: &domainopenapi.Prompt{ WorkspaceID: ptr.Of(int64(456)), PromptKey: ptr.Of("test_prompt"), Version: ptr.Of("1.0.0"), - Tools: []*openapi.Tool{ + Tools: []*domainopenapi.Tool{ { - Type: ptr.Of(prompt.ToolTypeFunction), - Function: &openapi.Function{ + Type: ptr.Of(domainopenapi.ToolTypeFunction), + Function: &domainopenapi.Function{ Name: ptr.Of("test_function"), Description: ptr.Of("Test Function"), Parameters: ptr.Of(`{"type":"object","properties":{}}`), @@ -177,12 +176,12 @@ func mockOpenAPIPromptCases() []openAPIPromptTestCase { }, }, }, - dto: &openapi.Prompt{ + dto: &domainopenapi.Prompt{ WorkspaceID: ptr.Of(int64(456)), PromptKey: ptr.Of("test_prompt"), Version: ptr.Of("1.0.0"), - ToolCallConfig: &openapi.ToolCallConfig{ - ToolChoice: ptr.Of(prompt.ToolChoiceTypeAuto), + ToolCallConfig: &domainopenapi.ToolCallConfig{ + ToolChoice: ptr.Of(domainopenapi.ToolChoiceTypeAuto), }, }, }, @@ -213,11 +212,11 @@ func mockOpenAPIPromptCases() []openAPIPromptTestCase { }, }, }, - dto: &openapi.Prompt{ + dto: &domainopenapi.Prompt{ WorkspaceID: ptr.Of(int64(456)), PromptKey: ptr.Of("test_prompt"), Version: ptr.Of("1.0.0"), - LlmConfig: &openapi.LLMConfig{ + LlmConfig: &domainopenapi.LLMConfig{ Temperature: ptr.Of(0.7), MaxTokens: ptr.Of(int32(1000)), TopK: ptr.Of(int32(50)), @@ -284,40 +283,40 @@ func mockOpenAPIPromptCases() []openAPIPromptTestCase { }, }, }, - dto: &openapi.Prompt{ + dto: &domainopenapi.Prompt{ WorkspaceID: ptr.Of(int64(456)), PromptKey: ptr.Of("test_prompt"), Version: ptr.Of("1.0.0"), - PromptTemplate: &openapi.PromptTemplate{ - TemplateType: ptr.Of(prompt.TemplateTypeNormal), - Messages: []*openapi.Message{ + PromptTemplate: &domainopenapi.PromptTemplate{ + TemplateType: ptr.Of(domainopenapi.TemplateTypeNormal), + Messages: []*domainopenapi.Message{ { - Role: ptr.Of(prompt.RoleSystem), + Role: ptr.Of(domainopenapi.RoleSystem), Content: ptr.Of("You are a helpful assistant."), }, }, - VariableDefs: []*openapi.VariableDef{ + VariableDefs: []*domainopenapi.VariableDef{ { Key: ptr.Of("var1"), Desc: ptr.Of("Variable 1"), - Type: ptr.Of(prompt.VariableTypeString), + Type: ptr.Of(domainopenapi.VariableTypeString), }, }, }, - Tools: []*openapi.Tool{ + Tools: []*domainopenapi.Tool{ { - Type: ptr.Of(prompt.ToolTypeFunction), - Function: &openapi.Function{ + Type: ptr.Of(domainopenapi.ToolTypeFunction), + Function: &domainopenapi.Function{ Name: ptr.Of("test_function"), Description: ptr.Of("Test Function"), Parameters: ptr.Of(`{"type":"object","properties":{}}`), }, }, }, - ToolCallConfig: &openapi.ToolCallConfig{ - ToolChoice: ptr.Of(prompt.ToolChoiceTypeAuto), + ToolCallConfig: &domainopenapi.ToolCallConfig{ + ToolChoice: ptr.Of(domainopenapi.ToolChoiceTypeAuto), }, - LlmConfig: &openapi.LLMConfig{ + LlmConfig: &domainopenapi.LLMConfig{ Temperature: ptr.Of(0.7), MaxTokens: ptr.Of(int32(1000)), TopK: ptr.Of(int32(50)), @@ -344,7 +343,7 @@ func mockOpenAPIPromptCases() []openAPIPromptTestCase { PromptDetail: nil, }, }, - dto: &openapi.Prompt{ + dto: &domainopenapi.Prompt{ WorkspaceID: ptr.Of(int64(456)), PromptKey: ptr.Of("test_prompt"), Version: ptr.Of("1.0.0"), @@ -365,13 +364,13 @@ func mockOpenAPIPromptCases() []openAPIPromptTestCase { }, }, }, - dto: &openapi.Prompt{ + dto: &domainopenapi.Prompt{ WorkspaceID: ptr.Of(int64(456)), PromptKey: ptr.Of("test_prompt"), Version: ptr.Of("1.0.0"), - PromptTemplate: &openapi.PromptTemplate{ + PromptTemplate: &domainopenapi.PromptTemplate{ TemplateType: ptr.Of(""), - VariableDefs: []*openapi.VariableDef{}, + VariableDefs: []*domainopenapi.VariableDef{}, Metadata: map[string]string{"commit": "meta"}, }, }, @@ -394,7 +393,7 @@ func TestOpenAPIPromptTemplateDO2DTO(t *testing.T) { tests := []struct { name string do *entity.PromptTemplate - want *openapi.PromptTemplate + want *domainopenapi.PromptTemplate }{ { name: "nil input", @@ -419,19 +418,19 @@ func TestOpenAPIPromptTemplateDO2DTO(t *testing.T) { }, }, }, - want: &openapi.PromptTemplate{ - TemplateType: ptr.Of(prompt.TemplateTypeNormal), - Messages: []*openapi.Message{ + want: &domainopenapi.PromptTemplate{ + TemplateType: ptr.Of(domainopenapi.TemplateTypeNormal), + Messages: []*domainopenapi.Message{ { - Role: ptr.Of(prompt.RoleSystem), + Role: ptr.Of(domainopenapi.RoleSystem), Content: ptr.Of("You are a helpful assistant."), }, }, - VariableDefs: []*openapi.VariableDef{ + VariableDefs: []*domainopenapi.VariableDef{ { Key: ptr.Of("var1"), Desc: ptr.Of("Variable 1"), - Type: ptr.Of(prompt.VariableTypeString), + Type: ptr.Of(domainopenapi.VariableTypeString), }, }, }, @@ -441,10 +440,10 @@ func TestOpenAPIPromptTemplateDO2DTO(t *testing.T) { do: &entity.PromptTemplate{ Metadata: map[string]string{"k": "v"}, }, - want: &openapi.PromptTemplate{ + want: &domainopenapi.PromptTemplate{ TemplateType: ptr.Of(""), Messages: nil, - VariableDefs: []*openapi.VariableDef{}, + VariableDefs: []*domainopenapi.VariableDef{}, Metadata: map[string]string{"k": "v"}, }, }, @@ -461,7 +460,7 @@ func TestOpenAPIModelConfigDO2DTO(t *testing.T) { tests := []struct { name string do *entity.ModelConfig - want *openapi.LLMConfig + want *domainopenapi.LLMConfig }{ { name: "nil input", @@ -480,7 +479,7 @@ func TestOpenAPIModelConfigDO2DTO(t *testing.T) { FrequencyPenalty: ptr.Of(0.5), JSONMode: ptr.Of(true), }, - want: &openapi.LLMConfig{ + want: &domainopenapi.LLMConfig{ Temperature: ptr.Of(0.7), MaxTokens: ptr.Of(int32(1000)), TopK: ptr.Of(int32(50)), @@ -503,14 +502,14 @@ func TestOpenAPIModelConfigDO2DTO(t *testing.T) { ReasoningEffort: ptr.Of(entity.ReasoningEffortLow), }, }, - want: &openapi.LLMConfig{ + want: &domainopenapi.LLMConfig{ MaxTokens: ptr.Of(int32(512)), Temperature: ptr.Of(0.3), Extra: ptr.Of(`{"trace":"on"}`), - Thinking: &openapi.ThinkingConfig{ + Thinking: &domainopenapi.ThinkingConfig{ BudgetTokens: ptr.Of(int64(128)), - ThinkingOption: ptr.Of(openapi.ThinkingOptionEnabled), - ReasoningEffort: ptr.Of(openapi.ReasoningEffortLow), + ThinkingOption: ptr.Of(domainopenapi.ThinkingOptionEnabled), + ReasoningEffort: ptr.Of(domainopenapi.ReasoningEffortLow), }, }, }, @@ -527,7 +526,7 @@ func TestOpenAPIToolCallConfigDO2DTO(t *testing.T) { tests := []struct { name string do *entity.ToolCallConfig - want *openapi.ToolCallConfig + want *domainopenapi.ToolCallConfig }{ { name: "nil input", @@ -539,8 +538,8 @@ func TestOpenAPIToolCallConfigDO2DTO(t *testing.T) { do: &entity.ToolCallConfig{ ToolChoice: entity.ToolChoiceTypeAuto, }, - want: &openapi.ToolCallConfig{ - ToolChoice: ptr.Of(prompt.ToolChoiceTypeAuto), + want: &domainopenapi.ToolCallConfig{ + ToolChoice: ptr.Of(domainopenapi.ToolChoiceTypeAuto), }, }, } @@ -556,32 +555,32 @@ func TestOpenAPIContentTypeDO2DTO(t *testing.T) { tests := []struct { name string do entity.ContentType - want openapi.ContentType + want domainopenapi.ContentType }{ { name: "text content type", do: entity.ContentTypeText, - want: openapi.ContentTypeText, + want: domainopenapi.ContentTypeText, }, { name: "multi part variable content type", do: entity.ContentTypeMultiPartVariable, - want: openapi.ContentTypeMultiPartVariable, + want: domainopenapi.ContentTypeMultiPartVariable, }, { name: "image url content type", do: entity.ContentTypeImageURL, - want: openapi.ContentTypeImageURL, + want: domainopenapi.ContentTypeImageURL, }, { name: "video url content type", do: entity.ContentTypeVideoURL, - want: openapi.ContentTypeVideoURL, + want: domainopenapi.ContentTypeVideoURL, }, { name: "unknown content type - should default to text", do: entity.ContentType("unknown"), - want: openapi.ContentTypeText, + want: domainopenapi.ContentTypeText, }, } for _, tt := range tests { @@ -596,7 +595,7 @@ func TestOpenAPIContentPartDO2DTO(t *testing.T) { tests := []struct { name string do *entity.ContentPart - want *openapi.ContentPart + want *domainopenapi.ContentPart }{ { name: "nil input", @@ -609,8 +608,8 @@ func TestOpenAPIContentPartDO2DTO(t *testing.T) { Type: entity.ContentTypeText, Text: ptr.Of("Hello world"), }, - want: &openapi.ContentPart{ - Type: ptr.Of(openapi.ContentTypeText), + want: &domainopenapi.ContentPart{ + Type: ptr.Of(domainopenapi.ContentTypeText), Text: ptr.Of("Hello world"), }, }, @@ -620,8 +619,8 @@ func TestOpenAPIContentPartDO2DTO(t *testing.T) { Type: entity.ContentTypeMultiPartVariable, Text: ptr.Of("{{variable}}"), }, - want: &openapi.ContentPart{ - Type: ptr.Of(openapi.ContentTypeMultiPartVariable), + want: &domainopenapi.ContentPart{ + Type: ptr.Of(domainopenapi.ContentTypeMultiPartVariable), Text: ptr.Of("{{variable}}"), }, }, @@ -631,8 +630,8 @@ func TestOpenAPIContentPartDO2DTO(t *testing.T) { Type: entity.ContentTypeText, Text: nil, }, - want: &openapi.ContentPart{ - Type: ptr.Of(openapi.ContentTypeText), + want: &domainopenapi.ContentPart{ + Type: ptr.Of(domainopenapi.ContentTypeText), Text: nil, }, }, @@ -646,8 +645,8 @@ func TestOpenAPIContentPartDO2DTO(t *testing.T) { URL: "https://example.com/image.jpg", }, }, - want: &openapi.ContentPart{ - Type: ptr.Of(openapi.ContentTypeImageURL), + want: &domainopenapi.ContentPart{ + Type: ptr.Of(domainopenapi.ContentTypeImageURL), Text: ptr.Of("image description"), ImageURL: ptr.Of("https://example.com/image.jpg"), }, @@ -658,8 +657,8 @@ func TestOpenAPIContentPartDO2DTO(t *testing.T) { Type: entity.ContentTypeText, Text: ptr.Of(""), }, - want: &openapi.ContentPart{ - Type: ptr.Of(openapi.ContentTypeText), + want: &domainopenapi.ContentPart{ + Type: ptr.Of(domainopenapi.ContentTypeText), Text: ptr.Of(""), }, }, @@ -674,10 +673,10 @@ func TestOpenAPIContentPartDO2DTO(t *testing.T) { Fps: ptr.Of(2.0), }, }, - want: &openapi.ContentPart{ - Type: ptr.Of(openapi.ContentTypeVideoURL), + want: &domainopenapi.ContentPart{ + Type: ptr.Of(domainopenapi.ContentTypeVideoURL), VideoURL: ptr.Of("https://example.com/video.mp4"), - Config: &openapi.MediaConfig{ + Config: &domainopenapi.MediaConfig{ Fps: ptr.Of(2.0), }, }, @@ -690,8 +689,8 @@ func TestOpenAPIContentPartDO2DTO(t *testing.T) { URL: "https://example.com/video.mp4", }, }, - want: &openapi.ContentPart{ - Type: ptr.Of(openapi.ContentTypeVideoURL), + want: &domainopenapi.ContentPart{ + Type: ptr.Of(domainopenapi.ContentTypeVideoURL), VideoURL: ptr.Of("https://example.com/video.mp4"), }, }, @@ -704,8 +703,8 @@ func TestOpenAPIContentPartDO2DTO(t *testing.T) { }, MediaConfig: &entity.MediaConfig{}, }, - want: &openapi.ContentPart{ - Type: ptr.Of(openapi.ContentTypeVideoURL), + want: &domainopenapi.ContentPart{ + Type: ptr.Of(domainopenapi.ContentTypeVideoURL), }, }, { @@ -719,8 +718,8 @@ func TestOpenAPIContentPartDO2DTO(t *testing.T) { Fps: nil, }, }, - want: &openapi.ContentPart{ - Type: ptr.Of(openapi.ContentTypeVideoURL), + want: &domainopenapi.ContentPart{ + Type: ptr.Of(domainopenapi.ContentTypeVideoURL), VideoURL: ptr.Of("https://example.com/video.mp4"), }, }, @@ -737,7 +736,7 @@ func TestOpenAPIBatchContentPartDO2DTO(t *testing.T) { tests := []struct { name string do []*entity.ContentPart - want []*openapi.ContentPart + want []*domainopenapi.ContentPart }{ { name: "nil input", @@ -747,7 +746,7 @@ func TestOpenAPIBatchContentPartDO2DTO(t *testing.T) { { name: "empty array", do: []*entity.ContentPart{}, - want: []*openapi.ContentPart{}, + want: []*domainopenapi.ContentPart{}, }, { name: "array with nil elements", @@ -759,9 +758,9 @@ func TestOpenAPIBatchContentPartDO2DTO(t *testing.T) { }, nil, }, - want: []*openapi.ContentPart{ + want: []*domainopenapi.ContentPart{ { - Type: ptr.Of(openapi.ContentTypeText), + Type: ptr.Of(domainopenapi.ContentTypeText), Text: ptr.Of("Hello"), }, }, @@ -778,13 +777,13 @@ func TestOpenAPIBatchContentPartDO2DTO(t *testing.T) { Text: ptr.Of("{{variable}}"), }, }, - want: []*openapi.ContentPart{ + want: []*domainopenapi.ContentPart{ { - Type: ptr.Of(openapi.ContentTypeText), + Type: ptr.Of(domainopenapi.ContentTypeText), Text: ptr.Of("Hello"), }, { - Type: ptr.Of(openapi.ContentTypeMultiPartVariable), + Type: ptr.Of(domainopenapi.ContentTypeMultiPartVariable), Text: ptr.Of("{{variable}}"), }, }, @@ -809,18 +808,18 @@ func TestOpenAPIBatchContentPartDO2DTO(t *testing.T) { Text: ptr.Of("{{user_input}}"), }, }, - want: []*openapi.ContentPart{ + want: []*domainopenapi.ContentPart{ { - Type: ptr.Of(openapi.ContentTypeText), + Type: ptr.Of(domainopenapi.ContentTypeText), Text: ptr.Of("Text content"), }, { - Type: ptr.Of(openapi.ContentTypeImageURL), + Type: ptr.Of(domainopenapi.ContentTypeImageURL), Text: ptr.Of("Image description"), ImageURL: ptr.Of("https://example.com/image.jpg"), }, { - Type: ptr.Of(openapi.ContentTypeMultiPartVariable), + Type: ptr.Of(domainopenapi.ContentTypeMultiPartVariable), Text: ptr.Of("{{user_input}}"), }, }, @@ -832,7 +831,7 @@ func TestOpenAPIBatchContentPartDO2DTO(t *testing.T) { nil, nil, }, - want: []*openapi.ContentPart{}, + want: []*domainopenapi.ContentPart{}, }, { name: "array with video url part", @@ -847,11 +846,11 @@ func TestOpenAPIBatchContentPartDO2DTO(t *testing.T) { }, }, }, - want: []*openapi.ContentPart{ + want: []*domainopenapi.ContentPart{ { - Type: ptr.Of(openapi.ContentTypeVideoURL), + Type: ptr.Of(domainopenapi.ContentTypeVideoURL), VideoURL: ptr.Of("https://example.com/video.mp4"), - Config: &openapi.MediaConfig{ + Config: &domainopenapi.MediaConfig{ Fps: ptr.Of(1.5), }, }, @@ -868,11 +867,11 @@ func TestOpenAPIBatchContentPartDO2DTO(t *testing.T) { }, }, }, - want: []*openapi.ContentPart{ + want: []*domainopenapi.ContentPart{ { - Type: ptr.Of(openapi.ContentTypeBase64Data), + Type: ptr.Of(domainopenapi.ContentTypeBase64Data), Base64Data: ptr.Of("data:video/mp4;base64,QUJDRA=="), - Config: &openapi.MediaConfig{ + Config: &domainopenapi.MediaConfig{ Fps: ptr.Of(2.4), }, }, @@ -893,7 +892,7 @@ func TestOpenAPIMessageDO2DTO_NewFields(t *testing.T) { tests := []struct { name string do *entity.Message - want *openapi.Message + want *domainopenapi.Message }{ { name: "nil input", @@ -907,8 +906,8 @@ func TestOpenAPIMessageDO2DTO_NewFields(t *testing.T) { ReasoningContent: ptr.Of("thinking..."), Content: ptr.Of("response"), }, - want: &openapi.Message{ - Role: ptr.Of(prompt.RoleAssistant), + want: &domainopenapi.Message{ + Role: ptr.Of(domainopenapi.RoleAssistant), ReasoningContent: ptr.Of("thinking..."), Content: ptr.Of("response"), }, @@ -920,8 +919,8 @@ func TestOpenAPIMessageDO2DTO_NewFields(t *testing.T) { Content: ptr.Of("tool response"), ToolCallID: ptr.Of("call_123"), }, - want: &openapi.Message{ - Role: ptr.Of(prompt.RoleTool), + want: &domainopenapi.Message{ + Role: ptr.Of(domainopenapi.RoleTool), Content: ptr.Of("tool response"), ToolCallID: ptr.Of("call_123"), }, @@ -943,15 +942,15 @@ func TestOpenAPIMessageDO2DTO_NewFields(t *testing.T) { }, }, }, - want: &openapi.Message{ - Role: ptr.Of(prompt.RoleAssistant), + want: &domainopenapi.Message{ + Role: ptr.Of(domainopenapi.RoleAssistant), Content: ptr.Of("I'll use a tool"), - ToolCalls: []*openapi.ToolCall{ + ToolCalls: []*domainopenapi.ToolCall{ { Index: ptr.Of(int32(0)), ID: ptr.Of("call_123"), - Type: ptr.Of(openapi.ToolTypeFunction), - FunctionCall: &openapi.FunctionCall{ + Type: ptr.Of(domainopenapi.ToolTypeFunction), + FunctionCall: &domainopenapi.FunctionCall{ Name: ptr.Of("test_function"), Arguments: ptr.Of(`{"arg1": "value1"}`), }, @@ -966,8 +965,8 @@ func TestOpenAPIMessageDO2DTO_NewFields(t *testing.T) { Content: ptr.Of("skip this"), SkipRender: ptr.Of(true), }, - want: &openapi.Message{ - Role: ptr.Of(prompt.RoleUser), + want: &domainopenapi.Message{ + Role: ptr.Of(domainopenapi.RoleUser), Content: ptr.Of("skip this"), SkipRender: ptr.Of(true), }, @@ -991,17 +990,17 @@ func TestOpenAPIMessageDO2DTO_NewFields(t *testing.T) { }, }, }, - want: &openapi.Message{ - Role: ptr.Of(prompt.RoleAssistant), + want: &domainopenapi.Message{ + Role: ptr.Of(domainopenapi.RoleAssistant), ReasoningContent: ptr.Of("analyzing the request"), Content: ptr.Of("I need to call a function"), ToolCallID: ptr.Of("call_456"), - ToolCalls: []*openapi.ToolCall{ + ToolCalls: []*domainopenapi.ToolCall{ { Index: ptr.Of(int32(1)), ID: ptr.Of("call_789"), - Type: ptr.Of(openapi.ToolTypeFunction), - FunctionCall: &openapi.FunctionCall{ + Type: ptr.Of(domainopenapi.ToolTypeFunction), + FunctionCall: &domainopenapi.FunctionCall{ Name: ptr.Of("another_function"), Arguments: ptr.Of(`{"param": "test"}`), }, @@ -1015,8 +1014,8 @@ func TestOpenAPIMessageDO2DTO_NewFields(t *testing.T) { Role: entity.RoleAssistant, Metadata: map[string]string{"meta": "value"}, }, - want: &openapi.Message{ - Role: ptr.Of(prompt.RoleAssistant), + want: &domainopenapi.Message{ + Role: ptr.Of(domainopenapi.RoleAssistant), Metadata: map[string]string{"meta": "value"}, }, }, @@ -1033,7 +1032,7 @@ func TestOpenAPIContentPartDO2DTO_NewFields(t *testing.T) { tests := []struct { name string do *entity.ContentPart - want *openapi.ContentPart + want *domainopenapi.ContentPart }{ { name: "nil input", @@ -1050,8 +1049,8 @@ func TestOpenAPIContentPartDO2DTO_NewFields(t *testing.T) { URL: "https://example.com/image.jpg", }, }, - want: &openapi.ContentPart{ - Type: ptr.Of(openapi.ContentTypeImageURL), + want: &domainopenapi.ContentPart{ + Type: ptr.Of(domainopenapi.ContentTypeImageURL), Text: ptr.Of("image description"), ImageURL: ptr.Of("https://example.com/image.jpg"), }, @@ -1063,8 +1062,8 @@ func TestOpenAPIContentPartDO2DTO_NewFields(t *testing.T) { Text: ptr.Of("base64 image"), Base64Data: ptr.Of("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg=="), }, - want: &openapi.ContentPart{ - Type: ptr.Of(openapi.ContentTypeBase64Data), + want: &domainopenapi.ContentPart{ + Type: ptr.Of(domainopenapi.ContentTypeBase64Data), Text: ptr.Of("base64 image"), Base64Data: ptr.Of("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg=="), }, @@ -1080,8 +1079,8 @@ func TestOpenAPIContentPartDO2DTO_NewFields(t *testing.T) { }, Base64Data: ptr.Of("base64data"), }, - want: &openapi.ContentPart{ - Type: ptr.Of(openapi.ContentTypeImageURL), + want: &domainopenapi.ContentPart{ + Type: ptr.Of(domainopenapi.ContentTypeImageURL), Text: ptr.Of("image with multiple formats"), ImageURL: ptr.Of("https://example.com/image.png"), Base64Data: ptr.Of("base64data"), @@ -1095,8 +1094,8 @@ func TestOpenAPIContentPartDO2DTO_NewFields(t *testing.T) { ImageURL: nil, Base64Data: nil, }, - want: &openapi.ContentPart{ - Type: ptr.Of(openapi.ContentTypeText), + want: &domainopenapi.ContentPart{ + Type: ptr.Of(domainopenapi.ContentTypeText), Text: ptr.Of("just text"), ImageURL: nil, Base64Data: nil, @@ -1115,37 +1114,37 @@ func TestOpenAPIContentTypeDO2DTO_NewTypes(t *testing.T) { tests := []struct { name string do entity.ContentType - want openapi.ContentType + want domainopenapi.ContentType }{ { name: "text content type", do: entity.ContentTypeText, - want: openapi.ContentTypeText, + want: domainopenapi.ContentTypeText, }, { name: "image url content type", do: entity.ContentTypeImageURL, - want: openapi.ContentTypeImageURL, + want: domainopenapi.ContentTypeImageURL, }, { name: "video url content type", do: entity.ContentTypeVideoURL, - want: openapi.ContentTypeVideoURL, + want: domainopenapi.ContentTypeVideoURL, }, { name: "base64 data content type", do: entity.ContentTypeBase64Data, - want: openapi.ContentTypeBase64Data, + want: domainopenapi.ContentTypeBase64Data, }, { name: "multi part variable content type", do: entity.ContentTypeMultiPartVariable, - want: openapi.ContentTypeMultiPartVariable, + want: domainopenapi.ContentTypeMultiPartVariable, }, { name: "unknown content type - should default to text", do: entity.ContentType("unknown"), - want: openapi.ContentTypeText, + want: domainopenapi.ContentTypeText, }, } for _, tt := range tests { @@ -1161,7 +1160,7 @@ func TestOpenAPIContentTypeDO2DTO_NewTypes(t *testing.T) { func TestOpenAPIBatchMessageDTO2DO(t *testing.T) { tests := []struct { name string - dtos []*openapi.Message + dtos []*domainopenapi.Message want []*entity.Message }{ { @@ -1171,15 +1170,15 @@ func TestOpenAPIBatchMessageDTO2DO(t *testing.T) { }, { name: "empty array", - dtos: []*openapi.Message{}, + dtos: []*domainopenapi.Message{}, want: nil, }, { name: "array with nil elements", - dtos: []*openapi.Message{ + dtos: []*domainopenapi.Message{ nil, { - Role: ptr.Of(prompt.RoleUser), + Role: ptr.Of(domainopenapi.RoleUser), Content: ptr.Of("Hello"), }, nil, @@ -1193,13 +1192,13 @@ func TestOpenAPIBatchMessageDTO2DO(t *testing.T) { }, { name: "normal array conversion", - dtos: []*openapi.Message{ + dtos: []*domainopenapi.Message{ { - Role: ptr.Of(prompt.RoleSystem), + Role: ptr.Of(domainopenapi.RoleSystem), Content: ptr.Of("You are a helpful assistant."), }, { - Role: ptr.Of(prompt.RoleAssistant), + Role: ptr.Of(domainopenapi.RoleAssistant), ReasoningContent: ptr.Of("thinking..."), Content: ptr.Of("I can help you."), SkipRender: ptr.Of(true), @@ -1220,20 +1219,20 @@ func TestOpenAPIBatchMessageDTO2DO(t *testing.T) { }, { name: "complex messages with tool calls", - dtos: []*openapi.Message{ + dtos: []*domainopenapi.Message{ { - Role: ptr.Of(prompt.RoleUser), + Role: ptr.Of(domainopenapi.RoleUser), Content: ptr.Of("Calculate 2+2"), }, { - Role: ptr.Of(prompt.RoleAssistant), + Role: ptr.Of(domainopenapi.RoleAssistant), Content: ptr.Of("I'll calculate that for you."), - ToolCalls: []*openapi.ToolCall{ + ToolCalls: []*domainopenapi.ToolCall{ { Index: ptr.Of(int32(0)), ID: ptr.Of("call_123"), - Type: ptr.Of(openapi.ToolTypeFunction), - FunctionCall: &openapi.FunctionCall{ + Type: ptr.Of(domainopenapi.ToolTypeFunction), + FunctionCall: &domainopenapi.FunctionCall{ Name: ptr.Of("calculator"), Arguments: ptr.Of(`{"expression": "2+2"}`), }, @@ -1241,7 +1240,7 @@ func TestOpenAPIBatchMessageDTO2DO(t *testing.T) { }, }, { - Role: ptr.Of(prompt.RoleTool), + Role: ptr.Of(domainopenapi.RoleTool), Content: ptr.Of("4"), ToolCallID: ptr.Of("call_123"), }, @@ -1275,16 +1274,16 @@ func TestOpenAPIBatchMessageDTO2DO(t *testing.T) { }, { name: "messages with content parts", - dtos: []*openapi.Message{ + dtos: []*domainopenapi.Message{ { - Role: ptr.Of(prompt.RoleUser), - Parts: []*openapi.ContentPart{ + Role: ptr.Of(domainopenapi.RoleUser), + Parts: []*domainopenapi.ContentPart{ { - Type: ptr.Of(openapi.ContentTypeText), + Type: ptr.Of(domainopenapi.ContentTypeText), Text: ptr.Of("What's in this image?"), }, { - Type: ptr.Of(openapi.ContentTypeImageURL), + Type: ptr.Of(domainopenapi.ContentTypeImageURL), ImageURL: ptr.Of("https://example.com/image.jpg"), }, }, @@ -1310,9 +1309,9 @@ func TestOpenAPIBatchMessageDTO2DO(t *testing.T) { }, { name: "messages with metadata", - dtos: []*openapi.Message{ + dtos: []*domainopenapi.Message{ { - Role: ptr.Of(prompt.RoleAssistant), + Role: ptr.Of(domainopenapi.RoleAssistant), Metadata: map[string]string{"meta": "value"}, }, }, @@ -1335,7 +1334,7 @@ func TestOpenAPIBatchMessageDTO2DO(t *testing.T) { func TestOpenAPIBatchContentPartDTO2DO(t *testing.T) { tests := []struct { name string - dtos []*openapi.ContentPart + dtos []*domainopenapi.ContentPart want []*entity.ContentPart }{ { @@ -1345,15 +1344,15 @@ func TestOpenAPIBatchContentPartDTO2DO(t *testing.T) { }, { name: "empty array", - dtos: []*openapi.ContentPart{}, + dtos: []*domainopenapi.ContentPart{}, want: []*entity.ContentPart{}, }, { name: "array with nil elements", - dtos: []*openapi.ContentPart{ + dtos: []*domainopenapi.ContentPart{ nil, { - Type: ptr.Of(openapi.ContentTypeText), + Type: ptr.Of(domainopenapi.ContentTypeText), Text: ptr.Of("Hello"), }, nil, @@ -1367,13 +1366,13 @@ func TestOpenAPIBatchContentPartDTO2DO(t *testing.T) { }, { name: "normal array conversion", - dtos: []*openapi.ContentPart{ + dtos: []*domainopenapi.ContentPart{ { - Type: ptr.Of(openapi.ContentTypeText), + Type: ptr.Of(domainopenapi.ContentTypeText), Text: ptr.Of("Hello world"), }, { - Type: ptr.Of(openapi.ContentTypeMultiPartVariable), + Type: ptr.Of(domainopenapi.ContentTypeMultiPartVariable), Text: ptr.Of("{{variable}}"), }, }, @@ -1390,18 +1389,18 @@ func TestOpenAPIBatchContentPartDTO2DO(t *testing.T) { }, { name: "mixed types with image url and base64", - dtos: []*openapi.ContentPart{ + dtos: []*domainopenapi.ContentPart{ { - Type: ptr.Of(openapi.ContentTypeText), + Type: ptr.Of(domainopenapi.ContentTypeText), Text: ptr.Of("Text content"), }, { - Type: ptr.Of(openapi.ContentTypeImageURL), + Type: ptr.Of(domainopenapi.ContentTypeImageURL), Text: ptr.Of("Image description"), ImageURL: ptr.Of("https://example.com/image.jpg"), }, { - Type: ptr.Of(openapi.ContentTypeBase64Data), + Type: ptr.Of(domainopenapi.ContentTypeBase64Data), Text: ptr.Of("Base64 image"), Base64Data: ptr.Of("base64data"), }, @@ -1427,13 +1426,13 @@ func TestOpenAPIBatchContentPartDTO2DO(t *testing.T) { }, { name: "empty image url handling", - dtos: []*openapi.ContentPart{ + dtos: []*domainopenapi.ContentPart{ { - Type: ptr.Of(openapi.ContentTypeImageURL), + Type: ptr.Of(domainopenapi.ContentTypeImageURL), ImageURL: ptr.Of(""), }, { - Type: ptr.Of(openapi.ContentTypeImageURL), + Type: ptr.Of(domainopenapi.ContentTypeImageURL), ImageURL: nil, }, }, @@ -1450,11 +1449,11 @@ func TestOpenAPIBatchContentPartDTO2DO(t *testing.T) { }, { name: "video url handling with fps config", - dtos: []*openapi.ContentPart{ + dtos: []*domainopenapi.ContentPart{ { - Type: ptr.Of(openapi.ContentTypeVideoURL), + Type: ptr.Of(domainopenapi.ContentTypeVideoURL), VideoURL: ptr.Of("https://example.com/video.mp4"), - Config: &openapi.MediaConfig{ + Config: &domainopenapi.MediaConfig{ Fps: ptr.Of(1.8), }, }, @@ -1473,13 +1472,13 @@ func TestOpenAPIBatchContentPartDTO2DO(t *testing.T) { }, { name: "video url empty string and nil config handling", - dtos: []*openapi.ContentPart{ + dtos: []*domainopenapi.ContentPart{ { - Type: ptr.Of(openapi.ContentTypeVideoURL), + Type: ptr.Of(domainopenapi.ContentTypeVideoURL), VideoURL: ptr.Of(""), }, { - Type: ptr.Of(openapi.ContentTypeVideoURL), + Type: ptr.Of(domainopenapi.ContentTypeVideoURL), VideoURL: ptr.Of("https://example.com/video.mp4"), Config: nil, }, @@ -1500,11 +1499,11 @@ func TestOpenAPIBatchContentPartDTO2DO(t *testing.T) { }, { name: "base64 video carries fps without video url", - dtos: []*openapi.ContentPart{ + dtos: []*domainopenapi.ContentPart{ { - Type: ptr.Of(openapi.ContentTypeBase64Data), + Type: ptr.Of(domainopenapi.ContentTypeBase64Data), Base64Data: ptr.Of("data:video/mp4;base64,QUJDRA=="), - Config: &openapi.MediaConfig{ + Config: &domainopenapi.MediaConfig{ Fps: ptr.Of(2.2), }, }, @@ -1531,7 +1530,7 @@ func TestOpenAPIBatchContentPartDTO2DO(t *testing.T) { func TestOpenAPIBatchVariableValDTO2DO(t *testing.T) { tests := []struct { name string - dtos []*openapi.VariableVal + dtos []*domainopenapi.VariableVal want []*entity.VariableVal }{ { @@ -1541,12 +1540,12 @@ func TestOpenAPIBatchVariableValDTO2DO(t *testing.T) { }, { name: "empty array", - dtos: []*openapi.VariableVal{}, + dtos: []*domainopenapi.VariableVal{}, want: nil, }, { name: "array with nil elements", - dtos: []*openapi.VariableVal{ + dtos: []*domainopenapi.VariableVal{ nil, { Key: ptr.Of("var1"), @@ -1563,7 +1562,7 @@ func TestOpenAPIBatchVariableValDTO2DO(t *testing.T) { }, { name: "normal array conversion", - dtos: []*openapi.VariableVal{ + dtos: []*domainopenapi.VariableVal{ { Key: ptr.Of("var1"), Value: ptr.Of("simple value"), @@ -1586,13 +1585,13 @@ func TestOpenAPIBatchVariableValDTO2DO(t *testing.T) { }, { name: "complex variable values with placeholder messages", - dtos: []*openapi.VariableVal{ + dtos: []*domainopenapi.VariableVal{ { Key: ptr.Of("placeholder_var"), Value: ptr.Of("placeholder value"), - PlaceholderMessages: []*openapi.Message{ + PlaceholderMessages: []*domainopenapi.Message{ { - Role: ptr.Of(prompt.RoleUser), + Role: ptr.Of(domainopenapi.RoleUser), Content: ptr.Of("Placeholder content"), }, }, @@ -1613,17 +1612,17 @@ func TestOpenAPIBatchVariableValDTO2DO(t *testing.T) { }, { name: "variable values with multi part values", - dtos: []*openapi.VariableVal{ + dtos: []*domainopenapi.VariableVal{ { Key: ptr.Of("multipart_var"), Value: ptr.Of("multipart value"), - MultiPartValues: []*openapi.ContentPart{ + MultiPartValues: []*domainopenapi.ContentPart{ { - Type: ptr.Of(openapi.ContentTypeText), + Type: ptr.Of(domainopenapi.ContentTypeText), Text: ptr.Of("Part 1"), }, { - Type: ptr.Of(openapi.ContentTypeImageURL), + Type: ptr.Of(domainopenapi.ContentTypeImageURL), ImageURL: ptr.Of("https://example.com/image.jpg"), }, }, @@ -1661,7 +1660,7 @@ func TestOpenAPITokenUsageDO2DTO(t *testing.T) { tests := []struct { name string do *entity.TokenUsage - want *openapi.TokenUsage + want *domainopenapi.TokenUsage }{ { name: "nil input", @@ -1674,7 +1673,7 @@ func TestOpenAPITokenUsageDO2DTO(t *testing.T) { InputTokens: 0, OutputTokens: 0, }, - want: &openapi.TokenUsage{ + want: &domainopenapi.TokenUsage{ InputTokens: ptr.Of(int32(0)), OutputTokens: ptr.Of(int32(0)), }, @@ -1685,7 +1684,7 @@ func TestOpenAPITokenUsageDO2DTO(t *testing.T) { InputTokens: 100, OutputTokens: 50, }, - want: &openapi.TokenUsage{ + want: &domainopenapi.TokenUsage{ InputTokens: ptr.Of(int32(100)), OutputTokens: ptr.Of(int32(50)), }, @@ -1696,7 +1695,7 @@ func TestOpenAPITokenUsageDO2DTO(t *testing.T) { InputTokens: 999999, OutputTokens: 888888, }, - want: &openapi.TokenUsage{ + want: &domainopenapi.TokenUsage{ InputTokens: ptr.Of(int32(999999)), OutputTokens: ptr.Of(int32(888888)), }, @@ -1714,7 +1713,7 @@ func TestOpenAPIBatchToolCallDO2DTO(t *testing.T) { tests := []struct { name string dos []*entity.ToolCall - want []*openapi.ToolCall + want []*domainopenapi.ToolCall }{ { name: "nil input", @@ -1724,7 +1723,7 @@ func TestOpenAPIBatchToolCallDO2DTO(t *testing.T) { { name: "empty array", dos: []*entity.ToolCall{}, - want: []*openapi.ToolCall{}, + want: []*domainopenapi.ToolCall{}, }, { name: "array with nil elements", @@ -1741,12 +1740,12 @@ func TestOpenAPIBatchToolCallDO2DTO(t *testing.T) { }, nil, }, - want: []*openapi.ToolCall{ + want: []*domainopenapi.ToolCall{ { Index: ptr.Of(int32(0)), ID: ptr.Of("call_123"), - Type: ptr.Of(openapi.ToolTypeFunction), - FunctionCall: &openapi.FunctionCall{ + Type: ptr.Of(domainopenapi.ToolTypeFunction), + FunctionCall: &domainopenapi.FunctionCall{ Name: ptr.Of("test_function"), Arguments: ptr.Of(`{"arg": "value"}`), }, @@ -1775,12 +1774,12 @@ func TestOpenAPIBatchToolCallDO2DTO(t *testing.T) { }, }, }, - want: []*openapi.ToolCall{ + want: []*domainopenapi.ToolCall{ { Index: ptr.Of(int32(0)), ID: ptr.Of("call_123"), - Type: ptr.Of(openapi.ToolTypeFunction), - FunctionCall: &openapi.FunctionCall{ + Type: ptr.Of(domainopenapi.ToolTypeFunction), + FunctionCall: &domainopenapi.FunctionCall{ Name: ptr.Of("function1"), Arguments: ptr.Of(`{"param1": "value1"}`), }, @@ -1788,8 +1787,8 @@ func TestOpenAPIBatchToolCallDO2DTO(t *testing.T) { { Index: ptr.Of(int32(1)), ID: ptr.Of("call_456"), - Type: ptr.Of(openapi.ToolTypeFunction), - FunctionCall: &openapi.FunctionCall{ + Type: ptr.Of(domainopenapi.ToolTypeFunction), + FunctionCall: &domainopenapi.FunctionCall{ Name: ptr.Of("function2"), Arguments: ptr.Of(`{"param2": "value2"}`), }, @@ -1806,11 +1805,11 @@ func TestOpenAPIBatchToolCallDO2DTO(t *testing.T) { FunctionCall: nil, }, }, - want: []*openapi.ToolCall{ + want: []*domainopenapi.ToolCall{ { Index: ptr.Of(int32(0)), ID: ptr.Of("call_789"), - Type: ptr.Of(openapi.ToolTypeFunction), + Type: ptr.Of(domainopenapi.ToolTypeFunction), FunctionCall: nil, }, }, @@ -1828,12 +1827,12 @@ func TestOpenAPIBatchToolCallDO2DTO(t *testing.T) { }, }, }, - want: []*openapi.ToolCall{ + want: []*domainopenapi.ToolCall{ { Index: ptr.Of(int32(0)), ID: ptr.Of("call_999"), - Type: ptr.Of(openapi.ToolTypeFunction), - FunctionCall: &openapi.FunctionCall{ + Type: ptr.Of(domainopenapi.ToolTypeFunction), + FunctionCall: &domainopenapi.FunctionCall{ Name: ptr.Of("function_no_args"), Arguments: nil, }, @@ -1852,7 +1851,7 @@ func TestOpenAPIBatchToolCallDO2DTO(t *testing.T) { func TestOpenAPIBatchToolCallDTO2DO(t *testing.T) { tests := []struct { name string - dtos []*openapi.ToolCall + dtos []*domainopenapi.ToolCall want []*entity.ToolCall }{ { @@ -1862,18 +1861,18 @@ func TestOpenAPIBatchToolCallDTO2DO(t *testing.T) { }, { name: "empty array", - dtos: []*openapi.ToolCall{}, + dtos: []*domainopenapi.ToolCall{}, want: []*entity.ToolCall{}, }, { name: "array with nil elements", - dtos: []*openapi.ToolCall{ + dtos: []*domainopenapi.ToolCall{ nil, { Index: ptr.Of(int32(0)), ID: ptr.Of("call_123"), - Type: ptr.Of(openapi.ToolTypeFunction), - FunctionCall: &openapi.FunctionCall{ + Type: ptr.Of(domainopenapi.ToolTypeFunction), + FunctionCall: &domainopenapi.FunctionCall{ Name: ptr.Of("test_function"), Arguments: ptr.Of(`{"arg": "value"}`), }, @@ -1894,12 +1893,12 @@ func TestOpenAPIBatchToolCallDTO2DO(t *testing.T) { }, { name: "normal array conversion", - dtos: []*openapi.ToolCall{ + dtos: []*domainopenapi.ToolCall{ { Index: ptr.Of(int32(0)), ID: ptr.Of("call_123"), - Type: ptr.Of(openapi.ToolTypeFunction), - FunctionCall: &openapi.FunctionCall{ + Type: ptr.Of(domainopenapi.ToolTypeFunction), + FunctionCall: &domainopenapi.FunctionCall{ Name: ptr.Of("function1"), Arguments: ptr.Of(`{"param1": "value1"}`), }, @@ -1907,8 +1906,8 @@ func TestOpenAPIBatchToolCallDTO2DO(t *testing.T) { { Index: ptr.Of(int32(1)), ID: ptr.Of("call_456"), - Type: ptr.Of(openapi.ToolTypeFunction), - FunctionCall: &openapi.FunctionCall{ + Type: ptr.Of(domainopenapi.ToolTypeFunction), + FunctionCall: &domainopenapi.FunctionCall{ Name: ptr.Of("function2"), Arguments: ptr.Of(`{"param2": "value2"}`), }, @@ -1937,11 +1936,11 @@ func TestOpenAPIBatchToolCallDTO2DO(t *testing.T) { }, { name: "tool call with nil function call", - dtos: []*openapi.ToolCall{ + dtos: []*domainopenapi.ToolCall{ { Index: ptr.Of(int32(0)), ID: ptr.Of("call_789"), - Type: ptr.Of(openapi.ToolTypeFunction), + Type: ptr.Of(domainopenapi.ToolTypeFunction), FunctionCall: nil, }, }, @@ -1956,12 +1955,12 @@ func TestOpenAPIBatchToolCallDTO2DO(t *testing.T) { }, { name: "tool call with function call having nil arguments", - dtos: []*openapi.ToolCall{ + dtos: []*domainopenapi.ToolCall{ { Index: ptr.Of(int32(0)), ID: ptr.Of("call_999"), - Type: ptr.Of(openapi.ToolTypeFunction), - FunctionCall: &openapi.FunctionCall{ + Type: ptr.Of(domainopenapi.ToolTypeFunction), + FunctionCall: &domainopenapi.FunctionCall{ Name: ptr.Of("function_no_args"), Arguments: nil, }, @@ -1981,7 +1980,7 @@ func TestOpenAPIBatchToolCallDTO2DO(t *testing.T) { }, { name: "tool call with default values from getters", - dtos: []*openapi.ToolCall{ + dtos: []*domainopenapi.ToolCall{ { // 测试GetIndex()、GetID()、GetType()的默认值处理 }, @@ -2011,7 +2010,7 @@ func TestOpenAPIPromptBasicDO2DTO(t *testing.T) { tests := []struct { name string do *entity.Prompt - want *openapi.PromptBasic + want *domainopenapi.PromptBasic }{ { name: "nil input", @@ -2036,7 +2035,7 @@ func TestOpenAPIPromptBasicDO2DTO(t *testing.T) { PromptKey: "test_prompt", PromptBasic: &entity.PromptBasic{}, }, - want: &openapi.PromptBasic{ + want: &domainopenapi.PromptBasic{ ID: ptr.Of(int64(123)), WorkspaceID: ptr.Of(int64(456)), PromptKey: ptr.Of("test_prompt"), @@ -2067,7 +2066,7 @@ func TestOpenAPIPromptBasicDO2DTO(t *testing.T) { LatestCommittedAt: nil, }, }, - want: &openapi.PromptBasic{ + want: &domainopenapi.PromptBasic{ ID: ptr.Of(int64(123)), WorkspaceID: ptr.Of(int64(456)), PromptKey: ptr.Of("test_prompt"), @@ -2098,7 +2097,7 @@ func TestOpenAPIPromptBasicDO2DTO(t *testing.T) { LatestCommittedAt: &latestCommittedAt, }, }, - want: &openapi.PromptBasic{ + want: &domainopenapi.PromptBasic{ ID: ptr.Of(int64(123)), WorkspaceID: ptr.Of(int64(456)), PromptKey: ptr.Of("test_prompt"), @@ -2128,7 +2127,7 @@ func TestOpenAPIPromptBasicDO2DTO(t *testing.T) { UpdatedAt: createdAt, }, }, - want: &openapi.PromptBasic{ + want: &domainopenapi.PromptBasic{ ID: ptr.Of(int64(0)), WorkspaceID: ptr.Of(int64(0)), PromptKey: ptr.Of(""), @@ -2158,7 +2157,7 @@ func TestOpenAPIPromptBasicDO2DTO(t *testing.T) { UpdatedAt: updatedAt, }, }, - want: &openapi.PromptBasic{ + want: &domainopenapi.PromptBasic{ ID: ptr.Of(int64(999)), WorkspaceID: ptr.Of(int64(888)), PromptKey: ptr.Of("prompt_with_special_chars_@#$"), @@ -2185,22 +2184,22 @@ func TestOpenAPIToolTypeDO2DTO(t *testing.T) { tests := []struct { name string do entity.ToolType - want openapi.ToolType + want domainopenapi.ToolType }{ { name: "function type", do: entity.ToolTypeFunction, - want: openapi.ToolTypeFunction, + want: domainopenapi.ToolTypeFunction, }, { name: "google_search type", do: entity.ToolTypeGoogleSearch, - want: openapi.ToolTypeGoogleSearch, + want: domainopenapi.ToolTypeGoogleSearch, }, { name: "unknown type defaults to function", do: entity.ToolType("unknown"), - want: openapi.ToolTypeFunction, + want: domainopenapi.ToolTypeFunction, }, } for _, tt := range tests { @@ -2214,22 +2213,22 @@ func TestOpenAPIToolTypeDO2DTO(t *testing.T) { func TestOpenAPIToolTypeDTO2DO(t *testing.T) { tests := []struct { name string - dto openapi.ToolType + dto domainopenapi.ToolType want entity.ToolType }{ { name: "function type", - dto: openapi.ToolTypeFunction, + dto: domainopenapi.ToolTypeFunction, want: entity.ToolTypeFunction, }, { name: "google_search type", - dto: openapi.ToolTypeGoogleSearch, + dto: domainopenapi.ToolTypeGoogleSearch, want: entity.ToolTypeGoogleSearch, }, { name: "unknown type defaults to function", - dto: openapi.ToolType("unknown"), + dto: domainopenapi.ToolType("unknown"), want: entity.ToolTypeFunction, }, } @@ -2245,7 +2244,7 @@ func TestOpenAPIToolChoiceSpecificationDO2DTO(t *testing.T) { tests := []struct { name string do *entity.ToolChoiceSpecification - want *openapi.ToolChoiceSpecification + want *domainopenapi.ToolChoiceSpecification }{ { name: "nil input", @@ -2258,8 +2257,8 @@ func TestOpenAPIToolChoiceSpecificationDO2DTO(t *testing.T) { Type: entity.ToolTypeFunction, Name: "get_weather", }, - want: &openapi.ToolChoiceSpecification{ - Type: ptr.Of(prompt.ToolTypeFunction), + want: &domainopenapi.ToolChoiceSpecification{ + Type: ptr.Of(domainopenapi.ToolTypeFunction), Name: ptr.Of("get_weather"), }, }, @@ -2269,8 +2268,8 @@ func TestOpenAPIToolChoiceSpecificationDO2DTO(t *testing.T) { Type: entity.ToolTypeGoogleSearch, Name: "search", }, - want: &openapi.ToolChoiceSpecification{ - Type: ptr.Of(prompt.ToolTypeGoogleSearch), + want: &domainopenapi.ToolChoiceSpecification{ + Type: ptr.Of(domainopenapi.ToolTypeGoogleSearch), Name: ptr.Of("search"), }, }, @@ -2287,7 +2286,7 @@ func TestOpenAPIToolCallConfigDO2DTO_WithSpecification(t *testing.T) { tests := []struct { name string do *entity.ToolCallConfig - want *openapi.ToolCallConfig + want *domainopenapi.ToolCallConfig }{ { name: "nil input", @@ -2299,8 +2298,8 @@ func TestOpenAPIToolCallConfigDO2DTO_WithSpecification(t *testing.T) { do: &entity.ToolCallConfig{ ToolChoice: entity.ToolChoiceTypeAuto, }, - want: &openapi.ToolCallConfig{ - ToolChoice: ptr.Of(prompt.ToolChoiceTypeAuto), + want: &domainopenapi.ToolCallConfig{ + ToolChoice: ptr.Of(domainopenapi.ToolChoiceTypeAuto), ToolChoiceSpecification: nil, }, }, @@ -2313,10 +2312,10 @@ func TestOpenAPIToolCallConfigDO2DTO_WithSpecification(t *testing.T) { Name: "get_weather", }, }, - want: &openapi.ToolCallConfig{ - ToolChoice: ptr.Of(prompt.ToolChoiceTypeSpecific), - ToolChoiceSpecification: &openapi.ToolChoiceSpecification{ - Type: ptr.Of(openapi.ToolTypeFunction), + want: &domainopenapi.ToolCallConfig{ + ToolChoice: ptr.Of(domainopenapi.ToolChoiceTypeSpecific), + ToolChoiceSpecification: &domainopenapi.ToolChoiceSpecification{ + Type: ptr.Of(domainopenapi.ToolTypeFunction), Name: ptr.Of("get_weather"), }, }, @@ -2330,10 +2329,10 @@ func TestOpenAPIToolCallConfigDO2DTO_WithSpecification(t *testing.T) { Name: "search", }, }, - want: &openapi.ToolCallConfig{ - ToolChoice: ptr.Of(openapi.ToolChoiceTypeSpecific), - ToolChoiceSpecification: &openapi.ToolChoiceSpecification{ - Type: ptr.Of(prompt.ToolTypeGoogleSearch), + want: &domainopenapi.ToolCallConfig{ + ToolChoice: ptr.Of(domainopenapi.ToolChoiceTypeSpecific), + ToolChoiceSpecification: &domainopenapi.ToolChoiceSpecification{ + Type: ptr.Of(domainopenapi.ToolTypeGoogleSearch), Name: ptr.Of("search"), }, }, @@ -2350,7 +2349,7 @@ func TestOpenAPIToolCallConfigDO2DTO_WithSpecification(t *testing.T) { func TestOpenAPIBatchToolDTO2DO(t *testing.T) { tests := []struct { name string - dtos []*openapi.Tool + dtos []*domainopenapi.Tool want []*entity.Tool }{ { @@ -2360,11 +2359,11 @@ func TestOpenAPIBatchToolDTO2DO(t *testing.T) { }, { name: "array with nil elements", - dtos: []*openapi.Tool{ + dtos: []*domainopenapi.Tool{ nil, { - Type: ptr.Of(openapi.ToolTypeFunction), - Function: &openapi.Function{ + Type: ptr.Of(domainopenapi.ToolTypeFunction), + Function: &domainopenapi.Function{ Name: ptr.Of("tool_a"), Description: ptr.Of("desc"), Parameters: ptr.Of("{}"), @@ -2394,7 +2393,7 @@ func TestOpenAPIBatchToolDTO2DO(t *testing.T) { func TestOpenAPIToolCallConfigDTO2DO(t *testing.T) { tests := []struct { name string - dto *openapi.ToolCallConfig + dto *domainopenapi.ToolCallConfig want *entity.ToolCallConfig }{ { @@ -2404,10 +2403,10 @@ func TestOpenAPIToolCallConfigDTO2DO(t *testing.T) { }, { name: "specific tool choice with specification", - dto: &openapi.ToolCallConfig{ - ToolChoice: ptr.Of(prompt.ToolChoiceTypeSpecific), - ToolChoiceSpecification: &openapi.ToolChoiceSpecification{ - Type: ptr.Of(prompt.ToolTypeFunction), + dto: &domainopenapi.ToolCallConfig{ + ToolChoice: ptr.Of(domainopenapi.ToolChoiceTypeSpecific), + ToolChoiceSpecification: &domainopenapi.ToolChoiceSpecification{ + Type: ptr.Of(domainopenapi.ToolTypeFunction), Name: ptr.Of("tool_a"), }, }, @@ -2429,20 +2428,20 @@ func TestOpenAPIToolCallConfigDTO2DO(t *testing.T) { } func TestOpenAPIModelConfigDTO2DO(t *testing.T) { - dto := &openapi.ModelConfig{ + dto := &domainopenapi.ModelConfig{ ModelID: ptr.Of(int64(123)), MaxTokens: ptr.Of(int32(2048)), Temperature: ptr.Of(0.8), - Thinking: &openapi.ThinkingConfig{ + Thinking: &domainopenapi.ThinkingConfig{ BudgetTokens: ptr.Of(int64(256)), - ThinkingOption: ptr.Of(openapi.ThinkingOptionEnabled), - ReasoningEffort: ptr.Of(openapi.ReasoningEffortHigh), + ThinkingOption: ptr.Of(domainopenapi.ThinkingOptionEnabled), + ReasoningEffort: ptr.Of(domainopenapi.ReasoningEffortHigh), }, - ParamConfigValues: []*openapi.ParamConfigValue{ + ParamConfigValues: []*domainopenapi.ParamConfigValue{ { Name: ptr.Of("top_p"), Label: ptr.Of("Top P"), - Value: &openapi.ParamOption{ + Value: &domainopenapi.ParamOption{ Value: ptr.Of("0.9"), Label: ptr.Of("0.9"), }, @@ -2476,7 +2475,7 @@ func TestOpenAPIModelConfigDTO2DO(t *testing.T) { func TestOpenAPIResponseAPIConfigDTO2DO(t *testing.T) { tests := []struct { name string - dto *openapi.ResponseAPIConfig + dto *domainopenapi.ResponseAPIConfig want *entity.ResponseAPIConfig }{ { @@ -2486,7 +2485,7 @@ func TestOpenAPIResponseAPIConfigDTO2DO(t *testing.T) { }, { name: "response api config with values", - dto: &openapi.ResponseAPIConfig{ + dto: &domainopenapi.ResponseAPIConfig{ PreviousResponseID: ptr.Of("prev-id"), EnableCaching: ptr.Of(true), SessionID: ptr.Of("session-123"), diff --git a/backend/modules/prompt/application/convertor/prompt_test.go b/backend/modules/prompt/application/convertor/prompt_test.go index 399777cf7..050e2c8cb 100644 --- a/backend/modules/prompt/application/convertor/prompt_test.go +++ b/backend/modules/prompt/application/convertor/prompt_test.go @@ -854,8 +854,8 @@ func TestThinkingConfigConversion(t *testing.T) { name: "thinking config with values", dto: &prompt.ThinkingConfig{ BudgetTokens: ptr.Of(int64(256)), - ThinkingOption: ptr.Of(prompt.ThinkingOption_Enabled), - ReasoningEffort: ptr.Of(prompt.ReasoningEffort_High), + ThinkingOption: ptr.Of(prompt.ThinkingOptionEnabled), + ReasoningEffort: ptr.Of(prompt.ReasoningEffortHigh), }, do: &entity.ThinkingConfig{ BudgetTokens: ptr.Of(int64(256)), @@ -864,8 +864,8 @@ func TestThinkingConfigConversion(t *testing.T) { }, expectDTO: &prompt.ThinkingConfig{ BudgetTokens: ptr.Of(int64(256)), - ThinkingOption: ptr.Of(prompt.ThinkingOption_Enabled), - ReasoningEffort: ptr.Of(prompt.ReasoningEffort_High), + ThinkingOption: ptr.Of(prompt.ThinkingOptionEnabled), + ReasoningEffort: ptr.Of(prompt.ReasoningEffortHigh), }, expectDO: &entity.ThinkingConfig{ BudgetTokens: ptr.Of(int64(256)), diff --git a/backend/modules/prompt/application/openapi_custom_overrides_test.go b/backend/modules/prompt/application/openapi_custom_overrides_test.go index 06105d2c4..039438e79 100644 --- a/backend/modules/prompt/application/openapi_custom_overrides_test.go +++ b/backend/modules/prompt/application/openapi_custom_overrides_test.go @@ -8,6 +8,7 @@ import ( "github.com/stretchr/testify/assert" + domainopenapi "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/prompt/domain_openapi/prompt" "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/prompt/openapi" "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/entity" "github.com/coze-dev/coze-loop/backend/pkg/lang/ptr" @@ -48,8 +49,8 @@ func TestPromptOpenAPIApplicationImpl_applyCustomOverrides(t *testing.T) { original := &entity.Prompt{ID: 1} req := &openapi.ExecuteRequest{ - CustomTools: []*openapi.Tool{ - {Type: ptr.Of(openapi.ToolTypeFunction)}, + CustomTools: []*domainopenapi.Tool{ + {Type: ptr.Of(domainopenapi.ToolTypeFunction)}, }, } got, err := app.applyCustomOverrides(original, req) @@ -78,10 +79,10 @@ func TestPromptOpenAPIApplicationImpl_applyCustomOverrides(t *testing.T) { }, } req := &openapi.ExecuteRequest{ - CustomTools: []*openapi.Tool{ + CustomTools: []*domainopenapi.Tool{ { - Type: ptr.Of(openapi.ToolTypeFunction), - Function: &openapi.Function{ + Type: ptr.Of(domainopenapi.ToolTypeFunction), + Function: &domainopenapi.Function{ Name: ptr.Of("new"), Description: ptr.Of("desc"), Parameters: ptr.Of(`{}`), @@ -117,10 +118,10 @@ func TestPromptOpenAPIApplicationImpl_applyCustomOverrides(t *testing.T) { }, } req := &openapi.ExecuteRequest{ - CustomToolCallConfig: &openapi.ToolCallConfig{ - ToolChoice: ptr.Of(openapi.ToolChoiceTypeAuto), + CustomToolCallConfig: &domainopenapi.ToolCallConfig{ + ToolChoice: ptr.Of(domainopenapi.ToolChoiceTypeAuto), }, - CustomModelConfig: &openapi.ModelConfig{ + CustomModelConfig: &domainopenapi.ModelConfig{ ModelID: ptr.Of(int64(123)), Temperature: ptr.Of(0.7), }, @@ -152,8 +153,8 @@ func TestPromptOpenAPIApplicationImpl_applyCustomOverrides(t *testing.T) { }, } req := &openapi.ExecuteRequest{ - CustomToolConfig: &openapi.ToolCallConfig{ - ToolChoice: ptr.Of(openapi.ToolChoiceTypeAuto), + CustomToolConfig: &domainopenapi.ToolCallConfig{ + ToolChoice: ptr.Of(domainopenapi.ToolChoiceTypeAuto), }, } @@ -175,8 +176,8 @@ func TestPromptOpenAPIApplicationImpl_applyCustomOverrides(t *testing.T) { }, } req := &openapi.ExecuteRequest{ - CustomTools: []*openapi.Tool{ - {Type: ptr.Of(openapi.ToolTypeFunction)}, + CustomTools: []*domainopenapi.Tool{ + {Type: ptr.Of(domainopenapi.ToolTypeFunction)}, }, } @@ -200,7 +201,7 @@ func TestPromptOpenAPIApplicationImpl_applyCustomOverrides(t *testing.T) { }, } req := &openapi.ExecuteRequest{ - CustomModelConfig: &openapi.ModelConfig{ + CustomModelConfig: &domainopenapi.ModelConfig{ ModelID: ptr.Of(int64(0)), // IsSetModelID=true but value=0 }, } diff --git a/backend/modules/prompt/application/openapi_request_normalize_test.go b/backend/modules/prompt/application/openapi_request_normalize_test.go index 7165aa5c5..32a3e880f 100644 --- a/backend/modules/prompt/application/openapi_request_normalize_test.go +++ b/backend/modules/prompt/application/openapi_request_normalize_test.go @@ -6,6 +6,7 @@ package application import ( "testing" + domainopenapi "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/prompt/domain_openapi/prompt" "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/prompt/openapi" "github.com/coze-dev/coze-loop/backend/pkg/lang/ptr" "github.com/stretchr/testify/assert" @@ -22,7 +23,7 @@ func TestNormalizeExecuteRequest(t *testing.T) { t.Run("release_label fills prompt_identifier.label", func(t *testing.T) { t.Parallel() req := &openapi.ExecuteRequest{ - PromptIdentifier: &openapi.PromptQuery{ + PromptIdentifier: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("p1"), }, ReleaseLabel: ptr.Of("prod"), @@ -35,26 +36,26 @@ func TestNormalizeExecuteRequest(t *testing.T) { t.Run("custom_tool_config fallback to custom_tool_call_config", func(t *testing.T) { t.Parallel() req := &openapi.ExecuteRequest{ - CustomToolConfig: &openapi.ToolCallConfig{ - ToolChoice: ptr.Of(openapi.ToolChoiceTypeAuto), + CustomToolConfig: &domainopenapi.ToolCallConfig{ + ToolChoice: ptr.Of(domainopenapi.ToolChoiceTypeAuto), }, } normalized := normalizeExecuteRequest(req) assert.NotNil(t, normalized.CustomToolCallConfig) - assert.Equal(t, openapi.ToolChoiceTypeAuto, normalized.CustomToolCallConfig.GetToolChoice()) + assert.Equal(t, domainopenapi.ToolChoiceTypeAuto, normalized.CustomToolCallConfig.GetToolChoice()) }) t.Run("custom_tools without config defaults to auto", func(t *testing.T) { t.Parallel() req := &openapi.ExecuteRequest{ - CustomTools: []*openapi.Tool{ + CustomTools: []*domainopenapi.Tool{ { - Type: ptr.Of(openapi.ToolTypeFunction), + Type: ptr.Of(domainopenapi.ToolTypeFunction), }, }, } normalized := normalizeExecuteRequest(req) assert.NotNil(t, normalized.CustomToolCallConfig) - assert.Equal(t, openapi.ToolChoiceTypeAuto, normalized.CustomToolCallConfig.GetToolChoice()) + assert.Equal(t, domainopenapi.ToolChoiceTypeAuto, normalized.CustomToolCallConfig.GetToolChoice()) }) } diff --git a/backend/modules/prompt/application/openapi_test.go b/backend/modules/prompt/application/openapi_test.go index 27226bcc8..ad8294d87 100644 --- a/backend/modules/prompt/application/openapi_test.go +++ b/backend/modules/prompt/application/openapi_test.go @@ -19,6 +19,7 @@ import ( "github.com/coze-dev/coze-loop/backend/infra/limiter" limitermocks "github.com/coze-dev/coze-loop/backend/infra/limiter/mocks" "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/prompt/domain/prompt" + domainopenapi "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/prompt/domain_openapi/prompt" "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/prompt/openapi" "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/component/conf" confmocks "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/component/conf/mocks" @@ -190,7 +191,7 @@ func TestPromptOpenAPIApplicationImpl_BatchGetPromptByPromptKey(t *testing.T) { ctx: context.Background(), req: &openapi.BatchGetPromptByPromptKeyRequest{ WorkspaceID: ptr.Of(int64(123456)), - Queries: []*openapi.PromptQuery{ + Queries: []*domainopenapi.PromptQuery{ { PromptKey: ptr.Of("test_prompt1"), Version: ptr.Of("1.0.0"), @@ -203,52 +204,52 @@ func TestPromptOpenAPIApplicationImpl_BatchGetPromptByPromptKey(t *testing.T) { }, }, wantR: &openapi.BatchGetPromptByPromptKeyResponse{ - Data: &openapi.PromptResultData{ - Items: []*openapi.PromptResult_{ + Data: &domainopenapi.PromptResultData{ + Items: []*domainopenapi.PromptResult_{ { - Query: &openapi.PromptQuery{ + Query: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt1"), Version: ptr.Of("1.0.0"), }, - Prompt: &openapi.Prompt{ + Prompt: &domainopenapi.Prompt{ WorkspaceID: ptr.Of(int64(123456)), PromptKey: ptr.Of("test_prompt1"), Version: ptr.Of("1.0.0"), - PromptTemplate: &openapi.PromptTemplate{ + PromptTemplate: &domainopenapi.PromptTemplate{ TemplateType: ptr.Of(prompt.TemplateTypeNormal), - Messages: []*openapi.Message{ + Messages: []*domainopenapi.Message{ { Role: ptr.Of(prompt.RoleSystem), Content: ptr.Of("You are a helpful assistant."), }, }, - VariableDefs: make([]*openapi.VariableDef, 0), + VariableDefs: make([]*domainopenapi.VariableDef, 0), }, - LlmConfig: &openapi.LLMConfig{ + LlmConfig: &domainopenapi.LLMConfig{ Temperature: ptr.Of(0.7), }, }, }, { - Query: &openapi.PromptQuery{ + Query: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt2"), Version: ptr.Of("1.0.0"), }, - Prompt: &openapi.Prompt{ + Prompt: &domainopenapi.Prompt{ WorkspaceID: ptr.Of(int64(123456)), PromptKey: ptr.Of("test_prompt2"), Version: ptr.Of("1.0.0"), - PromptTemplate: &openapi.PromptTemplate{ + PromptTemplate: &domainopenapi.PromptTemplate{ TemplateType: ptr.Of(prompt.TemplateTypeNormal), - Messages: []*openapi.Message{ + Messages: []*domainopenapi.Message{ { Role: ptr.Of(prompt.RoleSystem), Content: ptr.Of("You are a helpful assistant."), }, }, - VariableDefs: make([]*openapi.VariableDef, 0), + VariableDefs: make([]*domainopenapi.VariableDef, 0), }, - LlmConfig: &openapi.LLMConfig{ + LlmConfig: &domainopenapi.LLMConfig{ Temperature: ptr.Of(0.7), }, }, @@ -336,7 +337,7 @@ func TestPromptOpenAPIApplicationImpl_BatchGetPromptByPromptKey(t *testing.T) { ctx: context.Background(), req: &openapi.BatchGetPromptByPromptKeyRequest{ WorkspaceID: ptr.Of(int64(123456)), - Queries: []*openapi.PromptQuery{ + Queries: []*domainopenapi.PromptQuery{ { PromptKey: ptr.Of("test_prompt1"), Version: ptr.Of("1.0.0"), @@ -477,7 +478,7 @@ func TestPromptOpenAPIApplicationImpl_BatchGetPromptByPromptKey(t *testing.T) { ctx: context.Background(), req: &openapi.BatchGetPromptByPromptKeyRequest{ WorkspaceID: ptr.Of(int64(123456)), - Queries: []*openapi.PromptQuery{ + Queries: []*domainopenapi.PromptQuery{ { PromptKey: ptr.Of("test_prompt1"), Version: ptr.Of("1.0.0"), @@ -493,75 +494,75 @@ func TestPromptOpenAPIApplicationImpl_BatchGetPromptByPromptKey(t *testing.T) { }, }, wantR: &openapi.BatchGetPromptByPromptKeyResponse{ - Data: &openapi.PromptResultData{ - Items: []*openapi.PromptResult_{ + Data: &domainopenapi.PromptResultData{ + Items: []*domainopenapi.PromptResult_{ { - Query: &openapi.PromptQuery{ + Query: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt1"), Version: ptr.Of("1.0.0"), }, - Prompt: &openapi.Prompt{ + Prompt: &domainopenapi.Prompt{ WorkspaceID: ptr.Of(int64(123456)), PromptKey: ptr.Of("test_prompt1"), Version: ptr.Of("1.0.0"), - PromptTemplate: &openapi.PromptTemplate{ + PromptTemplate: &domainopenapi.PromptTemplate{ TemplateType: ptr.Of(prompt.TemplateTypeNormal), - Messages: []*openapi.Message{ + Messages: []*domainopenapi.Message{ { Role: ptr.Of(prompt.RoleSystem), Content: ptr.Of("You are a helpful assistant."), }, }, - VariableDefs: make([]*openapi.VariableDef, 0), + VariableDefs: make([]*domainopenapi.VariableDef, 0), }, - LlmConfig: &openapi.LLMConfig{ + LlmConfig: &domainopenapi.LLMConfig{ Temperature: ptr.Of(0.7), }, }, }, { - Query: &openapi.PromptQuery{ + Query: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt1"), Version: ptr.Of("2.0.0"), }, - Prompt: &openapi.Prompt{ + Prompt: &domainopenapi.Prompt{ WorkspaceID: ptr.Of(int64(123456)), PromptKey: ptr.Of("test_prompt1"), Version: ptr.Of("2.0.0"), - PromptTemplate: &openapi.PromptTemplate{ + PromptTemplate: &domainopenapi.PromptTemplate{ TemplateType: ptr.Of(prompt.TemplateTypeNormal), - Messages: []*openapi.Message{ + Messages: []*domainopenapi.Message{ { Role: ptr.Of(prompt.RoleSystem), Content: ptr.Of("You are a helpful assistant."), }, }, - VariableDefs: make([]*openapi.VariableDef, 0), + VariableDefs: make([]*domainopenapi.VariableDef, 0), }, - LlmConfig: &openapi.LLMConfig{ + LlmConfig: &domainopenapi.LLMConfig{ Temperature: ptr.Of(0.7), }, }, }, { - Query: &openapi.PromptQuery{ + Query: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt1"), }, - Prompt: &openapi.Prompt{ + Prompt: &domainopenapi.Prompt{ WorkspaceID: ptr.Of(int64(123456)), PromptKey: ptr.Of("test_prompt1"), Version: ptr.Of("2.0.0"), - PromptTemplate: &openapi.PromptTemplate{ + PromptTemplate: &domainopenapi.PromptTemplate{ TemplateType: ptr.Of(prompt.TemplateTypeNormal), - Messages: []*openapi.Message{ + Messages: []*domainopenapi.Message{ { Role: ptr.Of(prompt.RoleSystem), Content: ptr.Of("You are a helpful assistant."), }, }, - VariableDefs: make([]*openapi.VariableDef, 0), + VariableDefs: make([]*domainopenapi.VariableDef, 0), }, - LlmConfig: &openapi.LLMConfig{ + LlmConfig: &domainopenapi.LLMConfig{ Temperature: ptr.Of(0.7), }, }, @@ -591,7 +592,7 @@ func TestPromptOpenAPIApplicationImpl_BatchGetPromptByPromptKey(t *testing.T) { ctx: context.Background(), req: &openapi.BatchGetPromptByPromptKeyRequest{ WorkspaceID: ptr.Of(int64(123456)), - Queries: []*openapi.PromptQuery{ + Queries: []*domainopenapi.PromptQuery{ { PromptKey: ptr.Of("test_prompt1"), Version: ptr.Of("1.0.0"), @@ -628,7 +629,7 @@ func TestPromptOpenAPIApplicationImpl_BatchGetPromptByPromptKey(t *testing.T) { ctx: context.Background(), req: &openapi.BatchGetPromptByPromptKeyRequest{ WorkspaceID: ptr.Of(int64(123456)), - Queries: []*openapi.PromptQuery{ + Queries: []*domainopenapi.PromptQuery{ { PromptKey: ptr.Of("test_prompt1"), Version: ptr.Of("1.0.0"), @@ -671,7 +672,7 @@ func TestPromptOpenAPIApplicationImpl_BatchGetPromptByPromptKey(t *testing.T) { ctx: context.Background(), req: &openapi.BatchGetPromptByPromptKeyRequest{ WorkspaceID: ptr.Of(int64(123456)), - Queries: []*openapi.PromptQuery{ + Queries: []*domainopenapi.PromptQuery{ { PromptKey: ptr.Of("test_prompt1"), Version: ptr.Of("1.0.0"), @@ -715,7 +716,7 @@ func TestPromptOpenAPIApplicationImpl_BatchGetPromptByPromptKey(t *testing.T) { ctx: context.Background(), req: &openapi.BatchGetPromptByPromptKeyRequest{ WorkspaceID: ptr.Of(int64(123456)), - Queries: []*openapi.PromptQuery{ + Queries: []*domainopenapi.PromptQuery{ { PromptKey: ptr.Of("test_prompt1"), Version: ptr.Of("1.0.0"), @@ -764,7 +765,7 @@ func TestPromptOpenAPIApplicationImpl_BatchGetPromptByPromptKey(t *testing.T) { ctx: context.Background(), req: &openapi.BatchGetPromptByPromptKeyRequest{ WorkspaceID: ptr.Of(int64(123456)), - Queries: []*openapi.PromptQuery{ + Queries: []*domainopenapi.PromptQuery{ { PromptKey: ptr.Of("test_prompt1"), Version: ptr.Of("1.0.0"), @@ -813,7 +814,7 @@ func TestPromptOpenAPIApplicationImpl_BatchGetPromptByPromptKey(t *testing.T) { ctx: context.Background(), req: &openapi.BatchGetPromptByPromptKeyRequest{ WorkspaceID: ptr.Of(int64(123456)), - Queries: []*openapi.PromptQuery{ + Queries: []*domainopenapi.PromptQuery{ { PromptKey: ptr.Of("test_prompt1"), Version: ptr.Of("non_existent_version"), @@ -833,7 +834,7 @@ func TestPromptOpenAPIApplicationImpl_BatchGetPromptByPromptKey(t *testing.T) { ctx: context.Background(), req: &openapi.BatchGetPromptByPromptKeyRequest{ WorkspaceID: ptr.Of(int64(0)), - Queries: []*openapi.PromptQuery{ + Queries: []*domainopenapi.PromptQuery{ { PromptKey: ptr.Of("test_prompt1"), Version: ptr.Of("1.0.0"), @@ -853,7 +854,7 @@ func TestPromptOpenAPIApplicationImpl_BatchGetPromptByPromptKey(t *testing.T) { ctx: context.Background(), req: &openapi.BatchGetPromptByPromptKeyRequest{ WorkspaceID: nil, - Queries: []*openapi.PromptQuery{ + Queries: []*domainopenapi.PromptQuery{ { PromptKey: ptr.Of("test_prompt1"), Version: ptr.Of("1.0.0"), @@ -904,7 +905,7 @@ func TestPromptOpenAPIApplicationImpl_BatchGetPromptByPromptKey(t *testing.T) { ctx: context.Background(), req: &openapi.BatchGetPromptByPromptKeyRequest{ WorkspaceID: ptr.Of(int64(123456)), - Queries: []*openapi.PromptQuery{ + Queries: []*domainopenapi.PromptQuery{ { PromptKey: ptr.Of("test_prompt1"), Version: ptr.Of("1.0.0"), @@ -1002,7 +1003,7 @@ func TestPromptOpenAPIApplicationImpl_BatchGetPromptByPromptKey(t *testing.T) { ctx: context.Background(), req: &openapi.BatchGetPromptByPromptKeyRequest{ WorkspaceID: ptr.Of(int64(123456)), - Queries: []*openapi.PromptQuery{ + Queries: []*domainopenapi.PromptQuery{ { PromptKey: ptr.Of("test_prompt1"), Label: ptr.Of("stable"), @@ -1011,28 +1012,28 @@ func TestPromptOpenAPIApplicationImpl_BatchGetPromptByPromptKey(t *testing.T) { }, }, wantR: &openapi.BatchGetPromptByPromptKeyResponse{ - Data: &openapi.PromptResultData{ - Items: []*openapi.PromptResult_{ + Data: &domainopenapi.PromptResultData{ + Items: []*domainopenapi.PromptResult_{ { - Query: &openapi.PromptQuery{ + Query: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt1"), Label: ptr.Of("stable"), }, - Prompt: &openapi.Prompt{ + Prompt: &domainopenapi.Prompt{ WorkspaceID: ptr.Of(int64(123456)), PromptKey: ptr.Of("test_prompt1"), Version: ptr.Of("2.0.0"), - PromptTemplate: &openapi.PromptTemplate{ + PromptTemplate: &domainopenapi.PromptTemplate{ TemplateType: ptr.Of(prompt.TemplateTypeNormal), - Messages: []*openapi.Message{ + Messages: []*domainopenapi.Message{ { Role: ptr.Of(prompt.RoleSystem), Content: ptr.Of("You are a helpful assistant."), }, }, - VariableDefs: make([]*openapi.VariableDef, 0), + VariableDefs: make([]*domainopenapi.VariableDef, 0), }, - LlmConfig: &openapi.LLMConfig{ + LlmConfig: &domainopenapi.LLMConfig{ Temperature: ptr.Of(0.7), }, }, @@ -1172,7 +1173,7 @@ func TestPromptOpenAPIApplicationImpl_BatchGetPromptByPromptKey(t *testing.T) { ctx: context.Background(), req: &openapi.BatchGetPromptByPromptKeyRequest{ WorkspaceID: ptr.Of(int64(123456)), - Queries: []*openapi.PromptQuery{ + Queries: []*domainopenapi.PromptQuery{ { PromptKey: ptr.Of("test_prompt1"), Version: ptr.Of("1.0.0"), @@ -1185,52 +1186,52 @@ func TestPromptOpenAPIApplicationImpl_BatchGetPromptByPromptKey(t *testing.T) { }, }, wantR: &openapi.BatchGetPromptByPromptKeyResponse{ - Data: &openapi.PromptResultData{ - Items: []*openapi.PromptResult_{ + Data: &domainopenapi.PromptResultData{ + Items: []*domainopenapi.PromptResult_{ { - Query: &openapi.PromptQuery{ + Query: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt1"), Version: ptr.Of("1.0.0"), }, - Prompt: &openapi.Prompt{ + Prompt: &domainopenapi.Prompt{ WorkspaceID: ptr.Of(int64(123456)), PromptKey: ptr.Of("test_prompt1"), Version: ptr.Of("1.0.0"), - PromptTemplate: &openapi.PromptTemplate{ + PromptTemplate: &domainopenapi.PromptTemplate{ TemplateType: ptr.Of(prompt.TemplateTypeNormal), - Messages: []*openapi.Message{ + Messages: []*domainopenapi.Message{ { Role: ptr.Of(prompt.RoleSystem), Content: ptr.Of("You are a helpful assistant."), }, }, - VariableDefs: make([]*openapi.VariableDef, 0), + VariableDefs: make([]*domainopenapi.VariableDef, 0), }, - LlmConfig: &openapi.LLMConfig{ + LlmConfig: &domainopenapi.LLMConfig{ Temperature: ptr.Of(0.7), }, }, }, { - Query: &openapi.PromptQuery{ + Query: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt2"), Label: ptr.Of("beta"), }, - Prompt: &openapi.Prompt{ + Prompt: &domainopenapi.Prompt{ WorkspaceID: ptr.Of(int64(123456)), PromptKey: ptr.Of("test_prompt2"), Version: ptr.Of("1.5.0"), - PromptTemplate: &openapi.PromptTemplate{ + PromptTemplate: &domainopenapi.PromptTemplate{ TemplateType: ptr.Of(prompt.TemplateTypeNormal), - Messages: []*openapi.Message{ + Messages: []*domainopenapi.Message{ { Role: ptr.Of(prompt.RoleSystem), Content: ptr.Of("You are a helpful assistant."), }, }, - VariableDefs: make([]*openapi.VariableDef, 0), + VariableDefs: make([]*domainopenapi.VariableDef, 0), }, - LlmConfig: &openapi.LLMConfig{ + LlmConfig: &domainopenapi.LLMConfig{ Temperature: ptr.Of(0.7), }, }, @@ -1273,7 +1274,7 @@ func TestPromptOpenAPIApplicationImpl_BatchGetPromptByPromptKey(t *testing.T) { ctx: context.Background(), req: &openapi.BatchGetPromptByPromptKeyRequest{ WorkspaceID: ptr.Of(int64(123456)), - Queries: []*openapi.PromptQuery{ + Queries: []*domainopenapi.PromptQuery{ { PromptKey: ptr.Of("test_prompt1"), Label: ptr.Of("non_existent_label"), @@ -1367,7 +1368,7 @@ func TestPromptOpenAPIApplicationImpl_BatchGetPromptByPromptKey(t *testing.T) { ctx: context.Background(), req: &openapi.BatchGetPromptByPromptKeyRequest{ WorkspaceID: ptr.Of(int64(123456)), - Queries: []*openapi.PromptQuery{ + Queries: []*domainopenapi.PromptQuery{ { PromptKey: ptr.Of("test_prompt1"), Version: ptr.Of("1.0.0"), @@ -1420,7 +1421,7 @@ func TestPromptOpenAPIApplicationImpl_BatchGetPromptByPromptKey(t *testing.T) { ctx: context.Background(), req: &openapi.BatchGetPromptByPromptKeyRequest{ WorkspaceID: ptr.Of(int64(123456)), - Queries: []*openapi.PromptQuery{ + Queries: []*domainopenapi.PromptQuery{ { PromptKey: ptr.Of("test_prompt1"), Version: ptr.Of("1.0.0"), @@ -1465,11 +1466,11 @@ func TestValidateExecuteRequest(t *testing.T) { name: "success: valid request", req: &openapi.ExecuteRequest{ WorkspaceID: ptr.Of(int64(123456)), - PromptIdentifier: &openapi.PromptQuery{ + PromptIdentifier: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt"), Version: ptr.Of("1.0.0"), }, - Messages: []*openapi.Message{ + Messages: []*domainopenapi.Message{ { Role: ptr.Of(prompt.RoleUser), Content: ptr.Of("Hello"), @@ -1482,7 +1483,7 @@ func TestValidateExecuteRequest(t *testing.T) { name: "error: workspace_id is zero", req: &openapi.ExecuteRequest{ WorkspaceID: ptr.Of(int64(0)), - PromptIdentifier: &openapi.PromptQuery{ + PromptIdentifier: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt"), }, }, @@ -1492,7 +1493,7 @@ func TestValidateExecuteRequest(t *testing.T) { name: "error: workspace_id is nil", req: &openapi.ExecuteRequest{ WorkspaceID: nil, - PromptIdentifier: &openapi.PromptQuery{ + PromptIdentifier: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt"), }, }, @@ -1510,7 +1511,7 @@ func TestValidateExecuteRequest(t *testing.T) { name: "error: prompt_key is empty", req: &openapi.ExecuteRequest{ WorkspaceID: ptr.Of(int64(123456)), - PromptIdentifier: &openapi.PromptQuery{ + PromptIdentifier: &domainopenapi.PromptQuery{ PromptKey: ptr.Of(""), }, }, @@ -1520,7 +1521,7 @@ func TestValidateExecuteRequest(t *testing.T) { name: "error: prompt_key is nil", req: &openapi.ExecuteRequest{ WorkspaceID: ptr.Of(int64(123456)), - PromptIdentifier: &openapi.PromptQuery{ + PromptIdentifier: &domainopenapi.PromptQuery{ PromptKey: nil, }, }, @@ -1530,15 +1531,15 @@ func TestValidateExecuteRequest(t *testing.T) { name: "error: invalid image URL", req: &openapi.ExecuteRequest{ WorkspaceID: ptr.Of(int64(123456)), - PromptIdentifier: &openapi.PromptQuery{ + PromptIdentifier: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt"), }, - Messages: []*openapi.Message{ + Messages: []*domainopenapi.Message{ { Role: ptr.Of(prompt.RoleUser), - Parts: []*openapi.ContentPart{ + Parts: []*domainopenapi.ContentPart{ { - Type: ptr.Of(openapi.ContentTypeImageURL), + Type: ptr.Of(domainopenapi.ContentTypeImageURL), ImageURL: ptr.Of("invalid-url"), }, }, @@ -1551,15 +1552,15 @@ func TestValidateExecuteRequest(t *testing.T) { name: "error: invalid base64 data", req: &openapi.ExecuteRequest{ WorkspaceID: ptr.Of(int64(123456)), - PromptIdentifier: &openapi.PromptQuery{ + PromptIdentifier: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt"), }, - Messages: []*openapi.Message{ + Messages: []*domainopenapi.Message{ { Role: ptr.Of(prompt.RoleUser), - Parts: []*openapi.ContentPart{ + Parts: []*domainopenapi.ContentPart{ { - Type: ptr.Of(openapi.ContentTypeBase64Data), + Type: ptr.Of(domainopenapi.ContentTypeBase64Data), Base64Data: ptr.Of("invalid-base64"), }, }, @@ -1572,15 +1573,15 @@ func TestValidateExecuteRequest(t *testing.T) { name: "success: valid image URL", req: &openapi.ExecuteRequest{ WorkspaceID: ptr.Of(int64(123456)), - PromptIdentifier: &openapi.PromptQuery{ + PromptIdentifier: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt"), }, - Messages: []*openapi.Message{ + Messages: []*domainopenapi.Message{ { Role: ptr.Of(prompt.RoleUser), - Parts: []*openapi.ContentPart{ + Parts: []*domainopenapi.ContentPart{ { - Type: ptr.Of(openapi.ContentTypeImageURL), + Type: ptr.Of(domainopenapi.ContentTypeImageURL), ImageURL: ptr.Of("https://example.com/image.jpg"), }, }, @@ -1593,15 +1594,15 @@ func TestValidateExecuteRequest(t *testing.T) { name: "success: valid base64 data", req: &openapi.ExecuteRequest{ WorkspaceID: ptr.Of(int64(123456)), - PromptIdentifier: &openapi.PromptQuery{ + PromptIdentifier: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt"), }, - Messages: []*openapi.Message{ + Messages: []*domainopenapi.Message{ { Role: ptr.Of(prompt.RoleUser), - Parts: []*openapi.ContentPart{ + Parts: []*domainopenapi.ContentPart{ { - Type: ptr.Of(openapi.ContentTypeBase64Data), + Type: ptr.Of(domainopenapi.ContentTypeBase64Data), Base64Data: ptr.Of("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8/5+hHgAHggJ/PchI7wAAAABJRU5ErkJggg=="), }, }, @@ -1614,15 +1615,15 @@ func TestValidateExecuteRequest(t *testing.T) { name: "error: invalid base64 data in variable vals", req: &openapi.ExecuteRequest{ WorkspaceID: ptr.Of(int64(123456)), - PromptIdentifier: &openapi.PromptQuery{ + PromptIdentifier: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt"), }, - VariableVals: []*openapi.VariableVal{ + VariableVals: []*domainopenapi.VariableVal{ { Key: ptr.Of("image_var"), - MultiPartValues: []*openapi.ContentPart{ + MultiPartValues: []*domainopenapi.ContentPart{ { - Type: ptr.Of(openapi.ContentTypeBase64Data), + Type: ptr.Of(domainopenapi.ContentTypeBase64Data), Base64Data: ptr.Of("invalid-base64"), }, }, @@ -1792,7 +1793,7 @@ func TestPromptOpenAPIApplicationImpl_getPromptByPromptKey(t *testing.T) { type args struct { ctx context.Context spaceID int64 - promptIdentifier *openapi.PromptQuery + promptIdentifier *domainopenapi.PromptQuery } tests := []struct { @@ -1868,7 +1869,7 @@ func TestPromptOpenAPIApplicationImpl_getPromptByPromptKey(t *testing.T) { args: args{ ctx: context.Background(), spaceID: 123456, - promptIdentifier: &openapi.PromptQuery{ + promptIdentifier: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt"), Version: ptr.Of("1.0.0"), }, @@ -1937,7 +1938,7 @@ func TestPromptOpenAPIApplicationImpl_getPromptByPromptKey(t *testing.T) { args: args{ ctx: context.Background(), spaceID: 123456, - promptIdentifier: &openapi.PromptQuery{ + promptIdentifier: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt"), Version: ptr.Of("1.0.0"), }, @@ -1964,7 +1965,7 @@ func TestPromptOpenAPIApplicationImpl_getPromptByPromptKey(t *testing.T) { args: args{ ctx: context.Background(), spaceID: 123456, - promptIdentifier: &openapi.PromptQuery{ + promptIdentifier: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt"), Version: ptr.Of("1.0.0"), }, @@ -1997,7 +1998,7 @@ func TestPromptOpenAPIApplicationImpl_getPromptByPromptKey(t *testing.T) { args: args{ ctx: context.Background(), spaceID: 123456, - promptIdentifier: &openapi.PromptQuery{ + promptIdentifier: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt"), Version: ptr.Of("1.0.0"), }, @@ -2032,7 +2033,7 @@ func TestPromptOpenAPIApplicationImpl_getPromptByPromptKey(t *testing.T) { args: args{ ctx: context.Background(), spaceID: 123456, - promptIdentifier: &openapi.PromptQuery{ + promptIdentifier: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt"), Version: ptr.Of("1.0.0"), }, @@ -2107,7 +2108,7 @@ func TestPromptOpenAPIApplicationImpl_getPromptByPromptKey(t *testing.T) { args: args{ ctx: context.Background(), spaceID: 123456, - promptIdentifier: &openapi.PromptQuery{ + promptIdentifier: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt"), Label: ptr.Of("stable"), }, @@ -2493,17 +2494,17 @@ func TestPromptOpenAPIApplicationImpl_doExecute(t *testing.T) { ctx: context.Background(), req: &openapi.ExecuteRequest{ WorkspaceID: ptr.Of(int64(123456)), - PromptIdentifier: &openapi.PromptQuery{ + PromptIdentifier: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt"), Version: ptr.Of("1.0.0"), }, - Messages: []*openapi.Message{ + Messages: []*domainopenapi.Message{ { Role: ptr.Of(prompt.RoleUser), Content: ptr.Of("Hello"), }, }, - ResponseAPIConfig: &openapi.ResponseAPIConfig{ + ResponseAPIConfig: &domainopenapi.ResponseAPIConfig{ PreviousResponseID: ptr.Of("prev-id"), EnableCaching: ptr.Of(true), SessionID: ptr.Of("session-123"), @@ -2595,7 +2596,7 @@ func TestPromptOpenAPIApplicationImpl_doExecute(t *testing.T) { ctx: context.Background(), req: &openapi.ExecuteRequest{ WorkspaceID: ptr.Of(int64(123456)), - PromptIdentifier: &openapi.PromptQuery{ + PromptIdentifier: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt"), Version: ptr.Of("1.0.0"), }, @@ -2629,7 +2630,7 @@ func TestPromptOpenAPIApplicationImpl_doExecute(t *testing.T) { ctx: context.Background(), req: &openapi.ExecuteRequest{ WorkspaceID: ptr.Of(int64(123456)), - PromptIdentifier: &openapi.PromptQuery{ + PromptIdentifier: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt"), Version: ptr.Of("1.0.0"), }, @@ -2664,7 +2665,7 @@ func TestPromptOpenAPIApplicationImpl_doExecute(t *testing.T) { ctx: context.Background(), req: &openapi.ExecuteRequest{ WorkspaceID: ptr.Of(int64(123456)), - PromptIdentifier: &openapi.PromptQuery{ + PromptIdentifier: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt"), Version: ptr.Of("1.0.0"), }, @@ -2719,7 +2720,7 @@ func TestPromptOpenAPIApplicationImpl_doExecute(t *testing.T) { ctx: context.Background(), req: &openapi.ExecuteRequest{ WorkspaceID: ptr.Of(int64(123456)), - PromptIdentifier: &openapi.PromptQuery{ + PromptIdentifier: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt"), Version: ptr.Of("1.0.0"), }, @@ -2780,7 +2781,7 @@ func TestPromptOpenAPIApplicationImpl_doExecute(t *testing.T) { ctx: context.Background(), req: &openapi.ExecuteRequest{ WorkspaceID: ptr.Of(int64(123456)), - PromptIdentifier: &openapi.PromptQuery{ + PromptIdentifier: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt"), Version: ptr.Of("1.0.0"), }, @@ -2956,11 +2957,11 @@ func TestPromptOpenAPIApplicationImpl_Execute(t *testing.T) { ctx: context.Background(), req: &openapi.ExecuteRequest{ WorkspaceID: ptr.Of(int64(123456)), - PromptIdentifier: &openapi.PromptQuery{ + PromptIdentifier: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt"), Version: ptr.Of("1.0.0"), }, - Messages: []*openapi.Message{ + Messages: []*domainopenapi.Message{ { Role: ptr.Of(prompt.RoleUser), Content: ptr.Of("Hello"), @@ -2969,13 +2970,13 @@ func TestPromptOpenAPIApplicationImpl_Execute(t *testing.T) { }, }, wantR: &openapi.ExecuteResponse{ - Data: &openapi.ExecuteData{ - Message: &openapi.Message{ + Data: &domainopenapi.ExecuteData{ + Message: &domainopenapi.Message{ Role: ptr.Of(prompt.RoleAssistant), Content: ptr.Of("Hello, how can I help you?"), }, FinishReason: ptr.Of("stop"), - Usage: &openapi.TokenUsage{ + Usage: &domainopenapi.TokenUsage{ InputTokens: ptr.Of(int32(10)), OutputTokens: ptr.Of(int32(20)), }, @@ -3051,11 +3052,11 @@ func TestPromptOpenAPIApplicationImpl_Execute(t *testing.T) { ctx: context.Background(), req: &openapi.ExecuteRequest{ WorkspaceID: ptr.Of(int64(123456)), - PromptIdentifier: &openapi.PromptQuery{ + PromptIdentifier: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt"), Version: ptr.Of("1.0.0"), }, - Messages: []*openapi.Message{ + Messages: []*domainopenapi.Message{ { Role: ptr.Of(prompt.RoleUser), Content: ptr.Of("Hello"), @@ -3080,7 +3081,7 @@ func TestPromptOpenAPIApplicationImpl_Execute(t *testing.T) { ctx: context.Background(), req: &openapi.ExecuteRequest{ WorkspaceID: ptr.Of(int64(0)), // 无效的 workspace_id - PromptIdentifier: &openapi.PromptQuery{ + PromptIdentifier: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt"), }, }, @@ -3112,11 +3113,11 @@ func TestPromptOpenAPIApplicationImpl_Execute(t *testing.T) { ctx: context.Background(), req: &openapi.ExecuteRequest{ WorkspaceID: ptr.Of(int64(123456)), - PromptIdentifier: &openapi.PromptQuery{ + PromptIdentifier: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt"), Version: ptr.Of("1.0.0"), }, - Messages: []*openapi.Message{ + Messages: []*domainopenapi.Message{ { Role: ptr.Of(prompt.RoleUser), Content: ptr.Of("Hello"), @@ -3188,11 +3189,11 @@ func TestPromptOpenAPIApplicationImpl_Execute(t *testing.T) { ctx: context.Background(), req: &openapi.ExecuteRequest{ WorkspaceID: ptr.Of(int64(123456)), - PromptIdentifier: &openapi.PromptQuery{ + PromptIdentifier: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt"), Version: ptr.Of("1.0.0"), }, - Messages: []*openapi.Message{ + Messages: []*domainopenapi.Message{ { Role: ptr.Of(prompt.RoleUser), Content: ptr.Of("Hello"), @@ -3473,17 +3474,17 @@ func TestPromptOpenAPIApplicationImpl_ExecuteStreaming(t *testing.T) { ctx: ctx, req: &openapi.ExecuteRequest{ WorkspaceID: ptr.Of(int64(123456)), - PromptIdentifier: &openapi.PromptQuery{ + PromptIdentifier: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt"), Version: ptr.Of("1.0.0"), }, - Messages: []*openapi.Message{ + Messages: []*domainopenapi.Message{ { Role: ptr.Of(prompt.RoleUser), Content: ptr.Of("Hello"), }, }, - ResponseAPIConfig: &openapi.ResponseAPIConfig{ + ResponseAPIConfig: &domainopenapi.ResponseAPIConfig{ PreviousResponseID: ptr.Of("prev-id"), EnableCaching: ptr.Of(true), SessionID: ptr.Of("session-123"), @@ -3579,7 +3580,7 @@ func TestPromptOpenAPIApplicationImpl_ExecuteStreaming(t *testing.T) { ctx: ctx, req: &openapi.ExecuteRequest{ WorkspaceID: ptr.Of(int64(123456)), - PromptIdentifier: &openapi.PromptQuery{ + PromptIdentifier: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt"), Version: ptr.Of("1.0.0"), }, @@ -3613,7 +3614,7 @@ func TestPromptOpenAPIApplicationImpl_ExecuteStreaming(t *testing.T) { ctx: ctx, req: &openapi.ExecuteRequest{ WorkspaceID: ptr.Of(int64(0)), // 无效的 workspace_id - PromptIdentifier: &openapi.PromptQuery{ + PromptIdentifier: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt"), }, }, @@ -3643,7 +3644,7 @@ func TestPromptOpenAPIApplicationImpl_ExecuteStreaming(t *testing.T) { ctx: ctx, req: &openapi.ExecuteRequest{ WorkspaceID: ptr.Of(int64(123456)), - PromptIdentifier: &openapi.PromptQuery{ + PromptIdentifier: &domainopenapi.PromptQuery{ PromptKey: ptr.Of(""), // 空的 prompt_key }, }, @@ -3673,15 +3674,15 @@ func TestPromptOpenAPIApplicationImpl_ExecuteStreaming(t *testing.T) { ctx: ctx, req: &openapi.ExecuteRequest{ WorkspaceID: ptr.Of(int64(123456)), - PromptIdentifier: &openapi.PromptQuery{ + PromptIdentifier: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt"), }, - Messages: []*openapi.Message{ + Messages: []*domainopenapi.Message{ { Role: ptr.Of(prompt.RoleUser), - Parts: []*openapi.ContentPart{ + Parts: []*domainopenapi.ContentPart{ { - Type: ptr.Of(openapi.ContentTypeImageURL), + Type: ptr.Of(domainopenapi.ContentTypeImageURL), ImageURL: ptr.Of("invalid-url"), // 无效的URL }, }, @@ -3714,15 +3715,15 @@ func TestPromptOpenAPIApplicationImpl_ExecuteStreaming(t *testing.T) { ctx: ctx, req: &openapi.ExecuteRequest{ WorkspaceID: ptr.Of(int64(123456)), - PromptIdentifier: &openapi.PromptQuery{ + PromptIdentifier: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt"), }, - Messages: []*openapi.Message{ + Messages: []*domainopenapi.Message{ { Role: ptr.Of(prompt.RoleUser), - Parts: []*openapi.ContentPart{ + Parts: []*domainopenapi.ContentPart{ { - Type: ptr.Of(openapi.ContentTypeBase64Data), + Type: ptr.Of(domainopenapi.ContentTypeBase64Data), Base64Data: ptr.Of("invalid-base64"), // 无效的base64 }, }, @@ -3765,11 +3766,11 @@ func TestPromptOpenAPIApplicationImpl_ExecuteStreaming(t *testing.T) { ctx: ctx, req: &openapi.ExecuteRequest{ WorkspaceID: ptr.Of(int64(123456)), - PromptIdentifier: &openapi.PromptQuery{ + PromptIdentifier: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt"), Version: ptr.Of("1.0.0"), }, - Messages: []*openapi.Message{ + Messages: []*domainopenapi.Message{ { Role: ptr.Of(prompt.RoleUser), Content: ptr.Of("Hello"), @@ -3872,11 +3873,11 @@ func TestPromptOpenAPIApplicationImpl_ExecuteStreaming(t *testing.T) { ctx: ctx, req: &openapi.ExecuteRequest{ WorkspaceID: ptr.Of(int64(123456)), - PromptIdentifier: &openapi.PromptQuery{ + PromptIdentifier: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt"), Version: ptr.Of("1.0.0"), }, - Messages: []*openapi.Message{ + Messages: []*domainopenapi.Message{ { Role: ptr.Of(prompt.RoleUser), Content: ptr.Of("Hello"), @@ -3924,11 +3925,11 @@ func TestPromptOpenAPIApplicationImpl_ExecuteStreaming(t *testing.T) { ctx: ctx, req: &openapi.ExecuteRequest{ WorkspaceID: ptr.Of(int64(123456)), - PromptIdentifier: &openapi.PromptQuery{ + PromptIdentifier: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt"), Version: ptr.Of("1.0.0"), }, - Messages: []*openapi.Message{ + Messages: []*domainopenapi.Message{ { Role: ptr.Of(prompt.RoleUser), Content: ptr.Of("Hello"), @@ -4037,11 +4038,11 @@ func TestPromptOpenAPIApplicationImpl_ExecuteStreaming(t *testing.T) { ctx: ctx, req: &openapi.ExecuteRequest{ WorkspaceID: ptr.Of(int64(123456)), - PromptIdentifier: &openapi.PromptQuery{ + PromptIdentifier: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt"), Version: ptr.Of("1.0.0"), }, - Messages: []*openapi.Message{ + Messages: []*domainopenapi.Message{ { Role: ptr.Of(prompt.RoleUser), Content: ptr.Of("Hello"), @@ -4179,11 +4180,11 @@ func TestPromptOpenAPIApplicationImpl_ExecuteStreaming(t *testing.T) { ctx: ctx, req: &openapi.ExecuteRequest{ WorkspaceID: ptr.Of(int64(123456)), - PromptIdentifier: &openapi.PromptQuery{ + PromptIdentifier: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt"), Version: ptr.Of("1.0.0"), }, - Messages: []*openapi.Message{ + Messages: []*domainopenapi.Message{ { Role: ptr.Of(prompt.RoleUser), Content: ptr.Of("Hello"), @@ -4321,11 +4322,11 @@ func TestPromptOpenAPIApplicationImpl_ExecuteStreaming(t *testing.T) { ctx: ctx, req: &openapi.ExecuteRequest{ WorkspaceID: ptr.Of(int64(123456)), - PromptIdentifier: &openapi.PromptQuery{ + PromptIdentifier: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt"), Version: ptr.Of("1.0.0"), }, - Messages: []*openapi.Message{ + Messages: []*domainopenapi.Message{ { Role: ptr.Of(prompt.RoleUser), Content: ptr.Of("Hello"), @@ -4434,11 +4435,11 @@ func TestPromptOpenAPIApplicationImpl_ExecuteStreaming(t *testing.T) { ctx: ctx, req: &openapi.ExecuteRequest{ WorkspaceID: ptr.Of(int64(123456)), - PromptIdentifier: &openapi.PromptQuery{ + PromptIdentifier: &domainopenapi.PromptQuery{ PromptKey: ptr.Of("test_prompt"), Version: ptr.Of("1.0.0"), }, - Messages: []*openapi.Message{ + Messages: []*domainopenapi.Message{ { Role: ptr.Of(prompt.RoleUser), Content: ptr.Of("Hello"), @@ -4581,9 +4582,9 @@ func TestPromptOpenAPIApplicationImpl_ListPromptBasic(t *testing.T) { }, }, wantR: &openapi.ListPromptBasicResponse{ - Data: &openapi.ListPromptBasicData{ + Data: &domainopenapi.ListPromptBasicData{ Total: ptr.Of(int32(2)), - Prompts: []*openapi.PromptBasic{ + Prompts: []*domainopenapi.PromptBasic{ { ID: ptr.Of(int64(123)), WorkspaceID: ptr.Of(int64(123456)), @@ -4668,9 +4669,9 @@ func TestPromptOpenAPIApplicationImpl_ListPromptBasic(t *testing.T) { }, }, wantR: &openapi.ListPromptBasicResponse{ - Data: &openapi.ListPromptBasicData{ + Data: &domainopenapi.ListPromptBasicData{ Total: ptr.Of(int32(1)), - Prompts: []*openapi.PromptBasic{ + Prompts: []*domainopenapi.PromptBasic{ { ID: ptr.Of(int64(123)), WorkspaceID: ptr.Of(int64(123456)), @@ -4745,9 +4746,9 @@ func TestPromptOpenAPIApplicationImpl_ListPromptBasic(t *testing.T) { }, }, wantR: &openapi.ListPromptBasicResponse{ - Data: &openapi.ListPromptBasicData{ + Data: &domainopenapi.ListPromptBasicData{ Total: ptr.Of(int32(1)), - Prompts: []*openapi.PromptBasic{ + Prompts: []*domainopenapi.PromptBasic{ { ID: ptr.Of(int64(123)), WorkspaceID: ptr.Of(int64(123456)), @@ -4800,9 +4801,9 @@ func TestPromptOpenAPIApplicationImpl_ListPromptBasic(t *testing.T) { }, }, wantR: &openapi.ListPromptBasicResponse{ - Data: &openapi.ListPromptBasicData{ + Data: &domainopenapi.ListPromptBasicData{ Total: ptr.Of(int32(0)), - Prompts: []*openapi.PromptBasic{}, + Prompts: []*domainopenapi.PromptBasic{}, }, }, wantErr: nil, diff --git a/backend/modules/prompt/domain/service/execute_test.go b/backend/modules/prompt/domain/service/execute_test.go index 0c6775347..0ff139cac 100644 --- a/backend/modules/prompt/domain/service/execute_test.go +++ b/backend/modules/prompt/domain/service/execute_test.go @@ -1330,7 +1330,7 @@ func TestPromptServiceImpl_reorganizeContexts_ToolResultMap(t *testing.T) { got, err := p.reorganizeContexts( []*entity.Message{{Role: entity.RoleUser, Content: ptr.Of("user")}}, - map[string]string{"tool_a": "tool output"}, + map[string]string{"call_1tool_a": "tool output"}, reply, ) assert.NoError(t, err) @@ -1373,7 +1373,7 @@ func TestPromptServiceImpl_reportToolSpan_UsesToolResultMap(t *testing.T) { }, } - p.reportToolSpan(context.Background(), prompt, map[string]string{"tool_a": "tool output"}, replyItem) + p.reportToolSpan(context.Background(), prompt, map[string]string{"call_1tool_a": "tool output"}, replyItem) if assert.Len(t, recorder.spans, 1) { assert.Equal(t, "tool output", recorder.spans[0].output) diff --git a/backend/modules/prompt/domain/service/tool_results_collector_test.go b/backend/modules/prompt/domain/service/tool_results_collector_test.go index f62a4be07..eb0cfeddb 100644 --- a/backend/modules/prompt/domain/service/tool_results_collector_test.go +++ b/backend/modules/prompt/domain/service/tool_results_collector_test.go @@ -35,11 +35,21 @@ func TestToolResultsCollector_CollectToolResults(t *testing.T) { {Name: "tool_a", MockResponse: "{\"ok\":true}"}, {Name: "tool_b", MockResponse: "b"}, }, + Reply: &entity.Reply{ + Item: &entity.ReplyItem{ + Message: &entity.Message{ + ToolCalls: []*entity.ToolCall{ + {ID: "c1", FunctionCall: &entity.FunctionCall{Name: "tool_a"}}, + {ID: "c2", FunctionCall: &entity.FunctionCall{Name: "tool_b"}}, + }, + }, + }, + }, }) assert.NoError(t, err) assert.Equal(t, map[string]string{ - "tool_a": "{\"ok\":true}", - "tool_b": "b", + "c1tool_a": "{\"ok\":true}", + "c2tool_b": "b", }, got) }) @@ -50,10 +60,19 @@ func TestToolResultsCollector_CollectToolResults(t *testing.T) { {Name: "", MockResponse: "ignored"}, {Name: "tool_a", MockResponse: "a"}, }, + Reply: &entity.Reply{ + Item: &entity.ReplyItem{ + Message: &entity.Message{ + ToolCalls: []*entity.ToolCall{ + {ID: "c1", FunctionCall: &entity.FunctionCall{Name: "tool_a"}}, + }, + }, + }, + }, }) assert.NoError(t, err) assert.Equal(t, map[string]string{ - "tool_a": "a", + "c1tool_a": "a", }, got) }) } From 8bdcb3c3d819119992a09b114045716c9460089e Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Thu, 19 Mar 2026 11:22:03 +0800 Subject: [PATCH 54/58] [feat][prompt]: add ut --- .../convertor/openapi_coverage_test.go | 148 +++++++++++ .../convertor/prompt_coverage_test.go | 238 ++++++++++++++++++ .../domain/service/execute_coverage_test.go | 86 +++++++ .../infra/metrics/paas_coverage_test.go | 157 ++++++++++++ 4 files changed, 629 insertions(+) create mode 100644 backend/modules/prompt/application/convertor/openapi_coverage_test.go create mode 100644 backend/modules/prompt/application/convertor/prompt_coverage_test.go create mode 100644 backend/modules/prompt/domain/service/execute_coverage_test.go create mode 100644 backend/modules/prompt/infra/metrics/paas_coverage_test.go diff --git a/backend/modules/prompt/application/convertor/openapi_coverage_test.go b/backend/modules/prompt/application/convertor/openapi_coverage_test.go new file mode 100644 index 000000000..56a24e39a --- /dev/null +++ b/backend/modules/prompt/application/convertor/openapi_coverage_test.go @@ -0,0 +1,148 @@ +// Copyright (c) 2025 coze-dev Authors +// SPDX-License-Identifier: Apache-2.0 + +package convertor + +import ( + "testing" + "time" + + "github.com/stretchr/testify/assert" + + domainopenapi "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/prompt/domain_openapi/prompt" + "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/entity" + "github.com/coze-dev/coze-loop/backend/pkg/lang/ptr" +) + +func TestOpenAPIThinkingOptionDTO2DO_DefaultBranch(t *testing.T) { + t.Parallel() + unknown := domainopenapi.ThinkingOption("unknown") + result := OpenAPIThinkingOptionDTO2DO(&unknown) + assert.Nil(t, result) +} + +func TestOpenAPIReasoningEffortDTO2DO_DefaultBranch(t *testing.T) { + t.Parallel() + unknown := domainopenapi.ReasoningEffort("unknown") + result := OpenAPIReasoningEffortDTO2DO(&unknown) + assert.Nil(t, result) +} + +func TestOpenAPIThinkingOptionDO2DTO_DefaultBranch(t *testing.T) { + t.Parallel() + unknown := entity.ThinkingOption("unknown") + result := OpenAPIThinkingOptionDO2DTO(&unknown) + assert.Nil(t, result) +} + +func TestOpenAPIReasoningEffortDO2DTO_DefaultBranch(t *testing.T) { + t.Parallel() + unknown := entity.ReasoningEffort("unknown") + result := OpenAPIReasoningEffortDO2DTO(&unknown) + assert.Nil(t, result) +} + +func TestOpenAPIContentPartDO2DTO_VideoURLEmptyString(t *testing.T) { + t.Parallel() + do := &entity.ContentPart{ + Type: entity.ContentTypeVideoURL, + VideoURL: &entity.VideoURL{ + URL: "", + }, + } + result := OpenAPIContentPartDO2DTO(do) + assert.NotNil(t, result) + assert.Nil(t, result.VideoURL) +} + +func TestOpenAPIContentPartDO2DTO_MediaConfigNil(t *testing.T) { + t.Parallel() + do := &entity.ContentPart{ + Type: entity.ContentTypeText, + Text: ptr.Of("hello"), + MediaConfig: nil, + } + result := OpenAPIContentPartDO2DTO(do) + assert.NotNil(t, result) + assert.Nil(t, result.Config) +} + +func TestOpenAPIContentPartDTO2DO_ImageURLNil(t *testing.T) { + t.Parallel() + dto := &domainopenapi.ContentPart{ + Type: ptr.Of(domainopenapi.ContentTypeText), + Text: ptr.Of("hello"), + ImageURL: nil, + } + result := OpenAPIContentPartDTO2DO(dto) + assert.NotNil(t, result) + assert.Nil(t, result.ImageURL) +} + +func TestOpenAPIContentPartDTO2DO_VideoURLNil(t *testing.T) { + t.Parallel() + dto := &domainopenapi.ContentPart{ + Type: ptr.Of(domainopenapi.ContentTypeText), + Text: ptr.Of("hello"), + VideoURL: nil, + } + result := OpenAPIContentPartDTO2DO(dto) + assert.NotNil(t, result) + assert.Nil(t, result.VideoURL) +} + +func TestOpenAPIBatchVariableDefDO2DTO_EmptySlice(t *testing.T) { + t.Parallel() + dos := make([]*entity.VariableDef, 0) + result := OpenAPIBatchVariableDefDO2DTO(dos) + assert.NotNil(t, result) + assert.Empty(t, result) +} + +func TestOpenAPIPromptBasicDO2DTO_LatestCommittedAtNotNil(t *testing.T) { + t.Parallel() + now := time.Now() + do := &entity.Prompt{ + ID: 1, + SpaceID: 2, + PromptKey: "key", + PromptBasic: &entity.PromptBasic{ + DisplayName: "test", + Description: "desc", + LatestVersion: "v1", + CreatedBy: "user1", + UpdatedBy: "user2", + CreatedAt: now, + UpdatedAt: now, + LatestCommittedAt: &now, + }, + } + result := OpenAPIPromptBasicDO2DTO(do) + assert.NotNil(t, result) + assert.NotNil(t, result.LatestCommittedAt) + assert.Equal(t, now.UnixMilli(), *result.LatestCommittedAt) +} + +func TestOpenAPIBatchToolDTO2DO_NilSlice(t *testing.T) { + t.Parallel() + result := OpenAPIBatchToolDTO2DO(nil) + assert.Nil(t, result) +} + +func TestOpenAPIBatchParamConfigValueDTO2DO_NilSlice(t *testing.T) { + t.Parallel() + result := OpenAPIBatchParamConfigValueDTO2DO(nil) + assert.Nil(t, result) +} + +func TestOpenAPIContentTypeDO2DTO_Base64Data(t *testing.T) { + t.Parallel() + result := OpenAPIContentTypeDO2DTO(entity.ContentTypeBase64Data) + assert.Equal(t, domainopenapi.ContentTypeBase64Data, result) +} + +func TestOpenAPIContentTypeDTO2DO_Base64Data(t *testing.T) { + t.Parallel() + result := OpenAPIContentTypeDTO2DO(domainopenapi.ContentTypeBase64Data) + assert.Equal(t, entity.ContentTypeBase64Data, result) +} diff --git a/backend/modules/prompt/application/convertor/prompt_coverage_test.go b/backend/modules/prompt/application/convertor/prompt_coverage_test.go new file mode 100644 index 000000000..16bc2929b --- /dev/null +++ b/backend/modules/prompt/application/convertor/prompt_coverage_test.go @@ -0,0 +1,238 @@ +// Copyright (c) 2025 coze-dev Authors +// SPDX-License-Identifier: Apache-2.0 + +package convertor + +import ( + "testing" + "time" + + "github.com/stretchr/testify/assert" + + "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/prompt/domain/prompt" + "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/entity" + "github.com/coze-dev/coze-loop/backend/pkg/lang/ptr" +) + +func TestSecurityLevelDTO2DO_AllCases(t *testing.T) { + t.Parallel() + tests := []struct { + name string + dto prompt.SecurityLevel + want entity.SecurityLevel + }{ + {"L1", prompt.SecurityLevelL1, entity.SecurityLevelL1}, + {"L2", prompt.SecurityLevelL2, entity.SecurityLevelL2}, + {"L3", prompt.SecurityLevelL3, entity.SecurityLevelL3}, + {"L4", prompt.SecurityLevelL4, entity.SecurityLevelL4}, + {"default", "unknown", entity.SecurityLevelL3}, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + assert.Equal(t, tt.want, SecurityLevelDTO2DO(tt.dto)) + }) + } +} + +func TestSecurityLevelDO2DTO_AllCases(t *testing.T) { + t.Parallel() + tests := []struct { + name string + do entity.SecurityLevel + want *prompt.SecurityLevel + }{ + {"L1", entity.SecurityLevelL1, ptr.Of(prompt.SecurityLevelL1)}, + {"L2", entity.SecurityLevelL2, ptr.Of(prompt.SecurityLevelL2)}, + {"L3", entity.SecurityLevelL3, ptr.Of(prompt.SecurityLevelL3)}, + {"L4", entity.SecurityLevelL4, ptr.Of(prompt.SecurityLevelL4)}, + {"default", entity.SecurityLevel("unknown"), ptr.Of(prompt.SecurityLevel("L3"))}, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + assert.Equal(t, tt.want, SecurityLevelDO2DTO(tt.do)) + }) + } +} + +func TestVariableTypeDTO2DO_Default(t *testing.T) { + t.Parallel() + assert.Equal(t, entity.VariableTypeString, VariableTypeDTO2DO("unknown_type")) +} + +func TestToolChoiceTypeDTO2DO_Default(t *testing.T) { + t.Parallel() + assert.Equal(t, entity.ToolChoiceTypeAuto, ToolChoiceTypeDTO2DO("unknown")) +} + +func TestPromptTypeDTO2DO_Default(t *testing.T) { + t.Parallel() + assert.Equal(t, entity.PromptTypeNormal, PromptTypeDTO2DO("unknown")) +} + +func TestPromptTypeDO2DTO_Default(t *testing.T) { + t.Parallel() + assert.Equal(t, prompt.PromptTypeNormal, PromptTypeDO2DTO("unknown")) +} + +func TestTemplateTypeDTO2DO_Default(t *testing.T) { + t.Parallel() + assert.Equal(t, entity.TemplateTypeNormal, TemplateTypeDTO2DO("unknown")) +} + +func TestBatchPromptDTO2DO_AllNil(t *testing.T) { + t.Parallel() + result := BatchPromptDTO2DO([]*prompt.Prompt{nil, nil, nil}) + assert.Nil(t, result) +} + +func TestBatchPromptDO2DTO_EmptyAndAllNil(t *testing.T) { + t.Parallel() + // empty slice + assert.Nil(t, BatchPromptDO2DTO([]*entity.Prompt{})) + // all nil elements + assert.Nil(t, BatchPromptDO2DTO([]*entity.Prompt{nil, nil})) +} + +func TestBatchCommitInfoDO2DTO_EmptyAndAllNil(t *testing.T) { + t.Parallel() + // empty slice + assert.Nil(t, BatchCommitInfoDO2DTO([]*entity.CommitInfo{})) + // all nil elements + assert.Nil(t, BatchCommitInfoDO2DTO([]*entity.CommitInfo{nil, nil})) +} + +func TestPromptBasicDO2DTO_LatestCommittedAtNotNil(t *testing.T) { + t.Parallel() + now := time.Now() + do := &entity.PromptBasic{ + PromptType: entity.PromptTypeNormal, + SecurityLevel: entity.SecurityLevelL3, + DisplayName: "test", + LatestCommittedAt: &now, + CreatedAt: now, + UpdatedAt: now, + } + dto := PromptBasicDO2DTO(do) + assert.NotNil(t, dto) + assert.NotNil(t, dto.LatestCommittedAt) + assert.Equal(t, now.UnixMilli(), *dto.LatestCommittedAt) +} + +func TestMcpConfigDTO2DO_NonNil(t *testing.T) { + t.Parallel() + dto := &prompt.McpConfig{ + IsMcpCallAutoRetry: ptr.Of(true), + McpServers: []*prompt.McpServerCombine{ + { + McpServerID: ptr.Of(int64(10)), + AccessPointID: ptr.Of(int64(20)), + }, + }, + } + result := McpConfigDTO2DO(dto) + assert.NotNil(t, result) + assert.Equal(t, ptr.Of(true), result.IsMcpCallAutoRetry) + assert.Len(t, result.McpServers, 1) + assert.Equal(t, ptr.Of(int64(10)), result.McpServers[0].McpServerID) +} + +func TestMcpServerCombineDTO2DO_NonNil(t *testing.T) { + t.Parallel() + dto := &prompt.McpServerCombine{ + McpServerID: ptr.Of(int64(1)), + AccessPointID: ptr.Of(int64(2)), + DisabledTools: []string{"a"}, + EnabledTools: []string{"b"}, + IsEnabledTools: ptr.Of(true), + } + result := McpServerCombineDTO2DO(dto) + assert.NotNil(t, result) + assert.Equal(t, ptr.Of(int64(1)), result.McpServerID) + assert.Equal(t, ptr.Of(int64(2)), result.AccessPointID) + assert.Equal(t, []string{"a"}, result.DisabledTools) + assert.Equal(t, []string{"b"}, result.EnabledTools) + assert.Equal(t, ptr.Of(true), result.IsEnabledTools) +} + +func TestParamConfigValueDTO2DO_NonNil(t *testing.T) { + t.Parallel() + dto := &prompt.ParamConfigValue{ + Name: ptr.Of("name"), + Label: ptr.Of("label"), + Value: &prompt.ParamOption{ + Value: ptr.Of("v"), + Label: ptr.Of("l"), + }, + } + result := ParamConfigValueDTO2DO(dto) + assert.NotNil(t, result) + assert.Equal(t, "name", result.Name) + assert.Equal(t, "label", result.Label) + assert.NotNil(t, result.Value) + assert.Equal(t, "v", result.Value.Value) +} + +func TestParamOptionDTO2DO_NonNil(t *testing.T) { + t.Parallel() + dto := &prompt.ParamOption{ + Value: ptr.Of("val"), + Label: ptr.Of("lab"), + } + result := ParamOptionDTO2DO(dto) + assert.NotNil(t, result) + assert.Equal(t, "val", result.Value) + assert.Equal(t, "lab", result.Label) +} + +func TestThinkingOptionDTO2DO_NonNil(t *testing.T) { + t.Parallel() + opt := prompt.ThinkingOptionEnabled + result := ThinkingOptionDTO2DO(&opt) + assert.NotNil(t, result) + assert.Equal(t, entity.ThinkingOptionEnabled, *result) +} + +func TestReasoningEffortDTO2DO_NonNil(t *testing.T) { + t.Parallel() + eff := prompt.ReasoningEffortHigh + result := ReasoningEffortDTO2DO(&eff) + assert.NotNil(t, result) + assert.Equal(t, entity.ReasoningEffortHigh, *result) +} + +func TestThinkingOptionDO2DTO_NonNil(t *testing.T) { + t.Parallel() + opt := entity.ThinkingOptionAuto + result := ThinkingOptionDO2DTO(&opt) + assert.NotNil(t, result) + assert.Equal(t, prompt.ThinkingOptionAuto, *result) +} + +func TestReasoningEffortDO2DTO_NonNil(t *testing.T) { + t.Parallel() + eff := entity.ReasoningEffortMedium + result := ReasoningEffortDO2DTO(&eff) + assert.NotNil(t, result) + assert.Equal(t, prompt.ReasoningEffortMedium, *result) +} + +func TestScenarioDTO2DO_Default(t *testing.T) { + t.Parallel() + assert.Equal(t, entity.ScenarioDefault, ScenarioDTO2DO("unknown")) +} + +func TestContentTypeDO2DTO_VideoURLAndDefault(t *testing.T) { + t.Parallel() + // VideoURL case returns "video_url" + assert.Equal(t, prompt.ContentType("video_url"), ContentTypeDO2DTO(entity.ContentTypeVideoURL)) + // default case + assert.Equal(t, prompt.ContentTypeText, ContentTypeDO2DTO(entity.ContentType("unknown"))) +} + +func TestRoleDO2DTO_PlaceholderAndDefault(t *testing.T) { + t.Parallel() + assert.Equal(t, prompt.RolePlaceholder, RoleDO2DTO(entity.RolePlaceholder)) + assert.Equal(t, prompt.RoleUser, RoleDO2DTO(entity.Role("unknown"))) +} diff --git a/backend/modules/prompt/domain/service/execute_coverage_test.go b/backend/modules/prompt/domain/service/execute_coverage_test.go new file mode 100644 index 000000000..baadbdb24 --- /dev/null +++ b/backend/modules/prompt/domain/service/execute_coverage_test.go @@ -0,0 +1,86 @@ +// Copyright (c) 2025 coze-dev Authors +// SPDX-License-Identifier: Apache-2.0 + +package service + +import ( + "testing" + "time" + + "github.com/stretchr/testify/assert" + + "github.com/coze-dev/coze-loop/backend/modules/prompt/domain/entity" +) + +func TestShouldContinue(t *testing.T) { + makeReplyWithToolCalls := func(toolCalls []*entity.ToolCall) *entity.Reply { + return &entity.Reply{ + Item: &entity.ReplyItem{ + Message: &entity.Message{ + ToolCalls: toolCalls, + }, + }, + } + } + + t.Run("singleStep=true returns false", func(t *testing.T) { + reply := makeReplyWithToolCalls([]*entity.ToolCall{{ID: "1"}}) + assert.False(t, shouldContinue(true, time.Now(), 1, reply)) + }) + + t.Run("currentStep >= maxIterations returns false", func(t *testing.T) { + reply := makeReplyWithToolCalls([]*entity.ToolCall{{ID: "1"}}) + assert.False(t, shouldContinue(false, time.Now(), maxIterations, reply)) + }) + + t.Run("exceeded maxDuration returns false", func(t *testing.T) { + reply := makeReplyWithToolCalls([]*entity.ToolCall{{ID: "1"}}) + pastStart := time.Now().Add(-maxDuration - 1*time.Minute) + assert.False(t, shouldContinue(false, pastStart, 1, reply)) + }) + + t.Run("nil reply returns false", func(t *testing.T) { + assert.False(t, shouldContinue(false, time.Now(), 1, nil)) + }) + + t.Run("nil reply.Item returns false", func(t *testing.T) { + assert.False(t, shouldContinue(false, time.Now(), 1, &entity.Reply{})) + }) + + t.Run("nil reply.Item.Message returns false", func(t *testing.T) { + assert.False(t, shouldContinue(false, time.Now(), 1, &entity.Reply{ + Item: &entity.ReplyItem{}, + })) + }) + + t.Run("empty ToolCalls returns false", func(t *testing.T) { + reply := makeReplyWithToolCalls(nil) + assert.False(t, shouldContinue(false, time.Now(), 1, reply)) + }) + + t.Run("non-empty ToolCalls returns true", func(t *testing.T) { + reply := makeReplyWithToolCalls([]*entity.ToolCall{{ID: "1"}}) + assert.True(t, shouldContinue(false, time.Now(), 1, reply)) + }) +} + +func TestEncodeDecodeDebugIDAndStep(t *testing.T) { + t.Run("round trip", func(t *testing.T) { + debugID := int64(123456789) + debugStep := int32(7) + + encoded, err := encodeDebugIDAndStep(debugID, debugStep) + assert.NoError(t, err) + assert.NotEmpty(t, encoded) + + decodedID, decodedStep, err := decodeDebugIDAndStep(encoded) + assert.NoError(t, err) + assert.Equal(t, debugID, decodedID) + assert.Equal(t, debugStep, decodedStep) + }) + + t.Run("decode invalid string returns error", func(t *testing.T) { + _, _, err := decodeDebugIDAndStep("not-valid-base32") + assert.Error(t, err) + }) +} diff --git a/backend/modules/prompt/infra/metrics/paas_coverage_test.go b/backend/modules/prompt/infra/metrics/paas_coverage_test.go new file mode 100644 index 000000000..209f237ce --- /dev/null +++ b/backend/modules/prompt/infra/metrics/paas_coverage_test.go @@ -0,0 +1,157 @@ +// Copyright (c) 2025 coze-dev Authors +// SPDX-License-Identifier: Apache-2.0 + +package metrics + +import ( + "context" + "testing" + "time" + + "github.com/stretchr/testify/assert" +) + +func TestStringNotEmptyOrDefault(t *testing.T) { + t.Run("non-empty returns s", func(t *testing.T) { + assert.Equal(t, "hello", stringNotEmptyOrDefault("hello", "default")) + }) + + t.Run("empty returns defaultVal", func(t *testing.T) { + assert.Equal(t, "default", stringNotEmptyOrDefault("", "default")) + }) +} + +func TestWithPaasPSM(t *testing.T) { + ctx := NewPaasMetricsCtx(context.Background()) + WithPaasPSM(ctx, "test_psm") + mc := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx) + assert.Equal(t, "test_psm", mc.tagMap["psm"]) +} + +func TestWithPaaSAccountMode(t *testing.T) { + ctx := NewPaasMetricsCtx(context.Background()) + WithPaaSAccountMode(ctx, "mode1") + mc := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx) + assert.Equal(t, "mode1", mc.tagMap["account_mode"]) +} + +func TestWithPaaSModel(t *testing.T) { + ctx := NewPaasMetricsCtx(context.Background()) + WithPaaSModel(ctx, "gpt4") + mc := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx) + assert.Equal(t, "gpt4", mc.tagMap["model"]) +} + +func TestWithPaasIsBOE(t *testing.T) { + ctx := NewPaasMetricsCtx(context.Background()) + WithPaasIsBOE(ctx, true) + mc := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx) + assert.Equal(t, "true", mc.tagMap["is_boe"]) +} + +func TestWithPaasFeature(t *testing.T) { + ctx := NewPaasMetricsCtx(context.Background()) + WithPaasFeature(ctx, "feat1") + mc := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx) + assert.Equal(t, "feat1", mc.tagMap["feature"]) +} + +func TestWithPaasPSMVerified(t *testing.T) { + ctx := NewPaasMetricsCtx(context.Background()) + WithPaasPSMVerified(ctx, true) + mc := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx) + assert.Equal(t, "true", mc.tagMap["psm_verified"]) +} + +func TestWithPaasPSMInACL(t *testing.T) { + ctx := NewPaasMetricsCtx(context.Background()) + WithPaasPSMInACL(ctx, false) + mc := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx) + assert.Equal(t, "false", mc.tagMap["psm_in_acl"]) +} + +func TestWithPaaSUserAllowed(t *testing.T) { + ctx := NewPaasMetricsCtx(context.Background()) + WithPaaSUserAllowed(ctx, true) + mc := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx) + assert.Equal(t, "true", mc.tagMap["user_allowed"]) +} + +func TestWithPaasSecurityLevel(t *testing.T) { + ctx := NewPaasMetricsCtx(context.Background()) + WithPaasSecurityLevel(ctx, "L3") + mc := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx) + assert.Equal(t, "L3", mc.tagMap["security_level"]) +} + +func TestWithPaasFirstTokenTime(t *testing.T) { + ctx := NewPaasMetricsCtx(context.Background()) + WithPaasFirstTokenTime(ctx) + mc := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx) + assert.False(t, mc.firstTokenTime.IsZero()) +} + +func TestWithPaasTokenConsumption(t *testing.T) { + ctx := NewPaasMetricsCtx(context.Background()) + WithPaasTokenConsumption(ctx, 100, 200) + mc := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx) + assert.Equal(t, 100, mc.inputToken) + assert.Equal(t, 200, mc.outputToken) +} + +func TestWithPaasMaxToken(t *testing.T) { + ctx := NewPaasMetricsCtx(context.Background()) + WithPaasMaxToken(ctx, 4096) + mc := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx) + assert.Equal(t, 4096, mc.maxToken) +} + +func TestWithOther_Concatenation(t *testing.T) { + ctx := NewPaasMetricsCtx(context.Background()) + + WithOther(ctx, "a") + mc := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx) + assert.Equal(t, "a", mc.tagMap["other"]) + + WithOther(ctx, "b") + assert.Equal(t, "a|b", mc.tagMap["other"]) +} + +func TestNewPaasMetricsCtx_AlreadyExists(t *testing.T) { + ctx := NewPaasMetricsCtx(context.Background()) + mc1 := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx) + + ctx2 := NewPaasMetricsCtx(ctx) + mc2 := ctx2.Value(paasMetricsCtxKey{}).(*paasMetricsCtx) + + assert.Same(t, mc1, mc2) +} + +func TestNewPaasMetricsCtx_StartTimeSet(t *testing.T) { + before := time.Now() + ctx := NewPaasMetricsCtx(context.Background()) + after := time.Now() + + mc := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx) + assert.False(t, mc.start.Before(before)) + assert.False(t, mc.start.After(after)) +} + +func TestWithPaas_NoMetricsCtx_NoPanic(t *testing.T) { + ctx := context.Background() + assert.NotPanics(t, func() { + WithPaasPSM(ctx, "psm") + WithPaaSAccountMode(ctx, "mode") + WithPaaSModel(ctx, "model") + WithPaasIsBOE(ctx, true) + WithPaasFeature(ctx, "feat") + WithPaasPSMVerified(ctx, true) + WithPaasPSMInACL(ctx, false) + WithPaaSUserAllowed(ctx, true) + WithPaasSecurityLevel(ctx, "L1") + WithPaasFirstTokenTime(ctx) + WithPaasTokenConsumption(ctx, 1, 2) + WithPaasMaxToken(ctx, 100) + WithOther(ctx, "x") + }) +} From 13ae3b72381ed519bae2d7a5ea6e56404bc59f23 Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Thu, 19 Mar 2026 21:36:08 +0800 Subject: [PATCH 55/58] test: improve prompt patch coverage --- .../modules/prompt/application/manage_test.go | 149 ++++++ .../infra/metrics/paas_coverage_test.go | 156 ++++++ .../modules/prompt/infra/repo/manage_test.go | 449 ++++++++++++++++++ 3 files changed, 754 insertions(+) diff --git a/backend/modules/prompt/application/manage_test.go b/backend/modules/prompt/application/manage_test.go index 4433513aa..32d117c88 100644 --- a/backend/modules/prompt/application/manage_test.go +++ b/backend/modules/prompt/application/manage_test.go @@ -444,6 +444,155 @@ func TestPromptManageApplicationImpl_BatchGetPrompt(t *testing.T) { } } +func TestPromptManageApplicationImpl_BatchGetPromptBasic(t *testing.T) { + type fields struct { + manageRepo repo.IManageRepo + authRPCProvider rpc.IAuthProvider + userRPCProvider rpc.IUserProvider + auditRPCProvider rpc.IAuditProvider + configProvider conf.IConfigProvider + } + type args struct { + ctx context.Context + request *manage.BatchGetPromptBasicRequest + } + tests := []struct { + name string + fieldsGetter func(ctrl *gomock.Controller) fields + args args + wantErr error + assertResp func(t *testing.T, resp *manage.BatchGetPromptBasicResponse) + }{ + { + name: "user not found", + fieldsGetter: func(ctrl *gomock.Controller) fields { return fields{} }, + args: args{ + ctx: context.Background(), + request: &manage.BatchGetPromptBasicRequest{ + WorkspaceID: ptr.Of(int64(100)), + PromptIds: []int64{1, 2}, + }, + }, + wantErr: errorx.NewByCode(prompterr.CommonInvalidParamCode, errorx.WithExtraMsg("User not found")), + }, + { + name: "permission denied", + fieldsGetter: func(ctrl *gomock.Controller) fields { + auth := mocks.NewMockIAuthProvider(ctrl) + auth.EXPECT().MCheckPromptPermission(gomock.Any(), int64(100), []int64{1, 2}, consts.ActionLoopPromptRead).Return(errorx.New("permission denied")) + return fields{authRPCProvider: auth} + }, + args: args{ + ctx: session.WithCtxUser(context.Background(), &session.User{ID: "user"}), + request: &manage.BatchGetPromptBasicRequest{ + WorkspaceID: ptr.Of(int64(100)), + PromptIds: []int64{1, 2}, + }, + }, + wantErr: errorx.New("permission denied"), + }, + { + name: "repo error", + fieldsGetter: func(ctrl *gomock.Controller) fields { + auth := mocks.NewMockIAuthProvider(ctrl) + auth.EXPECT().MCheckPromptPermission(gomock.Any(), int64(100), []int64{1}, consts.ActionLoopPromptRead).Return(nil) + + repoMock := repomocks.NewMockIManageRepo(ctrl) + repoMock.EXPECT().BatchGetPromptBasic(gomock.Any(), []int64{1}).Return(nil, errorx.New("repo error")) + + return fields{ + manageRepo: repoMock, + authRPCProvider: auth, + } + }, + args: args{ + ctx: session.WithCtxUser(context.Background(), &session.User{ID: "user"}), + request: &manage.BatchGetPromptBasicRequest{ + WorkspaceID: ptr.Of(int64(100)), + PromptIds: []int64{1}, + }, + }, + wantErr: errorx.New("repo error"), + }, + { + name: "success", + fieldsGetter: func(ctrl *gomock.Controller) fields { + auth := mocks.NewMockIAuthProvider(ctrl) + auth.EXPECT().MCheckPromptPermission(gomock.Any(), int64(100), []int64{1, 2}, consts.ActionLoopPromptRead).Return(nil) + + repoMock := repomocks.NewMockIManageRepo(ctrl) + repoMock.EXPECT().BatchGetPromptBasic(gomock.Any(), []int64{1, 2}).Return(map[int64]*entity.Prompt{ + 1: { + ID: 1, + SpaceID: 100, + PromptKey: "prompt_a", + PromptBasic: &entity.PromptBasic{ + DisplayName: "Prompt A", + PromptType: entity.PromptTypeNormal, + }, + }, + 2: { + ID: 2, + SpaceID: 100, + PromptKey: "prompt_b", + PromptBasic: &entity.PromptBasic{ + DisplayName: "Prompt B", + PromptType: entity.PromptTypeSnippet, + }, + }, + }, nil) + + return fields{ + manageRepo: repoMock, + authRPCProvider: auth, + } + }, + args: args{ + ctx: session.WithCtxUser(context.Background(), &session.User{ID: "user"}), + request: &manage.BatchGetPromptBasicRequest{ + WorkspaceID: ptr.Of(int64(100)), + PromptIds: []int64{1, 2}, + }, + }, + assertResp: func(t *testing.T, resp *manage.BatchGetPromptBasicResponse) { + assert.Len(t, resp.Prompts, 2) + got := make(map[int64]*prompt.Prompt) + for _, promptDTO := range resp.Prompts { + got[promptDTO.GetID()] = promptDTO + } + assert.Equal(t, "prompt_a", got[1].GetPromptKey()) + assert.Equal(t, prompt.PromptTypeNormal, got[1].PromptBasic.GetPromptType()) + assert.Equal(t, "prompt_b", got[2].GetPromptKey()) + assert.Equal(t, prompt.PromptTypeSnippet, got[2].PromptBasic.GetPromptType()) + }, + }, + } + + for _, tt := range tests { + caseData := tt + t.Run(caseData.name, func(t *testing.T) { + t.Parallel() + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + ff := caseData.fieldsGetter(ctrl) + app := &PromptManageApplicationImpl{ + manageRepo: ff.manageRepo, + authRPCProvider: ff.authRPCProvider, + userRPCProvider: ff.userRPCProvider, + auditRPCProvider: ff.auditRPCProvider, + configProvider: ff.configProvider, + } + + resp, err := app.BatchGetPromptBasic(caseData.args.ctx, caseData.args.request) + unittest.AssertErrorEqual(t, caseData.wantErr, err) + if err == nil && caseData.assertResp != nil { + caseData.assertResp(t, resp) + } + }) + } +} + func TestNewPromptManageApplication(t *testing.T) { t.Parallel() ctrl := gomock.NewController(t) diff --git a/backend/modules/prompt/infra/metrics/paas_coverage_test.go b/backend/modules/prompt/infra/metrics/paas_coverage_test.go index 209f237ce..6edb7faac 100644 --- a/backend/modules/prompt/infra/metrics/paas_coverage_test.go +++ b/backend/modules/prompt/infra/metrics/paas_coverage_test.go @@ -5,10 +5,15 @@ package metrics import ( "context" + "errors" + "sync" "testing" "time" + "github.com/cloudwego/kitex/pkg/kerrors" "github.com/stretchr/testify/assert" + + inframetrics "github.com/coze-dev/coze-loop/backend/infra/metrics" ) func TestStringNotEmptyOrDefault(t *testing.T) { @@ -155,3 +160,154 @@ func TestWithPaas_NoMetricsCtx_NoPanic(t *testing.T) { WithOther(ctx, "x") }) } + +type captureMetric struct { + tags []inframetrics.T + values []*inframetrics.Value +} + +func (m *captureMetric) Emit(tags []inframetrics.T, values ...*inframetrics.Value) { + m.tags = append([]inframetrics.T(nil), tags...) + m.values = append([]*inframetrics.Value(nil), values...) +} + +type captureMeter struct { + metric inframetrics.Metric + err error + name string + types []inframetrics.MetricType + tagNames []string +} + +func (m *captureMeter) NewMetric(name string, types []inframetrics.MetricType, tagNames []string) (inframetrics.Metric, error) { + m.name = name + m.types = append([]inframetrics.MetricType(nil), types...) + m.tagNames = append([]string(nil), tagNames...) + return m.metric, m.err +} + +func resetPromptPaasMetrics() { + promptPaasMetrics = nil + promptPaasMetricsInitOnce = sync.Once{} +} + +func tagValue(tags []inframetrics.T, name string) string { + for _, tag := range tags { + if tag.Name == name { + return tag.Value + } + } + return "" +} + +func TestPromptPaasMetricsCreationAndEmit(t *testing.T) { + resetPromptPaasMetrics() + t.Cleanup(resetPromptPaasMetrics) + + assert.Nil(t, NewPromptPaasMetrics(nil)) + + resetPromptPaasMetrics() + errMeter := &captureMeter{err: errors.New("new metric error")} + assert.Nil(t, NewPromptPaasMetrics(errMeter)) + + resetPromptPaasMetrics() + metric := &captureMetric{} + meter := &captureMeter{metric: metric} + + got := NewPromptPaasMetrics(meter) + assert.NotNil(t, got) + assert.Equal(t, promptPaasMetricsPrefix, meter.name) + assert.Equal(t, []inframetrics.MetricType{inframetrics.MetricTypeCounter, inframetrics.MetricTypeTimer}, meter.types) + assert.Equal(t, promptPaasMtrTags(), meter.tagNames) + + got.Emit([]inframetrics.T{{Name: "space_id", Value: "1"}}, inframetrics.Counter(1)) + assert.Len(t, metric.tags, 1) + assert.Equal(t, "space_id", metric.tags[0].Name) + assert.Len(t, metric.values, 1) + assert.Equal(t, inframetrics.MetricTypeCounter, metric.values[0].GetType()) + assert.Equal(t, int64(1), *metric.values[0].GetValue()) +} + +func TestWithPaasStatus(t *testing.T) { + t.Run("success", func(t *testing.T) { + ctx := NewPaasMetricsCtx(context.Background()) + WithPaasStatus(ctx, nil) + + mc := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx) + assert.Equal(t, "success", mc.tagMap[paasStatusTag]) + assert.Equal(t, "0", mc.tagMap[paasStatusCodeTag]) + assert.Equal(t, "0", mc.tagMap[paasIsErrAffectStabilityTag]) + }) + + t.Run("biz error", func(t *testing.T) { + ctx := NewPaasMetricsCtx(context.Background()) + WithPaasStatus(ctx, kerrors.NewBizStatusErrorWithExtra(4001, "biz err", map[string]string{ + bizExtraKeyAffectStability: "0", + })) + + mc := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx) + assert.Equal(t, "error", mc.tagMap[paasStatusTag]) + assert.Equal(t, "4001", mc.tagMap[paasStatusCodeTag]) + assert.Equal(t, "0", mc.tagMap[paasIsErrAffectStabilityTag]) + }) +} + +func TestEmitPaasMetric(t *testing.T) { + resetPromptPaasMetrics() + t.Cleanup(resetPromptPaasMetrics) + + metric := &captureMetric{} + promptPaasMetrics = &PromptPaasMetrics{metric: metric} + + ctx := NewPaasMetricsCtx(context.Background()) + mc := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx) + mc.start = time.Now().Add(-2 * time.Second) + mc.firstTokenTime = mc.start.Add(500 * time.Millisecond) + + WithPaasSpace(ctx, 100) + WithPaasPSM(ctx, "prompt.psm") + WithPaasMethod(ctx, "Execute") + WithOther(ctx, "from_test") + WithPaaSAccountMode(ctx, "shared") + WithPaasPromptKey(ctx, "prompt_key") + WithPaasPromptType(ctx, 2) + WithHasMessage(ctx, true) + WithHasContexts(ctx, false) + WithPaasUsageScenario(ctx, "debug") + WithPaasVersion(ctx, "v1.0.0") + WithPaasIsBOE(ctx, true) + WithPaasFeature(ctx, "streaming") + WithPaasPSMVerified(ctx, true) + WithPaasPSMInACL(ctx, false) + WithPaaSUserAllowed(ctx, true) + WithPaasSecurityLevel(ctx, "L3") + WithPaasTokenConsumption(ctx, 12, 34) + WithPaasMaxToken(ctx, 4096) + WithPaasStatus(ctx, kerrors.NewBizStatusError(5001, "failed")) + + EmitPaasMetric(ctx) + + assert.Equal(t, "100", tagValue(metric.tags, paasSpaceTag)) + assert.Equal(t, "prompt_key", tagValue(metric.tags, paasPromptKeyTag)) + assert.Equal(t, "prompt.psm", tagValue(metric.tags, paasPSMTag)) + assert.Equal(t, "Execute", tagValue(metric.tags, paasMethodTag)) + assert.Equal(t, "error", tagValue(metric.tags, paasStatusTag)) + assert.Equal(t, "5001", tagValue(metric.tags, paasStatusCodeTag)) + assert.Equal(t, "debug", tagValue(metric.tags, paasUsageScenarioTag)) + assert.Equal(t, "v1.0.0", tagValue(metric.tags, paasVersionTag)) + assert.Equal(t, "2", tagValue(metric.tags, paasPromptTypeTag)) + assert.Equal(t, "true", tagValue(metric.tags, paasHasMessageTag)) + assert.Equal(t, "false", tagValue(metric.tags, paasHasContexts)) + + assert.Len(t, metric.values, 6) + assert.Equal(t, inframetrics.MetricTypeCounter, metric.values[0].GetType()) + assert.Equal(t, int64(1), *metric.values[0].GetValue()) + assert.Equal(t, inframetrics.MetricTypeTimer, metric.values[1].GetType()) + assert.Equal(t, firstTokenLatencySuffix, metric.values[2].GetSuffix()) + assert.Equal(t, inputTokenSuffix, metric.values[3].GetSuffix()) + assert.Equal(t, int64(12), *metric.values[3].GetValue()) + assert.Equal(t, outputTokenSuffix, metric.values[4].GetSuffix()) + assert.Equal(t, int64(34), *metric.values[4].GetValue()) + assert.Equal(t, maxTokenSuffix, metric.values[5].GetSuffix()) + assert.Equal(t, int64(4096), *metric.values[5].GetValue()) +} diff --git a/backend/modules/prompt/infra/repo/manage_test.go b/backend/modules/prompt/infra/repo/manage_test.go index 3d7baca22..a01b580a0 100644 --- a/backend/modules/prompt/infra/repo/manage_test.go +++ b/backend/modules/prompt/infra/repo/manage_test.go @@ -747,6 +747,110 @@ func TestManageRepoImpl_MGetPromptBasicByPromptKey(t *testing.T) { } } +func TestManageRepoImpl_BatchGetPromptBasic(t *testing.T) { + type fields struct { + promptBasicDAO mysql.IPromptBasicDAO + } + type args struct { + ctx context.Context + promptIDs []int64 + } + tests := []struct { + name string + fieldsGetter func(ctrl *gomock.Controller) fields + args args + want map[int64]*entity.Prompt + wantErr error + }{ + { + name: "empty prompt ids", + fieldsGetter: func(ctrl *gomock.Controller) fields { return fields{} }, + args: args{ + ctx: context.Background(), + promptIDs: nil, + }, + want: map[int64]*entity.Prompt{}, + }, + { + name: "mget prompt error", + fieldsGetter: func(ctrl *gomock.Controller) fields { + mockBasicDAO := daomocks.NewMockIPromptBasicDAO(ctrl) + mockBasicDAO.EXPECT().MGet(gomock.Any(), []int64{1, 2}, gomock.Any()).Return(nil, errorx.New("db error")) + return fields{promptBasicDAO: mockBasicDAO} + }, + args: args{ + ctx: context.Background(), + promptIDs: []int64{1, 2}, + }, + wantErr: errorx.New("db error"), + }, + { + name: "success", + fieldsGetter: func(ctrl *gomock.Controller) fields { + mockBasicDAO := daomocks.NewMockIPromptBasicDAO(ctrl) + mockBasicDAO.EXPECT().MGet(gomock.Any(), []int64{1, 2}, gomock.Any()).Return(map[int64]*model.PromptBasic{ + 1: { + ID: 1, + SpaceID: 100, + PromptKey: "prompt_a", + Name: "Prompt A", + }, + 2: { + ID: 2, + SpaceID: 100, + PromptKey: "prompt_b", + PromptType: string(entity.PromptTypeSnippet), + }, + }, nil) + return fields{promptBasicDAO: mockBasicDAO} + }, + args: args{ + ctx: context.Background(), + promptIDs: []int64{1, 2}, + }, + want: map[int64]*entity.Prompt{ + 1: { + ID: 1, + SpaceID: 100, + PromptKey: "prompt_a", + PromptBasic: &entity.PromptBasic{ + DisplayName: "Prompt A", + PromptType: entity.PromptTypeNormal, + }, + }, + 2: { + ID: 2, + SpaceID: 100, + PromptKey: "prompt_b", + PromptBasic: &entity.PromptBasic{ + PromptType: entity.PromptTypeSnippet, + }, + }, + }, + }, + } + + for _, tt := range tests { + caseData := tt + t.Run(caseData.name, func(t *testing.T) { + t.Parallel() + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + ff := caseData.fieldsGetter(ctrl) + repoImpl := &ManageRepoImpl{ + promptBasicDAO: ff.promptBasicDAO, + } + + got, err := repoImpl.BatchGetPromptBasic(caseData.args.ctx, caseData.args.promptIDs) + unittest.AssertErrorEqual(t, caseData.wantErr, err) + if err == nil { + assert.Equal(t, caseData.want, got) + } + }) + } +} + func TestManageRepoImpl_GetPrompt(t *testing.T) { type fields struct { db db.Provider @@ -3009,6 +3113,351 @@ func TestManageRepoImpl_CreatePrompt(t *testing.T) { } } +func TestManageRepoImpl_DeletePrompt(t *testing.T) { + type fields struct { + promptBasicDAO mysql.IPromptBasicDAO + promptRelationDAO mysql.IPromptRelationDAO + promptBasicCacheDAO redis.IPromptBasicDAO + } + type args struct { + ctx context.Context + promptID int64 + } + tests := []struct { + name string + fieldsGetter func(ctrl *gomock.Controller) fields + args args + wantErr error + }{ + { + name: "invalid prompt id", + fieldsGetter: func(ctrl *gomock.Controller) fields { return fields{} }, + args: args{ + ctx: context.Background(), + promptID: 0, + }, + wantErr: errorx.New("promptID is invalid, promptID = 0"), + }, + { + name: "get prompt error", + fieldsGetter: func(ctrl *gomock.Controller) fields { + mockBasicDAO := daomocks.NewMockIPromptBasicDAO(ctrl) + mockBasicDAO.EXPECT().Get(gomock.Any(), int64(1)).Return(nil, errorx.New("get error")) + return fields{promptBasicDAO: mockBasicDAO} + }, + args: args{ + ctx: context.Background(), + promptID: 1, + }, + wantErr: errorx.New("get error"), + }, + { + name: "prompt not found", + fieldsGetter: func(ctrl *gomock.Controller) fields { + mockBasicDAO := daomocks.NewMockIPromptBasicDAO(ctrl) + mockBasicDAO.EXPECT().Get(gomock.Any(), int64(1)).Return(nil, nil) + return fields{promptBasicDAO: mockBasicDAO} + }, + args: args{ + ctx: context.Background(), + promptID: 1, + }, + wantErr: errorx.NewByCode(errno.ResourceNotFoundCode, errorx.WithExtraMsg("prompt is not found, prompt id = 1")), + }, + { + name: "delete relation error", + fieldsGetter: func(ctrl *gomock.Controller) fields { + mockBasicDAO := daomocks.NewMockIPromptBasicDAO(ctrl) + mockBasicDAO.EXPECT().Get(gomock.Any(), int64(1)).Return(&model.PromptBasic{ + ID: 1, + SpaceID: 100, + PromptKey: "prompt_key", + }, nil) + mockBasicDAO.EXPECT().Delete(gomock.Any(), int64(1), int64(100)).Return(nil) + + mockRelationDAO := daomocks.NewMockIPromptRelationDAO(ctrl) + mockRelationDAO.EXPECT().DeleteByMainPrompt(gomock.Any(), int64(1), "", "").Return(errorx.New("relation error")) + + return fields{ + promptBasicDAO: mockBasicDAO, + promptRelationDAO: mockRelationDAO, + } + }, + args: args{ + ctx: context.Background(), + promptID: 1, + }, + wantErr: errorx.New("relation error"), + }, + { + name: "success with cache delete error ignored", + fieldsGetter: func(ctrl *gomock.Controller) fields { + mockBasicDAO := daomocks.NewMockIPromptBasicDAO(ctrl) + mockBasicDAO.EXPECT().Get(gomock.Any(), int64(1)).Return(&model.PromptBasic{ + ID: 1, + SpaceID: 100, + PromptKey: "prompt_key", + }, nil) + mockBasicDAO.EXPECT().Delete(gomock.Any(), int64(1), int64(100)).Return(nil) + + mockRelationDAO := daomocks.NewMockIPromptRelationDAO(ctrl) + mockRelationDAO.EXPECT().DeleteByMainPrompt(gomock.Any(), int64(1), "", "").Return(nil) + + mockCacheDAO := redismocks.NewMockIPromptBasicDAO(ctrl) + mockCacheDAO.EXPECT().DelByPromptKey(gomock.Any(), int64(100), "prompt_key").Return(errorx.New("cache error")) + + return fields{ + promptBasicDAO: mockBasicDAO, + promptRelationDAO: mockRelationDAO, + promptBasicCacheDAO: mockCacheDAO, + } + }, + args: args{ + ctx: context.Background(), + promptID: 1, + }, + }, + } + + for _, tt := range tests { + caseData := tt + t.Run(caseData.name, func(t *testing.T) { + t.Parallel() + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + ff := caseData.fieldsGetter(ctrl) + repoImpl := &ManageRepoImpl{ + promptBasicDAO: ff.promptBasicDAO, + promptRelationDAO: ff.promptRelationDAO, + promptBasicCacheDAO: ff.promptBasicCacheDAO, + } + + err := repoImpl.DeletePrompt(caseData.args.ctx, caseData.args.promptID) + unittest.AssertErrorEqual(t, caseData.wantErr, err) + }) + } +} + +func TestManageRepoImpl_UpdatePrompt(t *testing.T) { + type fields struct { + db db.Provider + promptBasicDAO mysql.IPromptBasicDAO + promptBasicCacheDAO redis.IPromptBasicDAO + } + type args struct { + ctx context.Context + param repo.UpdatePromptParam + } + tests := []struct { + name string + fieldsGetter func(ctrl *gomock.Controller) fields + args args + wantErr error + }{ + { + name: "invalid param", + fieldsGetter: func(ctrl *gomock.Controller) fields { return fields{} }, + args: args{ + ctx: context.Background(), + param: repo.UpdatePromptParam{ + PromptID: 0, + }, + }, + wantErr: errorx.New("param(PromptID or PromptName) is invalid, param = {\"PromptID\":0,\"UpdatedBy\":\"\",\"PromptName\":\"\",\"PromptDescription\":\"\",\"SecurityLevel\":\"\"}"), + }, + { + name: "get prompt error", + fieldsGetter: func(ctrl *gomock.Controller) fields { + mockBasicDAO := daomocks.NewMockIPromptBasicDAO(ctrl) + mockBasicDAO.EXPECT().Get(gomock.Any(), int64(1)).Return(nil, errorx.New("get error")) + return fields{promptBasicDAO: mockBasicDAO} + }, + args: args{ + ctx: context.Background(), + param: repo.UpdatePromptParam{ + PromptID: 1, + PromptName: "updated", + }, + }, + wantErr: errorx.New("get error"), + }, + { + name: "prompt not found", + fieldsGetter: func(ctrl *gomock.Controller) fields { + mockBasicDAO := daomocks.NewMockIPromptBasicDAO(ctrl) + mockBasicDAO.EXPECT().Get(gomock.Any(), int64(1)).Return(nil, nil) + return fields{promptBasicDAO: mockBasicDAO} + }, + args: args{ + ctx: context.Background(), + param: repo.UpdatePromptParam{ + PromptID: 1, + PromptName: "updated", + }, + }, + wantErr: errorx.NewByCode(errno.ResourceNotFoundCode, errorx.WithExtraMsg("prompt not found, prompt_id=1")), + }, + { + name: "update error", + fieldsGetter: func(ctrl *gomock.Controller) fields { + nilDB, _ := gorm.Open(nil) + + mockDB := dbmocks.NewMockProvider(ctrl) + mockDB.EXPECT().NewSession(gomock.Any()).Return(nilDB) + + mockBasicDAO := daomocks.NewMockIPromptBasicDAO(ctrl) + mockBasicDAO.EXPECT().Get(gomock.Any(), int64(1)).Return(&model.PromptBasic{ + ID: 1, + SpaceID: 100, + PromptKey: "prompt_key", + }, nil) + mockBasicDAO.EXPECT().Update(gomock.Any(), int64(1), gomock.Any()).Return(errorx.New("update error")) + + return fields{ + db: mockDB, + promptBasicDAO: mockBasicDAO, + } + }, + args: args{ + ctx: context.Background(), + param: repo.UpdatePromptParam{ + PromptID: 1, + UpdatedBy: "user", + PromptName: "updated", + PromptDescription: "desc", + SecurityLevel: entity.SecurityLevelL3, + }, + }, + wantErr: errorx.New("update error"), + }, + { + name: "success with cache delete error ignored", + fieldsGetter: func(ctrl *gomock.Controller) fields { + nilDB, _ := gorm.Open(nil) + + mockDB := dbmocks.NewMockProvider(ctrl) + mockDB.EXPECT().NewSession(gomock.Any()).Return(nilDB) + + mockBasicDAO := daomocks.NewMockIPromptBasicDAO(ctrl) + mockBasicDAO.EXPECT().Get(gomock.Any(), int64(1)).Return(&model.PromptBasic{ + ID: 1, + SpaceID: 100, + PromptKey: "prompt_key", + }, nil) + mockBasicDAO.EXPECT().Update(gomock.Any(), int64(1), gomock.Any()).DoAndReturn( + func(_ context.Context, promptID int64, updateFields map[string]interface{}, opts ...db.Option) error { + assert.Equal(t, int64(1), promptID) + assert.Equal(t, "user", updateFields["updated_by"]) + assert.Equal(t, "updated", updateFields["name"]) + assert.Equal(t, "desc", updateFields["description"]) + assert.Equal(t, entity.SecurityLevelL3, updateFields["security_level"]) + return nil + }, + ) + + mockCacheDAO := redismocks.NewMockIPromptBasicDAO(ctrl) + mockCacheDAO.EXPECT().DelByPromptKey(gomock.Any(), int64(100), "prompt_key").Return(errorx.New("cache error")) + + return fields{ + db: mockDB, + promptBasicDAO: mockBasicDAO, + promptBasicCacheDAO: mockCacheDAO, + } + }, + args: args{ + ctx: context.Background(), + param: repo.UpdatePromptParam{ + PromptID: 1, + UpdatedBy: "user", + PromptName: "updated", + PromptDescription: "desc", + SecurityLevel: entity.SecurityLevelL3, + }, + }, + }, + } + + for _, tt := range tests { + caseData := tt + t.Run(caseData.name, func(t *testing.T) { + t.Parallel() + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + ff := caseData.fieldsGetter(ctrl) + repoImpl := &ManageRepoImpl{ + db: ff.db, + promptBasicDAO: ff.promptBasicDAO, + promptBasicCacheDAO: ff.promptBasicCacheDAO, + } + + err := repoImpl.UpdatePrompt(caseData.args.ctx, caseData.args.param) + unittest.AssertErrorEqual(t, caseData.wantErr, err) + }) + } +} + +func TestManageRepoImpl_MGetVersionsByPromptID(t *testing.T) { + type fields struct { + promptCommitDAO mysql.IPromptCommitDAO + } + tests := []struct { + name string + fieldsGetter func(ctrl *gomock.Controller) fields + promptID int64 + want []string + wantErr error + }{ + { + name: "invalid prompt id", + fieldsGetter: func(ctrl *gomock.Controller) fields { return fields{} }, + promptID: 0, + wantErr: errorx.New("promptID is invalid, promptID = 0"), + }, + { + name: "dao error", + fieldsGetter: func(ctrl *gomock.Controller) fields { + mockCommitDAO := daomocks.NewMockIPromptCommitDAO(ctrl) + mockCommitDAO.EXPECT().MGetVersionsByPromptID(gomock.Any(), int64(1)).Return(nil, errorx.New("dao error")) + return fields{promptCommitDAO: mockCommitDAO} + }, + promptID: 1, + wantErr: errorx.New("dao error"), + }, + { + name: "success", + fieldsGetter: func(ctrl *gomock.Controller) fields { + mockCommitDAO := daomocks.NewMockIPromptCommitDAO(ctrl) + mockCommitDAO.EXPECT().MGetVersionsByPromptID(gomock.Any(), int64(1)).Return([]string{"1.0.0", "1.1.0"}, nil) + return fields{promptCommitDAO: mockCommitDAO} + }, + promptID: 1, + want: []string{"1.0.0", "1.1.0"}, + }, + } + + for _, tt := range tests { + caseData := tt + t.Run(caseData.name, func(t *testing.T) { + t.Parallel() + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + ff := caseData.fieldsGetter(ctrl) + repoImpl := &ManageRepoImpl{ + promptCommitDAO: ff.promptCommitDAO, + } + + got, err := repoImpl.MGetVersionsByPromptID(context.Background(), caseData.promptID) + unittest.AssertErrorEqual(t, caseData.wantErr, err) + if err == nil { + assert.Equal(t, caseData.want, got) + } + }) + } +} + func TestManageRepoImpl_CommitDraft(t *testing.T) { type fields struct { db db.Provider From 8854bac072e4dc13ebdcdc9df73abce04d837261 Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Fri, 20 Mar 2026 11:41:25 +0800 Subject: [PATCH 56/58] [feat][prompt]: add ut --- .../llm/domain/entity/eino_convertor_test.go | 7 +++ .../modules/llm/domain/entity/runtime_test.go | 13 +++++ .../service/taskexe/tracehub/backfill_test.go | 55 +++++++++++++++++++ 3 files changed, 75 insertions(+) diff --git a/backend/modules/llm/domain/entity/eino_convertor_test.go b/backend/modules/llm/domain/entity/eino_convertor_test.go index e5a9d18ee..974e20962 100644 --- a/backend/modules/llm/domain/entity/eino_convertor_test.go +++ b/backend/modules/llm/domain/entity/eino_convertor_test.go @@ -131,6 +131,13 @@ func TestFromDOToolChoice(t *testing.T) { }, wantEinoToolChoice: schema.ToolChoiceForced, }, + { + name: "TestFromDOToolChoice_unknown", + args: args{ + do: ToolChoice("unknown"), + }, + wantEinoToolChoice: "", + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { diff --git a/backend/modules/llm/domain/entity/runtime_test.go b/backend/modules/llm/domain/entity/runtime_test.go index a05b738bb..53aa7c923 100644 --- a/backend/modules/llm/domain/entity/runtime_test.go +++ b/backend/modules/llm/domain/entity/runtime_test.go @@ -84,6 +84,19 @@ func TestMessage_MultiModal(t *testing.T) { assert.Equal(t, int64(2), cnt) assert.True(t, maxSize > 0) }) + + t.Run("get_image_count_and_max_size_without_multimodal_returns_zero_values", func(t *testing.T) { + m := &Message{ + MultiModalContent: []*ChatMessagePart{ + {Type: ChatMessagePartTypeText, Text: "plain text"}, + }, + } + hasURL, hasBinary, cnt, maxSize := m.GetImageCountAndMaxSize() + assert.False(t, hasURL) + assert.False(t, hasBinary) + assert.Zero(t, cnt) + assert.Zero(t, maxSize) + }) } func TestChatMessagePart_Checks(t *testing.T) { diff --git a/backend/modules/observability/domain/task/service/taskexe/tracehub/backfill_test.go b/backend/modules/observability/domain/task/service/taskexe/tracehub/backfill_test.go index 18adfff56..50e8af74e 100755 --- a/backend/modules/observability/domain/task/service/taskexe/tracehub/backfill_test.go +++ b/backend/modules/observability/domain/task/service/taskexe/tracehub/backfill_test.go @@ -532,6 +532,61 @@ func TestTraceHubServiceImpl_FlushSpans_SamplingZero(t *testing.T) { require.NoError(t, err) } +func TestTraceHubServiceImpl_FlushSpans_ReturnsProcessResult(t *testing.T) { + ctrl := gomock.NewController(t) + t.Cleanup(ctrl.Finish) + + mockTaskRepo := repo_mocks.NewMockITaskRepo(ctrl) + mockTraceService := builder_mocks.NewMockITraceService(ctrl) + impl := &TraceHubServiceImpl{ + taskRepo: mockTaskRepo, + traceService: mockTraceService, + } + + now := time.Now() + sub, proc := newBackfillSubscriber(mockTaskRepo, now) + proc.invokeErr = errors.New("invoke fail") + + span := newTestSpan(now) + domainRun := newDomainBackfillTaskRun(now) + + mockTraceService.EXPECT(). + MergeHistoryMessagesByRespIDBatch(gomock.Any(), gomock.Any(), gomock.Any()). + Return(nil) + mockTaskRepo.EXPECT().GetTaskCount(gomock.Any(), int64(1)).Return(int64(0), nil) + mockTaskRepo.EXPECT().GetBackfillTaskRun(gomock.Any(), gomock.Nil(), int64(1)).Return(domainRun, nil) + + err, shouldFinish := impl.flushSpans(context.Background(), []*loop_span.Span{span}, sub) + require.ErrorContains(t, err, "invoke fail") + require.False(t, shouldFinish) +} + +func TestTraceHubServiceImpl_ProcessSpansForBackfill_ReturnsShouldFinish(t *testing.T) { + ctrl := gomock.NewController(t) + t.Cleanup(ctrl.Finish) + + mockTaskRepo := repo_mocks.NewMockITaskRepo(ctrl) + mockTraceService := builder_mocks.NewMockITraceService(ctrl) + impl := &TraceHubServiceImpl{ + taskRepo: mockTaskRepo, + traceService: mockTraceService, + } + + now := time.Now() + sub, _ := newBackfillSubscriber(mockTaskRepo, now) + sub.t.Sampler.SampleSize = 0 + + spans := []*loop_span.Span{newTestSpan(now)} + mockTraceService.EXPECT(). + MergeHistoryMessagesByRespIDBatch(gomock.Any(), gomock.Any(), gomock.Any()). + Return(nil) + mockTaskRepo.EXPECT().GetTaskCount(gomock.Any(), int64(1)).Return(int64(0), nil) + + err, shouldFinish := impl.processSpansForBackfill(context.Background(), spans, sub) + require.NoError(t, err) + require.True(t, shouldFinish) +} + func TestTraceHubServiceImpl_IsBackfillDone(t *testing.T) { t.Parallel() From ef890b736d45035ebb9667e2f84e0527cd6efd53 Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Tue, 24 Mar 2026 22:07:47 +0800 Subject: [PATCH 57/58] feat(prompt): add unit tests to improve patch coverage to 80%+ - application/manage_test.go: add tests for UpdatePrompt, CommitDraft, GetPrompt, ListCommit error branches, CreatePrompt/ClonePrompt SecurityLevel defaults - application/openapi_test.go: add tests for promptTypeToMetricValue, getRequest* helpers, normalizeExecuteRequest branches - application/convertor/prompt_coverage_test.go: add tests for TokenUsageDO2DTO, BatchDebugToolCallDO2DTO, VariableVal, PromptCommit, McpConfig, ToolChoiceType, Scenario, nil element filtering - application/convertor/openapi_coverage_test.go: add tests for ThinkingConfig, ThinkingOption, ReasoningEffort, ParamConfigValue, ToolChoiceSpecification, ContentPartDTO2DO branches - domain/entity/prompt_detail_test.go: add tests for formatMultiPart, formatMessages, convertVariablesToMap, DeepEqual - domain/service/execute_test.go: add tests for Signature field, DisableTracing, CollectToolResults error, streaming errors - infra/metrics/paas_coverage_test.go: add tests for EmitPaasMetric nil guards, WithPaasStatus regular error, all With* functions no-context safety - infra/repo/manage_test.go: add test for BatchGetPromptBasic partial result --- .../convertor/openapi_coverage_test.go | 701 ++++++++++++++++ .../convertor/prompt_coverage_test.go | 496 ++++++++++++ .../modules/prompt/application/manage_test.go | 758 ++++++++++++++++++ .../prompt/application/openapi_test.go | 277 +++++++ .../domain/entity/prompt_detail_test.go | 165 ++++ .../prompt/domain/service/execute_test.go | 438 ++++++++++ .../infra/metrics/paas_coverage_test.go | 93 +++ .../modules/prompt/infra/repo/manage_test.go | 19 + 8 files changed, 2947 insertions(+) diff --git a/backend/modules/prompt/application/convertor/openapi_coverage_test.go b/backend/modules/prompt/application/convertor/openapi_coverage_test.go index 56a24e39a..d7aaafcb2 100644 --- a/backend/modules/prompt/application/convertor/openapi_coverage_test.go +++ b/backend/modules/prompt/application/convertor/openapi_coverage_test.go @@ -146,3 +146,704 @@ func TestOpenAPIContentTypeDTO2DO_Base64Data(t *testing.T) { result := OpenAPIContentTypeDTO2DO(domainopenapi.ContentTypeBase64Data) assert.Equal(t, entity.ContentTypeBase64Data, result) } + +func TestOpenAPIThinkingConfigDTO2DO(t *testing.T) { + t.Parallel() + tests := []struct { + name string + dto *domainopenapi.ThinkingConfig + want *entity.ThinkingConfig + }{ + { + name: "nil input", + dto: nil, + want: nil, + }, + { + name: "all fields set", + dto: &domainopenapi.ThinkingConfig{ + BudgetTokens: ptr.Of(int64(512)), + ThinkingOption: ptr.Of(domainopenapi.ThinkingOptionAuto), + ReasoningEffort: ptr.Of(domainopenapi.ReasoningEffortMedium), + }, + want: &entity.ThinkingConfig{ + BudgetTokens: ptr.Of(int64(512)), + ThinkingOption: ptr.Of(entity.ThinkingOptionAuto), + ReasoningEffort: ptr.Of(entity.ReasoningEffortMedium), + }, + }, + { + name: "only budget tokens", + dto: &domainopenapi.ThinkingConfig{ + BudgetTokens: ptr.Of(int64(1024)), + }, + want: &entity.ThinkingConfig{ + BudgetTokens: ptr.Of(int64(1024)), + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + assert.Equal(t, tt.want, OpenAPIThinkingConfigDTO2DO(tt.dto)) + }) + } +} + +func TestOpenAPIThinkingConfigDO2DTO(t *testing.T) { + t.Parallel() + tests := []struct { + name string + do *entity.ThinkingConfig + want *domainopenapi.ThinkingConfig + }{ + { + name: "nil input", + do: nil, + want: nil, + }, + { + name: "all fields set", + do: &entity.ThinkingConfig{ + BudgetTokens: ptr.Of(int64(256)), + ThinkingOption: ptr.Of(entity.ThinkingOptionDisabled), + ReasoningEffort: ptr.Of(entity.ReasoningEffortMinimal), + }, + want: &domainopenapi.ThinkingConfig{ + BudgetTokens: ptr.Of(int64(256)), + ThinkingOption: ptr.Of(domainopenapi.ThinkingOptionDisabled), + ReasoningEffort: ptr.Of(domainopenapi.ReasoningEffortMinimal), + }, + }, + { + name: "only budget tokens", + do: &entity.ThinkingConfig{ + BudgetTokens: ptr.Of(int64(64)), + }, + want: &domainopenapi.ThinkingConfig{ + BudgetTokens: ptr.Of(int64(64)), + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + assert.Equal(t, tt.want, OpenAPIThinkingConfigDO2DTO(tt.do)) + }) + } +} + +func TestOpenAPIThinkingOptionDTO2DO_AllBranches(t *testing.T) { + t.Parallel() + tests := []struct { + name string + dto *domainopenapi.ThinkingOption + want *entity.ThinkingOption + }{ + { + name: "nil input", + dto: nil, + want: nil, + }, + { + name: "disabled", + dto: ptr.Of(domainopenapi.ThinkingOptionDisabled), + want: ptr.Of(entity.ThinkingOptionDisabled), + }, + { + name: "enabled", + dto: ptr.Of(domainopenapi.ThinkingOptionEnabled), + want: ptr.Of(entity.ThinkingOptionEnabled), + }, + { + name: "auto", + dto: ptr.Of(domainopenapi.ThinkingOptionAuto), + want: ptr.Of(entity.ThinkingOptionAuto), + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + assert.Equal(t, tt.want, OpenAPIThinkingOptionDTO2DO(tt.dto)) + }) + } +} + +func TestOpenAPIReasoningEffortDTO2DO_AllBranches(t *testing.T) { + t.Parallel() + tests := []struct { + name string + dto *domainopenapi.ReasoningEffort + want *entity.ReasoningEffort + }{ + { + name: "nil input", + dto: nil, + want: nil, + }, + { + name: "minimal", + dto: ptr.Of(domainopenapi.ReasoningEffortMinimal), + want: ptr.Of(entity.ReasoningEffortMinimal), + }, + { + name: "low", + dto: ptr.Of(domainopenapi.ReasoningEffortLow), + want: ptr.Of(entity.ReasoningEffortLow), + }, + { + name: "medium", + dto: ptr.Of(domainopenapi.ReasoningEffortMedium), + want: ptr.Of(entity.ReasoningEffortMedium), + }, + { + name: "high", + dto: ptr.Of(domainopenapi.ReasoningEffortHigh), + want: ptr.Of(entity.ReasoningEffortHigh), + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + assert.Equal(t, tt.want, OpenAPIReasoningEffortDTO2DO(tt.dto)) + }) + } +} + +func TestOpenAPIThinkingOptionDO2DTO_AllBranches(t *testing.T) { + t.Parallel() + tests := []struct { + name string + do *entity.ThinkingOption + want *domainopenapi.ThinkingOption + }{ + { + name: "nil input", + do: nil, + want: nil, + }, + { + name: "disabled", + do: ptr.Of(entity.ThinkingOptionDisabled), + want: ptr.Of(domainopenapi.ThinkingOptionDisabled), + }, + { + name: "enabled", + do: ptr.Of(entity.ThinkingOptionEnabled), + want: ptr.Of(domainopenapi.ThinkingOptionEnabled), + }, + { + name: "auto", + do: ptr.Of(entity.ThinkingOptionAuto), + want: ptr.Of(domainopenapi.ThinkingOptionAuto), + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + assert.Equal(t, tt.want, OpenAPIThinkingOptionDO2DTO(tt.do)) + }) + } +} + +func TestOpenAPIReasoningEffortDO2DTO_AllBranches(t *testing.T) { + t.Parallel() + tests := []struct { + name string + do *entity.ReasoningEffort + want *domainopenapi.ReasoningEffort + }{ + { + name: "nil input", + do: nil, + want: nil, + }, + { + name: "minimal", + do: ptr.Of(entity.ReasoningEffortMinimal), + want: ptr.Of(domainopenapi.ReasoningEffortMinimal), + }, + { + name: "low", + do: ptr.Of(entity.ReasoningEffortLow), + want: ptr.Of(domainopenapi.ReasoningEffortLow), + }, + { + name: "medium", + do: ptr.Of(entity.ReasoningEffortMedium), + want: ptr.Of(domainopenapi.ReasoningEffortMedium), + }, + { + name: "high", + do: ptr.Of(entity.ReasoningEffortHigh), + want: ptr.Of(domainopenapi.ReasoningEffortHigh), + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + assert.Equal(t, tt.want, OpenAPIReasoningEffortDO2DTO(tt.do)) + }) + } +} + +func TestOpenAPIBatchParamConfigValueDTO2DO_AllCases(t *testing.T) { + t.Parallel() + tests := []struct { + name string + dtos []*domainopenapi.ParamConfigValue + want []*entity.ParamConfigValue + }{ + { + name: "nil input", + dtos: nil, + want: nil, + }, + { + name: "normal values", + dtos: []*domainopenapi.ParamConfigValue{ + { + Name: ptr.Of("top_p"), + Label: ptr.Of("Top P"), + Value: &domainopenapi.ParamOption{ + Value: ptr.Of("0.9"), + Label: ptr.Of("0.9"), + }, + }, + { + Name: ptr.Of("top_k"), + Label: ptr.Of("Top K"), + Value: &domainopenapi.ParamOption{ + Value: ptr.Of("50"), + Label: ptr.Of("50"), + }, + }, + }, + want: []*entity.ParamConfigValue{ + { + Name: "top_p", + Label: "Top P", + Value: &entity.ParamOption{ + Value: "0.9", + Label: "0.9", + }, + }, + { + Name: "top_k", + Label: "Top K", + Value: &entity.ParamOption{ + Value: "50", + Label: "50", + }, + }, + }, + }, + { + name: "with nil elements", + dtos: []*domainopenapi.ParamConfigValue{ + nil, + { + Name: ptr.Of("param1"), + Label: ptr.Of("Param 1"), + }, + nil, + }, + want: []*entity.ParamConfigValue{ + { + Name: "param1", + Label: "Param 1", + }, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + assert.Equal(t, tt.want, OpenAPIBatchParamConfigValueDTO2DO(tt.dtos)) + }) + } +} + +func TestOpenAPIParamConfigValueDTO2DO(t *testing.T) { + t.Parallel() + tests := []struct { + name string + dto *domainopenapi.ParamConfigValue + want *entity.ParamConfigValue + }{ + { + name: "nil input", + dto: nil, + want: nil, + }, + { + name: "with value", + dto: &domainopenapi.ParamConfigValue{ + Name: ptr.Of("temperature"), + Label: ptr.Of("Temperature"), + Value: &domainopenapi.ParamOption{ + Value: ptr.Of("0.7"), + Label: ptr.Of("0.7"), + }, + }, + want: &entity.ParamConfigValue{ + Name: "temperature", + Label: "Temperature", + Value: &entity.ParamOption{ + Value: "0.7", + Label: "0.7", + }, + }, + }, + { + name: "without value", + dto: &domainopenapi.ParamConfigValue{ + Name: ptr.Of("mode"), + Label: ptr.Of("Mode"), + Value: nil, + }, + want: &entity.ParamConfigValue{ + Name: "mode", + Label: "Mode", + Value: nil, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + assert.Equal(t, tt.want, OpenAPIParamConfigValueDTO2DO(tt.dto)) + }) + } +} + +func TestOpenAPIParamOptionDTO2DO(t *testing.T) { + t.Parallel() + tests := []struct { + name string + dto *domainopenapi.ParamOption + want *entity.ParamOption + }{ + { + name: "nil input", + dto: nil, + want: nil, + }, + { + name: "normal option", + dto: &domainopenapi.ParamOption{ + Value: ptr.Of("0.95"), + Label: ptr.Of("0.95"), + }, + want: &entity.ParamOption{ + Value: "0.95", + Label: "0.95", + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + assert.Equal(t, tt.want, OpenAPIParamOptionDTO2DO(tt.dto)) + }) + } +} + +func TestOpenAPIToolChoiceSpecificationDTO2DO(t *testing.T) { + t.Parallel() + tests := []struct { + name string + dto *domainopenapi.ToolChoiceSpecification + want *entity.ToolChoiceSpecification + }{ + { + name: "nil input", + dto: nil, + want: nil, + }, + { + name: "function type specification", + dto: &domainopenapi.ToolChoiceSpecification{ + Type: ptr.Of(domainopenapi.ToolTypeFunction), + Name: ptr.Of("get_weather"), + }, + want: &entity.ToolChoiceSpecification{ + Type: entity.ToolTypeFunction, + Name: "get_weather", + }, + }, + { + name: "google search type specification", + dto: &domainopenapi.ToolChoiceSpecification{ + Type: ptr.Of(domainopenapi.ToolTypeGoogleSearch), + Name: ptr.Of("search"), + }, + want: &entity.ToolChoiceSpecification{ + Type: entity.ToolTypeGoogleSearch, + Name: "search", + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + assert.Equal(t, tt.want, OpenAPIToolChoiceSpecificationDTO2DO(tt.dto)) + }) + } +} + +func TestOpenAPIContentPartDTO2DO_AllBranches(t *testing.T) { + t.Parallel() + tests := []struct { + name string + dto *domainopenapi.ContentPart + want *entity.ContentPart + }{ + { + name: "nil input", + dto: nil, + want: nil, + }, + { + name: "image url with value", + dto: &domainopenapi.ContentPart{ + Type: ptr.Of(domainopenapi.ContentTypeImageURL), + ImageURL: ptr.Of("https://example.com/img.png"), + }, + want: &entity.ContentPart{ + Type: entity.ContentTypeImageURL, + ImageURL: &entity.ImageURL{ + URL: "https://example.com/img.png", + }, + }, + }, + { + name: "image url empty string", + dto: &domainopenapi.ContentPart{ + Type: ptr.Of(domainopenapi.ContentTypeImageURL), + ImageURL: ptr.Of(""), + }, + want: &entity.ContentPart{ + Type: entity.ContentTypeImageURL, + }, + }, + { + name: "video url with value", + dto: &domainopenapi.ContentPart{ + Type: ptr.Of(domainopenapi.ContentTypeVideoURL), + VideoURL: ptr.Of("https://example.com/video.mp4"), + }, + want: &entity.ContentPart{ + Type: entity.ContentTypeVideoURL, + VideoURL: &entity.VideoURL{ + URL: "https://example.com/video.mp4", + }, + }, + }, + { + name: "video url empty string", + dto: &domainopenapi.ContentPart{ + Type: ptr.Of(domainopenapi.ContentTypeVideoURL), + VideoURL: ptr.Of(""), + }, + want: &entity.ContentPart{ + Type: entity.ContentTypeVideoURL, + }, + }, + { + name: "base64 data", + dto: &domainopenapi.ContentPart{ + Type: ptr.Of(domainopenapi.ContentTypeBase64Data), + Base64Data: ptr.Of("data:image/png;base64,abc123"), + }, + want: &entity.ContentPart{ + Type: entity.ContentTypeBase64Data, + Base64Data: ptr.Of("data:image/png;base64,abc123"), + }, + }, + { + name: "with config fps", + dto: &domainopenapi.ContentPart{ + Type: ptr.Of(domainopenapi.ContentTypeVideoURL), + VideoURL: ptr.Of("https://example.com/video.mp4"), + Config: &domainopenapi.MediaConfig{ + Fps: ptr.Of(3.0), + }, + }, + want: &entity.ContentPart{ + Type: entity.ContentTypeVideoURL, + VideoURL: &entity.VideoURL{ + URL: "https://example.com/video.mp4", + }, + MediaConfig: &entity.MediaConfig{ + Fps: ptr.Of(3.0), + }, + }, + }, + { + name: "config with nil fps", + dto: &domainopenapi.ContentPart{ + Type: ptr.Of(domainopenapi.ContentTypeVideoURL), + VideoURL: ptr.Of("https://example.com/video.mp4"), + Config: &domainopenapi.MediaConfig{ + Fps: nil, + }, + }, + want: &entity.ContentPart{ + Type: entity.ContentTypeVideoURL, + VideoURL: &entity.VideoURL{ + URL: "https://example.com/video.mp4", + }, + }, + }, + { + name: "nil config", + dto: &domainopenapi.ContentPart{ + Type: ptr.Of(domainopenapi.ContentTypeVideoURL), + VideoURL: ptr.Of("https://example.com/video.mp4"), + Config: nil, + }, + want: &entity.ContentPart{ + Type: entity.ContentTypeVideoURL, + VideoURL: &entity.VideoURL{ + URL: "https://example.com/video.mp4", + }, + }, + }, + { + name: "with signature", + dto: &domainopenapi.ContentPart{ + Type: ptr.Of(domainopenapi.ContentTypeText), + Text: ptr.Of("hello"), + Signature: ptr.Of("sig123"), + }, + want: &entity.ContentPart{ + Type: entity.ContentTypeText, + Text: ptr.Of("hello"), + Signature: ptr.Of("sig123"), + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + assert.Equal(t, tt.want, OpenAPIContentPartDTO2DO(tt.dto)) + }) + } +} + +func TestOpenAPIModelConfigDTO2DO_NilInput(t *testing.T) { + t.Parallel() + assert.Nil(t, OpenAPIModelConfigDTO2DO(nil)) +} + +func TestOpenAPIContentTypeDO2DTO_Base64DataBranch(t *testing.T) { + t.Parallel() + assert.Equal(t, domainopenapi.ContentTypeBase64Data, OpenAPIContentTypeDO2DTO(entity.ContentTypeBase64Data)) +} + +func TestOpenAPIContentTypeDTO2DO_AllBranches(t *testing.T) { + t.Parallel() + tests := []struct { + name string + dto domainopenapi.ContentType + want entity.ContentType + }{ + { + name: "text", + dto: domainopenapi.ContentTypeText, + want: entity.ContentTypeText, + }, + { + name: "image url", + dto: domainopenapi.ContentTypeImageURL, + want: entity.ContentTypeImageURL, + }, + { + name: "video url", + dto: domainopenapi.ContentTypeVideoURL, + want: entity.ContentTypeVideoURL, + }, + { + name: "base64 data", + dto: domainopenapi.ContentTypeBase64Data, + want: entity.ContentTypeBase64Data, + }, + { + name: "multi part variable", + dto: domainopenapi.ContentTypeMultiPartVariable, + want: entity.ContentTypeMultiPartVariable, + }, + { + name: "unknown defaults to text", + dto: domainopenapi.ContentType("unknown"), + want: entity.ContentTypeText, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + assert.Equal(t, tt.want, OpenAPIContentTypeDTO2DO(tt.dto)) + }) + } +} + +func TestOpenAPIContentPartDO2DTO_Base64DataWithFps(t *testing.T) { + t.Parallel() + do := &entity.ContentPart{ + Type: entity.ContentTypeBase64Data, + Base64Data: ptr.Of("data:video/mp4;base64,QUJD"), + MediaConfig: &entity.MediaConfig{ + Fps: ptr.Of(1.5), + }, + } + result := OpenAPIContentPartDO2DTO(do) + assert.NotNil(t, result) + assert.Equal(t, ptr.Of(domainopenapi.ContentTypeBase64Data), result.Type) + assert.Equal(t, ptr.Of("data:video/mp4;base64,QUJD"), result.Base64Data) + assert.NotNil(t, result.Config) + assert.Equal(t, ptr.Of(1.5), result.Config.Fps) +} + +func TestOpenAPIContentPartDO2DTO_Signature(t *testing.T) { + t.Parallel() + do := &entity.ContentPart{ + Type: entity.ContentTypeText, + Text: ptr.Of("thought"), + Signature: ptr.Of("sig_abc"), + } + result := OpenAPIContentPartDO2DTO(do) + assert.NotNil(t, result) + assert.Equal(t, ptr.Of("sig_abc"), result.Signature) +} + +func TestOpenAPIToolChoiceTypeDTO2DO(t *testing.T) { + t.Parallel() + tests := []struct { + name string + dto domainopenapi.ToolChoiceType + want entity.ToolChoiceType + }{ + { + name: "auto", + dto: domainopenapi.ToolChoiceTypeAuto, + want: entity.ToolChoiceTypeAuto, + }, + { + name: "none", + dto: domainopenapi.ToolChoiceTypeNone, + want: entity.ToolChoiceTypeNone, + }, + { + name: "specific", + dto: domainopenapi.ToolChoiceTypeSpecific, + want: entity.ToolChoiceTypeSpecific, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + assert.Equal(t, tt.want, OpenAPIToolChoiceTypeDTO2DO(tt.dto)) + }) + } +} diff --git a/backend/modules/prompt/application/convertor/prompt_coverage_test.go b/backend/modules/prompt/application/convertor/prompt_coverage_test.go index 16bc2929b..c95ddfd72 100644 --- a/backend/modules/prompt/application/convertor/prompt_coverage_test.go +++ b/backend/modules/prompt/application/convertor/prompt_coverage_test.go @@ -236,3 +236,499 @@ func TestRoleDO2DTO_PlaceholderAndDefault(t *testing.T) { assert.Equal(t, prompt.RolePlaceholder, RoleDO2DTO(entity.RolePlaceholder)) assert.Equal(t, prompt.RoleUser, RoleDO2DTO(entity.Role("unknown"))) } + +func TestTokenUsageDO2DTO(t *testing.T) { + t.Parallel() + tests := []struct { + name string + do *entity.TokenUsage + want *prompt.TokenUsage + }{ + { + name: "nil", + do: nil, + want: nil, + }, + { + name: "normal", + do: &entity.TokenUsage{ + InputTokens: 100, + OutputTokens: 200, + }, + want: &prompt.TokenUsage{ + InputTokens: ptr.Of(int64(100)), + OutputTokens: ptr.Of(int64(200)), + }, + }, + { + name: "zero values", + do: &entity.TokenUsage{ + InputTokens: 0, + OutputTokens: 0, + }, + want: &prompt.TokenUsage{ + InputTokens: ptr.Of(int64(0)), + OutputTokens: ptr.Of(int64(0)), + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + assert.Equal(t, tt.want, TokenUsageDO2DTO(tt.do)) + }) + } +} + +func TestBatchDebugToolCallDO2DTO(t *testing.T) { + t.Parallel() + tests := []struct { + name string + dos []*entity.DebugToolCall + want []*prompt.DebugToolCall + }{ + { + name: "nil", + dos: nil, + want: nil, + }, + { + name: "with nil elements", + dos: []*entity.DebugToolCall{nil, nil}, + want: []*prompt.DebugToolCall{}, + }, + { + name: "normal", + dos: []*entity.DebugToolCall{ + { + ToolCall: entity.ToolCall{ + Index: 0, + ID: "tc-1", + Type: entity.ToolTypeFunction, + FunctionCall: &entity.FunctionCall{ + Name: "fn1", + Arguments: ptr.Of(`{"a":1}`), + }, + }, + MockResponse: "mock-resp", + DebugTraceKey: "trace-key", + }, + }, + want: []*prompt.DebugToolCall{ + { + ToolCall: &prompt.ToolCall{ + Index: ptr.Of(int64(0)), + ID: ptr.Of("tc-1"), + Type: ptr.Of(prompt.ToolTypeFunction), + FunctionCall: &prompt.FunctionCall{ + Name: ptr.Of("fn1"), + Arguments: ptr.Of(`{"a":1}`), + }, + }, + MockResponse: ptr.Of("mock-resp"), + DebugTraceKey: ptr.Of("trace-key"), + }, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + assert.Equal(t, tt.want, BatchDebugToolCallDO2DTO(tt.dos)) + }) + } +} + +func TestDebugToolCallDO2DTO(t *testing.T) { + t.Parallel() + assert.Nil(t, DebugToolCallDO2DTO(nil)) + result := DebugToolCallDO2DTO(&entity.DebugToolCall{ + ToolCall: entity.ToolCall{ + Index: 1, + ID: "id-1", + Type: entity.ToolTypeFunction, + }, + MockResponse: "resp", + DebugTraceKey: "key", + }) + assert.NotNil(t, result) + assert.Equal(t, ptr.Of("resp"), result.MockResponse) + assert.Equal(t, ptr.Of("key"), result.DebugTraceKey) +} + +func TestBatchVariableValDTO2DO(t *testing.T) { + t.Parallel() + tests := []struct { + name string + dtos []*prompt.VariableVal + want []*entity.VariableVal + }{ + { + name: "nil", + dtos: nil, + want: nil, + }, + { + name: "with nil elements", + dtos: []*prompt.VariableVal{nil}, + want: []*entity.VariableVal{}, + }, + { + name: "normal", + dtos: []*prompt.VariableVal{ + { + Key: ptr.Of("var1"), + Value: ptr.Of("value1"), + }, + }, + want: []*entity.VariableVal{ + { + Key: "var1", + Value: ptr.Of("value1"), + }, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + assert.Equal(t, tt.want, BatchVariableValDTO2DO(tt.dtos)) + }) + } +} + +func TestVariableValDTO2DO(t *testing.T) { + t.Parallel() + assert.Nil(t, VariableValDTO2DO(nil)) + result := VariableValDTO2DO(&prompt.VariableVal{ + Key: ptr.Of("k1"), + Value: ptr.Of("v1"), + PlaceholderMessages: []*prompt.Message{ + { + Role: ptr.Of(prompt.RoleUser), + Content: ptr.Of("hello"), + }, + }, + MultiPartValues: []*prompt.ContentPart{ + { + Type: ptr.Of(prompt.ContentTypeText), + Text: ptr.Of("text-val"), + }, + }, + }) + assert.NotNil(t, result) + assert.Equal(t, "k1", result.Key) + assert.Equal(t, ptr.Of("v1"), result.Value) + assert.Len(t, result.PlaceholderMessages, 1) + assert.Len(t, result.MultiPartValues, 1) +} + +func TestBatchVariableValDO2DTO(t *testing.T) { + t.Parallel() + tests := []struct { + name string + dos []*entity.VariableVal + want []*prompt.VariableVal + }{ + { + name: "nil", + dos: nil, + want: nil, + }, + { + name: "with nil elements", + dos: []*entity.VariableVal{nil}, + want: []*prompt.VariableVal{}, + }, + { + name: "normal", + dos: []*entity.VariableVal{ + { + Key: "k1", + Value: ptr.Of("v1"), + }, + }, + want: []*prompt.VariableVal{ + { + Key: ptr.Of("k1"), + Value: ptr.Of("v1"), + }, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + assert.Equal(t, tt.want, BatchVariableValDO2DTO(tt.dos)) + }) + } +} + +func TestVariableValDO2DTO(t *testing.T) { + t.Parallel() + assert.Nil(t, VariableValDO2DTO(nil)) + result := VariableValDO2DTO(&entity.VariableVal{ + Key: "k1", + Value: ptr.Of("v1"), + PlaceholderMessages: []*entity.Message{ + { + Role: entity.RoleUser, + Content: ptr.Of("hello"), + }, + }, + MultiPartValues: []*entity.ContentPart{ + { + Type: entity.ContentTypeText, + Text: ptr.Of("text-val"), + }, + }, + }) + assert.NotNil(t, result) + assert.Equal(t, ptr.Of("k1"), result.Key) + assert.Equal(t, ptr.Of("v1"), result.Value) + assert.Len(t, result.PlaceholderMessages, 1) + assert.Len(t, result.MultiPartValues, 1) +} + +func TestBatchPromptCommitDO2DTO(t *testing.T) { + t.Parallel() + now := time.Now() + tests := []struct { + name string + dos []*entity.PromptCommit + want []*prompt.PromptCommit + }{ + { + name: "nil", + dos: nil, + want: nil, + }, + { + name: "empty", + dos: []*entity.PromptCommit{}, + want: nil, + }, + { + name: "with nil elements", + dos: []*entity.PromptCommit{nil}, + want: []*prompt.PromptCommit{}, + }, + { + name: "normal", + dos: []*entity.PromptCommit{ + { + CommitInfo: &entity.CommitInfo{ + Version: "1.0", + BaseVersion: "0.9", + Description: "desc", + CommittedBy: "user1", + CommittedAt: now, + }, + }, + }, + want: []*prompt.PromptCommit{ + { + CommitInfo: &prompt.CommitInfo{ + Version: ptr.Of("1.0"), + BaseVersion: ptr.Of("0.9"), + Description: ptr.Of("desc"), + CommittedBy: ptr.Of("user1"), + CommittedAt: ptr.Of(now.UnixMilli()), + }, + }, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + assert.Equal(t, tt.want, BatchPromptCommitDO2DTO(tt.dos)) + }) + } +} + +func TestPromptCommitDO2DTO(t *testing.T) { + t.Parallel() + assert.Nil(t, PromptCommitDO2DTO(nil)) + now := time.Now() + result := PromptCommitDO2DTO(&entity.PromptCommit{ + CommitInfo: &entity.CommitInfo{ + Version: "2.0", + CommittedAt: now, + }, + PromptDetail: &entity.PromptDetail{ + ExtInfos: map[string]string{"k": "v"}, + }, + }) + assert.NotNil(t, result) + assert.Equal(t, ptr.Of("2.0"), result.CommitInfo.Version) + assert.NotNil(t, result.Detail) + assert.Equal(t, map[string]string{"k": "v"}, result.Detail.ExtInfos) +} + +func TestCommitInfoDO2DTO(t *testing.T) { + t.Parallel() + assert.Nil(t, CommitInfoDO2DTO(nil)) + now := time.Now() + result := CommitInfoDO2DTO(&entity.CommitInfo{ + Version: "1.0", + BaseVersion: "0.9", + Description: "init", + CommittedBy: "user", + CommittedAt: now, + }) + assert.NotNil(t, result) + assert.Equal(t, ptr.Of("1.0"), result.Version) + assert.Equal(t, ptr.Of("0.9"), result.BaseVersion) + assert.Equal(t, ptr.Of("init"), result.Description) + assert.Equal(t, ptr.Of("user"), result.CommittedBy) + assert.Equal(t, ptr.Of(now.UnixMilli()), result.CommittedAt) +} + +func TestPromptDetailDO2DTO_WithMcpAndExtInfos(t *testing.T) { + t.Parallel() + assert.Nil(t, PromptDetailDO2DTO(nil)) + result := PromptDetailDO2DTO(&entity.PromptDetail{ + McpConfig: &entity.McpConfig{ + IsMcpCallAutoRetry: ptr.Of(true), + McpServers: []*entity.McpServerCombine{ + { + McpServerID: ptr.Of(int64(1)), + AccessPointID: ptr.Of(int64(2)), + }, + }, + }, + ExtInfos: map[string]string{"ext_key": "ext_val"}, + }) + assert.NotNil(t, result) + assert.NotNil(t, result.McpConfig) + assert.Equal(t, ptr.Of(true), result.McpConfig.IsMcpCallAutoRetry) + assert.Len(t, result.McpConfig.McpServers, 1) + assert.Equal(t, map[string]string{"ext_key": "ext_val"}, result.ExtInfos) +} + +func TestMcpConfigDO2DTO(t *testing.T) { + t.Parallel() + assert.Nil(t, McpConfigDO2DTO(nil)) + result := McpConfigDO2DTO(&entity.McpConfig{ + IsMcpCallAutoRetry: ptr.Of(false), + McpServers: []*entity.McpServerCombine{ + { + McpServerID: ptr.Of(int64(10)), + AccessPointID: ptr.Of(int64(20)), + DisabledTools: []string{"d1"}, + EnabledTools: []string{"e1"}, + IsEnabledTools: ptr.Of(true), + }, + }, + }) + assert.NotNil(t, result) + assert.Equal(t, ptr.Of(false), result.IsMcpCallAutoRetry) + assert.Len(t, result.McpServers, 1) + assert.Equal(t, ptr.Of(int64(10)), result.McpServers[0].McpServerID) +} + +func TestBatchMcpServerCombineDO2DTO(t *testing.T) { + t.Parallel() + assert.Nil(t, BatchMcpServerCombineDO2DTO(nil)) + result := BatchMcpServerCombineDO2DTO([]*entity.McpServerCombine{nil, {McpServerID: ptr.Of(int64(5))}}) + assert.Len(t, result, 1) + assert.Equal(t, ptr.Of(int64(5)), result[0].McpServerID) +} + +func TestMcpServerCombineDO2DTO(t *testing.T) { + t.Parallel() + assert.Nil(t, McpServerCombineDO2DTO(nil)) + result := McpServerCombineDO2DTO(&entity.McpServerCombine{ + McpServerID: ptr.Of(int64(1)), + AccessPointID: ptr.Of(int64(2)), + DisabledTools: []string{"a"}, + EnabledTools: []string{"b"}, + IsEnabledTools: ptr.Of(true), + }) + assert.NotNil(t, result) + assert.Equal(t, ptr.Of(int64(1)), result.McpServerID) + assert.Equal(t, ptr.Of(int64(2)), result.AccessPointID) + assert.Equal(t, []string{"a"}, result.DisabledTools) + assert.Equal(t, []string{"b"}, result.EnabledTools) + assert.Equal(t, ptr.Of(true), result.IsEnabledTools) +} + +func TestToolChoiceTypeDTO2DO_NoneAndSpecific(t *testing.T) { + t.Parallel() + assert.Equal(t, entity.ToolChoiceTypeNone, ToolChoiceTypeDTO2DO(prompt.ToolChoiceTypeNone)) + assert.Equal(t, entity.ToolChoiceTypeSpecific, ToolChoiceTypeDTO2DO(prompt.ToolChoiceTypeSpecific)) +} + +func TestScenarioDTO2DO_EvalTarget(t *testing.T) { + t.Parallel() + assert.Equal(t, entity.ScenarioEvalTarget, ScenarioDTO2DO(prompt.ScenarioEvalTarget)) +} + +func TestBatchMcpServerCombineDTO2DO_WithNilElements(t *testing.T) { + t.Parallel() + assert.Nil(t, BatchMcpServerCombineDTO2DO(nil)) + result := BatchMcpServerCombineDTO2DO([]*prompt.McpServerCombine{nil, {McpServerID: ptr.Of(int64(3))}}) + assert.Len(t, result, 1) + assert.Equal(t, ptr.Of(int64(3)), result[0].McpServerID) +} + +func TestPromptDetailDTO2DO_WithMcpAndExtInfos(t *testing.T) { + t.Parallel() + assert.Nil(t, PromptDetailDTO2DO(nil)) + result := PromptDetailDTO2DO(&prompt.PromptDetail{ + McpConfig: &prompt.McpConfig{ + IsMcpCallAutoRetry: ptr.Of(true), + McpServers: []*prompt.McpServerCombine{ + {McpServerID: ptr.Of(int64(99))}, + }, + }, + ExtInfos: map[string]string{"info_key": "info_val"}, + }) + assert.NotNil(t, result) + assert.NotNil(t, result.McpConfig) + assert.Equal(t, ptr.Of(true), result.McpConfig.IsMcpCallAutoRetry) + assert.Len(t, result.McpConfig.McpServers, 1) + assert.Equal(t, map[string]string{"info_key": "info_val"}, result.ExtInfos) +} + +func TestBatchMessageDO2DTO_WithNilElements(t *testing.T) { + t.Parallel() + assert.Nil(t, BatchMessageDO2DTO(nil)) + assert.Nil(t, BatchMessageDO2DTO([]*entity.Message{})) + result := BatchMessageDO2DTO([]*entity.Message{nil, {Role: entity.RoleUser, Content: ptr.Of("hi")}}) + assert.Len(t, result, 1) + assert.Equal(t, ptr.Of(prompt.RoleUser), result[0].Role) +} + +func TestBatchToolDO2DTO_WithNilElements(t *testing.T) { + t.Parallel() + assert.Nil(t, BatchToolDO2DTO(nil)) + assert.Nil(t, BatchToolDO2DTO([]*entity.Tool{})) + result := BatchToolDO2DTO([]*entity.Tool{nil, {Type: entity.ToolTypeFunction}}) + assert.Len(t, result, 1) +} + +func TestBatchToolCallDO2DTO_WithNilElements(t *testing.T) { + t.Parallel() + assert.Nil(t, BatchToolCallDO2DTO(nil)) + result := BatchToolCallDO2DTO([]*entity.ToolCall{nil, {ID: "tc1", Type: entity.ToolTypeFunction}}) + assert.Len(t, result, 1) + assert.Equal(t, ptr.Of("tc1"), result[0].ID) +} + +func TestBatchContentPartDO2DTO_WithNilElements(t *testing.T) { + t.Parallel() + assert.Nil(t, BatchContentPartDO2DTO(nil)) + result := BatchContentPartDO2DTO([]*entity.ContentPart{nil, {Type: entity.ContentTypeText, Text: ptr.Of("t")}}) + assert.Len(t, result, 1) +} + +func TestBatchVariableDefDO2DTO_WithNilElements(t *testing.T) { + t.Parallel() + assert.Nil(t, BatchVariableDefDO2DTO(nil)) + assert.Nil(t, BatchVariableDefDO2DTO([]*entity.VariableDef{})) + result := BatchVariableDefDO2DTO([]*entity.VariableDef{nil, {Key: "k", Type: entity.VariableTypeString}}) + assert.Len(t, result, 1) + assert.Equal(t, ptr.Of("k"), result[0].Key) +} diff --git a/backend/modules/prompt/application/manage_test.go b/backend/modules/prompt/application/manage_test.go index 32d117c88..6d66e613d 100644 --- a/backend/modules/prompt/application/manage_test.go +++ b/backend/modules/prompt/application/manage_test.go @@ -3143,3 +3143,761 @@ func TestPromptManageApplicationImpl_ListLabelAdditional(t *testing.T) { }) } } + +func TestPromptManageApplicationImpl_UpdatePrompt_ErrorBranches(t *testing.T) { + type fields struct { + manageRepo repo.IManageRepo + authProvider rpc.IAuthProvider + auditProvider rpc.IAuditProvider + } + type args struct { + ctx context.Context + request *manage.UpdatePromptRequest + } + tests := []struct { + name string + fieldsGetter func(ctrl *gomock.Controller) fields + args args + wantErr error + }{ + { + name: "get prompt error", + fieldsGetter: func(ctrl *gomock.Controller) fields { + repoMock := repomocks.NewMockIManageRepo(ctrl) + repoMock.EXPECT().GetPrompt(gomock.Any(), repo.GetPromptParam{PromptID: 5}).Return(nil, errorx.New("get prompt error")) + return fields{manageRepo: repoMock} + }, + args: args{ + ctx: session.WithCtxUser(context.Background(), &session.User{ID: "user"}), + request: &manage.UpdatePromptRequest{PromptID: ptr.Of(int64(5))}, + }, + wantErr: errorx.New("get prompt error"), + }, + { + name: "edit permission error", + fieldsGetter: func(ctrl *gomock.Controller) fields { + repoMock := repomocks.NewMockIManageRepo(ctrl) + repoMock.EXPECT().GetPrompt(gomock.Any(), repo.GetPromptParam{PromptID: 5}).Return(&entity.Prompt{ + ID: 5, + SpaceID: 50, + PromptBasic: &entity.PromptBasic{PromptType: entity.PromptTypeNormal, SecurityLevel: entity.SecurityLevelL3}, + }, nil) + auth := mocks.NewMockIAuthProvider(ctrl) + auth.EXPECT().MCheckPromptPermission(gomock.Any(), int64(50), []int64{int64(5)}, consts.ActionLoopPromptEdit).Return(errorx.New("edit denied")) + return fields{manageRepo: repoMock, authProvider: auth} + }, + args: args{ + ctx: session.WithCtxUser(context.Background(), &session.User{ID: "user"}), + request: &manage.UpdatePromptRequest{PromptID: ptr.Of(int64(5))}, + }, + wantErr: errorx.New("edit denied"), + }, + { + name: "security level change permission error", + fieldsGetter: func(ctrl *gomock.Controller) fields { + repoMock := repomocks.NewMockIManageRepo(ctrl) + repoMock.EXPECT().GetPrompt(gomock.Any(), repo.GetPromptParam{PromptID: 5}).Return(&entity.Prompt{ + ID: 5, + SpaceID: 50, + PromptBasic: &entity.PromptBasic{PromptType: entity.PromptTypeNormal, SecurityLevel: entity.SecurityLevelL1}, + }, nil) + auth := mocks.NewMockIAuthProvider(ctrl) + auth.EXPECT().MCheckPromptPermission(gomock.Any(), int64(50), []int64{int64(5)}, consts.ActionLoopPromptEdit).Return(nil) + auth.EXPECT().MCheckPromptPermission(gomock.Any(), int64(50), []int64{int64(5)}, consts.ActionLoopPromptEditSecLevel).Return(errorx.New("sec level denied")) + return fields{manageRepo: repoMock, authProvider: auth} + }, + args: args{ + ctx: session.WithCtxUser(context.Background(), &session.User{ID: "user"}), + request: &manage.UpdatePromptRequest{ + PromptID: ptr.Of(int64(5)), + SecurityLevel: ptr.Of(prompt.SecurityLevelL2), + }, + }, + wantErr: errorx.New("sec level denied"), + }, + { + name: "audit error", + fieldsGetter: func(ctrl *gomock.Controller) fields { + repoMock := repomocks.NewMockIManageRepo(ctrl) + repoMock.EXPECT().GetPrompt(gomock.Any(), repo.GetPromptParam{PromptID: 5}).Return(&entity.Prompt{ + ID: 5, + SpaceID: 50, + PromptBasic: &entity.PromptBasic{PromptType: entity.PromptTypeNormal, SecurityLevel: entity.SecurityLevelL3}, + }, nil) + auth := mocks.NewMockIAuthProvider(ctrl) + auth.EXPECT().MCheckPromptPermission(gomock.Any(), int64(50), []int64{int64(5)}, consts.ActionLoopPromptEdit).Return(nil) + audit := mocks.NewMockIAuditProvider(ctrl) + audit.EXPECT().AuditPrompt(gomock.Any(), gomock.Any()).Return(errorx.New("audit failed")) + return fields{manageRepo: repoMock, authProvider: auth, auditProvider: audit} + }, + args: args{ + ctx: session.WithCtxUser(context.Background(), &session.User{ID: "user"}), + request: &manage.UpdatePromptRequest{ + PromptID: ptr.Of(int64(5)), + PromptName: ptr.Of("name"), + PromptDescription: ptr.Of("desc"), + }, + }, + wantErr: errorx.New("audit failed"), + }, + } + + for _, tt := range tests { + caseData := tt + t.Run(caseData.name, func(t *testing.T) { + t.Parallel() + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + tFields := caseData.fieldsGetter(ctrl) + app := &PromptManageApplicationImpl{ + manageRepo: tFields.manageRepo, + authRPCProvider: tFields.authProvider, + auditRPCProvider: tFields.auditProvider, + } + + resp, err := app.UpdatePrompt(caseData.args.ctx, caseData.args.request) + unittest.AssertErrorEqual(t, caseData.wantErr, err) + if err == nil { + assert.NotNil(t, resp) + } + }) + } +} + +func TestPromptManageApplicationImpl_CommitDraft_ErrorBranches(t *testing.T) { + type fields struct { + manageRepo repo.IManageRepo + authProvider rpc.IAuthProvider + auditProvider rpc.IAuditProvider + promptService service.IPromptService + } + type args struct { + ctx context.Context + request *manage.CommitDraftRequest + } + tests := []struct { + name string + fieldsGetter func(ctrl *gomock.Controller) fields + args args + wantErr error + }{ + { + name: "user not found", + fieldsGetter: func(ctrl *gomock.Controller) fields { return fields{} }, + args: args{ + ctx: context.Background(), + request: &manage.CommitDraftRequest{PromptID: ptr.Of(int64(4)), CommitVersion: ptr.Of("1.0.0")}, + }, + wantErr: errorx.NewByCode(prompterr.CommonInvalidParamCode, errorx.WithExtraMsg("User not found")), + }, + { + name: "get prompt error", + fieldsGetter: func(ctrl *gomock.Controller) fields { + repoMock := repomocks.NewMockIManageRepo(ctrl) + repoMock.EXPECT().GetPrompt(gomock.Any(), repo.GetPromptParam{PromptID: 4, WithDraft: true, UserID: "user"}).Return(nil, errorx.New("get prompt error")) + return fields{manageRepo: repoMock} + }, + args: args{ + ctx: session.WithCtxUser(context.Background(), &session.User{ID: "user"}), + request: &manage.CommitDraftRequest{PromptID: ptr.Of(int64(4)), CommitVersion: ptr.Of("1.0.0")}, + }, + wantErr: errorx.New("get prompt error"), + }, + { + name: "permission error", + fieldsGetter: func(ctrl *gomock.Controller) fields { + repoMock := repomocks.NewMockIManageRepo(ctrl) + repoMock.EXPECT().GetPrompt(gomock.Any(), repo.GetPromptParam{PromptID: 4, WithDraft: true, UserID: "user"}).Return(&entity.Prompt{ID: 4, SpaceID: 40}, nil) + auth := mocks.NewMockIAuthProvider(ctrl) + auth.EXPECT().MCheckPromptPermission(gomock.Any(), int64(40), []int64{int64(4)}, consts.ActionLoopPromptEdit).Return(errorx.New("permission denied")) + return fields{manageRepo: repoMock, authProvider: auth} + }, + args: args{ + ctx: session.WithCtxUser(context.Background(), &session.User{ID: "user"}), + request: &manage.CommitDraftRequest{PromptID: ptr.Of(int64(4)), CommitVersion: ptr.Of("1.0.0")}, + }, + wantErr: errorx.New("permission denied"), + }, + { + name: "validate labels error", + fieldsGetter: func(ctrl *gomock.Controller) fields { + repoMock := repomocks.NewMockIManageRepo(ctrl) + repoMock.EXPECT().GetPrompt(gomock.Any(), repo.GetPromptParam{PromptID: 4, WithDraft: true, UserID: "user"}).Return(&entity.Prompt{ID: 4, SpaceID: 40}, nil) + auth := mocks.NewMockIAuthProvider(ctrl) + auth.EXPECT().MCheckPromptPermission(gomock.Any(), int64(40), []int64{int64(4)}, consts.ActionLoopPromptEdit).Return(nil) + audit := mocks.NewMockIAuditProvider(ctrl) + audit.EXPECT().AuditPrompt(gomock.Any(), gomock.Any()).Return(nil) + promptSvc := servicemocks.NewMockIPromptService(ctrl) + promptSvc.EXPECT().ValidateLabelsExist(gomock.Any(), int64(40), []string{"bad_label"}).Return(errorx.New("label not found")) + return fields{manageRepo: repoMock, authProvider: auth, auditProvider: audit, promptService: promptSvc} + }, + args: args{ + ctx: session.WithCtxUser(context.Background(), &session.User{ID: "user"}), + request: &manage.CommitDraftRequest{ + PromptID: ptr.Of(int64(4)), + CommitVersion: ptr.Of("1.0.0"), + LabelKeys: []string{"bad_label"}, + }, + }, + wantErr: errorx.New("label not found"), + }, + } + + for _, tt := range tests { + caseData := tt + t.Run(caseData.name, func(t *testing.T) { + t.Parallel() + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + tFields := caseData.fieldsGetter(ctrl) + app := &PromptManageApplicationImpl{ + manageRepo: tFields.manageRepo, + authRPCProvider: tFields.authProvider, + auditRPCProvider: tFields.auditProvider, + promptService: tFields.promptService, + } + + resp, err := app.CommitDraft(caseData.args.ctx, caseData.args.request) + unittest.AssertErrorEqual(t, caseData.wantErr, err) + if err == nil { + assert.NotNil(t, resp) + } + }) + } +} + +func TestPromptManageApplicationImpl_GetPrompt_ErrorBranches(t *testing.T) { + type fields struct { + manageRepo repo.IManageRepo + promptService service.IPromptService + authRPCProvider rpc.IAuthProvider + configProvider conf.IConfigProvider + } + type args struct { + ctx context.Context + request *manage.GetPromptRequest + } + tests := []struct { + name string + fieldsGetter func(ctrl *gomock.Controller) fields + args args + wantErr error + }{ + { + name: "default config error", + fieldsGetter: func(ctrl *gomock.Controller) fields { + promptDO := &entity.Prompt{ + ID: 10, + SpaceID: 100, + PromptKey: "key", + PromptBasic: &entity.PromptBasic{ + PromptType: entity.PromptTypeNormal, + }, + } + mockPromptService := servicemocks.NewMockIPromptService(ctrl) + mockPromptService.EXPECT().GetPrompt(gomock.Any(), gomock.Any()).Return(promptDO, nil) + mockAuth := mocks.NewMockIAuthProvider(ctrl) + mockAuth.EXPECT().MCheckPromptPermission(gomock.Any(), int64(100), []int64{int64(10)}, consts.ActionLoopPromptRead).Return(nil) + mockConfig := confmocks.NewMockIConfigProvider(ctrl) + mockConfig.EXPECT().GetPromptDefaultConfig(gomock.Any()).Return(nil, errorx.New("config error")) + return fields{ + promptService: mockPromptService, + authRPCProvider: mockAuth, + configProvider: mockConfig, + } + }, + args: args{ + ctx: session.WithCtxUser(context.Background(), &session.User{ID: "user"}), + request: &manage.GetPromptRequest{ + PromptID: ptr.Of(int64(10)), + WithDefaultConfig: ptr.Of(true), + }, + }, + wantErr: errorx.New("config error"), + }, + { + name: "snippet with commit version parent references", + fieldsGetter: func(ctrl *gomock.Controller) fields { + promptDO := &entity.Prompt{ + ID: 11, + SpaceID: 110, + PromptKey: "snippet_key", + PromptBasic: &entity.PromptBasic{ + PromptType: entity.PromptTypeSnippet, + }, + } + mockPromptService := servicemocks.NewMockIPromptService(ctrl) + mockPromptService.EXPECT().GetPrompt(gomock.Any(), gomock.Any()).Return(promptDO, nil) + mockAuth := mocks.NewMockIAuthProvider(ctrl) + mockAuth.EXPECT().MCheckPromptPermission(gomock.Any(), int64(110), []int64{int64(11)}, consts.ActionLoopPromptRead).Return(nil) + mockRepo := repomocks.NewMockIManageRepo(ctrl) + mockRepo.EXPECT().ListParentPrompt(gomock.Any(), repo.ListParentPromptParam{ + SubPromptID: 11, + SubPromptVersions: []string{"1.0.0"}, + }).Return(map[string][]*repo.PromptCommitVersions{ + "1.0.0": {{CommitVersions: []string{"a.0.0"}}}, + }, nil) + return fields{ + manageRepo: mockRepo, + promptService: mockPromptService, + authRPCProvider: mockAuth, + } + }, + args: args{ + ctx: session.WithCtxUser(context.Background(), &session.User{ID: "user"}), + request: &manage.GetPromptRequest{ + PromptID: ptr.Of(int64(11)), + WithCommit: ptr.Of(true), + CommitVersion: ptr.Of("1.0.0"), + }, + }, + wantErr: nil, + }, + { + name: "snippet MGetVersionsByPromptID error", + fieldsGetter: func(ctrl *gomock.Controller) fields { + promptDO := &entity.Prompt{ + ID: 12, + SpaceID: 120, + PromptKey: "snippet_key2", + PromptBasic: &entity.PromptBasic{ + PromptType: entity.PromptTypeSnippet, + }, + } + mockPromptService := servicemocks.NewMockIPromptService(ctrl) + mockPromptService.EXPECT().GetPrompt(gomock.Any(), gomock.Any()).Return(promptDO, nil) + mockAuth := mocks.NewMockIAuthProvider(ctrl) + mockAuth.EXPECT().MCheckPromptPermission(gomock.Any(), int64(120), []int64{int64(12)}, consts.ActionLoopPromptRead).Return(nil) + mockRepo := repomocks.NewMockIManageRepo(ctrl) + mockRepo.EXPECT().MGetVersionsByPromptID(gomock.Any(), int64(12)).Return(nil, errorx.New("versions error")) + return fields{ + manageRepo: mockRepo, + promptService: mockPromptService, + authRPCProvider: mockAuth, + } + }, + args: args{ + ctx: session.WithCtxUser(context.Background(), &session.User{ID: "user"}), + request: &manage.GetPromptRequest{ + PromptID: ptr.Of(int64(12)), + }, + }, + wantErr: errorx.New("versions error"), + }, + { + name: "snippet ListParentPrompt error on no commit version", + fieldsGetter: func(ctrl *gomock.Controller) fields { + promptDO := &entity.Prompt{ + ID: 13, + SpaceID: 130, + PromptKey: "snippet_key3", + PromptBasic: &entity.PromptBasic{ + PromptType: entity.PromptTypeSnippet, + }, + } + mockPromptService := servicemocks.NewMockIPromptService(ctrl) + mockPromptService.EXPECT().GetPrompt(gomock.Any(), gomock.Any()).Return(promptDO, nil) + mockAuth := mocks.NewMockIAuthProvider(ctrl) + mockAuth.EXPECT().MCheckPromptPermission(gomock.Any(), int64(130), []int64{int64(13)}, consts.ActionLoopPromptRead).Return(nil) + mockRepo := repomocks.NewMockIManageRepo(ctrl) + mockRepo.EXPECT().MGetVersionsByPromptID(gomock.Any(), int64(13)).Return([]string{"1.0.0"}, nil) + mockRepo.EXPECT().ListParentPrompt(gomock.Any(), repo.ListParentPromptParam{ + SubPromptID: 13, + SubPromptVersions: []string{"1.0.0"}, + }).Return(nil, errorx.New("list parent error")) + return fields{ + manageRepo: mockRepo, + promptService: mockPromptService, + authRPCProvider: mockAuth, + } + }, + args: args{ + ctx: session.WithCtxUser(context.Background(), &session.User{ID: "user"}), + request: &manage.GetPromptRequest{ + PromptID: ptr.Of(int64(13)), + }, + }, + wantErr: errorx.New("list parent error"), + }, + { + name: "auto commit version repo error", + fieldsGetter: func(ctrl *gomock.Controller) fields { + mockRepo := repomocks.NewMockIManageRepo(ctrl) + mockRepo.EXPECT().GetPrompt(gomock.Any(), repo.GetPromptParam{PromptID: 14}).Return(nil, errorx.New("repo get error")) + return fields{ + manageRepo: mockRepo, + } + }, + args: args{ + ctx: session.WithCtxUser(context.Background(), &session.User{ID: "user"}), + request: &manage.GetPromptRequest{ + PromptID: ptr.Of(int64(14)), + WithCommit: ptr.Of(true), + }, + }, + wantErr: errorx.New("repo get error"), + }, + { + name: "permission error", + fieldsGetter: func(ctrl *gomock.Controller) fields { + promptDO := &entity.Prompt{ + ID: 15, + SpaceID: 150, + PromptKey: "perm_key", + PromptBasic: &entity.PromptBasic{ + PromptType: entity.PromptTypeNormal, + }, + } + mockPromptService := servicemocks.NewMockIPromptService(ctrl) + mockPromptService.EXPECT().GetPrompt(gomock.Any(), gomock.Any()).Return(promptDO, nil) + mockAuth := mocks.NewMockIAuthProvider(ctrl) + mockAuth.EXPECT().MCheckPromptPermission(gomock.Any(), int64(150), []int64{int64(15)}, consts.ActionLoopPromptRead).Return(errorx.New("no read perm")) + return fields{ + promptService: mockPromptService, + authRPCProvider: mockAuth, + } + }, + args: args{ + ctx: session.WithCtxUser(context.Background(), &session.User{ID: "user"}), + request: &manage.GetPromptRequest{ + PromptID: ptr.Of(int64(15)), + }, + }, + wantErr: errorx.New("no read perm"), + }, + } + + for _, tt := range tests { + caseData := tt + t.Run(caseData.name, func(t *testing.T) { + t.Parallel() + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + ff := caseData.fieldsGetter(ctrl) + app := &PromptManageApplicationImpl{ + manageRepo: ff.manageRepo, + promptService: ff.promptService, + authRPCProvider: ff.authRPCProvider, + configProvider: ff.configProvider, + } + + resp, err := app.GetPrompt(caseData.args.ctx, caseData.args.request) + unittest.AssertErrorEqual(t, caseData.wantErr, err) + if err == nil { + assert.NotNil(t, resp) + } + }) + } +} + +func TestPromptManageApplicationImpl_ListCommit_ErrorBranches(t *testing.T) { + type fields struct { + manageRepo repo.IManageRepo + authProvider rpc.IAuthProvider + promptService service.IPromptService + userProvider rpc.IUserProvider + } + type args struct { + ctx context.Context + request *manage.ListCommitRequest + } + tests := []struct { + name string + fieldsGetter func(ctrl *gomock.Controller) fields + args args + wantErr error + }{ + { + name: "user not found", + fieldsGetter: func(ctrl *gomock.Controller) fields { return fields{} }, + args: args{ + ctx: context.Background(), + request: &manage.ListCommitRequest{PromptID: ptr.Of(int64(1))}, + }, + wantErr: errorx.NewByCode(prompterr.CommonInvalidParamCode, errorx.WithExtraMsg("User not found")), + }, + { + name: "get prompt error", + fieldsGetter: func(ctrl *gomock.Controller) fields { + repoMock := repomocks.NewMockIManageRepo(ctrl) + repoMock.EXPECT().GetPrompt(gomock.Any(), repo.GetPromptParam{PromptID: 1}).Return(nil, errorx.New("get error")) + return fields{manageRepo: repoMock} + }, + args: args{ + ctx: session.WithCtxUser(context.Background(), &session.User{ID: "user"}), + request: &manage.ListCommitRequest{PromptID: ptr.Of(int64(1))}, + }, + wantErr: errorx.New("get error"), + }, + { + name: "permission error", + fieldsGetter: func(ctrl *gomock.Controller) fields { + repoMock := repomocks.NewMockIManageRepo(ctrl) + repoMock.EXPECT().GetPrompt(gomock.Any(), repo.GetPromptParam{PromptID: 1}).Return(&entity.Prompt{ID: 1, SpaceID: 10}, nil) + auth := mocks.NewMockIAuthProvider(ctrl) + auth.EXPECT().MCheckPromptPermission(gomock.Any(), int64(10), []int64{int64(1)}, consts.ActionLoopPromptRead).Return(errorx.New("perm denied")) + return fields{manageRepo: repoMock, authProvider: auth} + }, + args: args{ + ctx: session.WithCtxUser(context.Background(), &session.User{ID: "user"}), + request: &manage.ListCommitRequest{PromptID: ptr.Of(int64(1))}, + }, + wantErr: errorx.New("perm denied"), + }, + { + name: "invalid page token", + fieldsGetter: func(ctrl *gomock.Controller) fields { + repoMock := repomocks.NewMockIManageRepo(ctrl) + repoMock.EXPECT().GetPrompt(gomock.Any(), repo.GetPromptParam{PromptID: 1}).Return(&entity.Prompt{ID: 1, SpaceID: 10}, nil) + auth := mocks.NewMockIAuthProvider(ctrl) + auth.EXPECT().MCheckPromptPermission(gomock.Any(), int64(10), []int64{int64(1)}, consts.ActionLoopPromptRead).Return(nil) + return fields{manageRepo: repoMock, authProvider: auth} + }, + args: args{ + ctx: session.WithCtxUser(context.Background(), &session.User{ID: "user"}), + request: &manage.ListCommitRequest{ + PromptID: ptr.Of(int64(1)), + PageToken: ptr.Of("not_a_number"), + }, + }, + wantErr: errorx.NewByCode(prompterr.CommonInvalidParamCode, errorx.WithExtraMsg("Page token is invalid, page token = not_a_number")), + }, + { + name: "list commit info error", + fieldsGetter: func(ctrl *gomock.Controller) fields { + repoMock := repomocks.NewMockIManageRepo(ctrl) + repoMock.EXPECT().GetPrompt(gomock.Any(), repo.GetPromptParam{PromptID: 1}).Return(&entity.Prompt{ID: 1, SpaceID: 10}, nil) + repoMock.EXPECT().ListCommitInfo(gomock.Any(), gomock.Any()).Return(nil, errorx.New("list commit error")) + auth := mocks.NewMockIAuthProvider(ctrl) + auth.EXPECT().MCheckPromptPermission(gomock.Any(), int64(10), []int64{int64(1)}, consts.ActionLoopPromptRead).Return(nil) + return fields{manageRepo: repoMock, authProvider: auth} + }, + args: args{ + ctx: session.WithCtxUser(context.Background(), &session.User{ID: "user"}), + request: &manage.ListCommitRequest{PromptID: ptr.Of(int64(1)), PageSize: ptr.Of(int32(10))}, + }, + wantErr: errorx.New("list commit error"), + }, + { + name: "user info error", + fieldsGetter: func(ctrl *gomock.Controller) fields { + repoMock := repomocks.NewMockIManageRepo(ctrl) + repoMock.EXPECT().GetPrompt(gomock.Any(), repo.GetPromptParam{PromptID: 1}).Return(&entity.Prompt{ID: 1, SpaceID: 10, PromptBasic: &entity.PromptBasic{PromptType: entity.PromptTypeNormal}}, nil) + repoMock.EXPECT().ListCommitInfo(gomock.Any(), gomock.Any()).Return(&repo.ListCommitResult{ + CommitInfoDOs: []*entity.CommitInfo{{Version: "1.0.0", CommittedBy: "userA"}}, + }, nil) + auth := mocks.NewMockIAuthProvider(ctrl) + auth.EXPECT().MCheckPromptPermission(gomock.Any(), int64(10), []int64{int64(1)}, consts.ActionLoopPromptRead).Return(nil) + userProv := mocks.NewMockIUserProvider(ctrl) + userProv.EXPECT().MGetUserInfo(gomock.Any(), gomock.Any()).Return(nil, errorx.New("user info error")) + return fields{manageRepo: repoMock, authProvider: auth, userProvider: userProv} + }, + args: args{ + ctx: session.WithCtxUser(context.Background(), &session.User{ID: "user"}), + request: &manage.ListCommitRequest{PromptID: ptr.Of(int64(1)), PageSize: ptr.Of(int32(10))}, + }, + wantErr: errorx.New("user info error"), + }, + { + name: "batch get commit labels error", + fieldsGetter: func(ctrl *gomock.Controller) fields { + repoMock := repomocks.NewMockIManageRepo(ctrl) + repoMock.EXPECT().GetPrompt(gomock.Any(), repo.GetPromptParam{PromptID: 1}).Return(&entity.Prompt{ID: 1, SpaceID: 10, PromptBasic: &entity.PromptBasic{PromptType: entity.PromptTypeNormal}}, nil) + repoMock.EXPECT().ListCommitInfo(gomock.Any(), gomock.Any()).Return(&repo.ListCommitResult{ + CommitInfoDOs: []*entity.CommitInfo{{Version: "1.0.0", CommittedBy: "userA"}}, + }, nil) + auth := mocks.NewMockIAuthProvider(ctrl) + auth.EXPECT().MCheckPromptPermission(gomock.Any(), int64(10), []int64{int64(1)}, consts.ActionLoopPromptRead).Return(nil) + promptSvc := servicemocks.NewMockIPromptService(ctrl) + promptSvc.EXPECT().BatchGetCommitLabels(gomock.Any(), int64(1), []string{"1.0.0"}).Return(nil, errorx.New("labels error")) + userProv := mocks.NewMockIUserProvider(ctrl) + userProv.EXPECT().MGetUserInfo(gomock.Any(), gomock.Any()).Return([]*rpc.UserInfo{{UserID: "userA"}}, nil) + return fields{manageRepo: repoMock, authProvider: auth, promptService: promptSvc, userProvider: userProv} + }, + args: args{ + ctx: session.WithCtxUser(context.Background(), &session.User{ID: "user"}), + request: &manage.ListCommitRequest{PromptID: ptr.Of(int64(1)), PageSize: ptr.Of(int32(10))}, + }, + wantErr: errorx.New("labels error"), + }, + { + name: "snippet list parent prompt error", + fieldsGetter: func(ctrl *gomock.Controller) fields { + repoMock := repomocks.NewMockIManageRepo(ctrl) + repoMock.EXPECT().GetPrompt(gomock.Any(), repo.GetPromptParam{PromptID: 1}).Return(&entity.Prompt{ID: 1, SpaceID: 10, PromptBasic: &entity.PromptBasic{PromptType: entity.PromptTypeSnippet}}, nil) + repoMock.EXPECT().ListCommitInfo(gomock.Any(), gomock.Any()).Return(&repo.ListCommitResult{ + CommitInfoDOs: []*entity.CommitInfo{{Version: "1.0.0", CommittedBy: "userA"}}, + }, nil) + repoMock.EXPECT().ListParentPrompt(gomock.Any(), repo.ListParentPromptParam{SubPromptID: 1, SubPromptVersions: []string{"1.0.0"}}).Return(nil, errorx.New("parent error")) + auth := mocks.NewMockIAuthProvider(ctrl) + auth.EXPECT().MCheckPromptPermission(gomock.Any(), int64(10), []int64{int64(1)}, consts.ActionLoopPromptRead).Return(nil) + promptSvc := servicemocks.NewMockIPromptService(ctrl) + promptSvc.EXPECT().BatchGetCommitLabels(gomock.Any(), int64(1), []string{"1.0.0"}).Return(map[string][]string{}, nil) + userProv := mocks.NewMockIUserProvider(ctrl) + userProv.EXPECT().MGetUserInfo(gomock.Any(), gomock.Any()).Return([]*rpc.UserInfo{{UserID: "userA"}}, nil) + return fields{manageRepo: repoMock, authProvider: auth, promptService: promptSvc, userProvider: userProv} + }, + args: args{ + ctx: session.WithCtxUser(context.Background(), &session.User{ID: "user"}), + request: &manage.ListCommitRequest{PromptID: ptr.Of(int64(1)), PageSize: ptr.Of(int32(10))}, + }, + wantErr: errorx.New("parent error"), + }, + { + name: "nil list commit result", + fieldsGetter: func(ctrl *gomock.Controller) fields { + repoMock := repomocks.NewMockIManageRepo(ctrl) + repoMock.EXPECT().GetPrompt(gomock.Any(), repo.GetPromptParam{PromptID: 1}).Return(&entity.Prompt{ID: 1, SpaceID: 10}, nil) + repoMock.EXPECT().ListCommitInfo(gomock.Any(), gomock.Any()).Return(nil, nil) + auth := mocks.NewMockIAuthProvider(ctrl) + auth.EXPECT().MCheckPromptPermission(gomock.Any(), int64(10), []int64{int64(1)}, consts.ActionLoopPromptRead).Return(nil) + return fields{manageRepo: repoMock, authProvider: auth} + }, + args: args{ + ctx: session.WithCtxUser(context.Background(), &session.User{ID: "user"}), + request: &manage.ListCommitRequest{PromptID: ptr.Of(int64(1)), PageSize: ptr.Of(int32(10))}, + }, + wantErr: nil, + }, + { + name: "with commit detail", + fieldsGetter: func(ctrl *gomock.Controller) fields { + repoMock := repomocks.NewMockIManageRepo(ctrl) + repoMock.EXPECT().GetPrompt(gomock.Any(), repo.GetPromptParam{PromptID: 1}).Return(&entity.Prompt{ID: 1, SpaceID: 10, PromptBasic: &entity.PromptBasic{PromptType: entity.PromptTypeNormal}}, nil) + repoMock.EXPECT().ListCommitInfo(gomock.Any(), gomock.Any()).Return(&repo.ListCommitResult{ + CommitInfoDOs: []*entity.CommitInfo{{Version: "1.0.0", CommittedBy: "userA"}}, + CommitDOs: []*entity.PromptCommit{{ + CommitInfo: &entity.CommitInfo{Version: "1.0.0"}, + PromptDetail: &entity.PromptDetail{PromptTemplate: &entity.PromptTemplate{TemplateType: entity.TemplateTypeNormal}}, + }}, + }, nil) + auth := mocks.NewMockIAuthProvider(ctrl) + auth.EXPECT().MCheckPromptPermission(gomock.Any(), int64(10), []int64{int64(1)}, consts.ActionLoopPromptRead).Return(nil) + promptSvc := servicemocks.NewMockIPromptService(ctrl) + promptSvc.EXPECT().BatchGetCommitLabels(gomock.Any(), int64(1), []string{"1.0.0"}).Return(map[string][]string{"1.0.0": {"prod"}}, nil) + userProv := mocks.NewMockIUserProvider(ctrl) + userProv.EXPECT().MGetUserInfo(gomock.Any(), gomock.Any()).Return([]*rpc.UserInfo{{UserID: "userA"}}, nil) + return fields{manageRepo: repoMock, authProvider: auth, promptService: promptSvc, userProvider: userProv} + }, + args: args{ + ctx: session.WithCtxUser(context.Background(), &session.User{ID: "user"}), + request: &manage.ListCommitRequest{ + PromptID: ptr.Of(int64(1)), + PageSize: ptr.Of(int32(10)), + WithCommitDetail: ptr.Of(true), + }, + }, + wantErr: nil, + }, + } + + for _, tt := range tests { + caseData := tt + t.Run(caseData.name, func(t *testing.T) { + t.Parallel() + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + tFields := caseData.fieldsGetter(ctrl) + app := &PromptManageApplicationImpl{ + manageRepo: tFields.manageRepo, + authRPCProvider: tFields.authProvider, + promptService: tFields.promptService, + userRPCProvider: tFields.userProvider, + } + + resp, err := app.ListCommit(caseData.args.ctx, caseData.args.request) + unittest.AssertErrorEqual(t, caseData.wantErr, err) + if err == nil { + assert.NotNil(t, resp) + } + }) + } +} + +func TestPromptManageApplicationImpl_CreatePrompt_SecurityLevelDefault(t *testing.T) { + t.Parallel() + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + auth := mocks.NewMockIAuthProvider(ctrl) + auth.EXPECT().CheckSpacePermission(gomock.Any(), int64(100), consts.ActionWorkspaceCreateLoopPrompt).Return(nil) + audit := mocks.NewMockIAuditProvider(ctrl) + audit.EXPECT().AuditPrompt(gomock.Any(), gomock.Any()).Return(nil) + promptSvc := servicemocks.NewMockIPromptService(ctrl) + promptSvc.EXPECT().CreatePrompt(gomock.Any(), gomock.Any()).DoAndReturn(func(_ context.Context, promptDO *entity.Prompt) (int64, error) { + assert.Equal(t, entity.SecurityLevelL3, promptDO.PromptBasic.SecurityLevel) + return 1, nil + }) + + app := &PromptManageApplicationImpl{ + promptService: promptSvc, + authRPCProvider: auth, + auditRPCProvider: audit, + } + + resp, err := app.CreatePrompt(session.WithCtxUser(context.Background(), &session.User{ID: "user"}), &manage.CreatePromptRequest{ + WorkspaceID: ptr.Of(int64(100)), + PromptKey: ptr.Of("key"), + PromptName: ptr.Of("name"), + }) + assert.NoError(t, err) + assert.NotNil(t, resp) +} + +func TestPromptManageApplicationImpl_ClonePrompt_SecurityLevel(t *testing.T) { + t.Parallel() + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockRepo := repomocks.NewMockIManageRepo(ctrl) + mockRepo.EXPECT().GetPrompt(gomock.Any(), repo.GetPromptParam{ + PromptID: 1, + WithCommit: true, + CommitVersion: "1.0.0", + }).Return(&entity.Prompt{ + ID: 1, + SpaceID: 100, + PromptKey: "source_key", + PromptBasic: &entity.PromptBasic{ + PromptType: entity.PromptTypeNormal, + SecurityLevel: entity.SecurityLevelL2, + }, + PromptCommit: &entity.PromptCommit{ + PromptDetail: &entity.PromptDetail{ + PromptTemplate: &entity.PromptTemplate{ + TemplateType: entity.TemplateTypeNormal, + }, + }, + }, + }, nil) + + mockAuth := mocks.NewMockIAuthProvider(ctrl) + mockAuth.EXPECT().MCheckPromptPermission(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(nil) + mockAuth.EXPECT().CheckSpacePermission(gomock.Any(), gomock.Any(), gomock.Any()).Return(nil) + + mockPromptService := servicemocks.NewMockIPromptService(ctrl) + mockPromptService.EXPECT().CreatePrompt(gomock.Any(), gomock.Any()).DoAndReturn(func(_ context.Context, p *entity.Prompt) (int64, error) { + assert.Equal(t, entity.SecurityLevelL2, p.PromptBasic.SecurityLevel) + return 2, nil + }) + + app := &PromptManageApplicationImpl{ + manageRepo: mockRepo, + promptService: mockPromptService, + authRPCProvider: mockAuth, + } + + resp, err := app.ClonePrompt(session.WithCtxUser(context.Background(), &session.User{ID: "user"}), &manage.ClonePromptRequest{ + PromptID: ptr.Of(int64(1)), + CommitVersion: ptr.Of("1.0.0"), + ClonedPromptKey: ptr.Of("cloned_key"), + ClonedPromptName: ptr.Of("cloned_name"), + ClonedPromptDescription: ptr.Of("cloned_desc"), + }) + assert.NoError(t, err) + assert.Equal(t, int64(2), resp.GetClonedPromptID()) +} diff --git a/backend/modules/prompt/application/openapi_test.go b/backend/modules/prompt/application/openapi_test.go index ad8294d87..8707218db 100644 --- a/backend/modules/prompt/application/openapi_test.go +++ b/backend/modules/prompt/application/openapi_test.go @@ -3252,6 +3252,283 @@ func TestPromptOpenAPIApplicationImpl_Execute(t *testing.T) { } } +func TestPromptTypeToMetricValue(t *testing.T) { + t.Parallel() + tests := []struct { + name string + promptType entity.PromptType + want int64 + }{ + { + name: "normal prompt type", + promptType: entity.PromptTypeNormal, + want: 1, + }, + { + name: "snippet prompt type", + promptType: entity.PromptTypeSnippet, + want: 2, + }, + { + name: "unknown prompt type returns 0", + promptType: entity.PromptType("unknown"), + want: 0, + }, + { + name: "empty prompt type returns 0", + promptType: entity.PromptType(""), + want: 0, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got := promptTypeToMetricValue(tt.promptType) + assert.Equal(t, tt.want, got) + }) + } +} + +func TestGetRequestPromptKey(t *testing.T) { + t.Parallel() + tests := []struct { + name string + req *openapi.ExecuteRequest + want string + }{ + { + name: "nil request", + req: nil, + want: "", + }, + { + name: "nil PromptIdentifier", + req: &openapi.ExecuteRequest{}, + want: "", + }, + { + name: "normal case", + req: &openapi.ExecuteRequest{ + PromptIdentifier: &domainopenapi.PromptQuery{ + PromptKey: ptr.Of("my_prompt"), + }, + }, + want: "my_prompt", + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got := getRequestPromptKey(tt.req) + assert.Equal(t, tt.want, got) + }) + } +} + +func TestGetRequestAccountMode(t *testing.T) { + t.Parallel() + tests := []struct { + name string + req *openapi.ExecuteRequest + want domainopenapi.AccountMode + }{ + { + name: "nil request defaults to SharedAccount", + req: nil, + want: domainopenapi.AccountModeSharedAccount, + }, + { + name: "nil AccountMode defaults to SharedAccount", + req: &openapi.ExecuteRequest{}, + want: domainopenapi.AccountModeSharedAccount, + }, + { + name: "normal case returns set value", + req: &openapi.ExecuteRequest{ + AccountMode: ptr.Of(domainopenapi.AccountModeCustomAccount), + }, + want: domainopenapi.AccountModeCustomAccount, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got := getRequestAccountMode(tt.req) + assert.Equal(t, tt.want, got) + }) + } +} + +func TestGetRequestUsageScenario(t *testing.T) { + t.Parallel() + tests := []struct { + name string + req *openapi.ExecuteRequest + want domainopenapi.UsageScenario + }{ + { + name: "nil request defaults to PromptAsAService", + req: nil, + want: domainopenapi.UsageScenarioPromptAsAService, + }, + { + name: "nil UsageScenario defaults to PromptAsAService", + req: &openapi.ExecuteRequest{}, + want: domainopenapi.UsageScenarioPromptAsAService, + }, + { + name: "normal case returns set value", + req: &openapi.ExecuteRequest{ + UsageScenario: ptr.Of(domainopenapi.UsageScenarioEvaluation), + }, + want: domainopenapi.UsageScenarioEvaluation, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got := getRequestUsageScenario(tt.req) + assert.Equal(t, tt.want, got) + }) + } +} + +func TestGetReplyTokenUsage(t *testing.T) { + t.Parallel() + tests := []struct { + name string + reply *entity.Reply + wantInputTokens int64 + wantOutputTokens int64 + }{ + { + name: "nil reply", + reply: nil, + wantInputTokens: 0, + wantOutputTokens: 0, + }, + { + name: "nil Item", + reply: &entity.Reply{}, + wantInputTokens: 0, + wantOutputTokens: 0, + }, + { + name: "nil TokenUsage", + reply: &entity.Reply{Item: &entity.ReplyItem{}}, + wantInputTokens: 0, + wantOutputTokens: 0, + }, + { + name: "normal case", + reply: &entity.Reply{ + Item: &entity.ReplyItem{ + TokenUsage: &entity.TokenUsage{ + InputTokens: 100, + OutputTokens: 200, + }, + }, + }, + wantInputTokens: 100, + wantOutputTokens: 200, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + gotInput, gotOutput := getReplyTokenUsage(tt.reply) + assert.Equal(t, tt.wantInputTokens, gotInput) + assert.Equal(t, tt.wantOutputTokens, gotOutput) + }) + } +} + +func TestBuildTokenUsageReply(t *testing.T) { + t.Parallel() + reply := buildTokenUsageReply(50, 150) + assert.NotNil(t, reply) + assert.NotNil(t, reply.Item) + assert.NotNil(t, reply.Item.TokenUsage) + assert.Equal(t, int64(50), reply.Item.TokenUsage.InputTokens) + assert.Equal(t, int64(150), reply.Item.TokenUsage.OutputTokens) +} + +func TestNormalizeExecuteRequest_NilRequest(t *testing.T) { + t.Parallel() + got := normalizeExecuteRequest(nil) + assert.Nil(t, got) +} + +func TestNormalizeExecuteRequest_NoNormalizationNeeded(t *testing.T) { + t.Parallel() + req := &openapi.ExecuteRequest{ + PromptIdentifier: &domainopenapi.PromptQuery{ + PromptKey: ptr.Of("key"), + }, + } + got := normalizeExecuteRequest(req) + assert.Equal(t, req, got) +} + +func TestNormalizeExecuteRequest_DeepCopyWithNilPromptIdentifier(t *testing.T) { + t.Parallel() + req := &openapi.ExecuteRequest{ + ReleaseLabel: ptr.Of("production"), + } + got := normalizeExecuteRequest(req) + assert.NotNil(t, got.PromptIdentifier) + assert.Equal(t, "production", got.PromptIdentifier.GetLabel()) +} + +func TestNormalizeExecuteRequest_LabelNotOverride(t *testing.T) { + t.Parallel() + req := &openapi.ExecuteRequest{ + PromptIdentifier: &domainopenapi.PromptQuery{ + PromptKey: ptr.Of("key"), + Label: ptr.Of("existing_label"), + }, + ReleaseLabel: ptr.Of("new_label"), + } + got := normalizeExecuteRequest(req) + assert.Equal(t, "existing_label", got.PromptIdentifier.GetLabel()) +} + +func TestNormalizeExecuteRequest_CustomToolConfig(t *testing.T) { + t.Parallel() + toolConfig := &domainopenapi.ToolCallConfig{ + ToolChoice: ptr.Of(domainopenapi.ToolChoiceTypeAuto), + } + req := &openapi.ExecuteRequest{ + CustomToolConfig: toolConfig, + } + got := normalizeExecuteRequest(req) + assert.NotNil(t, got.CustomToolCallConfig) + assert.Equal(t, domainopenapi.ToolChoiceTypeAuto, got.CustomToolCallConfig.GetToolChoice()) +} + +func TestNormalizeExecuteRequest_CustomToolsAutoConfig(t *testing.T) { + t.Parallel() + req := &openapi.ExecuteRequest{ + CustomTools: []*domainopenapi.Tool{ + {Type: ptr.Of(domainopenapi.ToolTypeFunction)}, + }, + } + got := normalizeExecuteRequest(req) + assert.NotNil(t, got.CustomToolCallConfig) + assert.Equal(t, domainopenapi.ToolChoiceTypeAuto, got.CustomToolCallConfig.GetToolChoice()) +} + +func TestNormalizeExecuteRequest_CustomToolCallConfigNotOverridden(t *testing.T) { + t.Parallel() + existingConfig := &domainopenapi.ToolCallConfig{ + ToolChoice: ptr.Of(domainopenapi.ToolChoiceTypeNone), + } + toolConfig := &domainopenapi.ToolCallConfig{ + ToolChoice: ptr.Of(domainopenapi.ToolChoiceTypeAuto), + } + req := &openapi.ExecuteRequest{ + CustomToolCallConfig: existingConfig, + CustomToolConfig: toolConfig, + } + got := normalizeExecuteRequest(req) + assert.Equal(t, domainopenapi.ToolChoiceTypeNone, got.CustomToolCallConfig.GetToolChoice()) +} + // mockExecuteStreamingServer 用于测试的mock流式服务器 type mockExecuteStreamingServer struct { ctx context.Context diff --git a/backend/modules/prompt/domain/entity/prompt_detail_test.go b/backend/modules/prompt/domain/entity/prompt_detail_test.go index 1e089a535..d0c61817a 100644 --- a/backend/modules/prompt/domain/entity/prompt_detail_test.go +++ b/backend/modules/prompt/domain/entity/prompt_detail_test.go @@ -1547,6 +1547,171 @@ func TestRenderGoTemplate(t *testing.T) { } } +func TestFormatMultiPart_MultiPartVariable(t *testing.T) { + defMap := map[string]*VariableDef{ + "images": {Key: "images", Type: VariableTypeMultiPart}, + } + valMap := map[string]*VariableVal{ + "images": { + Key: "images", + MultiPartValues: []*ContentPart{ + {Type: ContentTypeText, Text: ptr.Of("caption")}, + {Type: ContentTypeImageURL, ImageURL: &ImageURL{URL: "http://img.png"}}, + nil, + {Type: ContentTypeVideoURL, VideoURL: &VideoURL{URL: "http://vid.mp4"}}, + {Type: ContentTypeBase64Data, Base64Data: ptr.Of("aGVsbG8=")}, + {Type: ContentTypeText}, + }, + }, + } + parts := []*ContentPart{ + {Type: ContentTypeMultiPartVariable, Text: ptr.Of("images")}, + } + result := formatMultiPart(parts, defMap, valMap) + assert.Len(t, result, 4) + assert.Equal(t, "caption", ptr.From(result[0].Text)) + assert.Equal(t, "http://img.png", result[1].ImageURL.URL) + assert.Equal(t, "http://vid.mp4", result[2].VideoURL.URL) + assert.Equal(t, "aGVsbG8=", ptr.From(result[3].Base64Data)) +} + +func TestFormatMessages_DefaultRole(t *testing.T) { + pt := &PromptTemplate{ + TemplateType: TemplateTypeNormal, + Messages: []*Message{}, + } + messages := []*Message{ + { + Role: Role("custom_role"), + Content: ptr.Of("hello {{name}}"), + }, + } + formattedMsgs, err := pt.formatMessages(messages, nil) + assert.NoError(t, err) + assert.Len(t, formattedMsgs, 1) + assert.Equal(t, ptr.Of("hello {{name}}"), formattedMsgs[0].Content) +} + +func TestFormatMessages_NilMessageSkipped(t *testing.T) { + pt := &PromptTemplate{ + TemplateType: TemplateTypeNormal, + Messages: []*Message{nil}, + } + formattedMsgs, err := pt.formatMessages(nil, nil) + assert.NoError(t, err) + assert.Empty(t, formattedMsgs) +} + +func TestFormatMessages_PlaceholderNilMessage(t *testing.T) { + pt := &PromptTemplate{ + TemplateType: TemplateTypeNormal, + Messages: []*Message{ + {Role: RolePlaceholder, Content: ptr.Of("ph")}, + }, + } + valMap := []*VariableVal{ + { + Key: "ph", + PlaceholderMessages: []*Message{ + nil, + {Role: RoleUser, Content: ptr.Of("valid")}, + }, + }, + } + formattedMsgs, err := pt.formatMessages(nil, valMap) + assert.NoError(t, err) + assert.Len(t, formattedMsgs, 1) + assert.Equal(t, ptr.Of("valid"), formattedMsgs[0].Content) +} + +func TestFormatMessages_AssistantRenderError(t *testing.T) { + pt := &PromptTemplate{ + TemplateType: TemplateType("bad_type"), + Messages: []*Message{}, + } + messages := []*Message{ + { + Role: RoleAssistant, + Content: ptr.Of("hello"), + SkipRender: ptr.Of(false), + }, + } + _, err := pt.formatMessages(messages, nil) + assert.Error(t, err) +} + +func TestRenderMessage_PartFormatError(t *testing.T) { + pt := &PromptTemplate{ + TemplateType: TemplateType("bad_type"), + } + msg := &Message{ + Role: RoleSystem, + Parts: []*ContentPart{ + {Type: ContentTypeText, Text: ptr.Of("hello")}, + }, + } + err := pt.renderMessage(msg, nil, nil) + assert.Error(t, err) +} + +func TestGetTemplateMessages_NilPT(t *testing.T) { + var pt *PromptTemplate + result := pt.getTemplateMessages([]*Message{{Role: RoleUser}}) + assert.Nil(t, result) +} + +func TestConvertVariablesToMap_ArrayErrors(t *testing.T) { + tests := []struct { + name string + defMap map[string]*VariableDef + valMap map[string]*VariableVal + }{ + { + name: "array boolean invalid", + defMap: map[string]*VariableDef{ + "flags": {Key: "flags", Type: VariableTypeArrayBoolean}, + }, + valMap: map[string]*VariableVal{ + "flags": {Key: "flags", Value: ptr.Of("not_json")}, + }, + }, + { + name: "array integer invalid", + defMap: map[string]*VariableDef{ + "nums": {Key: "nums", Type: VariableTypeArrayInteger}, + }, + valMap: map[string]*VariableVal{ + "nums": {Key: "nums", Value: ptr.Of("not_json")}, + }, + }, + { + name: "array float invalid", + defMap: map[string]*VariableDef{ + "vals": {Key: "vals", Type: VariableTypeArrayFloat}, + }, + valMap: map[string]*VariableVal{ + "vals": {Key: "vals", Value: ptr.Of("not_json")}, + }, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + _, err := convertVariablesToMap(tt.defMap, tt.valMap) + assert.Error(t, err) + }) + } +} + +func TestPromptDetail_DeepEqual(t *testing.T) { + pd1 := &PromptDetail{} + pd2 := &PromptDetail{} + assert.True(t, pd1.DeepEqual(pd2)) + + pd3 := &PromptDetail{ExtInfos: map[string]string{"k": "v"}} + assert.False(t, pd1.DeepEqual(pd3)) +} + func TestFormatText_GoTemplate(t *testing.T) { tests := []struct { name string diff --git a/backend/modules/prompt/domain/service/execute_test.go b/backend/modules/prompt/domain/service/execute_test.go index 0ff139cac..ddc03b0fc 100644 --- a/backend/modules/prompt/domain/service/execute_test.go +++ b/backend/modules/prompt/domain/service/execute_test.go @@ -1450,3 +1450,441 @@ func (s *recordingSpan) Finish(ctx context.Context) func (s *recordingSpan) GetStartTime() time.Time { return s.startTime } func (s *recordingSpan) ToHeader() (map[string]string, error) { return map[string]string{}, nil } func (s *recordingSpan) SetCallType(callType string) {} + +func TestPromptServiceImpl_reportToolSpan_WithSignature(t *testing.T) { + t.Parallel() + + originalTracer := looptracer.GetTracer() + recorder := &recordingTracer{} + looptracer.InitTracer(recorder) + t.Cleanup(func() { looptracer.InitTracer(originalTracer) }) + + p := &PromptServiceImpl{} + prompt := &entity.Prompt{ + SpaceID: 10, + PromptKey: "pk", + PromptCommit: &entity.PromptCommit{ + CommitInfo: &entity.CommitInfo{Version: "v2"}, + }, + } + sig := "sig_abc" + replyItem := &entity.ReplyItem{ + Message: &entity.Message{ + ToolCalls: []*entity.ToolCall{ + { + ID: "call_1", + Signature: &sig, + FunctionCall: &entity.FunctionCall{ + Name: "tool_a", + Arguments: ptr.Of(`{"x":1}`), + }, + }, + }, + }, + } + + p.reportToolSpan(context.Background(), prompt, map[string]string{"call_1tool_asig_abc": "result with sig"}, replyItem) + + if assert.Len(t, recorder.spans, 1) { + assert.Equal(t, "result with sig", recorder.spans[0].output) + assert.Equal(t, loopentity.Prompt{PromptKey: "pk", Version: "v2"}, recorder.spans[0].prompt) + assert.True(t, recorder.spans[0].finished) + } +} + +func TestPromptServiceImpl_reorganizeContexts_WithSignature(t *testing.T) { + t.Parallel() + + p := &PromptServiceImpl{} + sig := "sig_xyz" + reply := &entity.Reply{ + Item: &entity.ReplyItem{ + Message: &entity.Message{ + Role: entity.RoleAssistant, + ToolCalls: []*entity.ToolCall{ + { + ID: "call_2", + Signature: &sig, + FunctionCall: &entity.FunctionCall{ + Name: "tool_b", + Arguments: ptr.Of(`{}`), + }, + }, + }, + }, + }, + } + + got, err := p.reorganizeContexts( + []*entity.Message{{Role: entity.RoleUser, Content: ptr.Of("hi")}}, + map[string]string{"call_2tool_bsig_xyz": "tool output with sig"}, + reply, + ) + assert.NoError(t, err) + assert.Len(t, got, 3) + assert.Equal(t, entity.RoleTool, got[2].Role) + assert.Equal(t, ptr.Of("call_2"), got[2].ToolCallID) + assert.Equal(t, ptr.Of("tool output with sig"), got[2].Content) +} + +func TestPromptServiceImpl_Execute_WithTracing(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + originalTracer := looptracer.GetTracer() + recorder := &recordingTracer{} + looptracer.InitTracer(recorder) + t.Cleanup(func() { looptracer.InitTracer(originalTracer) }) + + mockIDGen := idgenmocks.NewMockIIDGenerator(ctrl) + mockIDGen.EXPECT().GenID(gomock.Any()).Return(int64(111), nil) + mockLLM := rpcmocks.NewMockILLMProvider(ctrl) + mockLLM.EXPECT().Call(gomock.Any(), gomock.Any()).Return(&entity.ReplyItem{ + Message: &entity.Message{ + Role: entity.RoleAssistant, + Content: ptr.Of("traced response"), + ToolCalls: []*entity.ToolCall{ + { + ID: "tc1", + FunctionCall: &entity.FunctionCall{ + Name: "fn1", + Arguments: ptr.Of(`{"a":"b"}`), + }, + }, + }, + }, + FinishReason: "tool_calls", + TokenUsage: &entity.TokenUsage{ + InputTokens: 5, + OutputTokens: 3, + }, + }, nil) + mockLLM.EXPECT().Call(gomock.Any(), gomock.Any()).Return(&entity.ReplyItem{ + Message: &entity.Message{ + Role: entity.RoleAssistant, + Content: ptr.Of("final"), + }, + FinishReason: "stop", + TokenUsage: &entity.TokenUsage{ + InputTokens: 7, + OutputTokens: 4, + }, + }, nil) + + p := &PromptServiceImpl{ + formatter: NewPromptFormatter(), + toolConfigProvider: NewToolConfigProvider(), + toolResultsCollector: NewToolResultsCollector(), + idgen: mockIDGen, + llm: mockLLM, + } + + reply, err := p.Execute(context.Background(), ExecuteParam{ + Prompt: &entity.Prompt{ + ID: 1, + SpaceID: 100, + PromptKey: "traced_prompt", + PromptDraft: &entity.PromptDraft{ + PromptDetail: &entity.PromptDetail{ + PromptTemplate: &entity.PromptTemplate{ + TemplateType: entity.TemplateTypeNormal, + Messages: []*entity.Message{ + {Role: entity.RoleSystem, Content: ptr.Of("system")}, + }, + }, + }, + }, + }, + Messages: []*entity.Message{ + {Role: entity.RoleUser, Content: ptr.Of("hello")}, + }, + MockTools: []*entity.MockTool{ + {Name: "fn1", MockResponse: "mock_result"}, + }, + SingleStep: false, + DisableTracing: false, + }) + assert.NoError(t, err) + assert.NotNil(t, reply) + assert.Equal(t, ptr.Of("final"), reply.Item.Message.Content) + assert.Equal(t, int64(12), reply.Item.TokenUsage.InputTokens) + assert.Equal(t, int64(7), reply.Item.TokenUsage.OutputTokens) + assert.True(t, len(recorder.spans) >= 2) +} + +func TestPromptServiceImpl_ExecuteStreaming_WithTracing(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + originalTracer := looptracer.GetTracer() + recorder := &recordingTracer{} + looptracer.InitTracer(recorder) + t.Cleanup(func() { looptracer.InitTracer(originalTracer) }) + + mockIDGen := idgenmocks.NewMockIIDGenerator(ctrl) + mockIDGen.EXPECT().GenID(gomock.Any()).Return(int64(222), nil) + mockLLM := rpcmocks.NewMockILLMProvider(ctrl) + mockLLM.EXPECT().StreamingCall(gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, param rpc.LLMStreamingCallParam) (*entity.ReplyItem, error) { + param.ResultStream <- &entity.ReplyItem{ + Message: &entity.Message{ + Role: entity.RoleAssistant, + Content: ptr.Of("streamed"), + }, + } + return &entity.ReplyItem{ + Message: &entity.Message{ + Role: entity.RoleAssistant, + Content: ptr.Of("streamed"), + }, + FinishReason: "stop", + TokenUsage: &entity.TokenUsage{ + InputTokens: 8, + OutputTokens: 4, + }, + }, nil + }) + + p := &PromptServiceImpl{ + formatter: NewPromptFormatter(), + toolConfigProvider: NewToolConfigProvider(), + toolResultsCollector: NewToolResultsCollector(), + idgen: mockIDGen, + llm: mockLLM, + } + + stream := make(chan *entity.Reply, 10) + reply, err := p.ExecuteStreaming(context.Background(), ExecuteStreamingParam{ + ExecuteParam: ExecuteParam{ + Prompt: &entity.Prompt{ + ID: 2, + SpaceID: 200, + PromptKey: "stream_traced", + PromptDraft: &entity.PromptDraft{ + PromptDetail: &entity.PromptDetail{ + PromptTemplate: &entity.PromptTemplate{ + TemplateType: entity.TemplateTypeNormal, + Messages: []*entity.Message{ + {Role: entity.RoleSystem, Content: ptr.Of("sys")}, + }, + }, + }, + }, + }, + Messages: []*entity.Message{ + {Role: entity.RoleUser, Content: ptr.Of("q")}, + }, + SingleStep: true, + DisableTracing: false, + }, + ResultStream: stream, + }) + assert.NoError(t, err) + assert.NotNil(t, reply) + assert.Equal(t, ptr.Of("streamed"), reply.Item.Message.Content) + assert.True(t, len(recorder.spans) >= 1) +} + +func TestPromptServiceImpl_Execute_CollectToolResultsError(t *testing.T) { + t.Parallel() + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockIDGen := idgenmocks.NewMockIIDGenerator(ctrl) + mockIDGen.EXPECT().GenID(gomock.Any()).Return(int64(333), nil) + mockLLM := rpcmocks.NewMockILLMProvider(ctrl) + mockLLM.EXPECT().Call(gomock.Any(), gomock.Any()).Return(&entity.ReplyItem{ + Message: &entity.Message{ + Role: entity.RoleAssistant, + Content: ptr.Of("ok"), + }, + TokenUsage: &entity.TokenUsage{InputTokens: 1, OutputTokens: 1}, + }, nil) + + collectErr := errorx.New("collect tool results failed") + mockCollector := &failingToolResultsCollector{err: collectErr} + + p := &PromptServiceImpl{ + formatter: NewPromptFormatter(), + toolConfigProvider: NewToolConfigProvider(), + toolResultsCollector: mockCollector, + idgen: mockIDGen, + llm: mockLLM, + } + + _, err := p.Execute(context.Background(), ExecuteParam{ + Prompt: &entity.Prompt{ + ID: 1, + SpaceID: 100, + PromptKey: "test", + PromptDraft: &entity.PromptDraft{ + PromptDetail: &entity.PromptDetail{ + PromptTemplate: &entity.PromptTemplate{ + TemplateType: entity.TemplateTypeNormal, + Messages: []*entity.Message{ + {Role: entity.RoleSystem, Content: ptr.Of("sys")}, + }, + }, + }, + }, + }, + Messages: []*entity.Message{{Role: entity.RoleUser, Content: ptr.Of("hi")}}, + SingleStep: true, + DisableTracing: true, + }) + assert.Error(t, err) + assert.Contains(t, err.Error(), "collect tool results failed") +} + +func TestPromptServiceImpl_ExecuteStreaming_CollectToolResultsError(t *testing.T) { + t.Parallel() + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockIDGen := idgenmocks.NewMockIIDGenerator(ctrl) + mockIDGen.EXPECT().GenID(gomock.Any()).Return(int64(444), nil) + mockLLM := rpcmocks.NewMockILLMProvider(ctrl) + mockLLM.EXPECT().StreamingCall(gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, param rpc.LLMStreamingCallParam) (*entity.ReplyItem, error) { + return &entity.ReplyItem{ + Message: &entity.Message{ + Role: entity.RoleAssistant, + Content: ptr.Of("streamed"), + }, + TokenUsage: &entity.TokenUsage{InputTokens: 1, OutputTokens: 1}, + }, nil + }) + + collectErr := errorx.New("streaming collect failed") + mockCollector := &failingToolResultsCollector{err: collectErr} + + p := &PromptServiceImpl{ + formatter: NewPromptFormatter(), + toolConfigProvider: NewToolConfigProvider(), + toolResultsCollector: mockCollector, + idgen: mockIDGen, + llm: mockLLM, + } + + stream := make(chan *entity.Reply, 10) + _, err := p.ExecuteStreaming(context.Background(), ExecuteStreamingParam{ + ExecuteParam: ExecuteParam{ + Prompt: &entity.Prompt{ + ID: 2, + SpaceID: 200, + PromptKey: "stream_test", + PromptDraft: &entity.PromptDraft{ + PromptDetail: &entity.PromptDetail{ + PromptTemplate: &entity.PromptTemplate{ + TemplateType: entity.TemplateTypeNormal, + Messages: []*entity.Message{ + {Role: entity.RoleSystem, Content: ptr.Of("sys")}, + }, + }, + }, + }, + }, + Messages: []*entity.Message{{Role: entity.RoleUser, Content: ptr.Of("q")}}, + SingleStep: true, + DisableTracing: true, + }, + ResultStream: stream, + }) + assert.Error(t, err) + assert.Contains(t, err.Error(), "streaming collect failed") +} + +func TestPromptServiceImpl_ExecuteStreaming_StreamingCallError(t *testing.T) { + t.Parallel() + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockIDGen := idgenmocks.NewMockIIDGenerator(ctrl) + mockIDGen.EXPECT().GenID(gomock.Any()).Return(int64(555), nil) + mockLLM := rpcmocks.NewMockILLMProvider(ctrl) + mockLLM.EXPECT().StreamingCall(gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, param rpc.LLMStreamingCallParam) (*entity.ReplyItem, error) { + return nil, errorx.New("streaming call failed") + }) + + p := &PromptServiceImpl{ + formatter: NewPromptFormatter(), + toolConfigProvider: NewToolConfigProvider(), + toolResultsCollector: NewToolResultsCollector(), + idgen: mockIDGen, + llm: mockLLM, + } + + stream := make(chan *entity.Reply, 10) + _, err := p.ExecuteStreaming(context.Background(), ExecuteStreamingParam{ + ExecuteParam: ExecuteParam{ + Prompt: &entity.Prompt{ + ID: 3, + SpaceID: 300, + PromptKey: "stream_err", + PromptDraft: &entity.PromptDraft{ + PromptDetail: &entity.PromptDetail{ + PromptTemplate: &entity.PromptTemplate{ + TemplateType: entity.TemplateTypeNormal, + Messages: []*entity.Message{ + {Role: entity.RoleSystem, Content: ptr.Of("sys")}, + }, + }, + }, + }, + }, + Messages: []*entity.Message{{Role: entity.RoleUser, Content: ptr.Of("q")}}, + SingleStep: true, + DisableTracing: true, + }, + ResultStream: stream, + }) + assert.Error(t, err) + assert.Contains(t, err.Error(), "streaming call failed") +} + +func TestPromptServiceImpl_ExecuteStreaming_FormatPromptError(t *testing.T) { + t.Parallel() + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockIDGen := idgenmocks.NewMockIIDGenerator(ctrl) + mockIDGen.EXPECT().GenID(gomock.Any()).Return(int64(666), nil) + + p := &PromptServiceImpl{ + formatter: NewPromptFormatter(), + toolConfigProvider: NewToolConfigProvider(), + toolResultsCollector: NewToolResultsCollector(), + idgen: mockIDGen, + } + + stream := make(chan *entity.Reply, 10) + _, err := p.ExecuteStreaming(context.Background(), ExecuteStreamingParam{ + ExecuteParam: ExecuteParam{ + Prompt: &entity.Prompt{ + ID: 4, + SpaceID: 400, + PromptKey: "stream_fmt_err", + PromptDraft: &entity.PromptDraft{ + PromptDetail: &entity.PromptDetail{ + PromptTemplate: &entity.PromptTemplate{ + TemplateType: entity.TemplateTypeGoTemplate, + Messages: []*entity.Message{ + {Role: entity.RoleSystem, Content: ptr.Of("{{.Bad")}, + }, + }, + }, + }, + }, + SingleStep: true, + DisableTracing: true, + }, + ResultStream: stream, + }) + assert.Error(t, err) +} + +type failingToolResultsCollector struct { + err error +} + +func (f *failingToolResultsCollector) CollectToolResults(ctx context.Context, param CollectToolResultsParam) (map[string]string, error) { + return nil, f.err +} diff --git a/backend/modules/prompt/infra/metrics/paas_coverage_test.go b/backend/modules/prompt/infra/metrics/paas_coverage_test.go index 6edb7faac..19b2b6ce8 100644 --- a/backend/modules/prompt/infra/metrics/paas_coverage_test.go +++ b/backend/modules/prompt/infra/metrics/paas_coverage_test.go @@ -311,3 +311,96 @@ func TestEmitPaasMetric(t *testing.T) { assert.Equal(t, maxTokenSuffix, metric.values[5].GetSuffix()) assert.Equal(t, int64(4096), *metric.values[5].GetValue()) } + +func TestEmitPaasMetric_NoMetricsCtx(t *testing.T) { + assert.NotPanics(t, func() { + EmitPaasMetric(context.Background()) + }) +} + +func TestEmitPaasMetric_NilPromptPaasMetrics(t *testing.T) { + resetPromptPaasMetrics() + t.Cleanup(resetPromptPaasMetrics) + + ctx := NewPaasMetricsCtx(context.Background()) + WithPaasSpace(ctx, 1) + WithPaasStatus(ctx, nil) + + assert.NotPanics(t, func() { + EmitPaasMetric(ctx) + }) +} + +func TestEmitPaasMetric_NegativeFirstTokenLatency(t *testing.T) { + resetPromptPaasMetrics() + t.Cleanup(resetPromptPaasMetrics) + + metric := &captureMetric{} + promptPaasMetrics = &PromptPaasMetrics{metric: metric} + + ctx := NewPaasMetricsCtx(context.Background()) + WithPaasStatus(ctx, nil) + + EmitPaasMetric(ctx) + + assert.NotNil(t, metric.values) + assert.Equal(t, firstTokenLatencySuffix, metric.values[2].GetSuffix()) + assert.Equal(t, int64(0), *metric.values[2].GetValue()) +} + +func TestPromptPaasMetrics_Emit_NilReceiver(t *testing.T) { + var m *PromptPaasMetrics + assert.NotPanics(t, func() { + m.Emit([]inframetrics.T{{Name: "k", Value: "v"}}, inframetrics.Counter(1)) + }) +} + +func TestPromptPaasMetrics_Emit_NilMetric(t *testing.T) { + m := &PromptPaasMetrics{metric: nil} + assert.NotPanics(t, func() { + m.Emit([]inframetrics.T{{Name: "k", Value: "v"}}, inframetrics.Counter(1)) + }) +} + +func TestWithPaasStatus_RegularError(t *testing.T) { + ctx := NewPaasMetricsCtx(context.Background()) + WithPaasStatus(ctx, errors.New("plain error")) + + mc := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx) + assert.Equal(t, "error", mc.tagMap[paasStatusTag]) + assert.Empty(t, mc.tagMap[paasStatusCodeTag]) + assert.Empty(t, mc.tagMap[paasIsErrAffectStabilityTag]) +} + +func TestWithPaasStatus_NoMetricsCtx(t *testing.T) { + assert.NotPanics(t, func() { + WithPaasStatus(context.Background(), errors.New("err")) + }) +} + +func TestGetIsErrAffectStability_AffectStabilityIsOne(t *testing.T) { + ctx := NewPaasMetricsCtx(context.Background()) + WithPaasStatus(ctx, kerrors.NewBizStatusErrorWithExtra(5000, "err", map[string]string{ + bizExtraKeyAffectStability: "1", + })) + + mc := ctx.Value(paasMetricsCtxKey{}).(*paasMetricsCtx) + assert.Equal(t, "error", mc.tagMap[paasStatusTag]) + assert.Equal(t, "5000", mc.tagMap[paasStatusCodeTag]) + assert.Equal(t, "1", mc.tagMap[paasIsErrAffectStabilityTag]) +} + +func TestWithPaas_NoMetricsCtx_AllFunctions(t *testing.T) { + ctx := context.Background() + assert.NotPanics(t, func() { + WithPaasSpace(ctx, 1) + WithPaasMethod(ctx, "m") + WithPaasPromptKey(ctx, "k") + WithPaasPromptType(ctx, 1) + WithHasMessage(ctx, true) + WithHasContexts(ctx, true) + WithPaasUsageScenario(ctx, "s") + WithPaasVersion(ctx, "v") + WithPaasStatus(ctx, nil) + }) +} diff --git a/backend/modules/prompt/infra/repo/manage_test.go b/backend/modules/prompt/infra/repo/manage_test.go index a01b580a0..254ae36e9 100644 --- a/backend/modules/prompt/infra/repo/manage_test.go +++ b/backend/modules/prompt/infra/repo/manage_test.go @@ -828,6 +828,25 @@ func TestManageRepoImpl_BatchGetPromptBasic(t *testing.T) { }, }, }, + { + name: "partial result with missing prompt", + fieldsGetter: func(ctrl *gomock.Controller) fields { + mockBasicDAO := daomocks.NewMockIPromptBasicDAO(ctrl) + mockBasicDAO.EXPECT().MGet(gomock.Any(), gomock.Any(), gomock.Any()).Return(map[int64]*model.PromptBasic{ + 1: { + ID: 1, + SpaceID: 100, + PromptKey: "prompt_a", + }, + }, nil) + return fields{promptBasicDAO: mockBasicDAO} + }, + args: args{ + ctx: context.Background(), + promptIDs: []int64{1, 999}, + }, + wantErr: errorx.NewByCode(errno.ResourceNotFoundCode), + }, } for _, tt := range tests { From 51fd8c6a7d28c35321f6f8c1810ca1138f55e8ae Mon Sep 17 00:00:00 2001 From: "caijialin.626" Date: Tue, 24 Mar 2026 22:14:38 +0800 Subject: [PATCH 58/58] fix: resolve thrift IDL conflict and regenerate kitex code - Keep domain_openapi/prompt.thrift include, add extra.thrift include from main - Add extra.Extra field to BatchGetPromptByPromptKeyRequest and ExecuteRequest - Keep ListPromptBasicRequest field 6 map extra without extra.Extra to avoid name conflict - Regenerate kitex_gen code --- .../openapi/coze.loop.prompt.openapi.go | 10865 ++-------------- .../coze.loop.prompt.openapi_validator.go | 164 +- .../openapi/k-coze.loop.prompt.openapi.go | 7562 ++--------- .../prompt/coze.loop.prompt.openapi.thrift | 1 - 4 files changed, 2188 insertions(+), 16404 deletions(-) diff --git a/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi.go b/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi.go index 5bbe1164d..83a9c74ee 100644 --- a/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi.go +++ b/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi.go @@ -9,90 +9,15 @@ import ( "github.com/cloudwego/kitex/pkg/streaming" "github.com/coze-dev/coze-loop/backend/kitex_gen/base" "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/extra" + "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/prompt/domain_openapi/prompt" "strings" ) -const ( - TemplateTypeNormal = "normal" - - TemplateTypeJinja2 = "jinja2" - - TemplateTypeGoTemplate = "go_template" - - TemplateTypeCustomTemplateM = "custom_template_m" - - ToolChoiceTypeAuto = "auto" - - ToolChoiceTypeNone = "none" - - ToolChoiceTypeSpecific = "specific" - - ContentTypeText = "text" - - ContentTypeImageURL = "image_url" - - ContentTypeVideoURL = "video_url" - - ContentTypeBase64Data = "base64_data" - - ContentTypeMultiPartVariable = "multi_part_variable" - - VariableTypeString = "string" - - VariableTypeBoolean = "boolean" - - VariableTypeInteger = "integer" - - VariableTypeFloat = "float" - - VariableTypeObject = "object" - - VariableTypeArrayString = "array" - - VariableTypeArrayBoolean = "array" - - VariableTypeArrayInteger = "array" - - VariableTypeArrayFloat = "array" - - VariableTypeArrayObject = "array" - - VariableTypePlaceholder = "placeholder" - - VariableTypeMultiPart = "multi_part" - - RoleSystem = "system" - - RoleUser = "user" - - RoleAssistant = "assistant" - - RoleTool = "tool" - - RolePlaceholder = "placeholder" - - ToolTypeFunction = "function" - - ToolTypeGoogleSearch = "google_search" -) - -type TemplateType = string - -type ToolChoiceType = string - -type ContentType = string - -type VariableType = string - -type Role = string - -type ToolType = string - type BatchGetPromptByPromptKeyRequest struct { - WorkspaceID *int64 `thrift:"workspace_id,1,optional" frugal:"1,optional,i64" json:"workspace_id" form:"workspace_id" ` - Queries []*PromptQuery `thrift:"queries,2,optional" frugal:"2,optional,list" form:"queries" json:"queries,omitempty"` - Extra *extra.Extra `thrift:"extra,254,optional" frugal:"254,optional,extra.Extra" form:"extra" json:"extra,omitempty" query:"extra"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` + WorkspaceID *int64 `thrift:"workspace_id,1,optional" frugal:"1,optional,i64" json:"workspace_id" form:"workspace_id" ` + Queries []*prompt.PromptQuery `thrift:"queries,2,optional" frugal:"2,optional,list" form:"queries" json:"queries,omitempty"` + Extra *extra.Extra `thrift:"extra,254,optional" frugal:"254,optional,extra.Extra" form:"extra" json:"extra,omitempty" query:"extra"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } func NewBatchGetPromptByPromptKeyRequest() *BatchGetPromptByPromptKeyRequest { @@ -114,9 +39,9 @@ func (p *BatchGetPromptByPromptKeyRequest) GetWorkspaceID() (v int64) { return *p.WorkspaceID } -var BatchGetPromptByPromptKeyRequest_Queries_DEFAULT []*PromptQuery +var BatchGetPromptByPromptKeyRequest_Queries_DEFAULT []*prompt.PromptQuery -func (p *BatchGetPromptByPromptKeyRequest) GetQueries() (v []*PromptQuery) { +func (p *BatchGetPromptByPromptKeyRequest) GetQueries() (v []*prompt.PromptQuery) { if p == nil { return } @@ -152,7 +77,7 @@ func (p *BatchGetPromptByPromptKeyRequest) GetBase() (v *base.Base) { func (p *BatchGetPromptByPromptKeyRequest) SetWorkspaceID(val *int64) { p.WorkspaceID = val } -func (p *BatchGetPromptByPromptKeyRequest) SetQueries(val []*PromptQuery) { +func (p *BatchGetPromptByPromptKeyRequest) SetQueries(val []*prompt.PromptQuery) { p.Queries = val } func (p *BatchGetPromptByPromptKeyRequest) SetExtra(val *extra.Extra) { @@ -280,8 +205,8 @@ func (p *BatchGetPromptByPromptKeyRequest) ReadField2(iprot thrift.TProtocol) er if err != nil { return err } - _field := make([]*PromptQuery, 0, size) - values := make([]PromptQuery, size) + _field := make([]*prompt.PromptQuery, 0, size) + values := make([]prompt.PromptQuery, size) for i := 0; i < size; i++ { _elem := &values[i] _elem.InitDefault() @@ -477,7 +402,7 @@ func (p *BatchGetPromptByPromptKeyRequest) Field1DeepEqual(src *int64) bool { } return true } -func (p *BatchGetPromptByPromptKeyRequest) Field2DeepEqual(src []*PromptQuery) bool { +func (p *BatchGetPromptByPromptKeyRequest) Field2DeepEqual(src []*prompt.PromptQuery) bool { if len(p.Queries) != len(src) { return false @@ -506,10 +431,10 @@ func (p *BatchGetPromptByPromptKeyRequest) Field255DeepEqual(src *base.Base) boo } type BatchGetPromptByPromptKeyResponse struct { - Code *int32 `thrift:"code,1,optional" frugal:"1,optional,i32" form:"code" json:"code,omitempty" query:"code"` - Msg *string `thrift:"msg,2,optional" frugal:"2,optional,string" form:"msg" json:"msg,omitempty" query:"msg"` - Data *PromptResultData `thrift:"data,3,optional" frugal:"3,optional,PromptResultData" form:"data" json:"data,omitempty" query:"data"` - BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` + Code *int32 `thrift:"code,1,optional" frugal:"1,optional,i32" form:"code" json:"code,omitempty" query:"code"` + Msg *string `thrift:"msg,2,optional" frugal:"2,optional,string" form:"msg" json:"msg,omitempty" query:"msg"` + Data *prompt.PromptResultData `thrift:"data,3,optional" frugal:"3,optional,prompt.PromptResultData" form:"data" json:"data,omitempty" query:"data"` + BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` } func NewBatchGetPromptByPromptKeyResponse() *BatchGetPromptByPromptKeyResponse { @@ -543,9 +468,9 @@ func (p *BatchGetPromptByPromptKeyResponse) GetMsg() (v string) { return *p.Msg } -var BatchGetPromptByPromptKeyResponse_Data_DEFAULT *PromptResultData +var BatchGetPromptByPromptKeyResponse_Data_DEFAULT *prompt.PromptResultData -func (p *BatchGetPromptByPromptKeyResponse) GetData() (v *PromptResultData) { +func (p *BatchGetPromptByPromptKeyResponse) GetData() (v *prompt.PromptResultData) { if p == nil { return } @@ -572,7 +497,7 @@ func (p *BatchGetPromptByPromptKeyResponse) SetCode(val *int32) { func (p *BatchGetPromptByPromptKeyResponse) SetMsg(val *string) { p.Msg = val } -func (p *BatchGetPromptByPromptKeyResponse) SetData(val *PromptResultData) { +func (p *BatchGetPromptByPromptKeyResponse) SetData(val *prompt.PromptResultData) { p.Data = val } func (p *BatchGetPromptByPromptKeyResponse) SetBaseResp(val *base.BaseResp) { @@ -704,7 +629,7 @@ func (p *BatchGetPromptByPromptKeyResponse) ReadField2(iprot thrift.TProtocol) e return nil } func (p *BatchGetPromptByPromptKeyResponse) ReadField3(iprot thrift.TProtocol) error { - _field := NewPromptResultData() + _field := prompt.NewPromptResultData() if err := _field.Read(iprot); err != nil { return err } @@ -886,7 +811,7 @@ func (p *BatchGetPromptByPromptKeyResponse) Field2DeepEqual(src *string) bool { } return true } -func (p *BatchGetPromptByPromptKeyResponse) Field3DeepEqual(src *PromptResultData) bool { +func (p *BatchGetPromptByPromptKeyResponse) Field3DeepEqual(src *prompt.PromptResultData) bool { if !p.Data.DeepEqual(src) { return false @@ -901,274 +826,184 @@ func (p *BatchGetPromptByPromptKeyResponse) Field255DeepEqual(src *base.BaseResp return true } -type PromptResultData struct { - Items []*PromptResult_ `thrift:"items,1,optional" frugal:"1,optional,list" form:"items" json:"items,omitempty" query:"items"` +type ExecuteRequest struct { + // 工作空间ID + WorkspaceID *int64 `thrift:"workspace_id,1,optional" frugal:"1,optional,i64" json:"workspace_id" form:"workspace_id" ` + // Prompt 标识 + PromptIdentifier *prompt.PromptQuery `thrift:"prompt_identifier,2,optional" frugal:"2,optional,prompt.PromptQuery" form:"prompt_identifier" json:"prompt_identifier,omitempty"` + // 变量值 + VariableVals []*prompt.VariableVal `thrift:"variable_vals,10,optional" frugal:"10,optional,list" form:"variable_vals" json:"variable_vals,omitempty"` + // 消息 + Messages []*prompt.Message `thrift:"messages,11,optional" frugal:"11,optional,list" form:"messages" json:"messages,omitempty"` + // 自定义工具 + CustomTools []*prompt.Tool `thrift:"custom_tools,20,optional" frugal:"20,optional,list" form:"custom_tools" json:"custom_tools,omitempty"` + // 自定义工具调用配置 + CustomToolCallConfig *prompt.ToolCallConfig `thrift:"custom_tool_call_config,21,optional" frugal:"21,optional,prompt.ToolCallConfig" form:"custom_tool_call_config" json:"custom_tool_call_config,omitempty"` + // 自定义模型配置 + CustomModelConfig *prompt.ModelConfig `thrift:"custom_model_config,22,optional" frugal:"22,optional,prompt.ModelConfig" form:"custom_model_config" json:"custom_model_config,omitempty"` + // response api 配置 + ResponseAPIConfig *prompt.ResponseAPIConfig `thrift:"response_api_config,23,optional" frugal:"23,optional,prompt.ResponseAPIConfig" form:"response_api_config" json:"response_api_config,omitempty"` + // 账号模式(兼容字段) + AccountMode *prompt.AccountMode `thrift:"account_mode,24,optional" frugal:"24,optional,string" form:"account_mode" json:"account_mode,omitempty"` + // 使用场景(兼容字段) + UsageScenario *prompt.UsageScenario `thrift:"usage_scenario,26,optional" frugal:"26,optional,string" form:"usage_scenario" json:"usage_scenario,omitempty"` + // 发布标签(兼容字段) + ReleaseLabel *string `thrift:"release_label,28,optional" frugal:"28,optional,string" form:"release_label" json:"release_label,omitempty"` + // 自定义工具配置(兼容字段) + CustomToolConfig *prompt.ToolCallConfig `thrift:"custom_tool_config,29,optional" frugal:"29,optional,prompt.ToolCallConfig" form:"custom_tool_config" json:"custom_tool_config,omitempty"` + Extra *extra.Extra `thrift:"extra,254,optional" frugal:"254,optional,extra.Extra" form:"extra" json:"extra,omitempty" query:"extra"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } -func NewPromptResultData() *PromptResultData { - return &PromptResultData{} +func NewExecuteRequest() *ExecuteRequest { + return &ExecuteRequest{} } -func (p *PromptResultData) InitDefault() { +func (p *ExecuteRequest) InitDefault() { } -var PromptResultData_Items_DEFAULT []*PromptResult_ +var ExecuteRequest_WorkspaceID_DEFAULT int64 -func (p *PromptResultData) GetItems() (v []*PromptResult_) { +func (p *ExecuteRequest) GetWorkspaceID() (v int64) { if p == nil { return } - if !p.IsSetItems() { - return PromptResultData_Items_DEFAULT + if !p.IsSetWorkspaceID() { + return ExecuteRequest_WorkspaceID_DEFAULT } - return p.Items -} -func (p *PromptResultData) SetItems(val []*PromptResult_) { - p.Items = val -} - -var fieldIDToName_PromptResultData = map[int16]string{ - 1: "items", -} - -func (p *PromptResultData) IsSetItems() bool { - return p.Items != nil + return *p.WorkspaceID } -func (p *PromptResultData) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } +var ExecuteRequest_PromptIdentifier_DEFAULT *prompt.PromptQuery - switch fieldId { - case 1: - if fieldTypeId == thrift.LIST { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } +func (p *ExecuteRequest) GetPromptIdentifier() (v *prompt.PromptQuery) { + if p == nil { + return } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError + if !p.IsSetPromptIdentifier() { + return ExecuteRequest_PromptIdentifier_DEFAULT } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptResultData[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) + return p.PromptIdentifier } -func (p *PromptResultData) ReadField1(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { - return err - } - _field := make([]*PromptResult_, 0, size) - values := make([]PromptResult_, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - - if err := _elem.Read(iprot); err != nil { - return err - } +var ExecuteRequest_VariableVals_DEFAULT []*prompt.VariableVal - _field = append(_field, _elem) +func (p *ExecuteRequest) GetVariableVals() (v []*prompt.VariableVal) { + if p == nil { + return } - if err := iprot.ReadListEnd(); err != nil { - return err + if !p.IsSetVariableVals() { + return ExecuteRequest_VariableVals_DEFAULT } - p.Items = _field - return nil + return p.VariableVals } -func (p *PromptResultData) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("PromptResultData"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError +var ExecuteRequest_Messages_DEFAULT []*prompt.Message + +func (p *ExecuteRequest) GetMessages() (v []*prompt.Message) { + if p == nil { + return } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError + if !p.IsSetMessages() { + return ExecuteRequest_Messages_DEFAULT } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) + return p.Messages } -func (p *PromptResultData) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetItems() { - if err = oprot.WriteFieldBegin("items", thrift.LIST, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Items)); err != nil { - return err - } - for _, v := range p.Items { - if err := v.Write(oprot); err != nil { - return err - } - } - if err := oprot.WriteListEnd(); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} +var ExecuteRequest_CustomTools_DEFAULT []*prompt.Tool -func (p *PromptResultData) String() string { +func (p *ExecuteRequest) GetCustomTools() (v []*prompt.Tool) { if p == nil { - return "" + return } - return fmt.Sprintf("PromptResultData(%+v)", *p) - + if !p.IsSetCustomTools() { + return ExecuteRequest_CustomTools_DEFAULT + } + return p.CustomTools } -func (p *PromptResultData) DeepEqual(ano *PromptResultData) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false +var ExecuteRequest_CustomToolCallConfig_DEFAULT *prompt.ToolCallConfig + +func (p *ExecuteRequest) GetCustomToolCallConfig() (v *prompt.ToolCallConfig) { + if p == nil { + return } - if !p.Field1DeepEqual(ano.Items) { - return false + if !p.IsSetCustomToolCallConfig() { + return ExecuteRequest_CustomToolCallConfig_DEFAULT } - return true + return p.CustomToolCallConfig } -func (p *PromptResultData) Field1DeepEqual(src []*PromptResult_) bool { +var ExecuteRequest_CustomModelConfig_DEFAULT *prompt.ModelConfig - if len(p.Items) != len(src) { - return false +func (p *ExecuteRequest) GetCustomModelConfig() (v *prompt.ModelConfig) { + if p == nil { + return } - for i, v := range p.Items { - _src := src[i] - if !v.DeepEqual(_src) { - return false - } + if !p.IsSetCustomModelConfig() { + return ExecuteRequest_CustomModelConfig_DEFAULT } - return true -} - -type ExecuteRequest struct { - // 工作空间ID - WorkspaceID *int64 `thrift:"workspace_id,1,optional" frugal:"1,optional,i64" json:"workspace_id" form:"workspace_id" ` - // Prompt 标识 - PromptIdentifier *PromptQuery `thrift:"prompt_identifier,2,optional" frugal:"2,optional,PromptQuery" form:"prompt_identifier" json:"prompt_identifier,omitempty"` - // 变量值 - VariableVals []*VariableVal `thrift:"variable_vals,10,optional" frugal:"10,optional,list" form:"variable_vals" json:"variable_vals,omitempty"` - // 消息 - Messages []*Message `thrift:"messages,11,optional" frugal:"11,optional,list" form:"messages" json:"messages,omitempty"` - Extra *extra.Extra `thrift:"extra,254,optional" frugal:"254,optional,extra.Extra" form:"extra" json:"extra,omitempty" query:"extra"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` + return p.CustomModelConfig } -func NewExecuteRequest() *ExecuteRequest { - return &ExecuteRequest{} -} +var ExecuteRequest_ResponseAPIConfig_DEFAULT *prompt.ResponseAPIConfig -func (p *ExecuteRequest) InitDefault() { +func (p *ExecuteRequest) GetResponseAPIConfig() (v *prompt.ResponseAPIConfig) { + if p == nil { + return + } + if !p.IsSetResponseAPIConfig() { + return ExecuteRequest_ResponseAPIConfig_DEFAULT + } + return p.ResponseAPIConfig } -var ExecuteRequest_WorkspaceID_DEFAULT int64 +var ExecuteRequest_AccountMode_DEFAULT prompt.AccountMode -func (p *ExecuteRequest) GetWorkspaceID() (v int64) { +func (p *ExecuteRequest) GetAccountMode() (v prompt.AccountMode) { if p == nil { return } - if !p.IsSetWorkspaceID() { - return ExecuteRequest_WorkspaceID_DEFAULT + if !p.IsSetAccountMode() { + return ExecuteRequest_AccountMode_DEFAULT } - return *p.WorkspaceID + return *p.AccountMode } -var ExecuteRequest_PromptIdentifier_DEFAULT *PromptQuery +var ExecuteRequest_UsageScenario_DEFAULT prompt.UsageScenario -func (p *ExecuteRequest) GetPromptIdentifier() (v *PromptQuery) { +func (p *ExecuteRequest) GetUsageScenario() (v prompt.UsageScenario) { if p == nil { return } - if !p.IsSetPromptIdentifier() { - return ExecuteRequest_PromptIdentifier_DEFAULT + if !p.IsSetUsageScenario() { + return ExecuteRequest_UsageScenario_DEFAULT } - return p.PromptIdentifier + return *p.UsageScenario } -var ExecuteRequest_VariableVals_DEFAULT []*VariableVal +var ExecuteRequest_ReleaseLabel_DEFAULT string -func (p *ExecuteRequest) GetVariableVals() (v []*VariableVal) { +func (p *ExecuteRequest) GetReleaseLabel() (v string) { if p == nil { return } - if !p.IsSetVariableVals() { - return ExecuteRequest_VariableVals_DEFAULT + if !p.IsSetReleaseLabel() { + return ExecuteRequest_ReleaseLabel_DEFAULT } - return p.VariableVals + return *p.ReleaseLabel } -var ExecuteRequest_Messages_DEFAULT []*Message +var ExecuteRequest_CustomToolConfig_DEFAULT *prompt.ToolCallConfig -func (p *ExecuteRequest) GetMessages() (v []*Message) { +func (p *ExecuteRequest) GetCustomToolConfig() (v *prompt.ToolCallConfig) { if p == nil { return } - if !p.IsSetMessages() { - return ExecuteRequest_Messages_DEFAULT + if !p.IsSetCustomToolConfig() { + return ExecuteRequest_CustomToolConfig_DEFAULT } - return p.Messages + return p.CustomToolConfig } var ExecuteRequest_Extra_DEFAULT *extra.Extra @@ -1197,15 +1032,39 @@ func (p *ExecuteRequest) GetBase() (v *base.Base) { func (p *ExecuteRequest) SetWorkspaceID(val *int64) { p.WorkspaceID = val } -func (p *ExecuteRequest) SetPromptIdentifier(val *PromptQuery) { +func (p *ExecuteRequest) SetPromptIdentifier(val *prompt.PromptQuery) { p.PromptIdentifier = val } -func (p *ExecuteRequest) SetVariableVals(val []*VariableVal) { +func (p *ExecuteRequest) SetVariableVals(val []*prompt.VariableVal) { p.VariableVals = val } -func (p *ExecuteRequest) SetMessages(val []*Message) { +func (p *ExecuteRequest) SetMessages(val []*prompt.Message) { p.Messages = val } +func (p *ExecuteRequest) SetCustomTools(val []*prompt.Tool) { + p.CustomTools = val +} +func (p *ExecuteRequest) SetCustomToolCallConfig(val *prompt.ToolCallConfig) { + p.CustomToolCallConfig = val +} +func (p *ExecuteRequest) SetCustomModelConfig(val *prompt.ModelConfig) { + p.CustomModelConfig = val +} +func (p *ExecuteRequest) SetResponseAPIConfig(val *prompt.ResponseAPIConfig) { + p.ResponseAPIConfig = val +} +func (p *ExecuteRequest) SetAccountMode(val *prompt.AccountMode) { + p.AccountMode = val +} +func (p *ExecuteRequest) SetUsageScenario(val *prompt.UsageScenario) { + p.UsageScenario = val +} +func (p *ExecuteRequest) SetReleaseLabel(val *string) { + p.ReleaseLabel = val +} +func (p *ExecuteRequest) SetCustomToolConfig(val *prompt.ToolCallConfig) { + p.CustomToolConfig = val +} func (p *ExecuteRequest) SetExtra(val *extra.Extra) { p.Extra = val } @@ -1218,6 +1077,14 @@ var fieldIDToName_ExecuteRequest = map[int16]string{ 2: "prompt_identifier", 10: "variable_vals", 11: "messages", + 20: "custom_tools", + 21: "custom_tool_call_config", + 22: "custom_model_config", + 23: "response_api_config", + 24: "account_mode", + 26: "usage_scenario", + 28: "release_label", + 29: "custom_tool_config", 254: "extra", 255: "Base", } @@ -1238,6 +1105,38 @@ func (p *ExecuteRequest) IsSetMessages() bool { return p.Messages != nil } +func (p *ExecuteRequest) IsSetCustomTools() bool { + return p.CustomTools != nil +} + +func (p *ExecuteRequest) IsSetCustomToolCallConfig() bool { + return p.CustomToolCallConfig != nil +} + +func (p *ExecuteRequest) IsSetCustomModelConfig() bool { + return p.CustomModelConfig != nil +} + +func (p *ExecuteRequest) IsSetResponseAPIConfig() bool { + return p.ResponseAPIConfig != nil +} + +func (p *ExecuteRequest) IsSetAccountMode() bool { + return p.AccountMode != nil +} + +func (p *ExecuteRequest) IsSetUsageScenario() bool { + return p.UsageScenario != nil +} + +func (p *ExecuteRequest) IsSetReleaseLabel() bool { + return p.ReleaseLabel != nil +} + +func (p *ExecuteRequest) IsSetCustomToolConfig() bool { + return p.CustomToolConfig != nil +} + func (p *ExecuteRequest) IsSetExtra() bool { return p.Extra != nil } @@ -1296,8 +1195,72 @@ func (p *ExecuteRequest) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } - case 254: - if fieldTypeId == thrift.STRUCT { + case 20: + if fieldTypeId == thrift.LIST { + if err = p.ReadField20(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 21: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField21(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 22: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField22(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 23: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField23(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 24: + if fieldTypeId == thrift.STRING { + if err = p.ReadField24(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 26: + if fieldTypeId == thrift.STRING { + if err = p.ReadField26(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 28: + if fieldTypeId == thrift.STRING { + if err = p.ReadField28(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 29: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField29(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 254: + if fieldTypeId == thrift.STRUCT { if err = p.ReadField254(iprot); err != nil { goto ReadFieldError } @@ -1353,7 +1316,7 @@ func (p *ExecuteRequest) ReadField1(iprot thrift.TProtocol) error { return nil } func (p *ExecuteRequest) ReadField2(iprot thrift.TProtocol) error { - _field := NewPromptQuery() + _field := prompt.NewPromptQuery() if err := _field.Read(iprot); err != nil { return err } @@ -1365,8 +1328,8 @@ func (p *ExecuteRequest) ReadField10(iprot thrift.TProtocol) error { if err != nil { return err } - _field := make([]*VariableVal, 0, size) - values := make([]VariableVal, size) + _field := make([]*prompt.VariableVal, 0, size) + values := make([]prompt.VariableVal, size) for i := 0; i < size; i++ { _elem := &values[i] _elem.InitDefault() @@ -1388,8 +1351,8 @@ func (p *ExecuteRequest) ReadField11(iprot thrift.TProtocol) error { if err != nil { return err } - _field := make([]*Message, 0, size) - values := make([]Message, size) + _field := make([]*prompt.Message, 0, size) + values := make([]prompt.Message, size) for i := 0; i < size; i++ { _elem := &values[i] _elem.InitDefault() @@ -1406,6 +1369,94 @@ func (p *ExecuteRequest) ReadField11(iprot thrift.TProtocol) error { p.Messages = _field return nil } +func (p *ExecuteRequest) ReadField20(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*prompt.Tool, 0, size) + values := make([]prompt.Tool, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + + if err := _elem.Read(iprot); err != nil { + return err + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { + return err + } + p.CustomTools = _field + return nil +} +func (p *ExecuteRequest) ReadField21(iprot thrift.TProtocol) error { + _field := prompt.NewToolCallConfig() + if err := _field.Read(iprot); err != nil { + return err + } + p.CustomToolCallConfig = _field + return nil +} +func (p *ExecuteRequest) ReadField22(iprot thrift.TProtocol) error { + _field := prompt.NewModelConfig() + if err := _field.Read(iprot); err != nil { + return err + } + p.CustomModelConfig = _field + return nil +} +func (p *ExecuteRequest) ReadField23(iprot thrift.TProtocol) error { + _field := prompt.NewResponseAPIConfig() + if err := _field.Read(iprot); err != nil { + return err + } + p.ResponseAPIConfig = _field + return nil +} +func (p *ExecuteRequest) ReadField24(iprot thrift.TProtocol) error { + + var _field *prompt.AccountMode + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.AccountMode = _field + return nil +} +func (p *ExecuteRequest) ReadField26(iprot thrift.TProtocol) error { + + var _field *prompt.UsageScenario + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.UsageScenario = _field + return nil +} +func (p *ExecuteRequest) ReadField28(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.ReleaseLabel = _field + return nil +} +func (p *ExecuteRequest) ReadField29(iprot thrift.TProtocol) error { + _field := prompt.NewToolCallConfig() + if err := _field.Read(iprot); err != nil { + return err + } + p.CustomToolConfig = _field + return nil +} func (p *ExecuteRequest) ReadField254(iprot thrift.TProtocol) error { _field := extra.NewExtra() if err := _field.Read(iprot); err != nil { @@ -1445,6 +1496,38 @@ func (p *ExecuteRequest) Write(oprot thrift.TProtocol) (err error) { fieldId = 11 goto WriteFieldError } + if err = p.writeField20(oprot); err != nil { + fieldId = 20 + goto WriteFieldError + } + if err = p.writeField21(oprot); err != nil { + fieldId = 21 + goto WriteFieldError + } + if err = p.writeField22(oprot); err != nil { + fieldId = 22 + goto WriteFieldError + } + if err = p.writeField23(oprot); err != nil { + fieldId = 23 + goto WriteFieldError + } + if err = p.writeField24(oprot); err != nil { + fieldId = 24 + goto WriteFieldError + } + if err = p.writeField26(oprot); err != nil { + fieldId = 26 + goto WriteFieldError + } + if err = p.writeField28(oprot); err != nil { + fieldId = 28 + goto WriteFieldError + } + if err = p.writeField29(oprot); err != nil { + fieldId = 29 + goto WriteFieldError + } if err = p.writeField254(oprot); err != nil { fieldId = 254 goto WriteFieldError @@ -1559,6 +1642,158 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 11 end error: ", p), err) } +func (p *ExecuteRequest) writeField20(oprot thrift.TProtocol) (err error) { + if p.IsSetCustomTools() { + if err = oprot.WriteFieldBegin("custom_tools", thrift.LIST, 20); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.CustomTools)); err != nil { + return err + } + for _, v := range p.CustomTools { + if err := v.Write(oprot); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 20 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 20 end error: ", p), err) +} +func (p *ExecuteRequest) writeField21(oprot thrift.TProtocol) (err error) { + if p.IsSetCustomToolCallConfig() { + if err = oprot.WriteFieldBegin("custom_tool_call_config", thrift.STRUCT, 21); err != nil { + goto WriteFieldBeginError + } + if err := p.CustomToolCallConfig.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 21 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 21 end error: ", p), err) +} +func (p *ExecuteRequest) writeField22(oprot thrift.TProtocol) (err error) { + if p.IsSetCustomModelConfig() { + if err = oprot.WriteFieldBegin("custom_model_config", thrift.STRUCT, 22); err != nil { + goto WriteFieldBeginError + } + if err := p.CustomModelConfig.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 22 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 22 end error: ", p), err) +} +func (p *ExecuteRequest) writeField23(oprot thrift.TProtocol) (err error) { + if p.IsSetResponseAPIConfig() { + if err = oprot.WriteFieldBegin("response_api_config", thrift.STRUCT, 23); err != nil { + goto WriteFieldBeginError + } + if err := p.ResponseAPIConfig.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 23 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 23 end error: ", p), err) +} +func (p *ExecuteRequest) writeField24(oprot thrift.TProtocol) (err error) { + if p.IsSetAccountMode() { + if err = oprot.WriteFieldBegin("account_mode", thrift.STRING, 24); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.AccountMode); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 24 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 24 end error: ", p), err) +} +func (p *ExecuteRequest) writeField26(oprot thrift.TProtocol) (err error) { + if p.IsSetUsageScenario() { + if err = oprot.WriteFieldBegin("usage_scenario", thrift.STRING, 26); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.UsageScenario); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 26 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 26 end error: ", p), err) +} +func (p *ExecuteRequest) writeField28(oprot thrift.TProtocol) (err error) { + if p.IsSetReleaseLabel() { + if err = oprot.WriteFieldBegin("release_label", thrift.STRING, 28); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.ReleaseLabel); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 28 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 28 end error: ", p), err) +} +func (p *ExecuteRequest) writeField29(oprot thrift.TProtocol) (err error) { + if p.IsSetCustomToolConfig() { + if err = oprot.WriteFieldBegin("custom_tool_config", thrift.STRUCT, 29); err != nil { + goto WriteFieldBeginError + } + if err := p.CustomToolConfig.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 29 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 29 end error: ", p), err) +} func (p *ExecuteRequest) writeField254(oprot thrift.TProtocol) (err error) { if p.IsSetExtra() { if err = oprot.WriteFieldBegin("extra", thrift.STRUCT, 254); err != nil { @@ -1622,6 +1857,30 @@ func (p *ExecuteRequest) DeepEqual(ano *ExecuteRequest) bool { if !p.Field11DeepEqual(ano.Messages) { return false } + if !p.Field20DeepEqual(ano.CustomTools) { + return false + } + if !p.Field21DeepEqual(ano.CustomToolCallConfig) { + return false + } + if !p.Field22DeepEqual(ano.CustomModelConfig) { + return false + } + if !p.Field23DeepEqual(ano.ResponseAPIConfig) { + return false + } + if !p.Field24DeepEqual(ano.AccountMode) { + return false + } + if !p.Field26DeepEqual(ano.UsageScenario) { + return false + } + if !p.Field28DeepEqual(ano.ReleaseLabel) { + return false + } + if !p.Field29DeepEqual(ano.CustomToolConfig) { + return false + } if !p.Field254DeepEqual(ano.Extra) { return false } @@ -1643,14 +1902,14 @@ func (p *ExecuteRequest) Field1DeepEqual(src *int64) bool { } return true } -func (p *ExecuteRequest) Field2DeepEqual(src *PromptQuery) bool { +func (p *ExecuteRequest) Field2DeepEqual(src *prompt.PromptQuery) bool { if !p.PromptIdentifier.DeepEqual(src) { return false } return true } -func (p *ExecuteRequest) Field10DeepEqual(src []*VariableVal) bool { +func (p *ExecuteRequest) Field10DeepEqual(src []*prompt.VariableVal) bool { if len(p.VariableVals) != len(src) { return false @@ -1663,7 +1922,7 @@ func (p *ExecuteRequest) Field10DeepEqual(src []*VariableVal) bool { } return true } -func (p *ExecuteRequest) Field11DeepEqual(src []*Message) bool { +func (p *ExecuteRequest) Field11DeepEqual(src []*prompt.Message) bool { if len(p.Messages) != len(src) { return false @@ -1676,9 +1935,86 @@ func (p *ExecuteRequest) Field11DeepEqual(src []*Message) bool { } return true } -func (p *ExecuteRequest) Field254DeepEqual(src *extra.Extra) bool { +func (p *ExecuteRequest) Field20DeepEqual(src []*prompt.Tool) bool { - if !p.Extra.DeepEqual(src) { + if len(p.CustomTools) != len(src) { + return false + } + for i, v := range p.CustomTools { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } + return true +} +func (p *ExecuteRequest) Field21DeepEqual(src *prompt.ToolCallConfig) bool { + + if !p.CustomToolCallConfig.DeepEqual(src) { + return false + } + return true +} +func (p *ExecuteRequest) Field22DeepEqual(src *prompt.ModelConfig) bool { + + if !p.CustomModelConfig.DeepEqual(src) { + return false + } + return true +} +func (p *ExecuteRequest) Field23DeepEqual(src *prompt.ResponseAPIConfig) bool { + + if !p.ResponseAPIConfig.DeepEqual(src) { + return false + } + return true +} +func (p *ExecuteRequest) Field24DeepEqual(src *prompt.AccountMode) bool { + + if p.AccountMode == src { + return true + } else if p.AccountMode == nil || src == nil { + return false + } + if strings.Compare(*p.AccountMode, *src) != 0 { + return false + } + return true +} +func (p *ExecuteRequest) Field26DeepEqual(src *prompt.UsageScenario) bool { + + if p.UsageScenario == src { + return true + } else if p.UsageScenario == nil || src == nil { + return false + } + if strings.Compare(*p.UsageScenario, *src) != 0 { + return false + } + return true +} +func (p *ExecuteRequest) Field28DeepEqual(src *string) bool { + + if p.ReleaseLabel == src { + return true + } else if p.ReleaseLabel == nil || src == nil { + return false + } + if strings.Compare(*p.ReleaseLabel, *src) != 0 { + return false + } + return true +} +func (p *ExecuteRequest) Field29DeepEqual(src *prompt.ToolCallConfig) bool { + + if !p.CustomToolConfig.DeepEqual(src) { + return false + } + return true +} +func (p *ExecuteRequest) Field254DeepEqual(src *extra.Extra) bool { + + if !p.Extra.DeepEqual(src) { return false } return true @@ -1692,10 +2028,10 @@ func (p *ExecuteRequest) Field255DeepEqual(src *base.Base) bool { } type ExecuteResponse struct { - Code *int32 `thrift:"code,1,optional" frugal:"1,optional,i32" form:"code" json:"code,omitempty" query:"code"` - Msg *string `thrift:"msg,2,optional" frugal:"2,optional,string" form:"msg" json:"msg,omitempty" query:"msg"` - Data *ExecuteData `thrift:"data,3,optional" frugal:"3,optional,ExecuteData" form:"data" json:"data,omitempty" query:"data"` - BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` + Code *int32 `thrift:"code,1,optional" frugal:"1,optional,i32" form:"code" json:"code,omitempty" query:"code"` + Msg *string `thrift:"msg,2,optional" frugal:"2,optional,string" form:"msg" json:"msg,omitempty" query:"msg"` + Data *prompt.ExecuteData `thrift:"data,3,optional" frugal:"3,optional,prompt.ExecuteData" form:"data" json:"data,omitempty" query:"data"` + BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` } func NewExecuteResponse() *ExecuteResponse { @@ -1729,9 +2065,9 @@ func (p *ExecuteResponse) GetMsg() (v string) { return *p.Msg } -var ExecuteResponse_Data_DEFAULT *ExecuteData +var ExecuteResponse_Data_DEFAULT *prompt.ExecuteData -func (p *ExecuteResponse) GetData() (v *ExecuteData) { +func (p *ExecuteResponse) GetData() (v *prompt.ExecuteData) { if p == nil { return } @@ -1758,7 +2094,7 @@ func (p *ExecuteResponse) SetCode(val *int32) { func (p *ExecuteResponse) SetMsg(val *string) { p.Msg = val } -func (p *ExecuteResponse) SetData(val *ExecuteData) { +func (p *ExecuteResponse) SetData(val *prompt.ExecuteData) { p.Data = val } func (p *ExecuteResponse) SetBaseResp(val *base.BaseResp) { @@ -1890,7 +2226,7 @@ func (p *ExecuteResponse) ReadField2(iprot thrift.TProtocol) error { return nil } func (p *ExecuteResponse) ReadField3(iprot thrift.TProtocol) error { - _field := NewExecuteData() + _field := prompt.NewExecuteData() if err := _field.Read(iprot); err != nil { return err } @@ -2072,7 +2408,7 @@ func (p *ExecuteResponse) Field2DeepEqual(src *string) bool { } return true } -func (p *ExecuteResponse) Field3DeepEqual(src *ExecuteData) bool { +func (p *ExecuteResponse) Field3DeepEqual(src *prompt.ExecuteData) bool { if !p.Data.DeepEqual(src) { return false @@ -2087,86 +2423,125 @@ func (p *ExecuteResponse) Field255DeepEqual(src *base.BaseResp) bool { return true } -type ExecuteData struct { - // 消息 - Message *Message `thrift:"message,1,optional" frugal:"1,optional,Message" form:"message" json:"message,omitempty" query:"message"` - // 结束原因 - FinishReason *string `thrift:"finish_reason,2,optional" frugal:"2,optional,string" form:"finish_reason" json:"finish_reason,omitempty" query:"finish_reason"` - // token消耗 - Usage *TokenUsage `thrift:"usage,3,optional" frugal:"3,optional,TokenUsage" form:"usage" json:"usage,omitempty" query:"usage"` +type ExecuteStreamingResponse struct { + ID *string `thrift:"id,1,optional" frugal:"1,optional,string" form:"id" json:"id,omitempty" query:"id"` + Event *string `thrift:"event,2,optional" frugal:"2,optional,string" form:"event" json:"event,omitempty" query:"event"` + Retry *int64 `thrift:"retry,3,optional" frugal:"3,optional,i64" form:"retry" json:"retry,omitempty" query:"retry"` + Data *prompt.ExecuteStreamingData `thrift:"data,4,optional" frugal:"4,optional,prompt.ExecuteStreamingData" form:"data" json:"data,omitempty" query:"data"` + BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` +} + +func NewExecuteStreamingResponse() *ExecuteStreamingResponse { + return &ExecuteStreamingResponse{} +} + +func (p *ExecuteStreamingResponse) InitDefault() { } -func NewExecuteData() *ExecuteData { - return &ExecuteData{} +var ExecuteStreamingResponse_ID_DEFAULT string + +func (p *ExecuteStreamingResponse) GetID() (v string) { + if p == nil { + return + } + if !p.IsSetID() { + return ExecuteStreamingResponse_ID_DEFAULT + } + return *p.ID } -func (p *ExecuteData) InitDefault() { +var ExecuteStreamingResponse_Event_DEFAULT string + +func (p *ExecuteStreamingResponse) GetEvent() (v string) { + if p == nil { + return + } + if !p.IsSetEvent() { + return ExecuteStreamingResponse_Event_DEFAULT + } + return *p.Event } -var ExecuteData_Message_DEFAULT *Message +var ExecuteStreamingResponse_Retry_DEFAULT int64 -func (p *ExecuteData) GetMessage() (v *Message) { +func (p *ExecuteStreamingResponse) GetRetry() (v int64) { if p == nil { return } - if !p.IsSetMessage() { - return ExecuteData_Message_DEFAULT + if !p.IsSetRetry() { + return ExecuteStreamingResponse_Retry_DEFAULT } - return p.Message + return *p.Retry } -var ExecuteData_FinishReason_DEFAULT string +var ExecuteStreamingResponse_Data_DEFAULT *prompt.ExecuteStreamingData -func (p *ExecuteData) GetFinishReason() (v string) { +func (p *ExecuteStreamingResponse) GetData() (v *prompt.ExecuteStreamingData) { if p == nil { return } - if !p.IsSetFinishReason() { - return ExecuteData_FinishReason_DEFAULT + if !p.IsSetData() { + return ExecuteStreamingResponse_Data_DEFAULT } - return *p.FinishReason + return p.Data } -var ExecuteData_Usage_DEFAULT *TokenUsage +var ExecuteStreamingResponse_BaseResp_DEFAULT *base.BaseResp -func (p *ExecuteData) GetUsage() (v *TokenUsage) { +func (p *ExecuteStreamingResponse) GetBaseResp() (v *base.BaseResp) { if p == nil { return } - if !p.IsSetUsage() { - return ExecuteData_Usage_DEFAULT + if !p.IsSetBaseResp() { + return ExecuteStreamingResponse_BaseResp_DEFAULT } - return p.Usage + return p.BaseResp +} +func (p *ExecuteStreamingResponse) SetID(val *string) { + p.ID = val } -func (p *ExecuteData) SetMessage(val *Message) { - p.Message = val +func (p *ExecuteStreamingResponse) SetEvent(val *string) { + p.Event = val +} +func (p *ExecuteStreamingResponse) SetRetry(val *int64) { + p.Retry = val +} +func (p *ExecuteStreamingResponse) SetData(val *prompt.ExecuteStreamingData) { + p.Data = val +} +func (p *ExecuteStreamingResponse) SetBaseResp(val *base.BaseResp) { + p.BaseResp = val } -func (p *ExecuteData) SetFinishReason(val *string) { - p.FinishReason = val + +var fieldIDToName_ExecuteStreamingResponse = map[int16]string{ + 1: "id", + 2: "event", + 3: "retry", + 4: "data", + 255: "BaseResp", } -func (p *ExecuteData) SetUsage(val *TokenUsage) { - p.Usage = val + +func (p *ExecuteStreamingResponse) IsSetID() bool { + return p.ID != nil } -var fieldIDToName_ExecuteData = map[int16]string{ - 1: "message", - 2: "finish_reason", - 3: "usage", +func (p *ExecuteStreamingResponse) IsSetEvent() bool { + return p.Event != nil } -func (p *ExecuteData) IsSetMessage() bool { - return p.Message != nil +func (p *ExecuteStreamingResponse) IsSetRetry() bool { + return p.Retry != nil } -func (p *ExecuteData) IsSetFinishReason() bool { - return p.FinishReason != nil +func (p *ExecuteStreamingResponse) IsSetData() bool { + return p.Data != nil } -func (p *ExecuteData) IsSetUsage() bool { - return p.Usage != nil +func (p *ExecuteStreamingResponse) IsSetBaseResp() bool { + return p.BaseResp != nil } -func (p *ExecuteData) Read(iprot thrift.TProtocol) (err error) { +func (p *ExecuteStreamingResponse) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -2185,7 +2560,7 @@ func (p *ExecuteData) Read(iprot thrift.TProtocol) (err error) { switch fieldId { case 1: - if fieldTypeId == thrift.STRUCT { + if fieldTypeId == thrift.STRING { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } @@ -2201,13 +2576,29 @@ func (p *ExecuteData) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 3: - if fieldTypeId == thrift.STRUCT { + if fieldTypeId == thrift.I64 { if err = p.ReadField3(iprot); err != nil { goto ReadFieldError } } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 4: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField4(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 255: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField255(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } default: if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError @@ -2227,7 +2618,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExecuteData[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExecuteStreamingResponse[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -2237,15 +2628,18 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExecuteData) ReadField1(iprot thrift.TProtocol) error { - _field := NewMessage() - if err := _field.Read(iprot); err != nil { +func (p *ExecuteStreamingResponse) ReadField1(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { return err + } else { + _field = &v } - p.Message = _field + p.ID = _field return nil } -func (p *ExecuteData) ReadField2(iprot thrift.TProtocol) error { +func (p *ExecuteStreamingResponse) ReadField2(iprot thrift.TProtocol) error { var _field *string if v, err := iprot.ReadString(); err != nil { @@ -2253,21 +2647,40 @@ func (p *ExecuteData) ReadField2(iprot thrift.TProtocol) error { } else { _field = &v } - p.FinishReason = _field + p.Event = _field + return nil +} +func (p *ExecuteStreamingResponse) ReadField3(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.Retry = _field + return nil +} +func (p *ExecuteStreamingResponse) ReadField4(iprot thrift.TProtocol) error { + _field := prompt.NewExecuteStreamingData() + if err := _field.Read(iprot); err != nil { + return err + } + p.Data = _field return nil } -func (p *ExecuteData) ReadField3(iprot thrift.TProtocol) error { - _field := NewTokenUsage() +func (p *ExecuteStreamingResponse) ReadField255(iprot thrift.TProtocol) error { + _field := base.NewBaseResp() if err := _field.Read(iprot); err != nil { return err } - p.Usage = _field + p.BaseResp = _field return nil } -func (p *ExecuteData) Write(oprot thrift.TProtocol) (err error) { +func (p *ExecuteStreamingResponse) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ExecuteData"); err != nil { + if err = oprot.WriteStructBegin("ExecuteStreamingResponse"); err != nil { goto WriteStructBeginError } if p != nil { @@ -2283,6 +2696,14 @@ func (p *ExecuteData) Write(oprot thrift.TProtocol) (err error) { fieldId = 3 goto WriteFieldError } + if err = p.writeField4(oprot); err != nil { + fieldId = 4 + goto WriteFieldError + } + if err = p.writeField255(oprot); err != nil { + fieldId = 255 + goto WriteFieldError + } } if err = oprot.WriteFieldStop(); err != nil { goto WriteFieldStopError @@ -2301,12 +2722,12 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExecuteData) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetMessage() { - if err = oprot.WriteFieldBegin("message", thrift.STRUCT, 1); err != nil { +func (p *ExecuteStreamingResponse) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetID() { + if err = oprot.WriteFieldBegin("id", thrift.STRING, 1); err != nil { goto WriteFieldBeginError } - if err := p.Message.Write(oprot); err != nil { + if err := oprot.WriteString(*p.ID); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -2319,12 +2740,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExecuteData) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetFinishReason() { - if err = oprot.WriteFieldBegin("finish_reason", thrift.STRING, 2); err != nil { +func (p *ExecuteStreamingResponse) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetEvent() { + if err = oprot.WriteFieldBegin("event", thrift.STRING, 2); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteString(*p.FinishReason); err != nil { + if err := oprot.WriteString(*p.Event); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -2337,12 +2758,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *ExecuteData) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetUsage() { - if err = oprot.WriteFieldBegin("usage", thrift.STRUCT, 3); err != nil { +func (p *ExecuteStreamingResponse) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetRetry() { + if err = oprot.WriteFieldBegin("retry", thrift.I64, 3); err != nil { goto WriteFieldBeginError } - if err := p.Usage.Write(oprot); err != nil { + if err := oprot.WriteI64(*p.Retry); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -2355,8657 +2776,119 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) } +func (p *ExecuteStreamingResponse) writeField4(oprot thrift.TProtocol) (err error) { + if p.IsSetData() { + if err = oprot.WriteFieldBegin("data", thrift.STRUCT, 4); err != nil { + goto WriteFieldBeginError + } + if err := p.Data.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) +} +func (p *ExecuteStreamingResponse) writeField255(oprot thrift.TProtocol) (err error) { + if p.IsSetBaseResp() { + if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { + goto WriteFieldBeginError + } + if err := p.BaseResp.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) +} -func (p *ExecuteData) String() string { +func (p *ExecuteStreamingResponse) String() string { if p == nil { return "" } - return fmt.Sprintf("ExecuteData(%+v)", *p) + return fmt.Sprintf("ExecuteStreamingResponse(%+v)", *p) } -func (p *ExecuteData) DeepEqual(ano *ExecuteData) bool { +func (p *ExecuteStreamingResponse) DeepEqual(ano *ExecuteStreamingResponse) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.Message) { + if !p.Field1DeepEqual(ano.ID) { + return false + } + if !p.Field2DeepEqual(ano.Event) { return false } - if !p.Field2DeepEqual(ano.FinishReason) { + if !p.Field3DeepEqual(ano.Retry) { return false } - if !p.Field3DeepEqual(ano.Usage) { + if !p.Field4DeepEqual(ano.Data) { return false } - return true -} - -func (p *ExecuteData) Field1DeepEqual(src *Message) bool { - - if !p.Message.DeepEqual(src) { + if !p.Field255DeepEqual(ano.BaseResp) { return false } return true } -func (p *ExecuteData) Field2DeepEqual(src *string) bool { - if p.FinishReason == src { +func (p *ExecuteStreamingResponse) Field1DeepEqual(src *string) bool { + + if p.ID == src { return true - } else if p.FinishReason == nil || src == nil { + } else if p.ID == nil || src == nil { return false } - if strings.Compare(*p.FinishReason, *src) != 0 { + if strings.Compare(*p.ID, *src) != 0 { return false } return true } -func (p *ExecuteData) Field3DeepEqual(src *TokenUsage) bool { +func (p *ExecuteStreamingResponse) Field2DeepEqual(src *string) bool { - if !p.Usage.DeepEqual(src) { - return false - } - return true -} - -type ExecuteStreamingResponse struct { - ID *string `thrift:"id,1,optional" frugal:"1,optional,string" form:"id" json:"id,omitempty" query:"id"` - Event *string `thrift:"event,2,optional" frugal:"2,optional,string" form:"event" json:"event,omitempty" query:"event"` - Retry *int64 `thrift:"retry,3,optional" frugal:"3,optional,i64" form:"retry" json:"retry,omitempty" query:"retry"` - Data *ExecuteStreamingData `thrift:"data,4,optional" frugal:"4,optional,ExecuteStreamingData" form:"data" json:"data,omitempty" query:"data"` - BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` -} - -func NewExecuteStreamingResponse() *ExecuteStreamingResponse { - return &ExecuteStreamingResponse{} -} - -func (p *ExecuteStreamingResponse) InitDefault() { -} - -var ExecuteStreamingResponse_ID_DEFAULT string - -func (p *ExecuteStreamingResponse) GetID() (v string) { - if p == nil { - return - } - if !p.IsSetID() { - return ExecuteStreamingResponse_ID_DEFAULT - } - return *p.ID -} - -var ExecuteStreamingResponse_Event_DEFAULT string - -func (p *ExecuteStreamingResponse) GetEvent() (v string) { - if p == nil { - return - } - if !p.IsSetEvent() { - return ExecuteStreamingResponse_Event_DEFAULT - } - return *p.Event -} - -var ExecuteStreamingResponse_Retry_DEFAULT int64 - -func (p *ExecuteStreamingResponse) GetRetry() (v int64) { - if p == nil { - return - } - if !p.IsSetRetry() { - return ExecuteStreamingResponse_Retry_DEFAULT - } - return *p.Retry -} - -var ExecuteStreamingResponse_Data_DEFAULT *ExecuteStreamingData - -func (p *ExecuteStreamingResponse) GetData() (v *ExecuteStreamingData) { - if p == nil { - return - } - if !p.IsSetData() { - return ExecuteStreamingResponse_Data_DEFAULT - } - return p.Data -} - -var ExecuteStreamingResponse_BaseResp_DEFAULT *base.BaseResp - -func (p *ExecuteStreamingResponse) GetBaseResp() (v *base.BaseResp) { - if p == nil { - return - } - if !p.IsSetBaseResp() { - return ExecuteStreamingResponse_BaseResp_DEFAULT - } - return p.BaseResp -} -func (p *ExecuteStreamingResponse) SetID(val *string) { - p.ID = val -} -func (p *ExecuteStreamingResponse) SetEvent(val *string) { - p.Event = val -} -func (p *ExecuteStreamingResponse) SetRetry(val *int64) { - p.Retry = val -} -func (p *ExecuteStreamingResponse) SetData(val *ExecuteStreamingData) { - p.Data = val -} -func (p *ExecuteStreamingResponse) SetBaseResp(val *base.BaseResp) { - p.BaseResp = val -} - -var fieldIDToName_ExecuteStreamingResponse = map[int16]string{ - 1: "id", - 2: "event", - 3: "retry", - 4: "data", - 255: "BaseResp", -} - -func (p *ExecuteStreamingResponse) IsSetID() bool { - return p.ID != nil -} - -func (p *ExecuteStreamingResponse) IsSetEvent() bool { - return p.Event != nil -} - -func (p *ExecuteStreamingResponse) IsSetRetry() bool { - return p.Retry != nil -} - -func (p *ExecuteStreamingResponse) IsSetData() bool { - return p.Data != nil -} - -func (p *ExecuteStreamingResponse) IsSetBaseResp() bool { - return p.BaseResp != nil -} - -func (p *ExecuteStreamingResponse) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.STRING { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.I64 { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 4: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField4(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 255: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField255(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExecuteStreamingResponse[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *ExecuteStreamingResponse) ReadField1(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.ID = _field - return nil -} -func (p *ExecuteStreamingResponse) ReadField2(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Event = _field - return nil -} -func (p *ExecuteStreamingResponse) ReadField3(iprot thrift.TProtocol) error { - - var _field *int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _field = &v - } - p.Retry = _field - return nil -} -func (p *ExecuteStreamingResponse) ReadField4(iprot thrift.TProtocol) error { - _field := NewExecuteStreamingData() - if err := _field.Read(iprot); err != nil { - return err - } - p.Data = _field - return nil -} -func (p *ExecuteStreamingResponse) ReadField255(iprot thrift.TProtocol) error { - _field := base.NewBaseResp() - if err := _field.Read(iprot); err != nil { - return err - } - p.BaseResp = _field - return nil -} - -func (p *ExecuteStreamingResponse) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("ExecuteStreamingResponse"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } - if err = p.writeField4(oprot); err != nil { - fieldId = 4 - goto WriteFieldError - } - if err = p.writeField255(oprot); err != nil { - fieldId = 255 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *ExecuteStreamingResponse) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetID() { - if err = oprot.WriteFieldBegin("id", thrift.STRING, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.ID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *ExecuteStreamingResponse) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetEvent() { - if err = oprot.WriteFieldBegin("event", thrift.STRING, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Event); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *ExecuteStreamingResponse) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetRetry() { - if err = oprot.WriteFieldBegin("retry", thrift.I64, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(*p.Retry); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} -func (p *ExecuteStreamingResponse) writeField4(oprot thrift.TProtocol) (err error) { - if p.IsSetData() { - if err = oprot.WriteFieldBegin("data", thrift.STRUCT, 4); err != nil { - goto WriteFieldBeginError - } - if err := p.Data.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) -} -func (p *ExecuteStreamingResponse) writeField255(oprot thrift.TProtocol) (err error) { - if p.IsSetBaseResp() { - if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { - goto WriteFieldBeginError - } - if err := p.BaseResp.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 255 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) -} - -func (p *ExecuteStreamingResponse) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("ExecuteStreamingResponse(%+v)", *p) - -} - -func (p *ExecuteStreamingResponse) DeepEqual(ano *ExecuteStreamingResponse) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.ID) { - return false - } - if !p.Field2DeepEqual(ano.Event) { - return false - } - if !p.Field3DeepEqual(ano.Retry) { - return false - } - if !p.Field4DeepEqual(ano.Data) { - return false - } - if !p.Field255DeepEqual(ano.BaseResp) { - return false - } - return true -} - -func (p *ExecuteStreamingResponse) Field1DeepEqual(src *string) bool { - - if p.ID == src { - return true - } else if p.ID == nil || src == nil { - return false - } - if strings.Compare(*p.ID, *src) != 0 { - return false - } - return true -} -func (p *ExecuteStreamingResponse) Field2DeepEqual(src *string) bool { - - if p.Event == src { - return true - } else if p.Event == nil || src == nil { - return false - } - if strings.Compare(*p.Event, *src) != 0 { - return false - } - return true -} -func (p *ExecuteStreamingResponse) Field3DeepEqual(src *int64) bool { - - if p.Retry == src { - return true - } else if p.Retry == nil || src == nil { - return false - } - if *p.Retry != *src { - return false - } - return true -} -func (p *ExecuteStreamingResponse) Field4DeepEqual(src *ExecuteStreamingData) bool { - - if !p.Data.DeepEqual(src) { - return false - } - return true -} -func (p *ExecuteStreamingResponse) Field255DeepEqual(src *base.BaseResp) bool { - - if !p.BaseResp.DeepEqual(src) { - return false - } - return true -} - -type ExecuteStreamingData struct { - Code *int32 `thrift:"code,1,optional" frugal:"1,optional,i32" form:"code" json:"code,omitempty" query:"code"` - Msg *string `thrift:"msg,2,optional" frugal:"2,optional,string" form:"msg" json:"msg,omitempty" query:"msg"` - // 消息 - Message *Message `thrift:"message,3,optional" frugal:"3,optional,Message" form:"message" json:"message,omitempty" query:"message"` - // 结束原因 - FinishReason *string `thrift:"finish_reason,4,optional" frugal:"4,optional,string" form:"finish_reason" json:"finish_reason,omitempty" query:"finish_reason"` - // token消耗 - Usage *TokenUsage `thrift:"usage,5,optional" frugal:"5,optional,TokenUsage" form:"usage" json:"usage,omitempty" query:"usage"` -} - -func NewExecuteStreamingData() *ExecuteStreamingData { - return &ExecuteStreamingData{} -} - -func (p *ExecuteStreamingData) InitDefault() { -} - -var ExecuteStreamingData_Code_DEFAULT int32 - -func (p *ExecuteStreamingData) GetCode() (v int32) { - if p == nil { - return - } - if !p.IsSetCode() { - return ExecuteStreamingData_Code_DEFAULT - } - return *p.Code -} - -var ExecuteStreamingData_Msg_DEFAULT string - -func (p *ExecuteStreamingData) GetMsg() (v string) { - if p == nil { - return - } - if !p.IsSetMsg() { - return ExecuteStreamingData_Msg_DEFAULT - } - return *p.Msg -} - -var ExecuteStreamingData_Message_DEFAULT *Message - -func (p *ExecuteStreamingData) GetMessage() (v *Message) { - if p == nil { - return - } - if !p.IsSetMessage() { - return ExecuteStreamingData_Message_DEFAULT - } - return p.Message -} - -var ExecuteStreamingData_FinishReason_DEFAULT string - -func (p *ExecuteStreamingData) GetFinishReason() (v string) { - if p == nil { - return - } - if !p.IsSetFinishReason() { - return ExecuteStreamingData_FinishReason_DEFAULT - } - return *p.FinishReason -} - -var ExecuteStreamingData_Usage_DEFAULT *TokenUsage - -func (p *ExecuteStreamingData) GetUsage() (v *TokenUsage) { - if p == nil { - return - } - if !p.IsSetUsage() { - return ExecuteStreamingData_Usage_DEFAULT - } - return p.Usage -} -func (p *ExecuteStreamingData) SetCode(val *int32) { - p.Code = val -} -func (p *ExecuteStreamingData) SetMsg(val *string) { - p.Msg = val -} -func (p *ExecuteStreamingData) SetMessage(val *Message) { - p.Message = val -} -func (p *ExecuteStreamingData) SetFinishReason(val *string) { - p.FinishReason = val -} -func (p *ExecuteStreamingData) SetUsage(val *TokenUsage) { - p.Usage = val -} - -var fieldIDToName_ExecuteStreamingData = map[int16]string{ - 1: "code", - 2: "msg", - 3: "message", - 4: "finish_reason", - 5: "usage", -} - -func (p *ExecuteStreamingData) IsSetCode() bool { - return p.Code != nil -} - -func (p *ExecuteStreamingData) IsSetMsg() bool { - return p.Msg != nil -} - -func (p *ExecuteStreamingData) IsSetMessage() bool { - return p.Message != nil -} - -func (p *ExecuteStreamingData) IsSetFinishReason() bool { - return p.FinishReason != nil -} - -func (p *ExecuteStreamingData) IsSetUsage() bool { - return p.Usage != nil -} - -func (p *ExecuteStreamingData) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.I32 { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.STRING { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 4: - if fieldTypeId == thrift.STRING { - if err = p.ReadField4(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 5: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField5(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExecuteStreamingData[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *ExecuteStreamingData) ReadField1(iprot thrift.TProtocol) error { - - var _field *int32 - if v, err := iprot.ReadI32(); err != nil { - return err - } else { - _field = &v - } - p.Code = _field - return nil -} -func (p *ExecuteStreamingData) ReadField2(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Msg = _field - return nil -} -func (p *ExecuteStreamingData) ReadField3(iprot thrift.TProtocol) error { - _field := NewMessage() - if err := _field.Read(iprot); err != nil { - return err - } - p.Message = _field - return nil -} -func (p *ExecuteStreamingData) ReadField4(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.FinishReason = _field - return nil -} -func (p *ExecuteStreamingData) ReadField5(iprot thrift.TProtocol) error { - _field := NewTokenUsage() - if err := _field.Read(iprot); err != nil { - return err - } - p.Usage = _field - return nil -} - -func (p *ExecuteStreamingData) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("ExecuteStreamingData"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } - if err = p.writeField4(oprot); err != nil { - fieldId = 4 - goto WriteFieldError - } - if err = p.writeField5(oprot); err != nil { - fieldId = 5 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *ExecuteStreamingData) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetCode() { - if err = oprot.WriteFieldBegin("code", thrift.I32, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI32(*p.Code); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *ExecuteStreamingData) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetMsg() { - if err = oprot.WriteFieldBegin("msg", thrift.STRING, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Msg); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *ExecuteStreamingData) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetMessage() { - if err = oprot.WriteFieldBegin("message", thrift.STRUCT, 3); err != nil { - goto WriteFieldBeginError - } - if err := p.Message.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} -func (p *ExecuteStreamingData) writeField4(oprot thrift.TProtocol) (err error) { - if p.IsSetFinishReason() { - if err = oprot.WriteFieldBegin("finish_reason", thrift.STRING, 4); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.FinishReason); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) -} -func (p *ExecuteStreamingData) writeField5(oprot thrift.TProtocol) (err error) { - if p.IsSetUsage() { - if err = oprot.WriteFieldBegin("usage", thrift.STRUCT, 5); err != nil { - goto WriteFieldBeginError - } - if err := p.Usage.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) -} - -func (p *ExecuteStreamingData) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("ExecuteStreamingData(%+v)", *p) - -} - -func (p *ExecuteStreamingData) DeepEqual(ano *ExecuteStreamingData) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.Code) { - return false - } - if !p.Field2DeepEqual(ano.Msg) { - return false - } - if !p.Field3DeepEqual(ano.Message) { - return false - } - if !p.Field4DeepEqual(ano.FinishReason) { - return false - } - if !p.Field5DeepEqual(ano.Usage) { - return false - } - return true -} - -func (p *ExecuteStreamingData) Field1DeepEqual(src *int32) bool { - - if p.Code == src { - return true - } else if p.Code == nil || src == nil { - return false - } - if *p.Code != *src { - return false - } - return true -} -func (p *ExecuteStreamingData) Field2DeepEqual(src *string) bool { - - if p.Msg == src { - return true - } else if p.Msg == nil || src == nil { - return false - } - if strings.Compare(*p.Msg, *src) != 0 { - return false - } - return true -} -func (p *ExecuteStreamingData) Field3DeepEqual(src *Message) bool { - - if !p.Message.DeepEqual(src) { - return false - } - return true -} -func (p *ExecuteStreamingData) Field4DeepEqual(src *string) bool { - - if p.FinishReason == src { - return true - } else if p.FinishReason == nil || src == nil { - return false - } - if strings.Compare(*p.FinishReason, *src) != 0 { - return false - } - return true -} -func (p *ExecuteStreamingData) Field5DeepEqual(src *TokenUsage) bool { - - if !p.Usage.DeepEqual(src) { - return false - } - return true -} - -type PromptQuery struct { - // prompt_key - PromptKey *string `thrift:"prompt_key,1,optional" frugal:"1,optional,string" form:"prompt_key" json:"prompt_key,omitempty" query:"prompt_key"` - // prompt版本 - Version *string `thrift:"version,2,optional" frugal:"2,optional,string" form:"version" json:"version,omitempty" query:"version"` - // prompt版本标识(如果version不为空,该字段会被忽略) - Label *string `thrift:"label,3,optional" frugal:"3,optional,string" form:"label" json:"label,omitempty" query:"label"` -} - -func NewPromptQuery() *PromptQuery { - return &PromptQuery{} -} - -func (p *PromptQuery) InitDefault() { -} - -var PromptQuery_PromptKey_DEFAULT string - -func (p *PromptQuery) GetPromptKey() (v string) { - if p == nil { - return - } - if !p.IsSetPromptKey() { - return PromptQuery_PromptKey_DEFAULT - } - return *p.PromptKey -} - -var PromptQuery_Version_DEFAULT string - -func (p *PromptQuery) GetVersion() (v string) { - if p == nil { - return - } - if !p.IsSetVersion() { - return PromptQuery_Version_DEFAULT - } - return *p.Version -} - -var PromptQuery_Label_DEFAULT string - -func (p *PromptQuery) GetLabel() (v string) { - if p == nil { - return - } - if !p.IsSetLabel() { - return PromptQuery_Label_DEFAULT - } - return *p.Label -} -func (p *PromptQuery) SetPromptKey(val *string) { - p.PromptKey = val -} -func (p *PromptQuery) SetVersion(val *string) { - p.Version = val -} -func (p *PromptQuery) SetLabel(val *string) { - p.Label = val -} - -var fieldIDToName_PromptQuery = map[int16]string{ - 1: "prompt_key", - 2: "version", - 3: "label", -} - -func (p *PromptQuery) IsSetPromptKey() bool { - return p.PromptKey != nil -} - -func (p *PromptQuery) IsSetVersion() bool { - return p.Version != nil -} - -func (p *PromptQuery) IsSetLabel() bool { - return p.Label != nil -} - -func (p *PromptQuery) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.STRING { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.STRING { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptQuery[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *PromptQuery) ReadField1(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.PromptKey = _field - return nil -} -func (p *PromptQuery) ReadField2(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Version = _field - return nil -} -func (p *PromptQuery) ReadField3(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Label = _field - return nil -} - -func (p *PromptQuery) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("PromptQuery"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *PromptQuery) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetPromptKey() { - if err = oprot.WriteFieldBegin("prompt_key", thrift.STRING, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.PromptKey); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *PromptQuery) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetVersion() { - if err = oprot.WriteFieldBegin("version", thrift.STRING, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Version); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *PromptQuery) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetLabel() { - if err = oprot.WriteFieldBegin("label", thrift.STRING, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Label); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} - -func (p *PromptQuery) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("PromptQuery(%+v)", *p) - -} - -func (p *PromptQuery) DeepEqual(ano *PromptQuery) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.PromptKey) { - return false - } - if !p.Field2DeepEqual(ano.Version) { - return false - } - if !p.Field3DeepEqual(ano.Label) { - return false - } - return true -} - -func (p *PromptQuery) Field1DeepEqual(src *string) bool { - - if p.PromptKey == src { - return true - } else if p.PromptKey == nil || src == nil { - return false - } - if strings.Compare(*p.PromptKey, *src) != 0 { - return false - } - return true -} -func (p *PromptQuery) Field2DeepEqual(src *string) bool { - - if p.Version == src { - return true - } else if p.Version == nil || src == nil { - return false - } - if strings.Compare(*p.Version, *src) != 0 { - return false - } - return true -} -func (p *PromptQuery) Field3DeepEqual(src *string) bool { - - if p.Label == src { - return true - } else if p.Label == nil || src == nil { - return false - } - if strings.Compare(*p.Label, *src) != 0 { - return false - } - return true -} - -type PromptResult_ struct { - Query *PromptQuery `thrift:"query,1,optional" frugal:"1,optional,PromptQuery" form:"query" json:"query,omitempty" query:"query"` - Prompt *Prompt `thrift:"prompt,2,optional" frugal:"2,optional,Prompt" form:"prompt" json:"prompt,omitempty" query:"prompt"` -} - -func NewPromptResult_() *PromptResult_ { - return &PromptResult_{} -} - -func (p *PromptResult_) InitDefault() { -} - -var PromptResult__Query_DEFAULT *PromptQuery - -func (p *PromptResult_) GetQuery() (v *PromptQuery) { - if p == nil { - return - } - if !p.IsSetQuery() { - return PromptResult__Query_DEFAULT - } - return p.Query -} - -var PromptResult__Prompt_DEFAULT *Prompt - -func (p *PromptResult_) GetPrompt() (v *Prompt) { - if p == nil { - return - } - if !p.IsSetPrompt() { - return PromptResult__Prompt_DEFAULT - } - return p.Prompt -} -func (p *PromptResult_) SetQuery(val *PromptQuery) { - p.Query = val -} -func (p *PromptResult_) SetPrompt(val *Prompt) { - p.Prompt = val -} - -var fieldIDToName_PromptResult_ = map[int16]string{ - 1: "query", - 2: "prompt", -} - -func (p *PromptResult_) IsSetQuery() bool { - return p.Query != nil -} - -func (p *PromptResult_) IsSetPrompt() bool { - return p.Prompt != nil -} - -func (p *PromptResult_) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptResult_[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *PromptResult_) ReadField1(iprot thrift.TProtocol) error { - _field := NewPromptQuery() - if err := _field.Read(iprot); err != nil { - return err - } - p.Query = _field - return nil -} -func (p *PromptResult_) ReadField2(iprot thrift.TProtocol) error { - _field := NewPrompt() - if err := _field.Read(iprot); err != nil { - return err - } - p.Prompt = _field - return nil -} - -func (p *PromptResult_) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("PromptResult"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *PromptResult_) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetQuery() { - if err = oprot.WriteFieldBegin("query", thrift.STRUCT, 1); err != nil { - goto WriteFieldBeginError - } - if err := p.Query.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *PromptResult_) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetPrompt() { - if err = oprot.WriteFieldBegin("prompt", thrift.STRUCT, 2); err != nil { - goto WriteFieldBeginError - } - if err := p.Prompt.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} - -func (p *PromptResult_) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("PromptResult_(%+v)", *p) - -} - -func (p *PromptResult_) DeepEqual(ano *PromptResult_) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.Query) { - return false - } - if !p.Field2DeepEqual(ano.Prompt) { - return false - } - return true -} - -func (p *PromptResult_) Field1DeepEqual(src *PromptQuery) bool { - - if !p.Query.DeepEqual(src) { - return false - } - return true -} -func (p *PromptResult_) Field2DeepEqual(src *Prompt) bool { - - if !p.Prompt.DeepEqual(src) { - return false - } - return true -} - -type Prompt struct { - // 空间ID - WorkspaceID *int64 `thrift:"workspace_id,1,optional" frugal:"1,optional,i64" json:"workspace_id" form:"workspace_id" query:"workspace_id"` - // 唯一标识 - PromptKey *string `thrift:"prompt_key,2,optional" frugal:"2,optional,string" form:"prompt_key" json:"prompt_key,omitempty" query:"prompt_key"` - // 版本 - Version *string `thrift:"version,3,optional" frugal:"3,optional,string" form:"version" json:"version,omitempty" query:"version"` - // Prompt模板 - PromptTemplate *PromptTemplate `thrift:"prompt_template,4,optional" frugal:"4,optional,PromptTemplate" form:"prompt_template" json:"prompt_template,omitempty" query:"prompt_template"` - // tool定义 - Tools []*Tool `thrift:"tools,5,optional" frugal:"5,optional,list" form:"tools" json:"tools,omitempty" query:"tools"` - // tool调用配置 - ToolCallConfig *ToolCallConfig `thrift:"tool_call_config,6,optional" frugal:"6,optional,ToolCallConfig" form:"tool_call_config" json:"tool_call_config,omitempty" query:"tool_call_config"` - // 模型配置 - LlmConfig *LLMConfig `thrift:"llm_config,7,optional" frugal:"7,optional,LLMConfig" form:"llm_config" json:"llm_config,omitempty" query:"llm_config"` -} - -func NewPrompt() *Prompt { - return &Prompt{} -} - -func (p *Prompt) InitDefault() { -} - -var Prompt_WorkspaceID_DEFAULT int64 - -func (p *Prompt) GetWorkspaceID() (v int64) { - if p == nil { - return - } - if !p.IsSetWorkspaceID() { - return Prompt_WorkspaceID_DEFAULT - } - return *p.WorkspaceID -} - -var Prompt_PromptKey_DEFAULT string - -func (p *Prompt) GetPromptKey() (v string) { - if p == nil { - return - } - if !p.IsSetPromptKey() { - return Prompt_PromptKey_DEFAULT - } - return *p.PromptKey -} - -var Prompt_Version_DEFAULT string - -func (p *Prompt) GetVersion() (v string) { - if p == nil { - return - } - if !p.IsSetVersion() { - return Prompt_Version_DEFAULT - } - return *p.Version -} - -var Prompt_PromptTemplate_DEFAULT *PromptTemplate - -func (p *Prompt) GetPromptTemplate() (v *PromptTemplate) { - if p == nil { - return - } - if !p.IsSetPromptTemplate() { - return Prompt_PromptTemplate_DEFAULT - } - return p.PromptTemplate -} - -var Prompt_Tools_DEFAULT []*Tool - -func (p *Prompt) GetTools() (v []*Tool) { - if p == nil { - return - } - if !p.IsSetTools() { - return Prompt_Tools_DEFAULT - } - return p.Tools -} - -var Prompt_ToolCallConfig_DEFAULT *ToolCallConfig - -func (p *Prompt) GetToolCallConfig() (v *ToolCallConfig) { - if p == nil { - return - } - if !p.IsSetToolCallConfig() { - return Prompt_ToolCallConfig_DEFAULT - } - return p.ToolCallConfig -} - -var Prompt_LlmConfig_DEFAULT *LLMConfig - -func (p *Prompt) GetLlmConfig() (v *LLMConfig) { - if p == nil { - return - } - if !p.IsSetLlmConfig() { - return Prompt_LlmConfig_DEFAULT - } - return p.LlmConfig -} -func (p *Prompt) SetWorkspaceID(val *int64) { - p.WorkspaceID = val -} -func (p *Prompt) SetPromptKey(val *string) { - p.PromptKey = val -} -func (p *Prompt) SetVersion(val *string) { - p.Version = val -} -func (p *Prompt) SetPromptTemplate(val *PromptTemplate) { - p.PromptTemplate = val -} -func (p *Prompt) SetTools(val []*Tool) { - p.Tools = val -} -func (p *Prompt) SetToolCallConfig(val *ToolCallConfig) { - p.ToolCallConfig = val -} -func (p *Prompt) SetLlmConfig(val *LLMConfig) { - p.LlmConfig = val -} - -var fieldIDToName_Prompt = map[int16]string{ - 1: "workspace_id", - 2: "prompt_key", - 3: "version", - 4: "prompt_template", - 5: "tools", - 6: "tool_call_config", - 7: "llm_config", -} - -func (p *Prompt) IsSetWorkspaceID() bool { - return p.WorkspaceID != nil -} - -func (p *Prompt) IsSetPromptKey() bool { - return p.PromptKey != nil -} - -func (p *Prompt) IsSetVersion() bool { - return p.Version != nil -} - -func (p *Prompt) IsSetPromptTemplate() bool { - return p.PromptTemplate != nil -} - -func (p *Prompt) IsSetTools() bool { - return p.Tools != nil -} - -func (p *Prompt) IsSetToolCallConfig() bool { - return p.ToolCallConfig != nil -} - -func (p *Prompt) IsSetLlmConfig() bool { - return p.LlmConfig != nil -} - -func (p *Prompt) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.I64 { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.STRING { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.STRING { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 4: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField4(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 5: - if fieldTypeId == thrift.LIST { - if err = p.ReadField5(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 6: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField6(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 7: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField7(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_Prompt[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *Prompt) ReadField1(iprot thrift.TProtocol) error { - - var _field *int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _field = &v - } - p.WorkspaceID = _field - return nil -} -func (p *Prompt) ReadField2(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.PromptKey = _field - return nil -} -func (p *Prompt) ReadField3(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Version = _field - return nil -} -func (p *Prompt) ReadField4(iprot thrift.TProtocol) error { - _field := NewPromptTemplate() - if err := _field.Read(iprot); err != nil { - return err - } - p.PromptTemplate = _field - return nil -} -func (p *Prompt) ReadField5(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { - return err - } - _field := make([]*Tool, 0, size) - values := make([]Tool, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - - if err := _elem.Read(iprot); err != nil { - return err - } - - _field = append(_field, _elem) - } - if err := iprot.ReadListEnd(); err != nil { - return err - } - p.Tools = _field - return nil -} -func (p *Prompt) ReadField6(iprot thrift.TProtocol) error { - _field := NewToolCallConfig() - if err := _field.Read(iprot); err != nil { - return err - } - p.ToolCallConfig = _field - return nil -} -func (p *Prompt) ReadField7(iprot thrift.TProtocol) error { - _field := NewLLMConfig() - if err := _field.Read(iprot); err != nil { - return err - } - p.LlmConfig = _field - return nil -} - -func (p *Prompt) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("Prompt"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } - if err = p.writeField4(oprot); err != nil { - fieldId = 4 - goto WriteFieldError - } - if err = p.writeField5(oprot); err != nil { - fieldId = 5 - goto WriteFieldError - } - if err = p.writeField6(oprot); err != nil { - fieldId = 6 - goto WriteFieldError - } - if err = p.writeField7(oprot); err != nil { - fieldId = 7 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *Prompt) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetWorkspaceID() { - if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(*p.WorkspaceID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *Prompt) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetPromptKey() { - if err = oprot.WriteFieldBegin("prompt_key", thrift.STRING, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.PromptKey); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *Prompt) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetVersion() { - if err = oprot.WriteFieldBegin("version", thrift.STRING, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Version); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} -func (p *Prompt) writeField4(oprot thrift.TProtocol) (err error) { - if p.IsSetPromptTemplate() { - if err = oprot.WriteFieldBegin("prompt_template", thrift.STRUCT, 4); err != nil { - goto WriteFieldBeginError - } - if err := p.PromptTemplate.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) -} -func (p *Prompt) writeField5(oprot thrift.TProtocol) (err error) { - if p.IsSetTools() { - if err = oprot.WriteFieldBegin("tools", thrift.LIST, 5); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Tools)); err != nil { - return err - } - for _, v := range p.Tools { - if err := v.Write(oprot); err != nil { - return err - } - } - if err := oprot.WriteListEnd(); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) -} -func (p *Prompt) writeField6(oprot thrift.TProtocol) (err error) { - if p.IsSetToolCallConfig() { - if err = oprot.WriteFieldBegin("tool_call_config", thrift.STRUCT, 6); err != nil { - goto WriteFieldBeginError - } - if err := p.ToolCallConfig.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) -} -func (p *Prompt) writeField7(oprot thrift.TProtocol) (err error) { - if p.IsSetLlmConfig() { - if err = oprot.WriteFieldBegin("llm_config", thrift.STRUCT, 7); err != nil { - goto WriteFieldBeginError - } - if err := p.LlmConfig.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 7 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) -} - -func (p *Prompt) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("Prompt(%+v)", *p) - -} - -func (p *Prompt) DeepEqual(ano *Prompt) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.WorkspaceID) { - return false - } - if !p.Field2DeepEqual(ano.PromptKey) { - return false - } - if !p.Field3DeepEqual(ano.Version) { - return false - } - if !p.Field4DeepEqual(ano.PromptTemplate) { - return false - } - if !p.Field5DeepEqual(ano.Tools) { - return false - } - if !p.Field6DeepEqual(ano.ToolCallConfig) { - return false - } - if !p.Field7DeepEqual(ano.LlmConfig) { - return false - } - return true -} - -func (p *Prompt) Field1DeepEqual(src *int64) bool { - - if p.WorkspaceID == src { - return true - } else if p.WorkspaceID == nil || src == nil { - return false - } - if *p.WorkspaceID != *src { - return false - } - return true -} -func (p *Prompt) Field2DeepEqual(src *string) bool { - - if p.PromptKey == src { - return true - } else if p.PromptKey == nil || src == nil { - return false - } - if strings.Compare(*p.PromptKey, *src) != 0 { - return false - } - return true -} -func (p *Prompt) Field3DeepEqual(src *string) bool { - - if p.Version == src { - return true - } else if p.Version == nil || src == nil { - return false - } - if strings.Compare(*p.Version, *src) != 0 { - return false - } - return true -} -func (p *Prompt) Field4DeepEqual(src *PromptTemplate) bool { - - if !p.PromptTemplate.DeepEqual(src) { - return false - } - return true -} -func (p *Prompt) Field5DeepEqual(src []*Tool) bool { - - if len(p.Tools) != len(src) { - return false - } - for i, v := range p.Tools { - _src := src[i] - if !v.DeepEqual(_src) { - return false - } - } - return true -} -func (p *Prompt) Field6DeepEqual(src *ToolCallConfig) bool { - - if !p.ToolCallConfig.DeepEqual(src) { - return false - } - return true -} -func (p *Prompt) Field7DeepEqual(src *LLMConfig) bool { - - if !p.LlmConfig.DeepEqual(src) { - return false - } - return true -} - -type PromptTemplate struct { - // 模板类型 - TemplateType *TemplateType `thrift:"template_type,1,optional" frugal:"1,optional,string" form:"template_type" json:"template_type,omitempty" query:"template_type"` - // 只支持message list形式托管 - Messages []*Message `thrift:"messages,2,optional" frugal:"2,optional,list" form:"messages" json:"messages,omitempty" query:"messages"` - // 变量定义 - VariableDefs []*VariableDef `thrift:"variable_defs,3,optional" frugal:"3,optional,list" form:"variable_defs" json:"variable_defs,omitempty" query:"variable_defs"` - // 模板级元信息 - Metadata map[string]string `thrift:"metadata,100,optional" frugal:"100,optional,map" form:"metadata" json:"metadata,omitempty" query:"metadata"` -} - -func NewPromptTemplate() *PromptTemplate { - return &PromptTemplate{} -} - -func (p *PromptTemplate) InitDefault() { -} - -var PromptTemplate_TemplateType_DEFAULT TemplateType - -func (p *PromptTemplate) GetTemplateType() (v TemplateType) { - if p == nil { - return - } - if !p.IsSetTemplateType() { - return PromptTemplate_TemplateType_DEFAULT - } - return *p.TemplateType -} - -var PromptTemplate_Messages_DEFAULT []*Message - -func (p *PromptTemplate) GetMessages() (v []*Message) { - if p == nil { - return - } - if !p.IsSetMessages() { - return PromptTemplate_Messages_DEFAULT - } - return p.Messages -} - -var PromptTemplate_VariableDefs_DEFAULT []*VariableDef - -func (p *PromptTemplate) GetVariableDefs() (v []*VariableDef) { - if p == nil { - return - } - if !p.IsSetVariableDefs() { - return PromptTemplate_VariableDefs_DEFAULT - } - return p.VariableDefs -} - -var PromptTemplate_Metadata_DEFAULT map[string]string - -func (p *PromptTemplate) GetMetadata() (v map[string]string) { - if p == nil { - return - } - if !p.IsSetMetadata() { - return PromptTemplate_Metadata_DEFAULT - } - return p.Metadata -} -func (p *PromptTemplate) SetTemplateType(val *TemplateType) { - p.TemplateType = val -} -func (p *PromptTemplate) SetMessages(val []*Message) { - p.Messages = val -} -func (p *PromptTemplate) SetVariableDefs(val []*VariableDef) { - p.VariableDefs = val -} -func (p *PromptTemplate) SetMetadata(val map[string]string) { - p.Metadata = val -} - -var fieldIDToName_PromptTemplate = map[int16]string{ - 1: "template_type", - 2: "messages", - 3: "variable_defs", - 100: "metadata", -} - -func (p *PromptTemplate) IsSetTemplateType() bool { - return p.TemplateType != nil -} - -func (p *PromptTemplate) IsSetMessages() bool { - return p.Messages != nil -} - -func (p *PromptTemplate) IsSetVariableDefs() bool { - return p.VariableDefs != nil -} - -func (p *PromptTemplate) IsSetMetadata() bool { - return p.Metadata != nil -} - -func (p *PromptTemplate) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.LIST { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.LIST { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 100: - if fieldTypeId == thrift.MAP { - if err = p.ReadField100(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptTemplate[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *PromptTemplate) ReadField1(iprot thrift.TProtocol) error { - - var _field *TemplateType - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.TemplateType = _field - return nil -} -func (p *PromptTemplate) ReadField2(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { - return err - } - _field := make([]*Message, 0, size) - values := make([]Message, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - - if err := _elem.Read(iprot); err != nil { - return err - } - - _field = append(_field, _elem) - } - if err := iprot.ReadListEnd(); err != nil { - return err - } - p.Messages = _field - return nil -} -func (p *PromptTemplate) ReadField3(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { - return err - } - _field := make([]*VariableDef, 0, size) - values := make([]VariableDef, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - - if err := _elem.Read(iprot); err != nil { - return err - } - - _field = append(_field, _elem) - } - if err := iprot.ReadListEnd(); err != nil { - return err - } - p.VariableDefs = _field - return nil -} -func (p *PromptTemplate) ReadField100(iprot thrift.TProtocol) error { - _, _, size, err := iprot.ReadMapBegin() - if err != nil { - return err - } - _field := make(map[string]string, size) - for i := 0; i < size; i++ { - var _key string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _key = v - } - - var _val string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _val = v - } - - _field[_key] = _val - } - if err := iprot.ReadMapEnd(); err != nil { - return err - } - p.Metadata = _field - return nil -} - -func (p *PromptTemplate) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("PromptTemplate"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } - if err = p.writeField100(oprot); err != nil { - fieldId = 100 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *PromptTemplate) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetTemplateType() { - if err = oprot.WriteFieldBegin("template_type", thrift.STRING, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.TemplateType); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *PromptTemplate) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetMessages() { - if err = oprot.WriteFieldBegin("messages", thrift.LIST, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Messages)); err != nil { - return err - } - for _, v := range p.Messages { - if err := v.Write(oprot); err != nil { - return err - } - } - if err := oprot.WriteListEnd(); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *PromptTemplate) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetVariableDefs() { - if err = oprot.WriteFieldBegin("variable_defs", thrift.LIST, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.VariableDefs)); err != nil { - return err - } - for _, v := range p.VariableDefs { - if err := v.Write(oprot); err != nil { - return err - } - } - if err := oprot.WriteListEnd(); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} -func (p *PromptTemplate) writeField100(oprot thrift.TProtocol) (err error) { - if p.IsSetMetadata() { - if err = oprot.WriteFieldBegin("metadata", thrift.MAP, 100); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.Metadata)); err != nil { - return err - } - for k, v := range p.Metadata { - if err := oprot.WriteString(k); err != nil { - return err - } - if err := oprot.WriteString(v); err != nil { - return err - } - } - if err := oprot.WriteMapEnd(); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 100 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 100 end error: ", p), err) -} - -func (p *PromptTemplate) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("PromptTemplate(%+v)", *p) - -} - -func (p *PromptTemplate) DeepEqual(ano *PromptTemplate) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.TemplateType) { - return false - } - if !p.Field2DeepEqual(ano.Messages) { - return false - } - if !p.Field3DeepEqual(ano.VariableDefs) { - return false - } - if !p.Field100DeepEqual(ano.Metadata) { - return false - } - return true -} - -func (p *PromptTemplate) Field1DeepEqual(src *TemplateType) bool { - - if p.TemplateType == src { - return true - } else if p.TemplateType == nil || src == nil { - return false - } - if strings.Compare(*p.TemplateType, *src) != 0 { - return false - } - return true -} -func (p *PromptTemplate) Field2DeepEqual(src []*Message) bool { - - if len(p.Messages) != len(src) { - return false - } - for i, v := range p.Messages { - _src := src[i] - if !v.DeepEqual(_src) { - return false - } - } - return true -} -func (p *PromptTemplate) Field3DeepEqual(src []*VariableDef) bool { - - if len(p.VariableDefs) != len(src) { - return false - } - for i, v := range p.VariableDefs { - _src := src[i] - if !v.DeepEqual(_src) { - return false - } - } - return true -} -func (p *PromptTemplate) Field100DeepEqual(src map[string]string) bool { - - if len(p.Metadata) != len(src) { - return false - } - for k, v := range p.Metadata { - _src := src[k] - if strings.Compare(v, _src) != 0 { - return false - } - } - return true -} - -type ToolCallConfig struct { - ToolChoice *ToolChoiceType `thrift:"tool_choice,1,optional" frugal:"1,optional,string" form:"tool_choice" json:"tool_choice,omitempty" query:"tool_choice"` - ToolChoiceSpecification *ToolChoiceSpecification `thrift:"tool_choice_specification,2,optional" frugal:"2,optional,ToolChoiceSpecification" form:"tool_choice_specification" json:"tool_choice_specification,omitempty" query:"tool_choice_specification"` -} - -func NewToolCallConfig() *ToolCallConfig { - return &ToolCallConfig{} -} - -func (p *ToolCallConfig) InitDefault() { -} - -var ToolCallConfig_ToolChoice_DEFAULT ToolChoiceType - -func (p *ToolCallConfig) GetToolChoice() (v ToolChoiceType) { - if p == nil { - return - } - if !p.IsSetToolChoice() { - return ToolCallConfig_ToolChoice_DEFAULT - } - return *p.ToolChoice -} - -var ToolCallConfig_ToolChoiceSpecification_DEFAULT *ToolChoiceSpecification - -func (p *ToolCallConfig) GetToolChoiceSpecification() (v *ToolChoiceSpecification) { - if p == nil { - return - } - if !p.IsSetToolChoiceSpecification() { - return ToolCallConfig_ToolChoiceSpecification_DEFAULT - } - return p.ToolChoiceSpecification -} -func (p *ToolCallConfig) SetToolChoice(val *ToolChoiceType) { - p.ToolChoice = val -} -func (p *ToolCallConfig) SetToolChoiceSpecification(val *ToolChoiceSpecification) { - p.ToolChoiceSpecification = val -} - -var fieldIDToName_ToolCallConfig = map[int16]string{ - 1: "tool_choice", - 2: "tool_choice_specification", -} - -func (p *ToolCallConfig) IsSetToolChoice() bool { - return p.ToolChoice != nil -} - -func (p *ToolCallConfig) IsSetToolChoiceSpecification() bool { - return p.ToolChoiceSpecification != nil -} - -func (p *ToolCallConfig) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ToolCallConfig[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *ToolCallConfig) ReadField1(iprot thrift.TProtocol) error { - - var _field *ToolChoiceType - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.ToolChoice = _field - return nil -} -func (p *ToolCallConfig) ReadField2(iprot thrift.TProtocol) error { - _field := NewToolChoiceSpecification() - if err := _field.Read(iprot); err != nil { - return err - } - p.ToolChoiceSpecification = _field - return nil -} - -func (p *ToolCallConfig) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("ToolCallConfig"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *ToolCallConfig) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetToolChoice() { - if err = oprot.WriteFieldBegin("tool_choice", thrift.STRING, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.ToolChoice); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *ToolCallConfig) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetToolChoiceSpecification() { - if err = oprot.WriteFieldBegin("tool_choice_specification", thrift.STRUCT, 2); err != nil { - goto WriteFieldBeginError - } - if err := p.ToolChoiceSpecification.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} - -func (p *ToolCallConfig) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("ToolCallConfig(%+v)", *p) - -} - -func (p *ToolCallConfig) DeepEqual(ano *ToolCallConfig) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.ToolChoice) { - return false - } - if !p.Field2DeepEqual(ano.ToolChoiceSpecification) { - return false - } - return true -} - -func (p *ToolCallConfig) Field1DeepEqual(src *ToolChoiceType) bool { - - if p.ToolChoice == src { - return true - } else if p.ToolChoice == nil || src == nil { - return false - } - if strings.Compare(*p.ToolChoice, *src) != 0 { - return false - } - return true -} -func (p *ToolCallConfig) Field2DeepEqual(src *ToolChoiceSpecification) bool { - - if !p.ToolChoiceSpecification.DeepEqual(src) { - return false - } - return true -} - -type ToolChoiceSpecification struct { - Type *ToolType `thrift:"type,1,optional" frugal:"1,optional,string" form:"type" json:"type,omitempty" query:"type"` - Name *string `thrift:"name,2,optional" frugal:"2,optional,string" form:"name" json:"name,omitempty" query:"name"` -} - -func NewToolChoiceSpecification() *ToolChoiceSpecification { - return &ToolChoiceSpecification{} -} - -func (p *ToolChoiceSpecification) InitDefault() { -} - -var ToolChoiceSpecification_Type_DEFAULT ToolType - -func (p *ToolChoiceSpecification) GetType() (v ToolType) { - if p == nil { - return - } - if !p.IsSetType() { - return ToolChoiceSpecification_Type_DEFAULT - } - return *p.Type -} - -var ToolChoiceSpecification_Name_DEFAULT string - -func (p *ToolChoiceSpecification) GetName() (v string) { - if p == nil { - return - } - if !p.IsSetName() { - return ToolChoiceSpecification_Name_DEFAULT - } - return *p.Name -} -func (p *ToolChoiceSpecification) SetType(val *ToolType) { - p.Type = val -} -func (p *ToolChoiceSpecification) SetName(val *string) { - p.Name = val -} - -var fieldIDToName_ToolChoiceSpecification = map[int16]string{ - 1: "type", - 2: "name", -} - -func (p *ToolChoiceSpecification) IsSetType() bool { - return p.Type != nil -} - -func (p *ToolChoiceSpecification) IsSetName() bool { - return p.Name != nil -} - -func (p *ToolChoiceSpecification) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.STRING { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ToolChoiceSpecification[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *ToolChoiceSpecification) ReadField1(iprot thrift.TProtocol) error { - - var _field *ToolType - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Type = _field - return nil -} -func (p *ToolChoiceSpecification) ReadField2(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Name = _field - return nil -} - -func (p *ToolChoiceSpecification) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("ToolChoiceSpecification"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *ToolChoiceSpecification) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetType() { - if err = oprot.WriteFieldBegin("type", thrift.STRING, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Type); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *ToolChoiceSpecification) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetName() { - if err = oprot.WriteFieldBegin("name", thrift.STRING, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Name); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} - -func (p *ToolChoiceSpecification) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("ToolChoiceSpecification(%+v)", *p) - -} - -func (p *ToolChoiceSpecification) DeepEqual(ano *ToolChoiceSpecification) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.Type) { - return false - } - if !p.Field2DeepEqual(ano.Name) { - return false - } - return true -} - -func (p *ToolChoiceSpecification) Field1DeepEqual(src *ToolType) bool { - - if p.Type == src { - return true - } else if p.Type == nil || src == nil { - return false - } - if strings.Compare(*p.Type, *src) != 0 { - return false - } - return true -} -func (p *ToolChoiceSpecification) Field2DeepEqual(src *string) bool { - - if p.Name == src { - return true - } else if p.Name == nil || src == nil { - return false - } - if strings.Compare(*p.Name, *src) != 0 { - return false - } - return true -} - -type Message struct { - // 角色 - Role *Role `thrift:"role,1,optional" frugal:"1,optional,string" form:"role" json:"role,omitempty" query:"role"` - // 消息内容 - Content *string `thrift:"content,2,optional" frugal:"2,optional,string" form:"content" json:"content,omitempty" query:"content"` - // 多模态内容 - Parts []*ContentPart `thrift:"parts,3,optional" frugal:"3,optional,list" form:"parts" json:"parts,omitempty" query:"parts"` - // 推理思考内容 - ReasoningContent *string `thrift:"reasoning_content,4,optional" frugal:"4,optional,string" form:"reasoning_content" json:"reasoning_content,omitempty" query:"reasoning_content"` - // tool调用ID(role为tool时有效) - ToolCallID *string `thrift:"tool_call_id,5,optional" frugal:"5,optional,string" form:"tool_call_id" json:"tool_call_id,omitempty" query:"tool_call_id"` - // tool调用(role为assistant时有效) - ToolCalls []*ToolCall `thrift:"tool_calls,6,optional" frugal:"6,optional,list" form:"tool_calls" json:"tool_calls,omitempty" query:"tool_calls"` - // 消息元信息 - Metadata map[string]string `thrift:"metadata,100,optional" frugal:"100,optional,map" form:"metadata" json:"metadata,omitempty" query:"metadata"` -} - -func NewMessage() *Message { - return &Message{} -} - -func (p *Message) InitDefault() { -} - -var Message_Role_DEFAULT Role - -func (p *Message) GetRole() (v Role) { - if p == nil { - return - } - if !p.IsSetRole() { - return Message_Role_DEFAULT - } - return *p.Role -} - -var Message_Content_DEFAULT string - -func (p *Message) GetContent() (v string) { - if p == nil { - return - } - if !p.IsSetContent() { - return Message_Content_DEFAULT - } - return *p.Content -} - -var Message_Parts_DEFAULT []*ContentPart - -func (p *Message) GetParts() (v []*ContentPart) { - if p == nil { - return - } - if !p.IsSetParts() { - return Message_Parts_DEFAULT - } - return p.Parts -} - -var Message_ReasoningContent_DEFAULT string - -func (p *Message) GetReasoningContent() (v string) { - if p == nil { - return - } - if !p.IsSetReasoningContent() { - return Message_ReasoningContent_DEFAULT - } - return *p.ReasoningContent -} - -var Message_ToolCallID_DEFAULT string - -func (p *Message) GetToolCallID() (v string) { - if p == nil { - return - } - if !p.IsSetToolCallID() { - return Message_ToolCallID_DEFAULT - } - return *p.ToolCallID -} - -var Message_ToolCalls_DEFAULT []*ToolCall - -func (p *Message) GetToolCalls() (v []*ToolCall) { - if p == nil { - return - } - if !p.IsSetToolCalls() { - return Message_ToolCalls_DEFAULT - } - return p.ToolCalls -} - -var Message_Metadata_DEFAULT map[string]string - -func (p *Message) GetMetadata() (v map[string]string) { - if p == nil { - return - } - if !p.IsSetMetadata() { - return Message_Metadata_DEFAULT - } - return p.Metadata -} -func (p *Message) SetRole(val *Role) { - p.Role = val -} -func (p *Message) SetContent(val *string) { - p.Content = val -} -func (p *Message) SetParts(val []*ContentPart) { - p.Parts = val -} -func (p *Message) SetReasoningContent(val *string) { - p.ReasoningContent = val -} -func (p *Message) SetToolCallID(val *string) { - p.ToolCallID = val -} -func (p *Message) SetToolCalls(val []*ToolCall) { - p.ToolCalls = val -} -func (p *Message) SetMetadata(val map[string]string) { - p.Metadata = val -} - -var fieldIDToName_Message = map[int16]string{ - 1: "role", - 2: "content", - 3: "parts", - 4: "reasoning_content", - 5: "tool_call_id", - 6: "tool_calls", - 100: "metadata", -} - -func (p *Message) IsSetRole() bool { - return p.Role != nil -} - -func (p *Message) IsSetContent() bool { - return p.Content != nil -} - -func (p *Message) IsSetParts() bool { - return p.Parts != nil -} - -func (p *Message) IsSetReasoningContent() bool { - return p.ReasoningContent != nil -} - -func (p *Message) IsSetToolCallID() bool { - return p.ToolCallID != nil -} - -func (p *Message) IsSetToolCalls() bool { - return p.ToolCalls != nil -} - -func (p *Message) IsSetMetadata() bool { - return p.Metadata != nil -} - -func (p *Message) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.STRING { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.LIST { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 4: - if fieldTypeId == thrift.STRING { - if err = p.ReadField4(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 5: - if fieldTypeId == thrift.STRING { - if err = p.ReadField5(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 6: - if fieldTypeId == thrift.LIST { - if err = p.ReadField6(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 100: - if fieldTypeId == thrift.MAP { - if err = p.ReadField100(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_Message[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *Message) ReadField1(iprot thrift.TProtocol) error { - - var _field *Role - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Role = _field - return nil -} -func (p *Message) ReadField2(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Content = _field - return nil -} -func (p *Message) ReadField3(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { - return err - } - _field := make([]*ContentPart, 0, size) - values := make([]ContentPart, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - - if err := _elem.Read(iprot); err != nil { - return err - } - - _field = append(_field, _elem) - } - if err := iprot.ReadListEnd(); err != nil { - return err - } - p.Parts = _field - return nil -} -func (p *Message) ReadField4(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.ReasoningContent = _field - return nil -} -func (p *Message) ReadField5(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.ToolCallID = _field - return nil -} -func (p *Message) ReadField6(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { - return err - } - _field := make([]*ToolCall, 0, size) - values := make([]ToolCall, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - - if err := _elem.Read(iprot); err != nil { - return err - } - - _field = append(_field, _elem) - } - if err := iprot.ReadListEnd(); err != nil { - return err - } - p.ToolCalls = _field - return nil -} -func (p *Message) ReadField100(iprot thrift.TProtocol) error { - _, _, size, err := iprot.ReadMapBegin() - if err != nil { - return err - } - _field := make(map[string]string, size) - for i := 0; i < size; i++ { - var _key string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _key = v - } - - var _val string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _val = v - } - - _field[_key] = _val - } - if err := iprot.ReadMapEnd(); err != nil { - return err - } - p.Metadata = _field - return nil -} - -func (p *Message) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("Message"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } - if err = p.writeField4(oprot); err != nil { - fieldId = 4 - goto WriteFieldError - } - if err = p.writeField5(oprot); err != nil { - fieldId = 5 - goto WriteFieldError - } - if err = p.writeField6(oprot); err != nil { - fieldId = 6 - goto WriteFieldError - } - if err = p.writeField100(oprot); err != nil { - fieldId = 100 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *Message) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetRole() { - if err = oprot.WriteFieldBegin("role", thrift.STRING, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Role); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *Message) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetContent() { - if err = oprot.WriteFieldBegin("content", thrift.STRING, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Content); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *Message) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetParts() { - if err = oprot.WriteFieldBegin("parts", thrift.LIST, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Parts)); err != nil { - return err - } - for _, v := range p.Parts { - if err := v.Write(oprot); err != nil { - return err - } - } - if err := oprot.WriteListEnd(); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} -func (p *Message) writeField4(oprot thrift.TProtocol) (err error) { - if p.IsSetReasoningContent() { - if err = oprot.WriteFieldBegin("reasoning_content", thrift.STRING, 4); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.ReasoningContent); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) -} -func (p *Message) writeField5(oprot thrift.TProtocol) (err error) { - if p.IsSetToolCallID() { - if err = oprot.WriteFieldBegin("tool_call_id", thrift.STRING, 5); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.ToolCallID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) -} -func (p *Message) writeField6(oprot thrift.TProtocol) (err error) { - if p.IsSetToolCalls() { - if err = oprot.WriteFieldBegin("tool_calls", thrift.LIST, 6); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.ToolCalls)); err != nil { - return err - } - for _, v := range p.ToolCalls { - if err := v.Write(oprot); err != nil { - return err - } - } - if err := oprot.WriteListEnd(); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) -} -func (p *Message) writeField100(oprot thrift.TProtocol) (err error) { - if p.IsSetMetadata() { - if err = oprot.WriteFieldBegin("metadata", thrift.MAP, 100); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.Metadata)); err != nil { - return err - } - for k, v := range p.Metadata { - if err := oprot.WriteString(k); err != nil { - return err - } - if err := oprot.WriteString(v); err != nil { - return err - } - } - if err := oprot.WriteMapEnd(); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 100 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 100 end error: ", p), err) -} - -func (p *Message) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("Message(%+v)", *p) - -} - -func (p *Message) DeepEqual(ano *Message) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.Role) { - return false - } - if !p.Field2DeepEqual(ano.Content) { - return false - } - if !p.Field3DeepEqual(ano.Parts) { - return false - } - if !p.Field4DeepEqual(ano.ReasoningContent) { - return false - } - if !p.Field5DeepEqual(ano.ToolCallID) { - return false - } - if !p.Field6DeepEqual(ano.ToolCalls) { - return false - } - if !p.Field100DeepEqual(ano.Metadata) { - return false - } - return true -} - -func (p *Message) Field1DeepEqual(src *Role) bool { - - if p.Role == src { - return true - } else if p.Role == nil || src == nil { - return false - } - if strings.Compare(*p.Role, *src) != 0 { - return false - } - return true -} -func (p *Message) Field2DeepEqual(src *string) bool { - - if p.Content == src { - return true - } else if p.Content == nil || src == nil { - return false - } - if strings.Compare(*p.Content, *src) != 0 { - return false - } - return true -} -func (p *Message) Field3DeepEqual(src []*ContentPart) bool { - - if len(p.Parts) != len(src) { - return false - } - for i, v := range p.Parts { - _src := src[i] - if !v.DeepEqual(_src) { - return false - } - } - return true -} -func (p *Message) Field4DeepEqual(src *string) bool { - - if p.ReasoningContent == src { - return true - } else if p.ReasoningContent == nil || src == nil { - return false - } - if strings.Compare(*p.ReasoningContent, *src) != 0 { - return false - } - return true -} -func (p *Message) Field5DeepEqual(src *string) bool { - - if p.ToolCallID == src { - return true - } else if p.ToolCallID == nil || src == nil { - return false - } - if strings.Compare(*p.ToolCallID, *src) != 0 { - return false - } - return true -} -func (p *Message) Field6DeepEqual(src []*ToolCall) bool { - - if len(p.ToolCalls) != len(src) { - return false - } - for i, v := range p.ToolCalls { - _src := src[i] - if !v.DeepEqual(_src) { - return false - } - } - return true -} -func (p *Message) Field100DeepEqual(src map[string]string) bool { - - if len(p.Metadata) != len(src) { - return false - } - for k, v := range p.Metadata { - _src := src[k] - if strings.Compare(v, _src) != 0 { - return false - } - } - return true -} - -type ContentPart struct { - Type *ContentType `thrift:"type,1,optional" frugal:"1,optional,string" form:"type" json:"type,omitempty" query:"type"` - Text *string `thrift:"text,2,optional" frugal:"2,optional,string" form:"text" json:"text,omitempty" query:"text"` - ImageURL *string `thrift:"image_url,3,optional" frugal:"3,optional,string" form:"image_url" json:"image_url,omitempty" query:"image_url"` - Base64Data *string `thrift:"base64_data,4,optional" frugal:"4,optional,string" form:"base64_data" json:"base64_data,omitempty" query:"base64_data"` - VideoURL *string `thrift:"video_url,5,optional" frugal:"5,optional,string" form:"video_url" json:"video_url,omitempty" query:"video_url"` - Config *MediaConfig `thrift:"config,6,optional" frugal:"6,optional,MediaConfig" form:"config" json:"config,omitempty" query:"config"` -} - -func NewContentPart() *ContentPart { - return &ContentPart{} -} - -func (p *ContentPart) InitDefault() { -} - -var ContentPart_Type_DEFAULT ContentType - -func (p *ContentPart) GetType() (v ContentType) { - if p == nil { - return - } - if !p.IsSetType() { - return ContentPart_Type_DEFAULT - } - return *p.Type -} - -var ContentPart_Text_DEFAULT string - -func (p *ContentPart) GetText() (v string) { - if p == nil { - return - } - if !p.IsSetText() { - return ContentPart_Text_DEFAULT - } - return *p.Text -} - -var ContentPart_ImageURL_DEFAULT string - -func (p *ContentPart) GetImageURL() (v string) { - if p == nil { - return - } - if !p.IsSetImageURL() { - return ContentPart_ImageURL_DEFAULT - } - return *p.ImageURL -} - -var ContentPart_Base64Data_DEFAULT string - -func (p *ContentPart) GetBase64Data() (v string) { - if p == nil { - return - } - if !p.IsSetBase64Data() { - return ContentPart_Base64Data_DEFAULT - } - return *p.Base64Data -} - -var ContentPart_VideoURL_DEFAULT string - -func (p *ContentPart) GetVideoURL() (v string) { - if p == nil { - return - } - if !p.IsSetVideoURL() { - return ContentPart_VideoURL_DEFAULT - } - return *p.VideoURL -} - -var ContentPart_Config_DEFAULT *MediaConfig - -func (p *ContentPart) GetConfig() (v *MediaConfig) { - if p == nil { - return - } - if !p.IsSetConfig() { - return ContentPart_Config_DEFAULT - } - return p.Config -} -func (p *ContentPart) SetType(val *ContentType) { - p.Type = val -} -func (p *ContentPart) SetText(val *string) { - p.Text = val -} -func (p *ContentPart) SetImageURL(val *string) { - p.ImageURL = val -} -func (p *ContentPart) SetBase64Data(val *string) { - p.Base64Data = val -} -func (p *ContentPart) SetVideoURL(val *string) { - p.VideoURL = val -} -func (p *ContentPart) SetConfig(val *MediaConfig) { - p.Config = val -} - -var fieldIDToName_ContentPart = map[int16]string{ - 1: "type", - 2: "text", - 3: "image_url", - 4: "base64_data", - 5: "video_url", - 6: "config", -} - -func (p *ContentPart) IsSetType() bool { - return p.Type != nil -} - -func (p *ContentPart) IsSetText() bool { - return p.Text != nil -} - -func (p *ContentPart) IsSetImageURL() bool { - return p.ImageURL != nil -} - -func (p *ContentPart) IsSetBase64Data() bool { - return p.Base64Data != nil -} - -func (p *ContentPart) IsSetVideoURL() bool { - return p.VideoURL != nil -} - -func (p *ContentPart) IsSetConfig() bool { - return p.Config != nil -} - -func (p *ContentPart) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.STRING { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.STRING { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 4: - if fieldTypeId == thrift.STRING { - if err = p.ReadField4(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 5: - if fieldTypeId == thrift.STRING { - if err = p.ReadField5(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 6: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField6(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ContentPart[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *ContentPart) ReadField1(iprot thrift.TProtocol) error { - - var _field *ContentType - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Type = _field - return nil -} -func (p *ContentPart) ReadField2(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Text = _field - return nil -} -func (p *ContentPart) ReadField3(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.ImageURL = _field - return nil -} -func (p *ContentPart) ReadField4(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Base64Data = _field - return nil -} -func (p *ContentPart) ReadField5(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.VideoURL = _field - return nil -} -func (p *ContentPart) ReadField6(iprot thrift.TProtocol) error { - _field := NewMediaConfig() - if err := _field.Read(iprot); err != nil { - return err - } - p.Config = _field - return nil -} - -func (p *ContentPart) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("ContentPart"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } - if err = p.writeField4(oprot); err != nil { - fieldId = 4 - goto WriteFieldError - } - if err = p.writeField5(oprot); err != nil { - fieldId = 5 - goto WriteFieldError - } - if err = p.writeField6(oprot); err != nil { - fieldId = 6 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *ContentPart) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetType() { - if err = oprot.WriteFieldBegin("type", thrift.STRING, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Type); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *ContentPart) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetText() { - if err = oprot.WriteFieldBegin("text", thrift.STRING, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Text); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *ContentPart) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetImageURL() { - if err = oprot.WriteFieldBegin("image_url", thrift.STRING, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.ImageURL); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} -func (p *ContentPart) writeField4(oprot thrift.TProtocol) (err error) { - if p.IsSetBase64Data() { - if err = oprot.WriteFieldBegin("base64_data", thrift.STRING, 4); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Base64Data); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) -} -func (p *ContentPart) writeField5(oprot thrift.TProtocol) (err error) { - if p.IsSetVideoURL() { - if err = oprot.WriteFieldBegin("video_url", thrift.STRING, 5); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.VideoURL); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) -} -func (p *ContentPart) writeField6(oprot thrift.TProtocol) (err error) { - if p.IsSetConfig() { - if err = oprot.WriteFieldBegin("config", thrift.STRUCT, 6); err != nil { - goto WriteFieldBeginError - } - if err := p.Config.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) -} - -func (p *ContentPart) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("ContentPart(%+v)", *p) - -} - -func (p *ContentPart) DeepEqual(ano *ContentPart) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.Type) { - return false - } - if !p.Field2DeepEqual(ano.Text) { - return false - } - if !p.Field3DeepEqual(ano.ImageURL) { - return false - } - if !p.Field4DeepEqual(ano.Base64Data) { - return false - } - if !p.Field5DeepEqual(ano.VideoURL) { - return false - } - if !p.Field6DeepEqual(ano.Config) { - return false - } - return true -} - -func (p *ContentPart) Field1DeepEqual(src *ContentType) bool { - - if p.Type == src { - return true - } else if p.Type == nil || src == nil { - return false - } - if strings.Compare(*p.Type, *src) != 0 { - return false - } - return true -} -func (p *ContentPart) Field2DeepEqual(src *string) bool { - - if p.Text == src { - return true - } else if p.Text == nil || src == nil { - return false - } - if strings.Compare(*p.Text, *src) != 0 { - return false - } - return true -} -func (p *ContentPart) Field3DeepEqual(src *string) bool { - - if p.ImageURL == src { - return true - } else if p.ImageURL == nil || src == nil { - return false - } - if strings.Compare(*p.ImageURL, *src) != 0 { - return false - } - return true -} -func (p *ContentPart) Field4DeepEqual(src *string) bool { - - if p.Base64Data == src { - return true - } else if p.Base64Data == nil || src == nil { - return false - } - if strings.Compare(*p.Base64Data, *src) != 0 { - return false - } - return true -} -func (p *ContentPart) Field5DeepEqual(src *string) bool { - - if p.VideoURL == src { - return true - } else if p.VideoURL == nil || src == nil { - return false - } - if strings.Compare(*p.VideoURL, *src) != 0 { - return false - } - return true -} -func (p *ContentPart) Field6DeepEqual(src *MediaConfig) bool { - - if !p.Config.DeepEqual(src) { - return false - } - return true -} - -type MediaConfig struct { - Fps *float64 `thrift:"fps,1,optional" frugal:"1,optional,double" form:"fps" json:"fps,omitempty" query:"fps"` -} - -func NewMediaConfig() *MediaConfig { - return &MediaConfig{} -} - -func (p *MediaConfig) InitDefault() { -} - -var MediaConfig_Fps_DEFAULT float64 - -func (p *MediaConfig) GetFps() (v float64) { - if p == nil { - return - } - if !p.IsSetFps() { - return MediaConfig_Fps_DEFAULT - } - return *p.Fps -} -func (p *MediaConfig) SetFps(val *float64) { - p.Fps = val -} - -var fieldIDToName_MediaConfig = map[int16]string{ - 1: "fps", -} - -func (p *MediaConfig) IsSetFps() bool { - return p.Fps != nil -} - -func (p *MediaConfig) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.DOUBLE { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_MediaConfig[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *MediaConfig) ReadField1(iprot thrift.TProtocol) error { - - var _field *float64 - if v, err := iprot.ReadDouble(); err != nil { - return err - } else { - _field = &v - } - p.Fps = _field - return nil -} - -func (p *MediaConfig) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("MediaConfig"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *MediaConfig) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetFps() { - if err = oprot.WriteFieldBegin("fps", thrift.DOUBLE, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteDouble(*p.Fps); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} - -func (p *MediaConfig) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("MediaConfig(%+v)", *p) - -} - -func (p *MediaConfig) DeepEqual(ano *MediaConfig) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.Fps) { - return false - } - return true -} - -func (p *MediaConfig) Field1DeepEqual(src *float64) bool { - - if p.Fps == src { - return true - } else if p.Fps == nil || src == nil { - return false - } - if *p.Fps != *src { - return false - } - return true -} - -type VariableDef struct { - // 变量名字 - Key *string `thrift:"key,1,optional" frugal:"1,optional,string" form:"key" json:"key,omitempty" query:"key"` - // 变量描述 - Desc *string `thrift:"desc,2,optional" frugal:"2,optional,string" form:"desc" json:"desc,omitempty" query:"desc"` - // 变量类型 - Type *VariableType `thrift:"type,3,optional" frugal:"3,optional,string" form:"type" json:"type,omitempty" query:"type"` -} - -func NewVariableDef() *VariableDef { - return &VariableDef{} -} - -func (p *VariableDef) InitDefault() { -} - -var VariableDef_Key_DEFAULT string - -func (p *VariableDef) GetKey() (v string) { - if p == nil { - return - } - if !p.IsSetKey() { - return VariableDef_Key_DEFAULT - } - return *p.Key -} - -var VariableDef_Desc_DEFAULT string - -func (p *VariableDef) GetDesc() (v string) { - if p == nil { - return - } - if !p.IsSetDesc() { - return VariableDef_Desc_DEFAULT - } - return *p.Desc -} - -var VariableDef_Type_DEFAULT VariableType - -func (p *VariableDef) GetType() (v VariableType) { - if p == nil { - return - } - if !p.IsSetType() { - return VariableDef_Type_DEFAULT - } - return *p.Type -} -func (p *VariableDef) SetKey(val *string) { - p.Key = val -} -func (p *VariableDef) SetDesc(val *string) { - p.Desc = val -} -func (p *VariableDef) SetType(val *VariableType) { - p.Type = val -} - -var fieldIDToName_VariableDef = map[int16]string{ - 1: "key", - 2: "desc", - 3: "type", -} - -func (p *VariableDef) IsSetKey() bool { - return p.Key != nil -} - -func (p *VariableDef) IsSetDesc() bool { - return p.Desc != nil -} - -func (p *VariableDef) IsSetType() bool { - return p.Type != nil -} - -func (p *VariableDef) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.STRING { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.STRING { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_VariableDef[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *VariableDef) ReadField1(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Key = _field - return nil -} -func (p *VariableDef) ReadField2(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Desc = _field - return nil -} -func (p *VariableDef) ReadField3(iprot thrift.TProtocol) error { - - var _field *VariableType - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Type = _field - return nil -} - -func (p *VariableDef) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("VariableDef"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *VariableDef) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetKey() { - if err = oprot.WriteFieldBegin("key", thrift.STRING, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Key); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *VariableDef) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetDesc() { - if err = oprot.WriteFieldBegin("desc", thrift.STRING, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Desc); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *VariableDef) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetType() { - if err = oprot.WriteFieldBegin("type", thrift.STRING, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Type); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} - -func (p *VariableDef) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("VariableDef(%+v)", *p) - -} - -func (p *VariableDef) DeepEqual(ano *VariableDef) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.Key) { - return false - } - if !p.Field2DeepEqual(ano.Desc) { - return false - } - if !p.Field3DeepEqual(ano.Type) { - return false - } - return true -} - -func (p *VariableDef) Field1DeepEqual(src *string) bool { - - if p.Key == src { - return true - } else if p.Key == nil || src == nil { - return false - } - if strings.Compare(*p.Key, *src) != 0 { - return false - } - return true -} -func (p *VariableDef) Field2DeepEqual(src *string) bool { - - if p.Desc == src { - return true - } else if p.Desc == nil || src == nil { - return false - } - if strings.Compare(*p.Desc, *src) != 0 { - return false - } - return true -} -func (p *VariableDef) Field3DeepEqual(src *VariableType) bool { - - if p.Type == src { - return true - } else if p.Type == nil || src == nil { - return false - } - if strings.Compare(*p.Type, *src) != 0 { - return false - } - return true -} - -type Tool struct { - Type *ToolType `thrift:"type,1,optional" frugal:"1,optional,string" form:"type" json:"type,omitempty" query:"type"` - Function *Function `thrift:"function,2,optional" frugal:"2,optional,Function" form:"function" json:"function,omitempty" query:"function"` -} - -func NewTool() *Tool { - return &Tool{} -} - -func (p *Tool) InitDefault() { -} - -var Tool_Type_DEFAULT ToolType - -func (p *Tool) GetType() (v ToolType) { - if p == nil { - return - } - if !p.IsSetType() { - return Tool_Type_DEFAULT - } - return *p.Type -} - -var Tool_Function_DEFAULT *Function - -func (p *Tool) GetFunction() (v *Function) { - if p == nil { - return - } - if !p.IsSetFunction() { - return Tool_Function_DEFAULT - } - return p.Function -} -func (p *Tool) SetType(val *ToolType) { - p.Type = val -} -func (p *Tool) SetFunction(val *Function) { - p.Function = val -} - -var fieldIDToName_Tool = map[int16]string{ - 1: "type", - 2: "function", -} - -func (p *Tool) IsSetType() bool { - return p.Type != nil -} - -func (p *Tool) IsSetFunction() bool { - return p.Function != nil -} - -func (p *Tool) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_Tool[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *Tool) ReadField1(iprot thrift.TProtocol) error { - - var _field *ToolType - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Type = _field - return nil -} -func (p *Tool) ReadField2(iprot thrift.TProtocol) error { - _field := NewFunction() - if err := _field.Read(iprot); err != nil { - return err - } - p.Function = _field - return nil -} - -func (p *Tool) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("Tool"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *Tool) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetType() { - if err = oprot.WriteFieldBegin("type", thrift.STRING, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Type); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *Tool) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetFunction() { - if err = oprot.WriteFieldBegin("function", thrift.STRUCT, 2); err != nil { - goto WriteFieldBeginError - } - if err := p.Function.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} - -func (p *Tool) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("Tool(%+v)", *p) - -} - -func (p *Tool) DeepEqual(ano *Tool) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.Type) { - return false - } - if !p.Field2DeepEqual(ano.Function) { - return false - } - return true -} - -func (p *Tool) Field1DeepEqual(src *ToolType) bool { - - if p.Type == src { - return true - } else if p.Type == nil || src == nil { - return false - } - if strings.Compare(*p.Type, *src) != 0 { - return false - } - return true -} -func (p *Tool) Field2DeepEqual(src *Function) bool { - - if !p.Function.DeepEqual(src) { - return false - } - return true -} - -type Function struct { - Name *string `thrift:"name,1,optional" frugal:"1,optional,string" form:"name" json:"name,omitempty" query:"name"` - Description *string `thrift:"description,2,optional" frugal:"2,optional,string" form:"description" json:"description,omitempty" query:"description"` - Parameters *string `thrift:"parameters,3,optional" frugal:"3,optional,string" form:"parameters" json:"parameters,omitempty" query:"parameters"` -} - -func NewFunction() *Function { - return &Function{} -} - -func (p *Function) InitDefault() { -} - -var Function_Name_DEFAULT string - -func (p *Function) GetName() (v string) { - if p == nil { - return - } - if !p.IsSetName() { - return Function_Name_DEFAULT - } - return *p.Name -} - -var Function_Description_DEFAULT string - -func (p *Function) GetDescription() (v string) { - if p == nil { - return - } - if !p.IsSetDescription() { - return Function_Description_DEFAULT - } - return *p.Description -} - -var Function_Parameters_DEFAULT string - -func (p *Function) GetParameters() (v string) { - if p == nil { - return - } - if !p.IsSetParameters() { - return Function_Parameters_DEFAULT - } - return *p.Parameters -} -func (p *Function) SetName(val *string) { - p.Name = val -} -func (p *Function) SetDescription(val *string) { - p.Description = val -} -func (p *Function) SetParameters(val *string) { - p.Parameters = val -} - -var fieldIDToName_Function = map[int16]string{ - 1: "name", - 2: "description", - 3: "parameters", -} - -func (p *Function) IsSetName() bool { - return p.Name != nil -} - -func (p *Function) IsSetDescription() bool { - return p.Description != nil -} - -func (p *Function) IsSetParameters() bool { - return p.Parameters != nil -} - -func (p *Function) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.STRING { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.STRING { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_Function[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *Function) ReadField1(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Name = _field - return nil -} -func (p *Function) ReadField2(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Description = _field - return nil -} -func (p *Function) ReadField3(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Parameters = _field - return nil -} - -func (p *Function) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("Function"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *Function) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetName() { - if err = oprot.WriteFieldBegin("name", thrift.STRING, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Name); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *Function) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetDescription() { - if err = oprot.WriteFieldBegin("description", thrift.STRING, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Description); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *Function) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetParameters() { - if err = oprot.WriteFieldBegin("parameters", thrift.STRING, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Parameters); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} - -func (p *Function) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("Function(%+v)", *p) - -} - -func (p *Function) DeepEqual(ano *Function) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.Name) { - return false - } - if !p.Field2DeepEqual(ano.Description) { - return false - } - if !p.Field3DeepEqual(ano.Parameters) { - return false - } - return true -} - -func (p *Function) Field1DeepEqual(src *string) bool { - - if p.Name == src { - return true - } else if p.Name == nil || src == nil { - return false - } - if strings.Compare(*p.Name, *src) != 0 { - return false - } - return true -} -func (p *Function) Field2DeepEqual(src *string) bool { - - if p.Description == src { - return true - } else if p.Description == nil || src == nil { - return false - } - if strings.Compare(*p.Description, *src) != 0 { - return false - } - return true -} -func (p *Function) Field3DeepEqual(src *string) bool { - - if p.Parameters == src { - return true - } else if p.Parameters == nil || src == nil { - return false - } - if strings.Compare(*p.Parameters, *src) != 0 { - return false - } - return true -} - -type ToolCall struct { - Index *int32 `thrift:"index,1,optional" frugal:"1,optional,i32" form:"index" json:"index,omitempty" query:"index"` - ID *string `thrift:"id,2,optional" frugal:"2,optional,string" form:"id" json:"id,omitempty" query:"id"` - Type *ToolType `thrift:"type,3,optional" frugal:"3,optional,string" form:"type" json:"type,omitempty" query:"type"` - FunctionCall *FunctionCall `thrift:"function_call,4,optional" frugal:"4,optional,FunctionCall" form:"function_call" json:"function_call,omitempty" query:"function_call"` -} - -func NewToolCall() *ToolCall { - return &ToolCall{} -} - -func (p *ToolCall) InitDefault() { -} - -var ToolCall_Index_DEFAULT int32 - -func (p *ToolCall) GetIndex() (v int32) { - if p == nil { - return - } - if !p.IsSetIndex() { - return ToolCall_Index_DEFAULT - } - return *p.Index -} - -var ToolCall_ID_DEFAULT string - -func (p *ToolCall) GetID() (v string) { - if p == nil { - return - } - if !p.IsSetID() { - return ToolCall_ID_DEFAULT - } - return *p.ID -} - -var ToolCall_Type_DEFAULT ToolType - -func (p *ToolCall) GetType() (v ToolType) { - if p == nil { - return - } - if !p.IsSetType() { - return ToolCall_Type_DEFAULT - } - return *p.Type -} - -var ToolCall_FunctionCall_DEFAULT *FunctionCall - -func (p *ToolCall) GetFunctionCall() (v *FunctionCall) { - if p == nil { - return - } - if !p.IsSetFunctionCall() { - return ToolCall_FunctionCall_DEFAULT - } - return p.FunctionCall -} -func (p *ToolCall) SetIndex(val *int32) { - p.Index = val -} -func (p *ToolCall) SetID(val *string) { - p.ID = val -} -func (p *ToolCall) SetType(val *ToolType) { - p.Type = val -} -func (p *ToolCall) SetFunctionCall(val *FunctionCall) { - p.FunctionCall = val -} - -var fieldIDToName_ToolCall = map[int16]string{ - 1: "index", - 2: "id", - 3: "type", - 4: "function_call", -} - -func (p *ToolCall) IsSetIndex() bool { - return p.Index != nil -} - -func (p *ToolCall) IsSetID() bool { - return p.ID != nil -} - -func (p *ToolCall) IsSetType() bool { - return p.Type != nil -} - -func (p *ToolCall) IsSetFunctionCall() bool { - return p.FunctionCall != nil -} - -func (p *ToolCall) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.I32 { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.STRING { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.STRING { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 4: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField4(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ToolCall[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *ToolCall) ReadField1(iprot thrift.TProtocol) error { - - var _field *int32 - if v, err := iprot.ReadI32(); err != nil { - return err - } else { - _field = &v - } - p.Index = _field - return nil -} -func (p *ToolCall) ReadField2(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.ID = _field - return nil -} -func (p *ToolCall) ReadField3(iprot thrift.TProtocol) error { - - var _field *ToolType - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Type = _field - return nil -} -func (p *ToolCall) ReadField4(iprot thrift.TProtocol) error { - _field := NewFunctionCall() - if err := _field.Read(iprot); err != nil { - return err - } - p.FunctionCall = _field - return nil -} - -func (p *ToolCall) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("ToolCall"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } - if err = p.writeField4(oprot); err != nil { - fieldId = 4 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *ToolCall) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetIndex() { - if err = oprot.WriteFieldBegin("index", thrift.I32, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI32(*p.Index); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *ToolCall) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetID() { - if err = oprot.WriteFieldBegin("id", thrift.STRING, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.ID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *ToolCall) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetType() { - if err = oprot.WriteFieldBegin("type", thrift.STRING, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Type); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} -func (p *ToolCall) writeField4(oprot thrift.TProtocol) (err error) { - if p.IsSetFunctionCall() { - if err = oprot.WriteFieldBegin("function_call", thrift.STRUCT, 4); err != nil { - goto WriteFieldBeginError - } - if err := p.FunctionCall.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) -} - -func (p *ToolCall) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("ToolCall(%+v)", *p) - -} - -func (p *ToolCall) DeepEqual(ano *ToolCall) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.Index) { - return false - } - if !p.Field2DeepEqual(ano.ID) { - return false - } - if !p.Field3DeepEqual(ano.Type) { - return false - } - if !p.Field4DeepEqual(ano.FunctionCall) { - return false - } - return true -} - -func (p *ToolCall) Field1DeepEqual(src *int32) bool { - - if p.Index == src { - return true - } else if p.Index == nil || src == nil { - return false - } - if *p.Index != *src { - return false - } - return true -} -func (p *ToolCall) Field2DeepEqual(src *string) bool { - - if p.ID == src { - return true - } else if p.ID == nil || src == nil { - return false - } - if strings.Compare(*p.ID, *src) != 0 { - return false - } - return true -} -func (p *ToolCall) Field3DeepEqual(src *ToolType) bool { - - if p.Type == src { - return true - } else if p.Type == nil || src == nil { - return false - } - if strings.Compare(*p.Type, *src) != 0 { - return false - } - return true -} -func (p *ToolCall) Field4DeepEqual(src *FunctionCall) bool { - - if !p.FunctionCall.DeepEqual(src) { - return false - } - return true -} - -type FunctionCall struct { - Name *string `thrift:"name,1,optional" frugal:"1,optional,string" form:"name" json:"name,omitempty" query:"name"` - Arguments *string `thrift:"arguments,2,optional" frugal:"2,optional,string" form:"arguments" json:"arguments,omitempty" query:"arguments"` -} - -func NewFunctionCall() *FunctionCall { - return &FunctionCall{} -} - -func (p *FunctionCall) InitDefault() { -} - -var FunctionCall_Name_DEFAULT string - -func (p *FunctionCall) GetName() (v string) { - if p == nil { - return - } - if !p.IsSetName() { - return FunctionCall_Name_DEFAULT - } - return *p.Name -} - -var FunctionCall_Arguments_DEFAULT string - -func (p *FunctionCall) GetArguments() (v string) { - if p == nil { - return - } - if !p.IsSetArguments() { - return FunctionCall_Arguments_DEFAULT - } - return *p.Arguments -} -func (p *FunctionCall) SetName(val *string) { - p.Name = val -} -func (p *FunctionCall) SetArguments(val *string) { - p.Arguments = val -} - -var fieldIDToName_FunctionCall = map[int16]string{ - 1: "name", - 2: "arguments", -} - -func (p *FunctionCall) IsSetName() bool { - return p.Name != nil -} - -func (p *FunctionCall) IsSetArguments() bool { - return p.Arguments != nil -} - -func (p *FunctionCall) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.STRING { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_FunctionCall[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *FunctionCall) ReadField1(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Name = _field - return nil -} -func (p *FunctionCall) ReadField2(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Arguments = _field - return nil -} - -func (p *FunctionCall) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("FunctionCall"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *FunctionCall) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetName() { - if err = oprot.WriteFieldBegin("name", thrift.STRING, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Name); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *FunctionCall) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetArguments() { - if err = oprot.WriteFieldBegin("arguments", thrift.STRING, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Arguments); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} - -func (p *FunctionCall) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("FunctionCall(%+v)", *p) - -} - -func (p *FunctionCall) DeepEqual(ano *FunctionCall) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.Name) { - return false - } - if !p.Field2DeepEqual(ano.Arguments) { - return false - } - return true -} - -func (p *FunctionCall) Field1DeepEqual(src *string) bool { - - if p.Name == src { - return true - } else if p.Name == nil || src == nil { - return false - } - if strings.Compare(*p.Name, *src) != 0 { - return false - } - return true -} -func (p *FunctionCall) Field2DeepEqual(src *string) bool { - - if p.Arguments == src { - return true - } else if p.Arguments == nil || src == nil { - return false - } - if strings.Compare(*p.Arguments, *src) != 0 { - return false - } - return true -} - -type LLMConfig struct { - Temperature *float64 `thrift:"temperature,1,optional" frugal:"1,optional,double" form:"temperature" json:"temperature,omitempty" query:"temperature"` - MaxTokens *int32 `thrift:"max_tokens,2,optional" frugal:"2,optional,i32" form:"max_tokens" json:"max_tokens,omitempty" query:"max_tokens"` - TopK *int32 `thrift:"top_k,3,optional" frugal:"3,optional,i32" form:"top_k" json:"top_k,omitempty" query:"top_k"` - TopP *float64 `thrift:"top_p,4,optional" frugal:"4,optional,double" form:"top_p" json:"top_p,omitempty" query:"top_p"` - PresencePenalty *float64 `thrift:"presence_penalty,5,optional" frugal:"5,optional,double" form:"presence_penalty" json:"presence_penalty,omitempty" query:"presence_penalty"` - FrequencyPenalty *float64 `thrift:"frequency_penalty,6,optional" frugal:"6,optional,double" form:"frequency_penalty" json:"frequency_penalty,omitempty" query:"frequency_penalty"` - JSONMode *bool `thrift:"json_mode,7,optional" frugal:"7,optional,bool" form:"json_mode" json:"json_mode,omitempty" query:"json_mode"` -} - -func NewLLMConfig() *LLMConfig { - return &LLMConfig{} -} - -func (p *LLMConfig) InitDefault() { -} - -var LLMConfig_Temperature_DEFAULT float64 - -func (p *LLMConfig) GetTemperature() (v float64) { - if p == nil { - return - } - if !p.IsSetTemperature() { - return LLMConfig_Temperature_DEFAULT - } - return *p.Temperature -} - -var LLMConfig_MaxTokens_DEFAULT int32 - -func (p *LLMConfig) GetMaxTokens() (v int32) { - if p == nil { - return - } - if !p.IsSetMaxTokens() { - return LLMConfig_MaxTokens_DEFAULT - } - return *p.MaxTokens -} - -var LLMConfig_TopK_DEFAULT int32 - -func (p *LLMConfig) GetTopK() (v int32) { - if p == nil { - return - } - if !p.IsSetTopK() { - return LLMConfig_TopK_DEFAULT - } - return *p.TopK -} - -var LLMConfig_TopP_DEFAULT float64 - -func (p *LLMConfig) GetTopP() (v float64) { - if p == nil { - return - } - if !p.IsSetTopP() { - return LLMConfig_TopP_DEFAULT - } - return *p.TopP -} - -var LLMConfig_PresencePenalty_DEFAULT float64 - -func (p *LLMConfig) GetPresencePenalty() (v float64) { - if p == nil { - return - } - if !p.IsSetPresencePenalty() { - return LLMConfig_PresencePenalty_DEFAULT - } - return *p.PresencePenalty -} - -var LLMConfig_FrequencyPenalty_DEFAULT float64 - -func (p *LLMConfig) GetFrequencyPenalty() (v float64) { - if p == nil { - return - } - if !p.IsSetFrequencyPenalty() { - return LLMConfig_FrequencyPenalty_DEFAULT - } - return *p.FrequencyPenalty -} - -var LLMConfig_JSONMode_DEFAULT bool - -func (p *LLMConfig) GetJSONMode() (v bool) { - if p == nil { - return - } - if !p.IsSetJSONMode() { - return LLMConfig_JSONMode_DEFAULT - } - return *p.JSONMode -} -func (p *LLMConfig) SetTemperature(val *float64) { - p.Temperature = val -} -func (p *LLMConfig) SetMaxTokens(val *int32) { - p.MaxTokens = val -} -func (p *LLMConfig) SetTopK(val *int32) { - p.TopK = val -} -func (p *LLMConfig) SetTopP(val *float64) { - p.TopP = val -} -func (p *LLMConfig) SetPresencePenalty(val *float64) { - p.PresencePenalty = val -} -func (p *LLMConfig) SetFrequencyPenalty(val *float64) { - p.FrequencyPenalty = val -} -func (p *LLMConfig) SetJSONMode(val *bool) { - p.JSONMode = val -} - -var fieldIDToName_LLMConfig = map[int16]string{ - 1: "temperature", - 2: "max_tokens", - 3: "top_k", - 4: "top_p", - 5: "presence_penalty", - 6: "frequency_penalty", - 7: "json_mode", -} - -func (p *LLMConfig) IsSetTemperature() bool { - return p.Temperature != nil -} - -func (p *LLMConfig) IsSetMaxTokens() bool { - return p.MaxTokens != nil -} - -func (p *LLMConfig) IsSetTopK() bool { - return p.TopK != nil -} - -func (p *LLMConfig) IsSetTopP() bool { - return p.TopP != nil -} - -func (p *LLMConfig) IsSetPresencePenalty() bool { - return p.PresencePenalty != nil -} - -func (p *LLMConfig) IsSetFrequencyPenalty() bool { - return p.FrequencyPenalty != nil -} - -func (p *LLMConfig) IsSetJSONMode() bool { - return p.JSONMode != nil -} - -func (p *LLMConfig) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.DOUBLE { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.I32 { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.I32 { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 4: - if fieldTypeId == thrift.DOUBLE { - if err = p.ReadField4(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 5: - if fieldTypeId == thrift.DOUBLE { - if err = p.ReadField5(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 6: - if fieldTypeId == thrift.DOUBLE { - if err = p.ReadField6(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 7: - if fieldTypeId == thrift.BOOL { - if err = p.ReadField7(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_LLMConfig[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *LLMConfig) ReadField1(iprot thrift.TProtocol) error { - - var _field *float64 - if v, err := iprot.ReadDouble(); err != nil { - return err - } else { - _field = &v - } - p.Temperature = _field - return nil -} -func (p *LLMConfig) ReadField2(iprot thrift.TProtocol) error { - - var _field *int32 - if v, err := iprot.ReadI32(); err != nil { - return err - } else { - _field = &v - } - p.MaxTokens = _field - return nil -} -func (p *LLMConfig) ReadField3(iprot thrift.TProtocol) error { - - var _field *int32 - if v, err := iprot.ReadI32(); err != nil { - return err - } else { - _field = &v - } - p.TopK = _field - return nil -} -func (p *LLMConfig) ReadField4(iprot thrift.TProtocol) error { - - var _field *float64 - if v, err := iprot.ReadDouble(); err != nil { - return err - } else { - _field = &v - } - p.TopP = _field - return nil -} -func (p *LLMConfig) ReadField5(iprot thrift.TProtocol) error { - - var _field *float64 - if v, err := iprot.ReadDouble(); err != nil { - return err - } else { - _field = &v - } - p.PresencePenalty = _field - return nil -} -func (p *LLMConfig) ReadField6(iprot thrift.TProtocol) error { - - var _field *float64 - if v, err := iprot.ReadDouble(); err != nil { - return err - } else { - _field = &v - } - p.FrequencyPenalty = _field - return nil -} -func (p *LLMConfig) ReadField7(iprot thrift.TProtocol) error { - - var _field *bool - if v, err := iprot.ReadBool(); err != nil { - return err - } else { - _field = &v - } - p.JSONMode = _field - return nil -} - -func (p *LLMConfig) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("LLMConfig"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } - if err = p.writeField4(oprot); err != nil { - fieldId = 4 - goto WriteFieldError - } - if err = p.writeField5(oprot); err != nil { - fieldId = 5 - goto WriteFieldError - } - if err = p.writeField6(oprot); err != nil { - fieldId = 6 - goto WriteFieldError - } - if err = p.writeField7(oprot); err != nil { - fieldId = 7 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *LLMConfig) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetTemperature() { - if err = oprot.WriteFieldBegin("temperature", thrift.DOUBLE, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteDouble(*p.Temperature); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *LLMConfig) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetMaxTokens() { - if err = oprot.WriteFieldBegin("max_tokens", thrift.I32, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI32(*p.MaxTokens); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *LLMConfig) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetTopK() { - if err = oprot.WriteFieldBegin("top_k", thrift.I32, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI32(*p.TopK); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} -func (p *LLMConfig) writeField4(oprot thrift.TProtocol) (err error) { - if p.IsSetTopP() { - if err = oprot.WriteFieldBegin("top_p", thrift.DOUBLE, 4); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteDouble(*p.TopP); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) -} -func (p *LLMConfig) writeField5(oprot thrift.TProtocol) (err error) { - if p.IsSetPresencePenalty() { - if err = oprot.WriteFieldBegin("presence_penalty", thrift.DOUBLE, 5); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteDouble(*p.PresencePenalty); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) -} -func (p *LLMConfig) writeField6(oprot thrift.TProtocol) (err error) { - if p.IsSetFrequencyPenalty() { - if err = oprot.WriteFieldBegin("frequency_penalty", thrift.DOUBLE, 6); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteDouble(*p.FrequencyPenalty); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) -} -func (p *LLMConfig) writeField7(oprot thrift.TProtocol) (err error) { - if p.IsSetJSONMode() { - if err = oprot.WriteFieldBegin("json_mode", thrift.BOOL, 7); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteBool(*p.JSONMode); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 7 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) -} - -func (p *LLMConfig) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("LLMConfig(%+v)", *p) - -} - -func (p *LLMConfig) DeepEqual(ano *LLMConfig) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.Temperature) { - return false - } - if !p.Field2DeepEqual(ano.MaxTokens) { - return false - } - if !p.Field3DeepEqual(ano.TopK) { - return false - } - if !p.Field4DeepEqual(ano.TopP) { - return false - } - if !p.Field5DeepEqual(ano.PresencePenalty) { - return false - } - if !p.Field6DeepEqual(ano.FrequencyPenalty) { - return false - } - if !p.Field7DeepEqual(ano.JSONMode) { - return false - } - return true -} - -func (p *LLMConfig) Field1DeepEqual(src *float64) bool { - - if p.Temperature == src { - return true - } else if p.Temperature == nil || src == nil { - return false - } - if *p.Temperature != *src { - return false - } - return true -} -func (p *LLMConfig) Field2DeepEqual(src *int32) bool { - - if p.MaxTokens == src { - return true - } else if p.MaxTokens == nil || src == nil { - return false - } - if *p.MaxTokens != *src { - return false - } - return true -} -func (p *LLMConfig) Field3DeepEqual(src *int32) bool { - - if p.TopK == src { - return true - } else if p.TopK == nil || src == nil { - return false - } - if *p.TopK != *src { - return false - } - return true -} -func (p *LLMConfig) Field4DeepEqual(src *float64) bool { - - if p.TopP == src { - return true - } else if p.TopP == nil || src == nil { - return false - } - if *p.TopP != *src { - return false - } - return true -} -func (p *LLMConfig) Field5DeepEqual(src *float64) bool { - - if p.PresencePenalty == src { - return true - } else if p.PresencePenalty == nil || src == nil { - return false - } - if *p.PresencePenalty != *src { - return false - } - return true -} -func (p *LLMConfig) Field6DeepEqual(src *float64) bool { - - if p.FrequencyPenalty == src { - return true - } else if p.FrequencyPenalty == nil || src == nil { - return false - } - if *p.FrequencyPenalty != *src { - return false - } - return true -} -func (p *LLMConfig) Field7DeepEqual(src *bool) bool { - - if p.JSONMode == src { - return true - } else if p.JSONMode == nil || src == nil { - return false - } - if *p.JSONMode != *src { - return false - } - return true -} - -type VariableVal struct { - // 变量key - Key *string `thrift:"key,1,optional" frugal:"1,optional,string" form:"key" json:"key,omitempty" query:"key"` - // 普通变量值(非string类型,如boolean、integer、float、object等,序列化后传入) - Value *string `thrift:"value,2,optional" frugal:"2,optional,string" form:"value" json:"value,omitempty" query:"value"` - // placeholder变量值 - PlaceholderMessages []*Message `thrift:"placeholder_messages,3,optional" frugal:"3,optional,list" form:"placeholder_messages" json:"placeholder_messages,omitempty" query:"placeholder_messages"` - // 多模态变量值 - MultiPartValues []*ContentPart `thrift:"multi_part_values,4,optional" frugal:"4,optional,list" form:"multi_part_values" json:"multi_part_values,omitempty" query:"multi_part_values"` -} - -func NewVariableVal() *VariableVal { - return &VariableVal{} -} - -func (p *VariableVal) InitDefault() { -} - -var VariableVal_Key_DEFAULT string - -func (p *VariableVal) GetKey() (v string) { - if p == nil { - return - } - if !p.IsSetKey() { - return VariableVal_Key_DEFAULT - } - return *p.Key -} - -var VariableVal_Value_DEFAULT string - -func (p *VariableVal) GetValue() (v string) { - if p == nil { - return - } - if !p.IsSetValue() { - return VariableVal_Value_DEFAULT - } - return *p.Value -} - -var VariableVal_PlaceholderMessages_DEFAULT []*Message - -func (p *VariableVal) GetPlaceholderMessages() (v []*Message) { - if p == nil { - return - } - if !p.IsSetPlaceholderMessages() { - return VariableVal_PlaceholderMessages_DEFAULT - } - return p.PlaceholderMessages -} - -var VariableVal_MultiPartValues_DEFAULT []*ContentPart - -func (p *VariableVal) GetMultiPartValues() (v []*ContentPart) { - if p == nil { - return - } - if !p.IsSetMultiPartValues() { - return VariableVal_MultiPartValues_DEFAULT - } - return p.MultiPartValues -} -func (p *VariableVal) SetKey(val *string) { - p.Key = val -} -func (p *VariableVal) SetValue(val *string) { - p.Value = val -} -func (p *VariableVal) SetPlaceholderMessages(val []*Message) { - p.PlaceholderMessages = val -} -func (p *VariableVal) SetMultiPartValues(val []*ContentPart) { - p.MultiPartValues = val -} - -var fieldIDToName_VariableVal = map[int16]string{ - 1: "key", - 2: "value", - 3: "placeholder_messages", - 4: "multi_part_values", -} - -func (p *VariableVal) IsSetKey() bool { - return p.Key != nil -} - -func (p *VariableVal) IsSetValue() bool { - return p.Value != nil -} - -func (p *VariableVal) IsSetPlaceholderMessages() bool { - return p.PlaceholderMessages != nil -} - -func (p *VariableVal) IsSetMultiPartValues() bool { - return p.MultiPartValues != nil -} - -func (p *VariableVal) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.STRING { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.LIST { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 4: - if fieldTypeId == thrift.LIST { - if err = p.ReadField4(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_VariableVal[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *VariableVal) ReadField1(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Key = _field - return nil -} -func (p *VariableVal) ReadField2(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Value = _field - return nil -} -func (p *VariableVal) ReadField3(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { - return err - } - _field := make([]*Message, 0, size) - values := make([]Message, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - - if err := _elem.Read(iprot); err != nil { - return err - } - - _field = append(_field, _elem) - } - if err := iprot.ReadListEnd(); err != nil { - return err - } - p.PlaceholderMessages = _field - return nil -} -func (p *VariableVal) ReadField4(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { - return err - } - _field := make([]*ContentPart, 0, size) - values := make([]ContentPart, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - - if err := _elem.Read(iprot); err != nil { - return err - } - - _field = append(_field, _elem) - } - if err := iprot.ReadListEnd(); err != nil { - return err - } - p.MultiPartValues = _field - return nil -} - -func (p *VariableVal) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("VariableVal"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } - if err = p.writeField4(oprot); err != nil { - fieldId = 4 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *VariableVal) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetKey() { - if err = oprot.WriteFieldBegin("key", thrift.STRING, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Key); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *VariableVal) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetValue() { - if err = oprot.WriteFieldBegin("value", thrift.STRING, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Value); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *VariableVal) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetPlaceholderMessages() { - if err = oprot.WriteFieldBegin("placeholder_messages", thrift.LIST, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.PlaceholderMessages)); err != nil { - return err - } - for _, v := range p.PlaceholderMessages { - if err := v.Write(oprot); err != nil { - return err - } - } - if err := oprot.WriteListEnd(); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} -func (p *VariableVal) writeField4(oprot thrift.TProtocol) (err error) { - if p.IsSetMultiPartValues() { - if err = oprot.WriteFieldBegin("multi_part_values", thrift.LIST, 4); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.MultiPartValues)); err != nil { - return err - } - for _, v := range p.MultiPartValues { - if err := v.Write(oprot); err != nil { - return err - } - } - if err := oprot.WriteListEnd(); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) -} - -func (p *VariableVal) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("VariableVal(%+v)", *p) - -} - -func (p *VariableVal) DeepEqual(ano *VariableVal) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.Key) { - return false - } - if !p.Field2DeepEqual(ano.Value) { - return false - } - if !p.Field3DeepEqual(ano.PlaceholderMessages) { - return false - } - if !p.Field4DeepEqual(ano.MultiPartValues) { - return false - } - return true -} - -func (p *VariableVal) Field1DeepEqual(src *string) bool { - - if p.Key == src { - return true - } else if p.Key == nil || src == nil { - return false - } - if strings.Compare(*p.Key, *src) != 0 { - return false - } - return true -} -func (p *VariableVal) Field2DeepEqual(src *string) bool { - - if p.Value == src { - return true - } else if p.Value == nil || src == nil { - return false - } - if strings.Compare(*p.Value, *src) != 0 { - return false - } - return true -} -func (p *VariableVal) Field3DeepEqual(src []*Message) bool { - - if len(p.PlaceholderMessages) != len(src) { - return false - } - for i, v := range p.PlaceholderMessages { - _src := src[i] - if !v.DeepEqual(_src) { - return false - } - } - return true -} -func (p *VariableVal) Field4DeepEqual(src []*ContentPart) bool { - - if len(p.MultiPartValues) != len(src) { - return false - } - for i, v := range p.MultiPartValues { - _src := src[i] - if !v.DeepEqual(_src) { - return false - } - } - return true -} - -type TokenUsage struct { - // 输入消耗 - InputTokens *int32 `thrift:"input_tokens,1,optional" frugal:"1,optional,i32" form:"input_tokens" json:"input_tokens,omitempty" query:"input_tokens"` - // 输出消耗 - OutputTokens *int32 `thrift:"output_tokens,2,optional" frugal:"2,optional,i32" form:"output_tokens" json:"output_tokens,omitempty" query:"output_tokens"` -} - -func NewTokenUsage() *TokenUsage { - return &TokenUsage{} -} - -func (p *TokenUsage) InitDefault() { -} - -var TokenUsage_InputTokens_DEFAULT int32 - -func (p *TokenUsage) GetInputTokens() (v int32) { - if p == nil { - return - } - if !p.IsSetInputTokens() { - return TokenUsage_InputTokens_DEFAULT - } - return *p.InputTokens -} - -var TokenUsage_OutputTokens_DEFAULT int32 - -func (p *TokenUsage) GetOutputTokens() (v int32) { - if p == nil { - return - } - if !p.IsSetOutputTokens() { - return TokenUsage_OutputTokens_DEFAULT - } - return *p.OutputTokens -} -func (p *TokenUsage) SetInputTokens(val *int32) { - p.InputTokens = val -} -func (p *TokenUsage) SetOutputTokens(val *int32) { - p.OutputTokens = val -} - -var fieldIDToName_TokenUsage = map[int16]string{ - 1: "input_tokens", - 2: "output_tokens", -} - -func (p *TokenUsage) IsSetInputTokens() bool { - return p.InputTokens != nil -} - -func (p *TokenUsage) IsSetOutputTokens() bool { - return p.OutputTokens != nil -} - -func (p *TokenUsage) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.I32 { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.I32 { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_TokenUsage[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *TokenUsage) ReadField1(iprot thrift.TProtocol) error { - - var _field *int32 - if v, err := iprot.ReadI32(); err != nil { - return err - } else { - _field = &v - } - p.InputTokens = _field - return nil -} -func (p *TokenUsage) ReadField2(iprot thrift.TProtocol) error { - - var _field *int32 - if v, err := iprot.ReadI32(); err != nil { - return err - } else { - _field = &v - } - p.OutputTokens = _field - return nil -} - -func (p *TokenUsage) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("TokenUsage"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *TokenUsage) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetInputTokens() { - if err = oprot.WriteFieldBegin("input_tokens", thrift.I32, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI32(*p.InputTokens); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *TokenUsage) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetOutputTokens() { - if err = oprot.WriteFieldBegin("output_tokens", thrift.I32, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI32(*p.OutputTokens); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} - -func (p *TokenUsage) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("TokenUsage(%+v)", *p) - -} - -func (p *TokenUsage) DeepEqual(ano *TokenUsage) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.InputTokens) { - return false - } - if !p.Field2DeepEqual(ano.OutputTokens) { - return false - } - return true -} - -func (p *TokenUsage) Field1DeepEqual(src *int32) bool { - - if p.InputTokens == src { - return true - } else if p.InputTokens == nil || src == nil { - return false - } - if *p.InputTokens != *src { - return false - } - return true -} -func (p *TokenUsage) Field2DeepEqual(src *int32) bool { - - if p.OutputTokens == src { - return true - } else if p.OutputTokens == nil || src == nil { - return false - } - if *p.OutputTokens != *src { - return false - } - return true -} - -type ListPromptBasicRequest struct { - WorkspaceID *int64 `thrift:"workspace_id,1,optional" frugal:"1,optional,i64" json:"workspace_id" form:"workspace_id" ` - PageNumber *int32 `thrift:"page_number,2,optional" frugal:"2,optional,i32" form:"page_number" json:"page_number,omitempty"` - PageSize *int32 `thrift:"page_size,3,optional" frugal:"3,optional,i32" form:"page_size" json:"page_size,omitempty"` - // name/key前缀匹配 - KeyWord *string `thrift:"key_word,4,optional" frugal:"4,optional,string" form:"key_word" json:"key_word,omitempty"` - // 创建人 - Creator *string `thrift:"creator,5,optional" frugal:"5,optional,string" form:"creator" json:"creator,omitempty"` - Extra *extra.Extra `thrift:"extra,254,optional" frugal:"254,optional,extra.Extra" form:"extra" json:"extra,omitempty" query:"extra"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` -} - -func NewListPromptBasicRequest() *ListPromptBasicRequest { - return &ListPromptBasicRequest{} -} - -func (p *ListPromptBasicRequest) InitDefault() { -} - -var ListPromptBasicRequest_WorkspaceID_DEFAULT int64 - -func (p *ListPromptBasicRequest) GetWorkspaceID() (v int64) { - if p == nil { - return - } - if !p.IsSetWorkspaceID() { - return ListPromptBasicRequest_WorkspaceID_DEFAULT - } - return *p.WorkspaceID -} - -var ListPromptBasicRequest_PageNumber_DEFAULT int32 - -func (p *ListPromptBasicRequest) GetPageNumber() (v int32) { - if p == nil { - return - } - if !p.IsSetPageNumber() { - return ListPromptBasicRequest_PageNumber_DEFAULT - } - return *p.PageNumber -} - -var ListPromptBasicRequest_PageSize_DEFAULT int32 - -func (p *ListPromptBasicRequest) GetPageSize() (v int32) { - if p == nil { - return - } - if !p.IsSetPageSize() { - return ListPromptBasicRequest_PageSize_DEFAULT - } - return *p.PageSize -} - -var ListPromptBasicRequest_KeyWord_DEFAULT string - -func (p *ListPromptBasicRequest) GetKeyWord() (v string) { - if p == nil { - return - } - if !p.IsSetKeyWord() { - return ListPromptBasicRequest_KeyWord_DEFAULT - } - return *p.KeyWord -} - -var ListPromptBasicRequest_Creator_DEFAULT string - -func (p *ListPromptBasicRequest) GetCreator() (v string) { - if p == nil { - return - } - if !p.IsSetCreator() { - return ListPromptBasicRequest_Creator_DEFAULT - } - return *p.Creator -} - -var ListPromptBasicRequest_Extra_DEFAULT *extra.Extra - -func (p *ListPromptBasicRequest) GetExtra() (v *extra.Extra) { - if p == nil { - return - } - if !p.IsSetExtra() { - return ListPromptBasicRequest_Extra_DEFAULT - } - return p.Extra -} - -var ListPromptBasicRequest_Base_DEFAULT *base.Base - -func (p *ListPromptBasicRequest) GetBase() (v *base.Base) { - if p == nil { - return - } - if !p.IsSetBase() { - return ListPromptBasicRequest_Base_DEFAULT - } - return p.Base -} -func (p *ListPromptBasicRequest) SetWorkspaceID(val *int64) { - p.WorkspaceID = val -} -func (p *ListPromptBasicRequest) SetPageNumber(val *int32) { - p.PageNumber = val -} -func (p *ListPromptBasicRequest) SetPageSize(val *int32) { - p.PageSize = val -} -func (p *ListPromptBasicRequest) SetKeyWord(val *string) { - p.KeyWord = val -} -func (p *ListPromptBasicRequest) SetCreator(val *string) { - p.Creator = val -} -func (p *ListPromptBasicRequest) SetExtra(val *extra.Extra) { - p.Extra = val -} -func (p *ListPromptBasicRequest) SetBase(val *base.Base) { - p.Base = val -} - -var fieldIDToName_ListPromptBasicRequest = map[int16]string{ - 1: "workspace_id", - 2: "page_number", - 3: "page_size", - 4: "key_word", - 5: "creator", - 254: "extra", - 255: "Base", -} - -func (p *ListPromptBasicRequest) IsSetWorkspaceID() bool { - return p.WorkspaceID != nil -} - -func (p *ListPromptBasicRequest) IsSetPageNumber() bool { - return p.PageNumber != nil -} - -func (p *ListPromptBasicRequest) IsSetPageSize() bool { - return p.PageSize != nil -} - -func (p *ListPromptBasicRequest) IsSetKeyWord() bool { - return p.KeyWord != nil -} - -func (p *ListPromptBasicRequest) IsSetCreator() bool { - return p.Creator != nil -} - -func (p *ListPromptBasicRequest) IsSetExtra() bool { - return p.Extra != nil -} - -func (p *ListPromptBasicRequest) IsSetBase() bool { - return p.Base != nil -} - -func (p *ListPromptBasicRequest) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.I64 { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.I32 { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.I32 { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 4: - if fieldTypeId == thrift.STRING { - if err = p.ReadField4(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 5: - if fieldTypeId == thrift.STRING { - if err = p.ReadField5(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 254: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField254(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 255: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField255(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListPromptBasicRequest[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *ListPromptBasicRequest) ReadField1(iprot thrift.TProtocol) error { - - var _field *int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _field = &v - } - p.WorkspaceID = _field - return nil -} -func (p *ListPromptBasicRequest) ReadField2(iprot thrift.TProtocol) error { - - var _field *int32 - if v, err := iprot.ReadI32(); err != nil { - return err - } else { - _field = &v - } - p.PageNumber = _field - return nil -} -func (p *ListPromptBasicRequest) ReadField3(iprot thrift.TProtocol) error { - - var _field *int32 - if v, err := iprot.ReadI32(); err != nil { - return err - } else { - _field = &v - } - p.PageSize = _field - return nil -} -func (p *ListPromptBasicRequest) ReadField4(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.KeyWord = _field - return nil -} -func (p *ListPromptBasicRequest) ReadField5(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Creator = _field - return nil -} -func (p *ListPromptBasicRequest) ReadField254(iprot thrift.TProtocol) error { - _field := extra.NewExtra() - if err := _field.Read(iprot); err != nil { - return err - } - p.Extra = _field - return nil -} -func (p *ListPromptBasicRequest) ReadField255(iprot thrift.TProtocol) error { - _field := base.NewBase() - if err := _field.Read(iprot); err != nil { - return err - } - p.Base = _field - return nil -} - -func (p *ListPromptBasicRequest) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("ListPromptBasicRequest"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } - if err = p.writeField4(oprot); err != nil { - fieldId = 4 - goto WriteFieldError - } - if err = p.writeField5(oprot); err != nil { - fieldId = 5 - goto WriteFieldError - } - if err = p.writeField254(oprot); err != nil { - fieldId = 254 - goto WriteFieldError - } - if err = p.writeField255(oprot); err != nil { - fieldId = 255 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *ListPromptBasicRequest) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetWorkspaceID() { - if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(*p.WorkspaceID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *ListPromptBasicRequest) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetPageNumber() { - if err = oprot.WriteFieldBegin("page_number", thrift.I32, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI32(*p.PageNumber); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *ListPromptBasicRequest) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetPageSize() { - if err = oprot.WriteFieldBegin("page_size", thrift.I32, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI32(*p.PageSize); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} -func (p *ListPromptBasicRequest) writeField4(oprot thrift.TProtocol) (err error) { - if p.IsSetKeyWord() { - if err = oprot.WriteFieldBegin("key_word", thrift.STRING, 4); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.KeyWord); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) -} -func (p *ListPromptBasicRequest) writeField5(oprot thrift.TProtocol) (err error) { - if p.IsSetCreator() { - if err = oprot.WriteFieldBegin("creator", thrift.STRING, 5); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Creator); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) -} -func (p *ListPromptBasicRequest) writeField254(oprot thrift.TProtocol) (err error) { - if p.IsSetExtra() { - if err = oprot.WriteFieldBegin("extra", thrift.STRUCT, 254); err != nil { - goto WriteFieldBeginError - } - if err := p.Extra.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 254 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 254 end error: ", p), err) -} -func (p *ListPromptBasicRequest) writeField255(oprot thrift.TProtocol) (err error) { - if p.IsSetBase() { - if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { - goto WriteFieldBeginError - } - if err := p.Base.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 255 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) -} - -func (p *ListPromptBasicRequest) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("ListPromptBasicRequest(%+v)", *p) - -} - -func (p *ListPromptBasicRequest) DeepEqual(ano *ListPromptBasicRequest) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.WorkspaceID) { - return false - } - if !p.Field2DeepEqual(ano.PageNumber) { - return false - } - if !p.Field3DeepEqual(ano.PageSize) { - return false - } - if !p.Field4DeepEqual(ano.KeyWord) { - return false - } - if !p.Field5DeepEqual(ano.Creator) { - return false - } - if !p.Field254DeepEqual(ano.Extra) { - return false - } - if !p.Field255DeepEqual(ano.Base) { - return false - } - return true -} - -func (p *ListPromptBasicRequest) Field1DeepEqual(src *int64) bool { - - if p.WorkspaceID == src { - return true - } else if p.WorkspaceID == nil || src == nil { - return false - } - if *p.WorkspaceID != *src { - return false - } - return true -} -func (p *ListPromptBasicRequest) Field2DeepEqual(src *int32) bool { - - if p.PageNumber == src { - return true - } else if p.PageNumber == nil || src == nil { - return false - } - if *p.PageNumber != *src { - return false - } - return true -} -func (p *ListPromptBasicRequest) Field3DeepEqual(src *int32) bool { - - if p.PageSize == src { - return true - } else if p.PageSize == nil || src == nil { - return false - } - if *p.PageSize != *src { - return false - } - return true -} -func (p *ListPromptBasicRequest) Field4DeepEqual(src *string) bool { - - if p.KeyWord == src { - return true - } else if p.KeyWord == nil || src == nil { - return false - } - if strings.Compare(*p.KeyWord, *src) != 0 { - return false - } - return true -} -func (p *ListPromptBasicRequest) Field5DeepEqual(src *string) bool { - - if p.Creator == src { - return true - } else if p.Creator == nil || src == nil { - return false - } - if strings.Compare(*p.Creator, *src) != 0 { - return false - } - return true -} -func (p *ListPromptBasicRequest) Field254DeepEqual(src *extra.Extra) bool { - - if !p.Extra.DeepEqual(src) { - return false - } - return true -} -func (p *ListPromptBasicRequest) Field255DeepEqual(src *base.Base) bool { - - if !p.Base.DeepEqual(src) { - return false - } - return true -} - -type ListPromptBasicResponse struct { - Code *int32 `thrift:"code,1,optional" frugal:"1,optional,i32" form:"code" json:"code,omitempty" query:"code"` - Msg *string `thrift:"msg,2,optional" frugal:"2,optional,string" form:"msg" json:"msg,omitempty" query:"msg"` - Data *ListPromptBasicData `thrift:"data,3,optional" frugal:"3,optional,ListPromptBasicData" form:"data" json:"data,omitempty" query:"data"` - BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` -} - -func NewListPromptBasicResponse() *ListPromptBasicResponse { - return &ListPromptBasicResponse{} -} - -func (p *ListPromptBasicResponse) InitDefault() { -} - -var ListPromptBasicResponse_Code_DEFAULT int32 - -func (p *ListPromptBasicResponse) GetCode() (v int32) { - if p == nil { - return - } - if !p.IsSetCode() { - return ListPromptBasicResponse_Code_DEFAULT - } - return *p.Code -} - -var ListPromptBasicResponse_Msg_DEFAULT string - -func (p *ListPromptBasicResponse) GetMsg() (v string) { - if p == nil { - return - } - if !p.IsSetMsg() { - return ListPromptBasicResponse_Msg_DEFAULT - } - return *p.Msg -} - -var ListPromptBasicResponse_Data_DEFAULT *ListPromptBasicData - -func (p *ListPromptBasicResponse) GetData() (v *ListPromptBasicData) { - if p == nil { - return - } - if !p.IsSetData() { - return ListPromptBasicResponse_Data_DEFAULT - } - return p.Data -} - -var ListPromptBasicResponse_BaseResp_DEFAULT *base.BaseResp - -func (p *ListPromptBasicResponse) GetBaseResp() (v *base.BaseResp) { - if p == nil { - return - } - if !p.IsSetBaseResp() { - return ListPromptBasicResponse_BaseResp_DEFAULT - } - return p.BaseResp -} -func (p *ListPromptBasicResponse) SetCode(val *int32) { - p.Code = val -} -func (p *ListPromptBasicResponse) SetMsg(val *string) { - p.Msg = val -} -func (p *ListPromptBasicResponse) SetData(val *ListPromptBasicData) { - p.Data = val -} -func (p *ListPromptBasicResponse) SetBaseResp(val *base.BaseResp) { - p.BaseResp = val -} - -var fieldIDToName_ListPromptBasicResponse = map[int16]string{ - 1: "code", - 2: "msg", - 3: "data", - 255: "BaseResp", -} - -func (p *ListPromptBasicResponse) IsSetCode() bool { - return p.Code != nil -} - -func (p *ListPromptBasicResponse) IsSetMsg() bool { - return p.Msg != nil -} - -func (p *ListPromptBasicResponse) IsSetData() bool { - return p.Data != nil -} - -func (p *ListPromptBasicResponse) IsSetBaseResp() bool { - return p.BaseResp != nil -} - -func (p *ListPromptBasicResponse) Read(iprot thrift.TProtocol) (err error) { - var fieldTypeId thrift.TType - var fieldId int16 - - if _, err = iprot.ReadStructBegin(); err != nil { - goto ReadStructBeginError - } - - for { - _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - - switch fieldId { - case 1: - if fieldTypeId == thrift.I32 { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.STRING { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 255: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField255(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - default: - if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError - } - } - if err = iprot.ReadStructEnd(); err != nil { - goto ReadStructEndError - } - - return nil -ReadStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) -ReadFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListPromptBasicResponse[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) - -ReadFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) -ReadStructEndError: - return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -} - -func (p *ListPromptBasicResponse) ReadField1(iprot thrift.TProtocol) error { - - var _field *int32 - if v, err := iprot.ReadI32(); err != nil { - return err - } else { - _field = &v - } - p.Code = _field - return nil -} -func (p *ListPromptBasicResponse) ReadField2(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.Msg = _field - return nil -} -func (p *ListPromptBasicResponse) ReadField3(iprot thrift.TProtocol) error { - _field := NewListPromptBasicData() - if err := _field.Read(iprot); err != nil { - return err - } - p.Data = _field - return nil -} -func (p *ListPromptBasicResponse) ReadField255(iprot thrift.TProtocol) error { - _field := base.NewBaseResp() - if err := _field.Read(iprot); err != nil { - return err - } - p.BaseResp = _field - return nil -} - -func (p *ListPromptBasicResponse) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("ListPromptBasicResponse"); err != nil { - goto WriteStructBeginError - } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 - goto WriteFieldError - } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } - if err = p.writeField255(oprot); err != nil { - fieldId = 255 - goto WriteFieldError - } - } - if err = oprot.WriteFieldStop(); err != nil { - goto WriteFieldStopError - } - if err = oprot.WriteStructEnd(); err != nil { - goto WriteStructEndError - } - return nil -WriteStructBeginError: - return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) -WriteFieldError: - return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) -WriteFieldStopError: - return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) -WriteStructEndError: - return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) -} - -func (p *ListPromptBasicResponse) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetCode() { - if err = oprot.WriteFieldBegin("code", thrift.I32, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI32(*p.Code); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *ListPromptBasicResponse) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetMsg() { - if err = oprot.WriteFieldBegin("msg", thrift.STRING, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Msg); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *ListPromptBasicResponse) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetData() { - if err = oprot.WriteFieldBegin("data", thrift.STRUCT, 3); err != nil { - goto WriteFieldBeginError - } - if err := p.Data.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} -func (p *ListPromptBasicResponse) writeField255(oprot thrift.TProtocol) (err error) { - if p.IsSetBaseResp() { - if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { - goto WriteFieldBeginError - } - if err := p.BaseResp.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 255 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) -} - -func (p *ListPromptBasicResponse) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("ListPromptBasicResponse(%+v)", *p) - -} - -func (p *ListPromptBasicResponse) DeepEqual(ano *ListPromptBasicResponse) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false - } - if !p.Field1DeepEqual(ano.Code) { - return false - } - if !p.Field2DeepEqual(ano.Msg) { - return false - } - if !p.Field3DeepEqual(ano.Data) { - return false - } - if !p.Field255DeepEqual(ano.BaseResp) { - return false - } - return true -} - -func (p *ListPromptBasicResponse) Field1DeepEqual(src *int32) bool { - - if p.Code == src { + if p.Event == src { return true - } else if p.Code == nil || src == nil { + } else if p.Event == nil || src == nil { return false } - if *p.Code != *src { + if strings.Compare(*p.Event, *src) != 0 { return false } return true } -func (p *ListPromptBasicResponse) Field2DeepEqual(src *string) bool { +func (p *ExecuteStreamingResponse) Field3DeepEqual(src *int64) bool { - if p.Msg == src { + if p.Retry == src { return true - } else if p.Msg == nil || src == nil { + } else if p.Retry == nil || src == nil { return false } - if strings.Compare(*p.Msg, *src) != 0 { + if *p.Retry != *src { return false } return true } -func (p *ListPromptBasicResponse) Field3DeepEqual(src *ListPromptBasicData) bool { +func (p *ExecuteStreamingResponse) Field4DeepEqual(src *prompt.ExecuteStreamingData) bool { if !p.Data.DeepEqual(src) { return false } return true } -func (p *ListPromptBasicResponse) Field255DeepEqual(src *base.BaseResp) bool { +func (p *ExecuteStreamingResponse) Field255DeepEqual(src *base.BaseResp) bool { if !p.BaseResp.DeepEqual(src) { return false @@ -11013,262 +2896,170 @@ func (p *ListPromptBasicResponse) Field255DeepEqual(src *base.BaseResp) bool { return true } -type PromptBasic struct { - // Prompt ID - ID *int64 `thrift:"id,1,optional" frugal:"1,optional,i64" json:"id" form:"id" query:"id"` - // 工作空间ID - WorkspaceID *int64 `thrift:"workspace_id,2,optional" frugal:"2,optional,i64" json:"workspace_id" form:"workspace_id" query:"workspace_id"` - // 唯一标识 - PromptKey *string `thrift:"prompt_key,3,optional" frugal:"3,optional,string" form:"prompt_key" json:"prompt_key,omitempty" query:"prompt_key"` - // Prompt名称 - DisplayName *string `thrift:"display_name,4,optional" frugal:"4,optional,string" form:"display_name" json:"display_name,omitempty" query:"display_name"` - // Prompt描述 - Description *string `thrift:"description,5,optional" frugal:"5,optional,string" form:"description" json:"description,omitempty" query:"description"` - // 最新版本 - LatestVersion *string `thrift:"latest_version,6,optional" frugal:"6,optional,string" form:"latest_version" json:"latest_version,omitempty" query:"latest_version"` - // 创建者 - CreatedBy *string `thrift:"created_by,7,optional" frugal:"7,optional,string" form:"created_by" json:"created_by,omitempty" query:"created_by"` - // 更新者 - UpdatedBy *string `thrift:"updated_by,8,optional" frugal:"8,optional,string" form:"updated_by" json:"updated_by,omitempty" query:"updated_by"` - // 创建时间 - CreatedAt *int64 `thrift:"created_at,9,optional" frugal:"9,optional,i64" json:"created_at" form:"created_at" query:"created_at"` - // 更新时间 - UpdatedAt *int64 `thrift:"updated_at,10,optional" frugal:"10,optional,i64" json:"updated_at" form:"updated_at" query:"updated_at"` - // 最后提交时间 - LatestCommittedAt *int64 `thrift:"latest_committed_at,11,optional" frugal:"11,optional,i64" json:"latest_committed_at" form:"latest_committed_at" query:"latest_committed_at"` -} - -func NewPromptBasic() *PromptBasic { - return &PromptBasic{} +type ListPromptBasicRequest struct { + WorkspaceID *int64 `thrift:"workspace_id,1,optional" frugal:"1,optional,i64" json:"workspace_id" form:"workspace_id" ` + PageNumber *int32 `thrift:"page_number,2,optional" frugal:"2,optional,i32" form:"page_number" json:"page_number,omitempty"` + PageSize *int32 `thrift:"page_size,3,optional" frugal:"3,optional,i32" form:"page_size" json:"page_size,omitempty"` + // name/key前缀匹配 + KeyWord *string `thrift:"key_word,4,optional" frugal:"4,optional,string" form:"key_word" json:"key_word,omitempty"` + // 创建人 + Creator *string `thrift:"creator,5,optional" frugal:"5,optional,string" form:"creator" json:"creator,omitempty"` + // 额外查询条件 + Extra map[string]string `thrift:"extra,6,optional" frugal:"6,optional,map" form:"extra" json:"extra,omitempty"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } -func (p *PromptBasic) InitDefault() { +func NewListPromptBasicRequest() *ListPromptBasicRequest { + return &ListPromptBasicRequest{} } -var PromptBasic_ID_DEFAULT int64 - -func (p *PromptBasic) GetID() (v int64) { - if p == nil { - return - } - if !p.IsSetID() { - return PromptBasic_ID_DEFAULT - } - return *p.ID +func (p *ListPromptBasicRequest) InitDefault() { } -var PromptBasic_WorkspaceID_DEFAULT int64 +var ListPromptBasicRequest_WorkspaceID_DEFAULT int64 -func (p *PromptBasic) GetWorkspaceID() (v int64) { +func (p *ListPromptBasicRequest) GetWorkspaceID() (v int64) { if p == nil { return } if !p.IsSetWorkspaceID() { - return PromptBasic_WorkspaceID_DEFAULT + return ListPromptBasicRequest_WorkspaceID_DEFAULT } return *p.WorkspaceID } -var PromptBasic_PromptKey_DEFAULT string - -func (p *PromptBasic) GetPromptKey() (v string) { - if p == nil { - return - } - if !p.IsSetPromptKey() { - return PromptBasic_PromptKey_DEFAULT - } - return *p.PromptKey -} - -var PromptBasic_DisplayName_DEFAULT string - -func (p *PromptBasic) GetDisplayName() (v string) { - if p == nil { - return - } - if !p.IsSetDisplayName() { - return PromptBasic_DisplayName_DEFAULT - } - return *p.DisplayName -} - -var PromptBasic_Description_DEFAULT string - -func (p *PromptBasic) GetDescription() (v string) { - if p == nil { - return - } - if !p.IsSetDescription() { - return PromptBasic_Description_DEFAULT - } - return *p.Description -} - -var PromptBasic_LatestVersion_DEFAULT string +var ListPromptBasicRequest_PageNumber_DEFAULT int32 -func (p *PromptBasic) GetLatestVersion() (v string) { +func (p *ListPromptBasicRequest) GetPageNumber() (v int32) { if p == nil { return } - if !p.IsSetLatestVersion() { - return PromptBasic_LatestVersion_DEFAULT + if !p.IsSetPageNumber() { + return ListPromptBasicRequest_PageNumber_DEFAULT } - return *p.LatestVersion + return *p.PageNumber } -var PromptBasic_CreatedBy_DEFAULT string +var ListPromptBasicRequest_PageSize_DEFAULT int32 -func (p *PromptBasic) GetCreatedBy() (v string) { +func (p *ListPromptBasicRequest) GetPageSize() (v int32) { if p == nil { return } - if !p.IsSetCreatedBy() { - return PromptBasic_CreatedBy_DEFAULT + if !p.IsSetPageSize() { + return ListPromptBasicRequest_PageSize_DEFAULT } - return *p.CreatedBy + return *p.PageSize } -var PromptBasic_UpdatedBy_DEFAULT string +var ListPromptBasicRequest_KeyWord_DEFAULT string -func (p *PromptBasic) GetUpdatedBy() (v string) { +func (p *ListPromptBasicRequest) GetKeyWord() (v string) { if p == nil { return } - if !p.IsSetUpdatedBy() { - return PromptBasic_UpdatedBy_DEFAULT + if !p.IsSetKeyWord() { + return ListPromptBasicRequest_KeyWord_DEFAULT } - return *p.UpdatedBy + return *p.KeyWord } -var PromptBasic_CreatedAt_DEFAULT int64 +var ListPromptBasicRequest_Creator_DEFAULT string -func (p *PromptBasic) GetCreatedAt() (v int64) { +func (p *ListPromptBasicRequest) GetCreator() (v string) { if p == nil { return } - if !p.IsSetCreatedAt() { - return PromptBasic_CreatedAt_DEFAULT + if !p.IsSetCreator() { + return ListPromptBasicRequest_Creator_DEFAULT } - return *p.CreatedAt + return *p.Creator } -var PromptBasic_UpdatedAt_DEFAULT int64 +var ListPromptBasicRequest_Extra_DEFAULT map[string]string -func (p *PromptBasic) GetUpdatedAt() (v int64) { +func (p *ListPromptBasicRequest) GetExtra() (v map[string]string) { if p == nil { return } - if !p.IsSetUpdatedAt() { - return PromptBasic_UpdatedAt_DEFAULT + if !p.IsSetExtra() { + return ListPromptBasicRequest_Extra_DEFAULT } - return *p.UpdatedAt + return p.Extra } -var PromptBasic_LatestCommittedAt_DEFAULT int64 +var ListPromptBasicRequest_Base_DEFAULT *base.Base -func (p *PromptBasic) GetLatestCommittedAt() (v int64) { +func (p *ListPromptBasicRequest) GetBase() (v *base.Base) { if p == nil { return } - if !p.IsSetLatestCommittedAt() { - return PromptBasic_LatestCommittedAt_DEFAULT + if !p.IsSetBase() { + return ListPromptBasicRequest_Base_DEFAULT } - return *p.LatestCommittedAt -} -func (p *PromptBasic) SetID(val *int64) { - p.ID = val + return p.Base } -func (p *PromptBasic) SetWorkspaceID(val *int64) { +func (p *ListPromptBasicRequest) SetWorkspaceID(val *int64) { p.WorkspaceID = val } -func (p *PromptBasic) SetPromptKey(val *string) { - p.PromptKey = val -} -func (p *PromptBasic) SetDisplayName(val *string) { - p.DisplayName = val -} -func (p *PromptBasic) SetDescription(val *string) { - p.Description = val -} -func (p *PromptBasic) SetLatestVersion(val *string) { - p.LatestVersion = val -} -func (p *PromptBasic) SetCreatedBy(val *string) { - p.CreatedBy = val +func (p *ListPromptBasicRequest) SetPageNumber(val *int32) { + p.PageNumber = val } -func (p *PromptBasic) SetUpdatedBy(val *string) { - p.UpdatedBy = val +func (p *ListPromptBasicRequest) SetPageSize(val *int32) { + p.PageSize = val } -func (p *PromptBasic) SetCreatedAt(val *int64) { - p.CreatedAt = val +func (p *ListPromptBasicRequest) SetKeyWord(val *string) { + p.KeyWord = val } -func (p *PromptBasic) SetUpdatedAt(val *int64) { - p.UpdatedAt = val +func (p *ListPromptBasicRequest) SetCreator(val *string) { + p.Creator = val } -func (p *PromptBasic) SetLatestCommittedAt(val *int64) { - p.LatestCommittedAt = val +func (p *ListPromptBasicRequest) SetExtra(val map[string]string) { + p.Extra = val } - -var fieldIDToName_PromptBasic = map[int16]string{ - 1: "id", - 2: "workspace_id", - 3: "prompt_key", - 4: "display_name", - 5: "description", - 6: "latest_version", - 7: "created_by", - 8: "updated_by", - 9: "created_at", - 10: "updated_at", - 11: "latest_committed_at", +func (p *ListPromptBasicRequest) SetBase(val *base.Base) { + p.Base = val } -func (p *PromptBasic) IsSetID() bool { - return p.ID != nil +var fieldIDToName_ListPromptBasicRequest = map[int16]string{ + 1: "workspace_id", + 2: "page_number", + 3: "page_size", + 4: "key_word", + 5: "creator", + 6: "extra", + 255: "Base", } -func (p *PromptBasic) IsSetWorkspaceID() bool { +func (p *ListPromptBasicRequest) IsSetWorkspaceID() bool { return p.WorkspaceID != nil } -func (p *PromptBasic) IsSetPromptKey() bool { - return p.PromptKey != nil -} - -func (p *PromptBasic) IsSetDisplayName() bool { - return p.DisplayName != nil -} - -func (p *PromptBasic) IsSetDescription() bool { - return p.Description != nil -} - -func (p *PromptBasic) IsSetLatestVersion() bool { - return p.LatestVersion != nil +func (p *ListPromptBasicRequest) IsSetPageNumber() bool { + return p.PageNumber != nil } -func (p *PromptBasic) IsSetCreatedBy() bool { - return p.CreatedBy != nil +func (p *ListPromptBasicRequest) IsSetPageSize() bool { + return p.PageSize != nil } -func (p *PromptBasic) IsSetUpdatedBy() bool { - return p.UpdatedBy != nil +func (p *ListPromptBasicRequest) IsSetKeyWord() bool { + return p.KeyWord != nil } -func (p *PromptBasic) IsSetCreatedAt() bool { - return p.CreatedAt != nil +func (p *ListPromptBasicRequest) IsSetCreator() bool { + return p.Creator != nil } -func (p *PromptBasic) IsSetUpdatedAt() bool { - return p.UpdatedAt != nil +func (p *ListPromptBasicRequest) IsSetExtra() bool { + return p.Extra != nil } -func (p *PromptBasic) IsSetLatestCommittedAt() bool { - return p.LatestCommittedAt != nil +func (p *ListPromptBasicRequest) IsSetBase() bool { + return p.Base != nil } -func (p *PromptBasic) Read(iprot thrift.TProtocol) (err error) { +func (p *ListPromptBasicRequest) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -11295,7 +3086,7 @@ func (p *PromptBasic) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 2: - if fieldTypeId == thrift.I64 { + if fieldTypeId == thrift.I32 { if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } @@ -11303,7 +3094,7 @@ func (p *PromptBasic) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 3: - if fieldTypeId == thrift.STRING { + if fieldTypeId == thrift.I32 { if err = p.ReadField3(iprot); err != nil { goto ReadFieldError } @@ -11324,51 +3115,19 @@ func (p *PromptBasic) Read(iprot thrift.TProtocol) (err error) { goto ReadFieldError } } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 6: - if fieldTypeId == thrift.STRING { - if err = p.ReadField6(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 7: - if fieldTypeId == thrift.STRING { - if err = p.ReadField7(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 8: - if fieldTypeId == thrift.STRING { - if err = p.ReadField8(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 9: - if fieldTypeId == thrift.I64 { - if err = p.ReadField9(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 10: - if fieldTypeId == thrift.I64 { - if err = p.ReadField10(iprot); err != nil { + goto SkipFieldError + } + case 6: + if fieldTypeId == thrift.MAP { + if err = p.ReadField6(iprot); err != nil { goto ReadFieldError } } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } - case 11: - if fieldTypeId == thrift.I64 { - if err = p.ReadField11(iprot); err != nil { + case 255: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField255(iprot); err != nil { goto ReadFieldError } } else if err = iprot.Skip(fieldTypeId); err != nil { @@ -11393,7 +3152,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptBasic[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListPromptBasicRequest[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -11403,18 +3162,7 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *PromptBasic) ReadField1(iprot thrift.TProtocol) error { - - var _field *int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _field = &v - } - p.ID = _field - return nil -} -func (p *PromptBasic) ReadField2(iprot thrift.TProtocol) error { +func (p *ListPromptBasicRequest) ReadField1(iprot thrift.TProtocol) error { var _field *int64 if v, err := iprot.ReadI64(); err != nil { @@ -11425,29 +3173,29 @@ func (p *PromptBasic) ReadField2(iprot thrift.TProtocol) error { p.WorkspaceID = _field return nil } -func (p *PromptBasic) ReadField3(iprot thrift.TProtocol) error { +func (p *ListPromptBasicRequest) ReadField2(iprot thrift.TProtocol) error { - var _field *string - if v, err := iprot.ReadString(); err != nil { + var _field *int32 + if v, err := iprot.ReadI32(); err != nil { return err } else { _field = &v } - p.PromptKey = _field + p.PageNumber = _field return nil } -func (p *PromptBasic) ReadField4(iprot thrift.TProtocol) error { +func (p *ListPromptBasicRequest) ReadField3(iprot thrift.TProtocol) error { - var _field *string - if v, err := iprot.ReadString(); err != nil { + var _field *int32 + if v, err := iprot.ReadI32(); err != nil { return err } else { _field = &v } - p.DisplayName = _field + p.PageSize = _field return nil } -func (p *PromptBasic) ReadField5(iprot thrift.TProtocol) error { +func (p *ListPromptBasicRequest) ReadField4(iprot thrift.TProtocol) error { var _field *string if v, err := iprot.ReadString(); err != nil { @@ -11455,10 +3203,10 @@ func (p *PromptBasic) ReadField5(iprot thrift.TProtocol) error { } else { _field = &v } - p.Description = _field + p.KeyWord = _field return nil } -func (p *PromptBasic) ReadField6(iprot thrift.TProtocol) error { +func (p *ListPromptBasicRequest) ReadField5(iprot thrift.TProtocol) error { var _field *string if v, err := iprot.ReadString(); err != nil { @@ -11466,68 +3214,50 @@ func (p *PromptBasic) ReadField6(iprot thrift.TProtocol) error { } else { _field = &v } - p.LatestVersion = _field + p.Creator = _field return nil } -func (p *PromptBasic) ReadField7(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { +func (p *ListPromptBasicRequest) ReadField6(iprot thrift.TProtocol) error { + _, _, size, err := iprot.ReadMapBegin() + if err != nil { return err - } else { - _field = &v } - p.CreatedBy = _field - return nil -} -func (p *PromptBasic) ReadField8(iprot thrift.TProtocol) error { + _field := make(map[string]string, size) + for i := 0; i < size; i++ { + var _key string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _key = v + } - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v - } - p.UpdatedBy = _field - return nil -} -func (p *PromptBasic) ReadField9(iprot thrift.TProtocol) error { + var _val string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _val = v + } - var _field *int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _field = &v + _field[_key] = _val } - p.CreatedAt = _field - return nil -} -func (p *PromptBasic) ReadField10(iprot thrift.TProtocol) error { - - var _field *int64 - if v, err := iprot.ReadI64(); err != nil { + if err := iprot.ReadMapEnd(); err != nil { return err - } else { - _field = &v } - p.UpdatedAt = _field + p.Extra = _field return nil } -func (p *PromptBasic) ReadField11(iprot thrift.TProtocol) error { - - var _field *int64 - if v, err := iprot.ReadI64(); err != nil { +func (p *ListPromptBasicRequest) ReadField255(iprot thrift.TProtocol) error { + _field := base.NewBase() + if err := _field.Read(iprot); err != nil { return err - } else { - _field = &v } - p.LatestCommittedAt = _field + p.Base = _field return nil } -func (p *PromptBasic) Write(oprot thrift.TProtocol) (err error) { +func (p *ListPromptBasicRequest) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("PromptBasic"); err != nil { + if err = oprot.WriteStructBegin("ListPromptBasicRequest"); err != nil { goto WriteStructBeginError } if p != nil { @@ -11555,24 +3285,8 @@ func (p *PromptBasic) Write(oprot thrift.TProtocol) (err error) { fieldId = 6 goto WriteFieldError } - if err = p.writeField7(oprot); err != nil { - fieldId = 7 - goto WriteFieldError - } - if err = p.writeField8(oprot); err != nil { - fieldId = 8 - goto WriteFieldError - } - if err = p.writeField9(oprot); err != nil { - fieldId = 9 - goto WriteFieldError - } - if err = p.writeField10(oprot); err != nil { - fieldId = 10 - goto WriteFieldError - } - if err = p.writeField11(oprot); err != nil { - fieldId = 11 + if err = p.writeField255(oprot); err != nil { + fieldId = 255 goto WriteFieldError } } @@ -11593,12 +3307,12 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *PromptBasic) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetID() { - if err = oprot.WriteFieldBegin("id", thrift.I64, 1); err != nil { +func (p *ListPromptBasicRequest) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetWorkspaceID() { + if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI64(*p.ID); err != nil { + if err := oprot.WriteI64(*p.WorkspaceID); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -11611,12 +3325,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *PromptBasic) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetWorkspaceID() { - if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 2); err != nil { +func (p *ListPromptBasicRequest) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetPageNumber() { + if err = oprot.WriteFieldBegin("page_number", thrift.I32, 2); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI64(*p.WorkspaceID); err != nil { + if err := oprot.WriteI32(*p.PageNumber); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -11629,12 +3343,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *PromptBasic) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetPromptKey() { - if err = oprot.WriteFieldBegin("prompt_key", thrift.STRING, 3); err != nil { +func (p *ListPromptBasicRequest) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetPageSize() { + if err = oprot.WriteFieldBegin("page_size", thrift.I32, 3); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteString(*p.PromptKey); err != nil { + if err := oprot.WriteI32(*p.PageSize); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -11647,12 +3361,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) } -func (p *PromptBasic) writeField4(oprot thrift.TProtocol) (err error) { - if p.IsSetDisplayName() { - if err = oprot.WriteFieldBegin("display_name", thrift.STRING, 4); err != nil { +func (p *ListPromptBasicRequest) writeField4(oprot thrift.TProtocol) (err error) { + if p.IsSetKeyWord() { + if err = oprot.WriteFieldBegin("key_word", thrift.STRING, 4); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteString(*p.DisplayName); err != nil { + if err := oprot.WriteString(*p.KeyWord); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -11665,12 +3379,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) } -func (p *PromptBasic) writeField5(oprot thrift.TProtocol) (err error) { - if p.IsSetDescription() { - if err = oprot.WriteFieldBegin("description", thrift.STRING, 5); err != nil { +func (p *ListPromptBasicRequest) writeField5(oprot thrift.TProtocol) (err error) { + if p.IsSetCreator() { + if err = oprot.WriteFieldBegin("creator", thrift.STRING, 5); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteString(*p.Description); err != nil { + if err := oprot.WriteString(*p.Creator); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -11683,84 +3397,23 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) } -func (p *PromptBasic) writeField6(oprot thrift.TProtocol) (err error) { - if p.IsSetLatestVersion() { - if err = oprot.WriteFieldBegin("latest_version", thrift.STRING, 6); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.LatestVersion); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) -} -func (p *PromptBasic) writeField7(oprot thrift.TProtocol) (err error) { - if p.IsSetCreatedBy() { - if err = oprot.WriteFieldBegin("created_by", thrift.STRING, 7); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.CreatedBy); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 7 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) -} -func (p *PromptBasic) writeField8(oprot thrift.TProtocol) (err error) { - if p.IsSetUpdatedBy() { - if err = oprot.WriteFieldBegin("updated_by", thrift.STRING, 8); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.UpdatedBy); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 8 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 8 end error: ", p), err) -} -func (p *PromptBasic) writeField9(oprot thrift.TProtocol) (err error) { - if p.IsSetCreatedAt() { - if err = oprot.WriteFieldBegin("created_at", thrift.I64, 9); err != nil { +func (p *ListPromptBasicRequest) writeField6(oprot thrift.TProtocol) (err error) { + if p.IsSetExtra() { + if err = oprot.WriteFieldBegin("extra", thrift.MAP, 6); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI64(*p.CreatedAt); err != nil { + if err := oprot.WriteMapBegin(thrift.STRING, thrift.STRING, len(p.Extra)); err != nil { return err } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 9 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 9 end error: ", p), err) -} -func (p *PromptBasic) writeField10(oprot thrift.TProtocol) (err error) { - if p.IsSetUpdatedAt() { - if err = oprot.WriteFieldBegin("updated_at", thrift.I64, 10); err != nil { - goto WriteFieldBeginError + for k, v := range p.Extra { + if err := oprot.WriteString(k); err != nil { + return err + } + if err := oprot.WriteString(v); err != nil { + return err + } } - if err := oprot.WriteI64(*p.UpdatedAt); err != nil { + if err := oprot.WriteMapEnd(); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -11769,16 +3422,16 @@ func (p *PromptBasic) writeField10(oprot thrift.TProtocol) (err error) { } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 10 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 10 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) } -func (p *PromptBasic) writeField11(oprot thrift.TProtocol) (err error) { - if p.IsSetLatestCommittedAt() { - if err = oprot.WriteFieldBegin("latest_committed_at", thrift.I64, 11); err != nil { +func (p *ListPromptBasicRequest) writeField255(oprot thrift.TProtocol) (err error) { + if p.IsSetBase() { + if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI64(*p.LatestCommittedAt); err != nil { + if err := p.Base.Write(oprot); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -11787,251 +3440,228 @@ func (p *PromptBasic) writeField11(oprot thrift.TProtocol) (err error) { } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 11 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 255 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 11 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *PromptBasic) String() string { +func (p *ListPromptBasicRequest) String() string { if p == nil { return "" } - return fmt.Sprintf("PromptBasic(%+v)", *p) + return fmt.Sprintf("ListPromptBasicRequest(%+v)", *p) } -func (p *PromptBasic) DeepEqual(ano *PromptBasic) bool { +func (p *ListPromptBasicRequest) DeepEqual(ano *ListPromptBasicRequest) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.ID) { - return false - } - if !p.Field2DeepEqual(ano.WorkspaceID) { - return false - } - if !p.Field3DeepEqual(ano.PromptKey) { - return false - } - if !p.Field4DeepEqual(ano.DisplayName) { - return false - } - if !p.Field5DeepEqual(ano.Description) { - return false - } - if !p.Field6DeepEqual(ano.LatestVersion) { - return false - } - if !p.Field7DeepEqual(ano.CreatedBy) { - return false - } - if !p.Field8DeepEqual(ano.UpdatedBy) { - return false - } - if !p.Field9DeepEqual(ano.CreatedAt) { - return false - } - if !p.Field10DeepEqual(ano.UpdatedAt) { - return false - } - if !p.Field11DeepEqual(ano.LatestCommittedAt) { - return false - } - return true -} - -func (p *PromptBasic) Field1DeepEqual(src *int64) bool { - - if p.ID == src { - return true - } else if p.ID == nil || src == nil { - return false - } - if *p.ID != *src { + if !p.Field1DeepEqual(ano.WorkspaceID) { return false } - return true -} -func (p *PromptBasic) Field2DeepEqual(src *int64) bool { - - if p.WorkspaceID == src { - return true - } else if p.WorkspaceID == nil || src == nil { + if !p.Field2DeepEqual(ano.PageNumber) { return false } - if *p.WorkspaceID != *src { + if !p.Field3DeepEqual(ano.PageSize) { return false } - return true -} -func (p *PromptBasic) Field3DeepEqual(src *string) bool { - - if p.PromptKey == src { - return true - } else if p.PromptKey == nil || src == nil { + if !p.Field4DeepEqual(ano.KeyWord) { return false } - if strings.Compare(*p.PromptKey, *src) != 0 { + if !p.Field5DeepEqual(ano.Creator) { return false } - return true -} -func (p *PromptBasic) Field4DeepEqual(src *string) bool { - - if p.DisplayName == src { - return true - } else if p.DisplayName == nil || src == nil { + if !p.Field6DeepEqual(ano.Extra) { return false } - if strings.Compare(*p.DisplayName, *src) != 0 { + if !p.Field255DeepEqual(ano.Base) { return false } return true } -func (p *PromptBasic) Field5DeepEqual(src *string) bool { - if p.Description == src { +func (p *ListPromptBasicRequest) Field1DeepEqual(src *int64) bool { + + if p.WorkspaceID == src { return true - } else if p.Description == nil || src == nil { + } else if p.WorkspaceID == nil || src == nil { return false } - if strings.Compare(*p.Description, *src) != 0 { + if *p.WorkspaceID != *src { return false } return true } -func (p *PromptBasic) Field6DeepEqual(src *string) bool { +func (p *ListPromptBasicRequest) Field2DeepEqual(src *int32) bool { - if p.LatestVersion == src { + if p.PageNumber == src { return true - } else if p.LatestVersion == nil || src == nil { + } else if p.PageNumber == nil || src == nil { return false } - if strings.Compare(*p.LatestVersion, *src) != 0 { + if *p.PageNumber != *src { return false } return true } -func (p *PromptBasic) Field7DeepEqual(src *string) bool { +func (p *ListPromptBasicRequest) Field3DeepEqual(src *int32) bool { - if p.CreatedBy == src { + if p.PageSize == src { return true - } else if p.CreatedBy == nil || src == nil { + } else if p.PageSize == nil || src == nil { return false } - if strings.Compare(*p.CreatedBy, *src) != 0 { + if *p.PageSize != *src { return false } return true } -func (p *PromptBasic) Field8DeepEqual(src *string) bool { +func (p *ListPromptBasicRequest) Field4DeepEqual(src *string) bool { - if p.UpdatedBy == src { + if p.KeyWord == src { return true - } else if p.UpdatedBy == nil || src == nil { + } else if p.KeyWord == nil || src == nil { return false } - if strings.Compare(*p.UpdatedBy, *src) != 0 { + if strings.Compare(*p.KeyWord, *src) != 0 { return false } return true } -func (p *PromptBasic) Field9DeepEqual(src *int64) bool { +func (p *ListPromptBasicRequest) Field5DeepEqual(src *string) bool { - if p.CreatedAt == src { + if p.Creator == src { return true - } else if p.CreatedAt == nil || src == nil { + } else if p.Creator == nil || src == nil { return false } - if *p.CreatedAt != *src { + if strings.Compare(*p.Creator, *src) != 0 { return false } return true } -func (p *PromptBasic) Field10DeepEqual(src *int64) bool { +func (p *ListPromptBasicRequest) Field6DeepEqual(src map[string]string) bool { - if p.UpdatedAt == src { - return true - } else if p.UpdatedAt == nil || src == nil { + if len(p.Extra) != len(src) { return false } - if *p.UpdatedAt != *src { - return false + for k, v := range p.Extra { + _src := src[k] + if strings.Compare(v, _src) != 0 { + return false + } } return true } -func (p *PromptBasic) Field11DeepEqual(src *int64) bool { +func (p *ListPromptBasicRequest) Field255DeepEqual(src *base.Base) bool { - if p.LatestCommittedAt == src { - return true - } else if p.LatestCommittedAt == nil || src == nil { - return false - } - if *p.LatestCommittedAt != *src { + if !p.Base.DeepEqual(src) { return false } return true } -type ListPromptBasicData struct { - // Prompt列表 - Prompts []*PromptBasic `thrift:"prompts,1,optional" frugal:"1,optional,list" form:"prompts" json:"prompts,omitempty" query:"prompts"` - Total *int32 `thrift:"total,2,optional" frugal:"2,optional,i32" form:"total" json:"total,omitempty" query:"total"` +type ListPromptBasicResponse struct { + Code *int32 `thrift:"code,1,optional" frugal:"1,optional,i32" form:"code" json:"code,omitempty" query:"code"` + Msg *string `thrift:"msg,2,optional" frugal:"2,optional,string" form:"msg" json:"msg,omitempty" query:"msg"` + Data *prompt.ListPromptBasicData `thrift:"data,3,optional" frugal:"3,optional,prompt.ListPromptBasicData" form:"data" json:"data,omitempty" query:"data"` + BaseResp *base.BaseResp `thrift:"BaseResp,255,optional" frugal:"255,optional,base.BaseResp" form:"BaseResp" json:"BaseResp,omitempty" query:"BaseResp"` +} + +func NewListPromptBasicResponse() *ListPromptBasicResponse { + return &ListPromptBasicResponse{} +} + +func (p *ListPromptBasicResponse) InitDefault() { } -func NewListPromptBasicData() *ListPromptBasicData { - return &ListPromptBasicData{} +var ListPromptBasicResponse_Code_DEFAULT int32 + +func (p *ListPromptBasicResponse) GetCode() (v int32) { + if p == nil { + return + } + if !p.IsSetCode() { + return ListPromptBasicResponse_Code_DEFAULT + } + return *p.Code } -func (p *ListPromptBasicData) InitDefault() { +var ListPromptBasicResponse_Msg_DEFAULT string + +func (p *ListPromptBasicResponse) GetMsg() (v string) { + if p == nil { + return + } + if !p.IsSetMsg() { + return ListPromptBasicResponse_Msg_DEFAULT + } + return *p.Msg } -var ListPromptBasicData_Prompts_DEFAULT []*PromptBasic +var ListPromptBasicResponse_Data_DEFAULT *prompt.ListPromptBasicData -func (p *ListPromptBasicData) GetPrompts() (v []*PromptBasic) { +func (p *ListPromptBasicResponse) GetData() (v *prompt.ListPromptBasicData) { if p == nil { return } - if !p.IsSetPrompts() { - return ListPromptBasicData_Prompts_DEFAULT + if !p.IsSetData() { + return ListPromptBasicResponse_Data_DEFAULT } - return p.Prompts + return p.Data } -var ListPromptBasicData_Total_DEFAULT int32 +var ListPromptBasicResponse_BaseResp_DEFAULT *base.BaseResp -func (p *ListPromptBasicData) GetTotal() (v int32) { +func (p *ListPromptBasicResponse) GetBaseResp() (v *base.BaseResp) { if p == nil { return } - if !p.IsSetTotal() { - return ListPromptBasicData_Total_DEFAULT + if !p.IsSetBaseResp() { + return ListPromptBasicResponse_BaseResp_DEFAULT } - return *p.Total + return p.BaseResp +} +func (p *ListPromptBasicResponse) SetCode(val *int32) { + p.Code = val +} +func (p *ListPromptBasicResponse) SetMsg(val *string) { + p.Msg = val +} +func (p *ListPromptBasicResponse) SetData(val *prompt.ListPromptBasicData) { + p.Data = val } -func (p *ListPromptBasicData) SetPrompts(val []*PromptBasic) { - p.Prompts = val +func (p *ListPromptBasicResponse) SetBaseResp(val *base.BaseResp) { + p.BaseResp = val +} + +var fieldIDToName_ListPromptBasicResponse = map[int16]string{ + 1: "code", + 2: "msg", + 3: "data", + 255: "BaseResp", } -func (p *ListPromptBasicData) SetTotal(val *int32) { - p.Total = val + +func (p *ListPromptBasicResponse) IsSetCode() bool { + return p.Code != nil } -var fieldIDToName_ListPromptBasicData = map[int16]string{ - 1: "prompts", - 2: "total", +func (p *ListPromptBasicResponse) IsSetMsg() bool { + return p.Msg != nil } -func (p *ListPromptBasicData) IsSetPrompts() bool { - return p.Prompts != nil +func (p *ListPromptBasicResponse) IsSetData() bool { + return p.Data != nil } -func (p *ListPromptBasicData) IsSetTotal() bool { - return p.Total != nil +func (p *ListPromptBasicResponse) IsSetBaseResp() bool { + return p.BaseResp != nil } -func (p *ListPromptBasicData) Read(iprot thrift.TProtocol) (err error) { +func (p *ListPromptBasicResponse) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -12050,7 +3680,7 @@ func (p *ListPromptBasicData) Read(iprot thrift.TProtocol) (err error) { switch fieldId { case 1: - if fieldTypeId == thrift.LIST { + if fieldTypeId == thrift.I32 { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } @@ -12058,13 +3688,29 @@ func (p *ListPromptBasicData) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 2: - if fieldTypeId == thrift.I32 { + if fieldTypeId == thrift.STRING { if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 3: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 255: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField255(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } default: if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError @@ -12084,7 +3730,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListPromptBasicData[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListPromptBasicResponse[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -12094,44 +3740,48 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ListPromptBasicData) ReadField1(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { - return err - } - _field := make([]*PromptBasic, 0, size) - values := make([]PromptBasic, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - - if err := _elem.Read(iprot); err != nil { - return err - } +func (p *ListPromptBasicResponse) ReadField1(iprot thrift.TProtocol) error { - _field = append(_field, _elem) - } - if err := iprot.ReadListEnd(); err != nil { + var _field *int32 + if v, err := iprot.ReadI32(); err != nil { return err + } else { + _field = &v } - p.Prompts = _field + p.Code = _field return nil } -func (p *ListPromptBasicData) ReadField2(iprot thrift.TProtocol) error { +func (p *ListPromptBasicResponse) ReadField2(iprot thrift.TProtocol) error { - var _field *int32 - if v, err := iprot.ReadI32(); err != nil { + var _field *string + if v, err := iprot.ReadString(); err != nil { return err } else { _field = &v } - p.Total = _field + p.Msg = _field + return nil +} +func (p *ListPromptBasicResponse) ReadField3(iprot thrift.TProtocol) error { + _field := prompt.NewListPromptBasicData() + if err := _field.Read(iprot); err != nil { + return err + } + p.Data = _field + return nil +} +func (p *ListPromptBasicResponse) ReadField255(iprot thrift.TProtocol) error { + _field := base.NewBaseResp() + if err := _field.Read(iprot); err != nil { + return err + } + p.BaseResp = _field return nil } -func (p *ListPromptBasicData) Write(oprot thrift.TProtocol) (err error) { +func (p *ListPromptBasicResponse) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ListPromptBasicData"); err != nil { + if err = oprot.WriteStructBegin("ListPromptBasicResponse"); err != nil { goto WriteStructBeginError } if p != nil { @@ -12143,6 +3793,14 @@ func (p *ListPromptBasicData) Write(oprot thrift.TProtocol) (err error) { fieldId = 2 goto WriteFieldError } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } + if err = p.writeField255(oprot); err != nil { + fieldId = 255 + goto WriteFieldError + } } if err = oprot.WriteFieldStop(); err != nil { goto WriteFieldStopError @@ -12161,20 +3819,12 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ListPromptBasicData) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetPrompts() { - if err = oprot.WriteFieldBegin("prompts", thrift.LIST, 1); err != nil { +func (p *ListPromptBasicResponse) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetCode() { + if err = oprot.WriteFieldBegin("code", thrift.I32, 1); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Prompts)); err != nil { - return err - } - for _, v := range p.Prompts { - if err := v.Write(oprot); err != nil { - return err - } - } - if err := oprot.WriteListEnd(); err != nil { + if err := oprot.WriteI32(*p.Code); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -12187,12 +3837,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ListPromptBasicData) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetTotal() { - if err = oprot.WriteFieldBegin("total", thrift.I32, 2); err != nil { +func (p *ListPromptBasicResponse) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetMsg() { + if err = oprot.WriteFieldBegin("msg", thrift.STRING, 2); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI32(*p.Total); err != nil { + if err := oprot.WriteString(*p.Msg); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -12205,51 +3855,106 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } +func (p *ListPromptBasicResponse) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetData() { + if err = oprot.WriteFieldBegin("data", thrift.STRUCT, 3); err != nil { + goto WriteFieldBeginError + } + if err := p.Data.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) +} +func (p *ListPromptBasicResponse) writeField255(oprot thrift.TProtocol) (err error) { + if p.IsSetBaseResp() { + if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { + goto WriteFieldBeginError + } + if err := p.BaseResp.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) +} -func (p *ListPromptBasicData) String() string { +func (p *ListPromptBasicResponse) String() string { if p == nil { return "" } - return fmt.Sprintf("ListPromptBasicData(%+v)", *p) + return fmt.Sprintf("ListPromptBasicResponse(%+v)", *p) } -func (p *ListPromptBasicData) DeepEqual(ano *ListPromptBasicData) bool { +func (p *ListPromptBasicResponse) DeepEqual(ano *ListPromptBasicResponse) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.Prompts) { + if !p.Field1DeepEqual(ano.Code) { + return false + } + if !p.Field2DeepEqual(ano.Msg) { + return false + } + if !p.Field3DeepEqual(ano.Data) { return false } - if !p.Field2DeepEqual(ano.Total) { + if !p.Field255DeepEqual(ano.BaseResp) { return false } return true } -func (p *ListPromptBasicData) Field1DeepEqual(src []*PromptBasic) bool { +func (p *ListPromptBasicResponse) Field1DeepEqual(src *int32) bool { - if len(p.Prompts) != len(src) { + if p.Code == src { + return true + } else if p.Code == nil || src == nil { return false } - for i, v := range p.Prompts { - _src := src[i] - if !v.DeepEqual(_src) { - return false - } + if *p.Code != *src { + return false } return true } -func (p *ListPromptBasicData) Field2DeepEqual(src *int32) bool { +func (p *ListPromptBasicResponse) Field2DeepEqual(src *string) bool { - if p.Total == src { + if p.Msg == src { return true - } else if p.Total == nil || src == nil { + } else if p.Msg == nil || src == nil { + return false + } + if strings.Compare(*p.Msg, *src) != 0 { + return false + } + return true +} +func (p *ListPromptBasicResponse) Field3DeepEqual(src *prompt.ListPromptBasicData) bool { + + if !p.Data.DeepEqual(src) { return false } - if *p.Total != *src { + return true +} +func (p *ListPromptBasicResponse) Field255DeepEqual(src *base.BaseResp) bool { + + if !p.BaseResp.DeepEqual(src) { return false } return true diff --git a/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi_validator.go b/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi_validator.go index 5d149e79a..4740b88f1 100644 --- a/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi_validator.go +++ b/backend/kitex_gen/coze/loop/prompt/openapi/coze.loop.prompt.openapi_validator.go @@ -47,15 +47,32 @@ func (p *BatchGetPromptByPromptKeyResponse) IsValid() error { } return nil } -func (p *PromptResultData) IsValid() error { - return nil -} func (p *ExecuteRequest) IsValid() error { if p.PromptIdentifier != nil { if err := p.PromptIdentifier.IsValid(); err != nil { return fmt.Errorf("field PromptIdentifier not valid, %w", err) } } + if p.CustomToolCallConfig != nil { + if err := p.CustomToolCallConfig.IsValid(); err != nil { + return fmt.Errorf("field CustomToolCallConfig not valid, %w", err) + } + } + if p.CustomModelConfig != nil { + if err := p.CustomModelConfig.IsValid(); err != nil { + return fmt.Errorf("field CustomModelConfig not valid, %w", err) + } + } + if p.ResponseAPIConfig != nil { + if err := p.ResponseAPIConfig.IsValid(); err != nil { + return fmt.Errorf("field ResponseAPIConfig not valid, %w", err) + } + } + if p.CustomToolConfig != nil { + if err := p.CustomToolConfig.IsValid(); err != nil { + return fmt.Errorf("field CustomToolConfig not valid, %w", err) + } + } if p.Extra != nil { if err := p.Extra.IsValid(); err != nil { return fmt.Errorf("field Extra not valid, %w", err) @@ -81,19 +98,6 @@ func (p *ExecuteResponse) IsValid() error { } return nil } -func (p *ExecuteData) IsValid() error { - if p.Message != nil { - if err := p.Message.IsValid(); err != nil { - return fmt.Errorf("field Message not valid, %w", err) - } - } - if p.Usage != nil { - if err := p.Usage.IsValid(); err != nil { - return fmt.Errorf("field Usage not valid, %w", err) - } - } - return nil -} func (p *ExecuteStreamingResponse) IsValid() error { if p.Data != nil { if err := p.Data.IsValid(); err != nil { @@ -107,123 +111,6 @@ func (p *ExecuteStreamingResponse) IsValid() error { } return nil } -func (p *ExecuteStreamingData) IsValid() error { - if p.Message != nil { - if err := p.Message.IsValid(); err != nil { - return fmt.Errorf("field Message not valid, %w", err) - } - } - if p.Usage != nil { - if err := p.Usage.IsValid(); err != nil { - return fmt.Errorf("field Usage not valid, %w", err) - } - } - return nil -} -func (p *PromptQuery) IsValid() error { - return nil -} -func (p *PromptResult_) IsValid() error { - if p.Query != nil { - if err := p.Query.IsValid(); err != nil { - return fmt.Errorf("field Query not valid, %w", err) - } - } - if p.Prompt != nil { - if err := p.Prompt.IsValid(); err != nil { - return fmt.Errorf("field Prompt not valid, %w", err) - } - } - return nil -} -func (p *Prompt) IsValid() error { - if p.PromptTemplate != nil { - if err := p.PromptTemplate.IsValid(); err != nil { - return fmt.Errorf("field PromptTemplate not valid, %w", err) - } - } - if p.ToolCallConfig != nil { - if err := p.ToolCallConfig.IsValid(); err != nil { - return fmt.Errorf("field ToolCallConfig not valid, %w", err) - } - } - if p.LlmConfig != nil { - if err := p.LlmConfig.IsValid(); err != nil { - return fmt.Errorf("field LlmConfig not valid, %w", err) - } - } - return nil -} -func (p *PromptTemplate) IsValid() error { - return nil -} -func (p *ToolCallConfig) IsValid() error { - if p.ToolChoiceSpecification != nil { - if err := p.ToolChoiceSpecification.IsValid(); err != nil { - return fmt.Errorf("field ToolChoiceSpecification not valid, %w", err) - } - } - return nil -} -func (p *ToolChoiceSpecification) IsValid() error { - return nil -} -func (p *Message) IsValid() error { - return nil -} -func (p *ContentPart) IsValid() error { - if p.Config != nil { - if err := p.Config.IsValid(); err != nil { - return fmt.Errorf("field Config not valid, %w", err) - } - } - return nil -} -func (p *MediaConfig) IsValid() error { - if p.Fps != nil { - if *p.Fps < float64(0.2) { - return fmt.Errorf("field Fps ge rule failed, current value: %v", *p.Fps) - } - if *p.Fps > float64(5) { - return fmt.Errorf("field Fps le rule failed, current value: %v", *p.Fps) - } - } - return nil -} -func (p *VariableDef) IsValid() error { - return nil -} -func (p *Tool) IsValid() error { - if p.Function != nil { - if err := p.Function.IsValid(); err != nil { - return fmt.Errorf("field Function not valid, %w", err) - } - } - return nil -} -func (p *Function) IsValid() error { - return nil -} -func (p *ToolCall) IsValid() error { - if p.FunctionCall != nil { - if err := p.FunctionCall.IsValid(); err != nil { - return fmt.Errorf("field FunctionCall not valid, %w", err) - } - } - return nil -} -func (p *FunctionCall) IsValid() error { - return nil -} -func (p *LLMConfig) IsValid() error { - return nil -} -func (p *VariableVal) IsValid() error { - return nil -} -func (p *TokenUsage) IsValid() error { - return nil -} func (p *ListPromptBasicRequest) IsValid() error { if p.PageNumber != nil { if *p.PageNumber <= int32(0) { @@ -238,11 +125,6 @@ func (p *ListPromptBasicRequest) IsValid() error { return fmt.Errorf("field PageSize le rule failed, current value: %v", *p.PageSize) } } - if p.Extra != nil { - if err := p.Extra.IsValid(); err != nil { - return fmt.Errorf("field Extra not valid, %w", err) - } - } if p.Base != nil { if err := p.Base.IsValid(); err != nil { return fmt.Errorf("field Base not valid, %w", err) @@ -263,9 +145,3 @@ func (p *ListPromptBasicResponse) IsValid() error { } return nil } -func (p *PromptBasic) IsValid() error { - return nil -} -func (p *ListPromptBasicData) IsValid() error { - return nil -} diff --git a/backend/kitex_gen/coze/loop/prompt/openapi/k-coze.loop.prompt.openapi.go b/backend/kitex_gen/coze/loop/prompt/openapi/k-coze.loop.prompt.openapi.go index 801937a74..1b89c5099 100644 --- a/backend/kitex_gen/coze/loop/prompt/openapi/k-coze.loop.prompt.openapi.go +++ b/backend/kitex_gen/coze/loop/prompt/openapi/k-coze.loop.prompt.openapi.go @@ -13,7 +13,7 @@ import ( "github.com/coze-dev/coze-loop/backend/kitex_gen/base" "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/extra" - "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/prompt/domain/prompt" + "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/prompt/domain_openapi/prompt" ) var ( @@ -144,8 +144,8 @@ func (p *BatchGetPromptByPromptKeyRequest) FastReadField2(buf []byte) (int, erro if err != nil { return offset, err } - _field := make([]*PromptQuery, 0, size) - values := make([]PromptQuery, size) + _field := make([]*prompt.PromptQuery, 0, size) + values := make([]prompt.PromptQuery, size) for i := 0; i < size; i++ { _elem := &values[i] _elem.InitDefault() @@ -308,11 +308,11 @@ func (p *BatchGetPromptByPromptKeyRequest) DeepCopy(s interface{}) error { } if src.Queries != nil { - p.Queries = make([]*PromptQuery, 0, len(src.Queries)) + p.Queries = make([]*prompt.PromptQuery, 0, len(src.Queries)) for _, elem := range src.Queries { - var _elem *PromptQuery + var _elem *prompt.PromptQuery if elem != nil { - _elem = &PromptQuery{} + _elem = &prompt.PromptQuery{} if err := _elem.DeepCopy(elem); err != nil { return err } @@ -464,7 +464,7 @@ func (p *BatchGetPromptByPromptKeyResponse) FastReadField2(buf []byte) (int, err func (p *BatchGetPromptByPromptKeyResponse) FastReadField3(buf []byte) (int, error) { offset := 0 - _field := NewPromptResultData() + _field := prompt.NewPromptResultData() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -605,9 +605,9 @@ func (p *BatchGetPromptByPromptKeyResponse) DeepCopy(s interface{}) error { p.Msg = &tmp } - var _data *PromptResultData + var _data *prompt.PromptResultData if src.Data != nil { - _data = &PromptResultData{} + _data = &prompt.PromptResultData{} if err := _data.DeepCopy(src.Data); err != nil { return err } @@ -626,7 +626,7 @@ func (p *BatchGetPromptByPromptKeyResponse) DeepCopy(s interface{}) error { return nil } -func (p *PromptResultData) FastRead(buf []byte) (int, error) { +func (p *ExecuteRequest) FastRead(buf []byte) (int, error) { var err error var offset int @@ -644,7 +644,7 @@ func (p *PromptResultData) FastRead(buf []byte) (int, error) { } switch fieldId { case 1: - if fieldTypeId == thrift.LIST { + if fieldTypeId == thrift.I64 { l, err = p.FastReadField1(buf[offset:]) offset += l if err != nil { @@ -657,144 +657,37 @@ func (p *PromptResultData) FastRead(buf []byte) (int, error) { goto SkipFieldError } } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError + case 2: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptResultData[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *PromptResultData) FastReadField1(buf []byte) (int, error) { - offset := 0 - - _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) - offset += l - if err != nil { - return offset, err - } - _field := make([]*PromptResult_, 0, size) - values := make([]PromptResult_, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - if l, err := _elem.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - - _field = append(_field, _elem) - } - p.Items = _field - return offset, nil -} - -func (p *PromptResultData) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *PromptResultData) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *PromptResultData) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *PromptResultData) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetItems() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 1) - listBeginOffset := offset - offset += thrift.Binary.ListBeginLength() - var length int - for _, v := range p.Items { - length++ - offset += v.FastWriteNocopy(buf[offset:], w) - } - thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) - } - return offset -} - -func (p *PromptResultData) field1Length() int { - l := 0 - if p.IsSetItems() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.ListBeginLength() - for _, v := range p.Items { - _ = v - l += v.BLength() - } - } - return l -} - -func (p *PromptResultData) DeepCopy(s interface{}) error { - src, ok := s.(*PromptResultData) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.Items != nil { - p.Items = make([]*PromptResult_, 0, len(src.Items)) - for _, elem := range src.Items { - var _elem *PromptResult_ - if elem != nil { - _elem = &PromptResult_{} - if err := _elem.DeepCopy(elem); err != nil { - return err + case 10: + if fieldTypeId == thrift.LIST { + l, err = p.FastReadField10(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError } } - - p.Items = append(p.Items, _elem) - } - } - - return nil -} - -func (p *ExecuteRequest) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.I64 { - l, err = p.FastReadField1(buf[offset:]) + case 11: + if fieldTypeId == thrift.LIST { + l, err = p.FastReadField11(buf[offset:]) offset += l if err != nil { goto ReadFieldError @@ -806,9 +699,23 @@ func (p *ExecuteRequest) FastRead(buf []byte) (int, error) { goto SkipFieldError } } - case 2: + case 20: + if fieldTypeId == thrift.LIST { + l, err = p.FastReadField20(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 21: if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField2(buf[offset:]) + l, err = p.FastReadField21(buf[offset:]) offset += l if err != nil { goto ReadFieldError @@ -820,9 +727,9 @@ func (p *ExecuteRequest) FastRead(buf []byte) (int, error) { goto SkipFieldError } } - case 10: - if fieldTypeId == thrift.LIST { - l, err = p.FastReadField10(buf[offset:]) + case 22: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField22(buf[offset:]) offset += l if err != nil { goto ReadFieldError @@ -834,9 +741,65 @@ func (p *ExecuteRequest) FastRead(buf []byte) (int, error) { goto SkipFieldError } } - case 11: - if fieldTypeId == thrift.LIST { - l, err = p.FastReadField11(buf[offset:]) + case 23: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField23(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 24: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField24(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 26: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField26(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 28: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField28(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 29: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField29(buf[offset:]) offset += l if err != nil { goto ReadFieldError @@ -910,7 +873,7 @@ func (p *ExecuteRequest) FastReadField1(buf []byte) (int, error) { func (p *ExecuteRequest) FastReadField2(buf []byte) (int, error) { offset := 0 - _field := NewPromptQuery() + _field := prompt.NewPromptQuery() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -928,8 +891,8 @@ func (p *ExecuteRequest) FastReadField10(buf []byte) (int, error) { if err != nil { return offset, err } - _field := make([]*VariableVal, 0, size) - values := make([]VariableVal, size) + _field := make([]*prompt.VariableVal, 0, size) + values := make([]prompt.VariableVal, size) for i := 0; i < size; i++ { _elem := &values[i] _elem.InitDefault() @@ -953,8 +916,8 @@ func (p *ExecuteRequest) FastReadField11(buf []byte) (int, error) { if err != nil { return offset, err } - _field := make([]*Message, 0, size) - values := make([]Message, size) + _field := make([]*prompt.Message, 0, size) + values := make([]prompt.Message, size) for i := 0; i < size; i++ { _elem := &values[i] _elem.InitDefault() @@ -970,42 +933,165 @@ func (p *ExecuteRequest) FastReadField11(buf []byte) (int, error) { return offset, nil } -func (p *ExecuteRequest) FastReadField254(buf []byte) (int, error) { +func (p *ExecuteRequest) FastReadField20(buf []byte) (int, error) { offset := 0 - _field := extra.NewExtra() + + _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make([]*prompt.Tool, 0, size) + values := make([]prompt.Tool, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + if l, err := _elem.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + + _field = append(_field, _elem) + } + p.CustomTools = _field + return offset, nil +} + +func (p *ExecuteRequest) FastReadField21(buf []byte) (int, error) { + offset := 0 + _field := prompt.NewToolCallConfig() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { offset += l } - p.Extra = _field + p.CustomToolCallConfig = _field return offset, nil } -func (p *ExecuteRequest) FastReadField255(buf []byte) (int, error) { +func (p *ExecuteRequest) FastReadField22(buf []byte) (int, error) { offset := 0 - _field := base.NewBase() + _field := prompt.NewModelConfig() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { offset += l } - p.Base = _field + p.CustomModelConfig = _field return offset, nil } -func (p *ExecuteRequest) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) +func (p *ExecuteRequest) FastReadField23(buf []byte) (int, error) { + offset := 0 + _field := prompt.NewResponseAPIConfig() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.ResponseAPIConfig = _field + return offset, nil } -func (p *ExecuteRequest) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExecuteRequest) FastReadField24(buf []byte) (int, error) { offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - offset += p.fastWriteField10(buf[offset:], w) - offset += p.fastWriteField11(buf[offset:], w) - offset += p.fastWriteField254(buf[offset:], w) + + var _field *prompt.AccountMode + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.AccountMode = _field + return offset, nil +} + +func (p *ExecuteRequest) FastReadField26(buf []byte) (int, error) { + offset := 0 + + var _field *prompt.UsageScenario + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.UsageScenario = _field + return offset, nil +} + +func (p *ExecuteRequest) FastReadField28(buf []byte) (int, error) { + offset := 0 + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.ReleaseLabel = _field + return offset, nil +} + +func (p *ExecuteRequest) FastReadField29(buf []byte) (int, error) { + offset := 0 + _field := prompt.NewToolCallConfig() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.CustomToolConfig = _field + return offset, nil +} + +func (p *ExecuteRequest) FastReadField254(buf []byte) (int, error) { + offset := 0 + _field := extra.NewExtra() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Extra = _field + return offset, nil +} + +func (p *ExecuteRequest) FastReadField255(buf []byte) (int, error) { + offset := 0 + _field := base.NewBase() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Base = _field + return offset, nil +} + +func (p *ExecuteRequest) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ExecuteRequest) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + offset += p.fastWriteField10(buf[offset:], w) + offset += p.fastWriteField11(buf[offset:], w) + offset += p.fastWriteField20(buf[offset:], w) + offset += p.fastWriteField21(buf[offset:], w) + offset += p.fastWriteField22(buf[offset:], w) + offset += p.fastWriteField23(buf[offset:], w) + offset += p.fastWriteField24(buf[offset:], w) + offset += p.fastWriteField26(buf[offset:], w) + offset += p.fastWriteField28(buf[offset:], w) + offset += p.fastWriteField29(buf[offset:], w) + offset += p.fastWriteField254(buf[offset:], w) offset += p.fastWriteField255(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) @@ -1019,6 +1105,14 @@ func (p *ExecuteRequest) BLength() int { l += p.field2Length() l += p.field10Length() l += p.field11Length() + l += p.field20Length() + l += p.field21Length() + l += p.field22Length() + l += p.field23Length() + l += p.field24Length() + l += p.field26Length() + l += p.field28Length() + l += p.field29Length() l += p.field254Length() l += p.field255Length() } @@ -1076,6 +1170,85 @@ func (p *ExecuteRequest) fastWriteField11(buf []byte, w thrift.NocopyWriter) int return offset } +func (p *ExecuteRequest) fastWriteField20(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetCustomTools() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 20) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.CustomTools { + length++ + offset += v.FastWriteNocopy(buf[offset:], w) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) + } + return offset +} + +func (p *ExecuteRequest) fastWriteField21(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetCustomToolCallConfig() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 21) + offset += p.CustomToolCallConfig.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *ExecuteRequest) fastWriteField22(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetCustomModelConfig() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 22) + offset += p.CustomModelConfig.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *ExecuteRequest) fastWriteField23(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetResponseAPIConfig() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 23) + offset += p.ResponseAPIConfig.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *ExecuteRequest) fastWriteField24(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetAccountMode() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 24) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.AccountMode) + } + return offset +} + +func (p *ExecuteRequest) fastWriteField26(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetUsageScenario() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 26) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.UsageScenario) + } + return offset +} + +func (p *ExecuteRequest) fastWriteField28(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetReleaseLabel() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 28) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.ReleaseLabel) + } + return offset +} + +func (p *ExecuteRequest) fastWriteField29(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetCustomToolConfig() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 29) + offset += p.CustomToolConfig.FastWriteNocopy(buf[offset:], w) + } + return offset +} + func (p *ExecuteRequest) fastWriteField254(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetExtra() { @@ -1138,6 +1311,82 @@ func (p *ExecuteRequest) field11Length() int { return l } +func (p *ExecuteRequest) field20Length() int { + l := 0 + if p.IsSetCustomTools() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + for _, v := range p.CustomTools { + _ = v + l += v.BLength() + } + } + return l +} + +func (p *ExecuteRequest) field21Length() int { + l := 0 + if p.IsSetCustomToolCallConfig() { + l += thrift.Binary.FieldBeginLength() + l += p.CustomToolCallConfig.BLength() + } + return l +} + +func (p *ExecuteRequest) field22Length() int { + l := 0 + if p.IsSetCustomModelConfig() { + l += thrift.Binary.FieldBeginLength() + l += p.CustomModelConfig.BLength() + } + return l +} + +func (p *ExecuteRequest) field23Length() int { + l := 0 + if p.IsSetResponseAPIConfig() { + l += thrift.Binary.FieldBeginLength() + l += p.ResponseAPIConfig.BLength() + } + return l +} + +func (p *ExecuteRequest) field24Length() int { + l := 0 + if p.IsSetAccountMode() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.AccountMode) + } + return l +} + +func (p *ExecuteRequest) field26Length() int { + l := 0 + if p.IsSetUsageScenario() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.UsageScenario) + } + return l +} + +func (p *ExecuteRequest) field28Length() int { + l := 0 + if p.IsSetReleaseLabel() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.ReleaseLabel) + } + return l +} + +func (p *ExecuteRequest) field29Length() int { + l := 0 + if p.IsSetCustomToolConfig() { + l += thrift.Binary.FieldBeginLength() + l += p.CustomToolConfig.BLength() + } + return l +} + func (p *ExecuteRequest) field254Length() int { l := 0 if p.IsSetExtra() { @@ -1167,9 +1416,9 @@ func (p *ExecuteRequest) DeepCopy(s interface{}) error { p.WorkspaceID = &tmp } - var _promptIdentifier *PromptQuery + var _promptIdentifier *prompt.PromptQuery if src.PromptIdentifier != nil { - _promptIdentifier = &PromptQuery{} + _promptIdentifier = &prompt.PromptQuery{} if err := _promptIdentifier.DeepCopy(src.PromptIdentifier); err != nil { return err } @@ -1177,11 +1426,11 @@ func (p *ExecuteRequest) DeepCopy(s interface{}) error { p.PromptIdentifier = _promptIdentifier if src.VariableVals != nil { - p.VariableVals = make([]*VariableVal, 0, len(src.VariableVals)) + p.VariableVals = make([]*prompt.VariableVal, 0, len(src.VariableVals)) for _, elem := range src.VariableVals { - var _elem *VariableVal + var _elem *prompt.VariableVal if elem != nil { - _elem = &VariableVal{} + _elem = &prompt.VariableVal{} if err := _elem.DeepCopy(elem); err != nil { return err } @@ -1192,11 +1441,11 @@ func (p *ExecuteRequest) DeepCopy(s interface{}) error { } if src.Messages != nil { - p.Messages = make([]*Message, 0, len(src.Messages)) + p.Messages = make([]*prompt.Message, 0, len(src.Messages)) for _, elem := range src.Messages { - var _elem *Message + var _elem *prompt.Message if elem != nil { - _elem = &Message{} + _elem = &prompt.Message{} if err := _elem.DeepCopy(elem); err != nil { return err } @@ -1206,6 +1455,75 @@ func (p *ExecuteRequest) DeepCopy(s interface{}) error { } } + if src.CustomTools != nil { + p.CustomTools = make([]*prompt.Tool, 0, len(src.CustomTools)) + for _, elem := range src.CustomTools { + var _elem *prompt.Tool + if elem != nil { + _elem = &prompt.Tool{} + if err := _elem.DeepCopy(elem); err != nil { + return err + } + } + + p.CustomTools = append(p.CustomTools, _elem) + } + } + + var _customToolCallConfig *prompt.ToolCallConfig + if src.CustomToolCallConfig != nil { + _customToolCallConfig = &prompt.ToolCallConfig{} + if err := _customToolCallConfig.DeepCopy(src.CustomToolCallConfig); err != nil { + return err + } + } + p.CustomToolCallConfig = _customToolCallConfig + + var _customModelConfig *prompt.ModelConfig + if src.CustomModelConfig != nil { + _customModelConfig = &prompt.ModelConfig{} + if err := _customModelConfig.DeepCopy(src.CustomModelConfig); err != nil { + return err + } + } + p.CustomModelConfig = _customModelConfig + + var _responseAPIConfig *prompt.ResponseAPIConfig + if src.ResponseAPIConfig != nil { + _responseAPIConfig = &prompt.ResponseAPIConfig{} + if err := _responseAPIConfig.DeepCopy(src.ResponseAPIConfig); err != nil { + return err + } + } + p.ResponseAPIConfig = _responseAPIConfig + + if src.AccountMode != nil { + tmp := *src.AccountMode + p.AccountMode = &tmp + } + + if src.UsageScenario != nil { + tmp := *src.UsageScenario + p.UsageScenario = &tmp + } + + if src.ReleaseLabel != nil { + var tmp string + if *src.ReleaseLabel != "" { + tmp = kutils.StringDeepCopy(*src.ReleaseLabel) + } + p.ReleaseLabel = &tmp + } + + var _customToolConfig *prompt.ToolCallConfig + if src.CustomToolConfig != nil { + _customToolConfig = &prompt.ToolCallConfig{} + if err := _customToolConfig.DeepCopy(src.CustomToolConfig); err != nil { + return err + } + } + p.CustomToolConfig = _customToolConfig + var _extra *extra.Extra if src.Extra != nil { _extra = &extra.Extra{} @@ -1348,7 +1666,7 @@ func (p *ExecuteResponse) FastReadField2(buf []byte) (int, error) { func (p *ExecuteResponse) FastReadField3(buf []byte) (int, error) { offset := 0 - _field := NewExecuteData() + _field := prompt.NewExecuteData() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -1489,9 +1807,9 @@ func (p *ExecuteResponse) DeepCopy(s interface{}) error { p.Msg = &tmp } - var _data *ExecuteData + var _data *prompt.ExecuteData if src.Data != nil { - _data = &ExecuteData{} + _data = &prompt.ExecuteData{} if err := _data.DeepCopy(src.Data); err != nil { return err } @@ -1510,7 +1828,7 @@ func (p *ExecuteResponse) DeepCopy(s interface{}) error { return nil } -func (p *ExecuteData) FastRead(buf []byte) (int, error) { +func (p *ExecuteStreamingResponse) FastRead(buf []byte) (int, error) { var err error var offset int @@ -1528,7 +1846,7 @@ func (p *ExecuteData) FastRead(buf []byte) (int, error) { } switch fieldId { case 1: - if fieldTypeId == thrift.STRUCT { + if fieldTypeId == thrift.STRING { l, err = p.FastReadField1(buf[offset:]) offset += l if err != nil { @@ -1556,7 +1874,7 @@ func (p *ExecuteData) FastRead(buf []byte) (int, error) { } } case 3: - if fieldTypeId == thrift.STRUCT { + if fieldTypeId == thrift.I64 { l, err = p.FastReadField3(buf[offset:]) offset += l if err != nil { @@ -1569,6 +1887,34 @@ func (p *ExecuteData) FastRead(buf []byte) (int, error) { goto SkipFieldError } } + case 4: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField4(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 255: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField255(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } default: l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -1582,24 +1928,26 @@ func (p *ExecuteData) FastRead(buf []byte) (int, error) { ReadFieldBeginError: return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExecuteData[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExecuteStreamingResponse[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExecuteData) FastReadField1(buf []byte) (int, error) { +func (p *ExecuteStreamingResponse) FastReadField1(buf []byte) (int, error) { offset := 0 - _field := NewMessage() - if l, err := _field.FastRead(buf[offset:]); err != nil { + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { return offset, err } else { offset += l + _field = &v } - p.Message = _field + p.ID = _field return offset, nil } -func (p *ExecuteData) FastReadField2(buf []byte) (int, error) { +func (p *ExecuteStreamingResponse) FastReadField2(buf []byte) (int, error) { offset := 0 var _field *string @@ -1609,271 +1957,11 @@ func (p *ExecuteData) FastReadField2(buf []byte) (int, error) { offset += l _field = &v } - p.FinishReason = _field + p.Event = _field return offset, nil } -func (p *ExecuteData) FastReadField3(buf []byte) (int, error) { - offset := 0 - _field := NewTokenUsage() - if l, err := _field.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - p.Usage = _field - return offset, nil -} - -func (p *ExecuteData) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *ExecuteData) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - offset += p.fastWriteField3(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *ExecuteData) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - l += p.field3Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *ExecuteData) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetMessage() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) - offset += p.Message.FastWriteNocopy(buf[offset:], w) - } - return offset -} - -func (p *ExecuteData) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetFinishReason() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.FinishReason) - } - return offset -} - -func (p *ExecuteData) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetUsage() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 3) - offset += p.Usage.FastWriteNocopy(buf[offset:], w) - } - return offset -} - -func (p *ExecuteData) field1Length() int { - l := 0 - if p.IsSetMessage() { - l += thrift.Binary.FieldBeginLength() - l += p.Message.BLength() - } - return l -} - -func (p *ExecuteData) field2Length() int { - l := 0 - if p.IsSetFinishReason() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.FinishReason) - } - return l -} - -func (p *ExecuteData) field3Length() int { - l := 0 - if p.IsSetUsage() { - l += thrift.Binary.FieldBeginLength() - l += p.Usage.BLength() - } - return l -} - -func (p *ExecuteData) DeepCopy(s interface{}) error { - src, ok := s.(*ExecuteData) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - var _message *Message - if src.Message != nil { - _message = &Message{} - if err := _message.DeepCopy(src.Message); err != nil { - return err - } - } - p.Message = _message - - if src.FinishReason != nil { - var tmp string - if *src.FinishReason != "" { - tmp = kutils.StringDeepCopy(*src.FinishReason) - } - p.FinishReason = &tmp - } - - var _usage *TokenUsage - if src.Usage != nil { - _usage = &TokenUsage{} - if err := _usage.DeepCopy(src.Usage); err != nil { - return err - } - } - p.Usage = _usage - - return nil -} - -func (p *ExecuteStreamingResponse) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 3: - if fieldTypeId == thrift.I64 { - l, err = p.FastReadField3(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 4: - if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField4(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 255: - if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField255(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExecuteStreamingResponse[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *ExecuteStreamingResponse) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.ID = _field - return offset, nil -} - -func (p *ExecuteStreamingResponse) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Event = _field - return offset, nil -} - -func (p *ExecuteStreamingResponse) FastReadField3(buf []byte) (int, error) { +func (p *ExecuteStreamingResponse) FastReadField3(buf []byte) (int, error) { offset := 0 var _field *int64 @@ -1889,7 +1977,7 @@ func (p *ExecuteStreamingResponse) FastReadField3(buf []byte) (int, error) { func (p *ExecuteStreamingResponse) FastReadField4(buf []byte) (int, error) { offset := 0 - _field := NewExecuteStreamingData() + _field := prompt.NewExecuteStreamingData() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -2058,9 +2146,9 @@ func (p *ExecuteStreamingResponse) DeepCopy(s interface{}) error { p.Retry = &tmp } - var _data *ExecuteStreamingData + var _data *prompt.ExecuteStreamingData if src.Data != nil { - _data = &ExecuteStreamingData{} + _data = &prompt.ExecuteStreamingData{} if err := _data.DeepCopy(src.Data); err != nil { return err } @@ -2079,7 +2167,7 @@ func (p *ExecuteStreamingResponse) DeepCopy(s interface{}) error { return nil } -func (p *ExecuteStreamingData) FastRead(buf []byte) (int, error) { +func (p *ListPromptBasicRequest) FastRead(buf []byte) (int, error) { var err error var offset int @@ -2097,7 +2185,7 @@ func (p *ExecuteStreamingData) FastRead(buf []byte) (int, error) { } switch fieldId { case 1: - if fieldTypeId == thrift.I32 { + if fieldTypeId == thrift.I64 { l, err = p.FastReadField1(buf[offset:]) offset += l if err != nil { @@ -2111,7 +2199,7 @@ func (p *ExecuteStreamingData) FastRead(buf []byte) (int, error) { } } case 2: - if fieldTypeId == thrift.STRING { + if fieldTypeId == thrift.I32 { l, err = p.FastReadField2(buf[offset:]) offset += l if err != nil { @@ -2125,7 +2213,7 @@ func (p *ExecuteStreamingData) FastRead(buf []byte) (int, error) { } } case 3: - if fieldTypeId == thrift.STRUCT { + if fieldTypeId == thrift.I32 { l, err = p.FastReadField3(buf[offset:]) offset += l if err != nil { @@ -2153,7 +2241,7 @@ func (p *ExecuteStreamingData) FastRead(buf []byte) (int, error) { } } case 5: - if fieldTypeId == thrift.STRUCT { + if fieldTypeId == thrift.STRING { l, err = p.FastReadField5(buf[offset:]) offset += l if err != nil { @@ -2166,6 +2254,34 @@ func (p *ExecuteStreamingData) FastRead(buf []byte) (int, error) { goto SkipFieldError } } + case 6: + if fieldTypeId == thrift.MAP { + l, err = p.FastReadField6(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 255: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField255(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } default: l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -2179,12 +2295,26 @@ func (p *ExecuteStreamingData) FastRead(buf []byte) (int, error) { ReadFieldBeginError: return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExecuteStreamingData[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListPromptBasicRequest[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExecuteStreamingData) FastReadField1(buf []byte) (int, error) { +func (p *ListPromptBasicRequest) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field *int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.WorkspaceID = _field + return offset, nil +} + +func (p *ListPromptBasicRequest) FastReadField2(buf []byte) (int, error) { offset := 0 var _field *int32 @@ -2194,37 +2324,39 @@ func (p *ExecuteStreamingData) FastReadField1(buf []byte) (int, error) { offset += l _field = &v } - p.Code = _field + p.PageNumber = _field return offset, nil } -func (p *ExecuteStreamingData) FastReadField2(buf []byte) (int, error) { +func (p *ListPromptBasicRequest) FastReadField3(buf []byte) (int, error) { offset := 0 - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + var _field *int32 + if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { return offset, err } else { offset += l _field = &v } - p.Msg = _field + p.PageSize = _field return offset, nil } -func (p *ExecuteStreamingData) FastReadField3(buf []byte) (int, error) { +func (p *ListPromptBasicRequest) FastReadField4(buf []byte) (int, error) { offset := 0 - _field := NewMessage() - if l, err := _field.FastRead(buf[offset:]); err != nil { + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { return offset, err } else { offset += l + _field = &v } - p.Message = _field + p.KeyWord = _field return offset, nil } -func (p *ExecuteStreamingData) FastReadField4(buf []byte) (int, error) { +func (p *ListPromptBasicRequest) FastReadField5(buf []byte) (int, error) { offset := 0 var _field *string @@ -2234,27 +2366,59 @@ func (p *ExecuteStreamingData) FastReadField4(buf []byte) (int, error) { offset += l _field = &v } - p.FinishReason = _field + p.Creator = _field + return offset, nil +} + +func (p *ListPromptBasicRequest) FastReadField6(buf []byte) (int, error) { + offset := 0 + + _, _, size, l, err := thrift.Binary.ReadMapBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make(map[string]string, size) + for i := 0; i < size; i++ { + var _key string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _key = v + } + + var _val string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _val = v + } + + _field[_key] = _val + } + p.Extra = _field return offset, nil } -func (p *ExecuteStreamingData) FastReadField5(buf []byte) (int, error) { +func (p *ListPromptBasicRequest) FastReadField255(buf []byte) (int, error) { offset := 0 - _field := NewTokenUsage() + _field := base.NewBase() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { offset += l } - p.Usage = _field + p.Base = _field return offset, nil } -func (p *ExecuteStreamingData) FastWrite(buf []byte) int { +func (p *ListPromptBasicRequest) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExecuteStreamingData) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ListPromptBasicRequest) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) @@ -2262,12 +2426,14 @@ func (p *ExecuteStreamingData) FastWriteNocopy(buf []byte, w thrift.NocopyWriter offset += p.fastWriteField3(buf[offset:], w) offset += p.fastWriteField4(buf[offset:], w) offset += p.fastWriteField5(buf[offset:], w) + offset += p.fastWriteField6(buf[offset:], w) + offset += p.fastWriteField255(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) return offset } -func (p *ExecuteStreamingData) BLength() int { +func (p *ListPromptBasicRequest) BLength() int { l := 0 if p != nil { l += p.field1Length() @@ -2275,150 +2441,220 @@ func (p *ExecuteStreamingData) BLength() int { l += p.field3Length() l += p.field4Length() l += p.field5Length() + l += p.field6Length() + l += p.field255Length() } l += thrift.Binary.FieldStopLength() return l } -func (p *ExecuteStreamingData) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ListPromptBasicRequest) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetCode() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 1) - offset += thrift.Binary.WriteI32(buf[offset:], *p.Code) + if p.IsSetWorkspaceID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 1) + offset += thrift.Binary.WriteI64(buf[offset:], *p.WorkspaceID) } return offset } -func (p *ExecuteStreamingData) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { +func (p *ListPromptBasicRequest) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetMsg() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Msg) + if p.IsSetPageNumber() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 2) + offset += thrift.Binary.WriteI32(buf[offset:], *p.PageNumber) } return offset } -func (p *ExecuteStreamingData) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { +func (p *ListPromptBasicRequest) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetMessage() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 3) - offset += p.Message.FastWriteNocopy(buf[offset:], w) + if p.IsSetPageSize() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 3) + offset += thrift.Binary.WriteI32(buf[offset:], *p.PageSize) } return offset } -func (p *ExecuteStreamingData) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { +func (p *ListPromptBasicRequest) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetFinishReason() { + if p.IsSetKeyWord() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 4) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.FinishReason) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.KeyWord) } return offset } -func (p *ExecuteStreamingData) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { +func (p *ListPromptBasicRequest) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetCreator() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 5) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Creator) + } + return offset +} + +func (p *ListPromptBasicRequest) fastWriteField6(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetExtra() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.MAP, 6) + mapBeginOffset := offset + offset += thrift.Binary.MapBeginLength() + var length int + for k, v := range p.Extra { + length++ + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, k) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, v) + } + thrift.Binary.WriteMapBegin(buf[mapBeginOffset:], thrift.STRING, thrift.STRING, length) + } + return offset +} + +func (p *ListPromptBasicRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetUsage() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 5) - offset += p.Usage.FastWriteNocopy(buf[offset:], w) + if p.IsSetBase() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) + offset += p.Base.FastWriteNocopy(buf[offset:], w) } return offset } -func (p *ExecuteStreamingData) field1Length() int { +func (p *ListPromptBasicRequest) field1Length() int { l := 0 - if p.IsSetCode() { + if p.IsSetWorkspaceID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *ListPromptBasicRequest) field2Length() int { + l := 0 + if p.IsSetPageNumber() { l += thrift.Binary.FieldBeginLength() l += thrift.Binary.I32Length() } return l } -func (p *ExecuteStreamingData) field2Length() int { +func (p *ListPromptBasicRequest) field3Length() int { l := 0 - if p.IsSetMsg() { + if p.IsSetPageSize() { l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Msg) + l += thrift.Binary.I32Length() + } + return l +} + +func (p *ListPromptBasicRequest) field4Length() int { + l := 0 + if p.IsSetKeyWord() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.KeyWord) } return l } -func (p *ExecuteStreamingData) field3Length() int { +func (p *ListPromptBasicRequest) field5Length() int { l := 0 - if p.IsSetMessage() { + if p.IsSetCreator() { l += thrift.Binary.FieldBeginLength() - l += p.Message.BLength() + l += thrift.Binary.StringLengthNocopy(*p.Creator) } return l } -func (p *ExecuteStreamingData) field4Length() int { +func (p *ListPromptBasicRequest) field6Length() int { l := 0 - if p.IsSetFinishReason() { + if p.IsSetExtra() { l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.FinishReason) + l += thrift.Binary.MapBeginLength() + for k, v := range p.Extra { + _, _ = k, v + + l += thrift.Binary.StringLengthNocopy(k) + l += thrift.Binary.StringLengthNocopy(v) + } } return l } -func (p *ExecuteStreamingData) field5Length() int { +func (p *ListPromptBasicRequest) field255Length() int { l := 0 - if p.IsSetUsage() { + if p.IsSetBase() { l += thrift.Binary.FieldBeginLength() - l += p.Usage.BLength() + l += p.Base.BLength() } return l } -func (p *ExecuteStreamingData) DeepCopy(s interface{}) error { - src, ok := s.(*ExecuteStreamingData) +func (p *ListPromptBasicRequest) DeepCopy(s interface{}) error { + src, ok := s.(*ListPromptBasicRequest) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - if src.Code != nil { - tmp := *src.Code - p.Code = &tmp + if src.WorkspaceID != nil { + tmp := *src.WorkspaceID + p.WorkspaceID = &tmp } - if src.Msg != nil { + if src.PageNumber != nil { + tmp := *src.PageNumber + p.PageNumber = &tmp + } + + if src.PageSize != nil { + tmp := *src.PageSize + p.PageSize = &tmp + } + + if src.KeyWord != nil { var tmp string - if *src.Msg != "" { - tmp = kutils.StringDeepCopy(*src.Msg) + if *src.KeyWord != "" { + tmp = kutils.StringDeepCopy(*src.KeyWord) } - p.Msg = &tmp + p.KeyWord = &tmp } - var _message *Message - if src.Message != nil { - _message = &Message{} - if err := _message.DeepCopy(src.Message); err != nil { - return err + if src.Creator != nil { + var tmp string + if *src.Creator != "" { + tmp = kutils.StringDeepCopy(*src.Creator) } + p.Creator = &tmp } - p.Message = _message - if src.FinishReason != nil { - var tmp string - if *src.FinishReason != "" { - tmp = kutils.StringDeepCopy(*src.FinishReason) + if src.Extra != nil { + p.Extra = make(map[string]string, len(src.Extra)) + for key, val := range src.Extra { + var _key string + if key != "" { + _key = kutils.StringDeepCopy(key) + } + + var _val string + if val != "" { + _val = kutils.StringDeepCopy(val) + } + + p.Extra[_key] = _val } - p.FinishReason = &tmp } - var _usage *TokenUsage - if src.Usage != nil { - _usage = &TokenUsage{} - if err := _usage.DeepCopy(src.Usage); err != nil { + var _base *base.Base + if src.Base != nil { + _base = &base.Base{} + if err := _base.DeepCopy(src.Base); err != nil { return err } } - p.Usage = _usage + p.Base = _base return nil } -func (p *PromptQuery) FastRead(buf []byte) (int, error) { +func (p *ListPromptBasicResponse) FastRead(buf []byte) (int, error) { var err error var offset int @@ -2436,7 +2672,7 @@ func (p *PromptQuery) FastRead(buf []byte) (int, error) { } switch fieldId { case 1: - if fieldTypeId == thrift.STRING { + if fieldTypeId == thrift.I32 { l, err = p.FastReadField1(buf[offset:]) offset += l if err != nil { @@ -2464,7 +2700,7 @@ func (p *PromptQuery) FastRead(buf []byte) (int, error) { } } case 3: - if fieldTypeId == thrift.STRING { + if fieldTypeId == thrift.STRUCT { l, err = p.FastReadField3(buf[offset:]) offset += l if err != nil { @@ -2477,6 +2713,20 @@ func (p *PromptQuery) FastRead(buf []byte) (int, error) { goto SkipFieldError } } + case 255: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField255(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } default: l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -2490,26 +2740,26 @@ func (p *PromptQuery) FastRead(buf []byte) (int, error) { ReadFieldBeginError: return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptQuery[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListPromptBasicResponse[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *PromptQuery) FastReadField1(buf []byte) (int, error) { +func (p *ListPromptBasicResponse) FastReadField1(buf []byte) (int, error) { offset := 0 - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + var _field *int32 + if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { return offset, err } else { offset += l _field = &v } - p.PromptKey = _field + p.Code = _field return offset, nil } -func (p *PromptQuery) FastReadField2(buf []byte) (int, error) { +func (p *ListPromptBasicResponse) FastReadField2(buf []byte) (int, error) { offset := 0 var _field *string @@ -2519,6216 +2769,170 @@ func (p *PromptQuery) FastReadField2(buf []byte) (int, error) { offset += l _field = &v } - p.Version = _field + p.Msg = _field return offset, nil } -func (p *PromptQuery) FastReadField3(buf []byte) (int, error) { +func (p *ListPromptBasicResponse) FastReadField3(buf []byte) (int, error) { offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + _field := prompt.NewListPromptBasicData() + if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { offset += l - _field = &v } - p.Label = _field + p.Data = _field return offset, nil } -func (p *PromptQuery) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *PromptQuery) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ListPromptBasicResponse) FastReadField255(buf []byte) (int, error) { offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - offset += p.fastWriteField3(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) + _field := base.NewBaseResp() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.BaseResp = _field + return offset, nil +} + +func (p *ListPromptBasicResponse) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ListPromptBasicResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + offset += p.fastWriteField3(buf[offset:], w) + offset += p.fastWriteField255(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) return offset } -func (p *PromptQuery) BLength() int { +func (p *ListPromptBasicResponse) BLength() int { l := 0 if p != nil { l += p.field1Length() l += p.field2Length() l += p.field3Length() + l += p.field255Length() } l += thrift.Binary.FieldStopLength() return l } -func (p *PromptQuery) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ListPromptBasicResponse) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetPromptKey() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.PromptKey) + if p.IsSetCode() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 1) + offset += thrift.Binary.WriteI32(buf[offset:], *p.Code) } return offset } -func (p *PromptQuery) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { +func (p *ListPromptBasicResponse) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetVersion() { + if p.IsSetMsg() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Version) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Msg) } return offset } -func (p *PromptQuery) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { +func (p *ListPromptBasicResponse) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetLabel() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 3) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Label) + if p.IsSetData() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 3) + offset += p.Data.FastWriteNocopy(buf[offset:], w) } return offset } -func (p *PromptQuery) field1Length() int { - l := 0 - if p.IsSetPromptKey() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.PromptKey) +func (p *ListPromptBasicResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetBaseResp() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) + offset += p.BaseResp.FastWriteNocopy(buf[offset:], w) } - return l + return offset } -func (p *PromptQuery) field2Length() int { +func (p *ListPromptBasicResponse) field1Length() int { l := 0 - if p.IsSetVersion() { + if p.IsSetCode() { l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Version) + l += thrift.Binary.I32Length() } return l } -func (p *PromptQuery) field3Length() int { +func (p *ListPromptBasicResponse) field2Length() int { l := 0 - if p.IsSetLabel() { + if p.IsSetMsg() { l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Label) - } - return l -} - -func (p *PromptQuery) DeepCopy(s interface{}) error { - src, ok := s.(*PromptQuery) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.PromptKey != nil { - var tmp string - if *src.PromptKey != "" { - tmp = kutils.StringDeepCopy(*src.PromptKey) - } - p.PromptKey = &tmp - } - - if src.Version != nil { - var tmp string - if *src.Version != "" { - tmp = kutils.StringDeepCopy(*src.Version) - } - p.Version = &tmp - } - - if src.Label != nil { - var tmp string - if *src.Label != "" { - tmp = kutils.StringDeepCopy(*src.Label) - } - p.Label = &tmp - } - - return nil -} - -func (p *PromptResult_) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptResult_[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *PromptResult_) FastReadField1(buf []byte) (int, error) { - offset := 0 - _field := NewPromptQuery() - if l, err := _field.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - p.Query = _field - return offset, nil -} - -func (p *PromptResult_) FastReadField2(buf []byte) (int, error) { - offset := 0 - _field := NewPrompt() - if l, err := _field.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - p.Prompt = _field - return offset, nil -} - -func (p *PromptResult_) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *PromptResult_) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *PromptResult_) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() + l += thrift.Binary.StringLengthNocopy(*p.Msg) } - l += thrift.Binary.FieldStopLength() return l } -func (p *PromptResult_) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetQuery() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) - offset += p.Query.FastWriteNocopy(buf[offset:], w) - } - return offset -} - -func (p *PromptResult_) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetPrompt() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 2) - offset += p.Prompt.FastWriteNocopy(buf[offset:], w) - } - return offset -} - -func (p *PromptResult_) field1Length() int { +func (p *ListPromptBasicResponse) field3Length() int { l := 0 - if p.IsSetQuery() { + if p.IsSetData() { l += thrift.Binary.FieldBeginLength() - l += p.Query.BLength() + l += p.Data.BLength() } return l } -func (p *PromptResult_) field2Length() int { +func (p *ListPromptBasicResponse) field255Length() int { l := 0 - if p.IsSetPrompt() { + if p.IsSetBaseResp() { l += thrift.Binary.FieldBeginLength() - l += p.Prompt.BLength() + l += p.BaseResp.BLength() } return l } -func (p *PromptResult_) DeepCopy(s interface{}) error { - src, ok := s.(*PromptResult_) +func (p *ListPromptBasicResponse) DeepCopy(s interface{}) error { + src, ok := s.(*ListPromptBasicResponse) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _query *PromptQuery - if src.Query != nil { - _query = &PromptQuery{} - if err := _query.DeepCopy(src.Query); err != nil { - return err + if src.Code != nil { + tmp := *src.Code + p.Code = &tmp + } + + if src.Msg != nil { + var tmp string + if *src.Msg != "" { + tmp = kutils.StringDeepCopy(*src.Msg) } + p.Msg = &tmp } - p.Query = _query - var _prompt *Prompt - if src.Prompt != nil { - _prompt = &Prompt{} - if err := _prompt.DeepCopy(src.Prompt); err != nil { + var _data *prompt.ListPromptBasicData + if src.Data != nil { + _data = &prompt.ListPromptBasicData{} + if err := _data.DeepCopy(src.Data); err != nil { return err } } - p.Prompt = _prompt - - return nil -} - -func (p *Prompt) FastRead(buf []byte) (int, error) { + p.Data = _data - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break + var _baseResp *base.BaseResp + if src.BaseResp != nil { + _baseResp = &base.BaseResp{} + if err := _baseResp.DeepCopy(src.BaseResp); err != nil { + return err } - switch fieldId { - case 1: - if fieldTypeId == thrift.I64 { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 3: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField3(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 4: - if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField4(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 5: - if fieldTypeId == thrift.LIST { - l, err = p.FastReadField5(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 6: - if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField6(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 7: - if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField7(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_Prompt[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *Prompt) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *int64 - if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.WorkspaceID = _field - return offset, nil -} - -func (p *Prompt) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.PromptKey = _field - return offset, nil -} - -func (p *Prompt) FastReadField3(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Version = _field - return offset, nil -} - -func (p *Prompt) FastReadField4(buf []byte) (int, error) { - offset := 0 - _field := NewPromptTemplate() - if l, err := _field.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - p.PromptTemplate = _field - return offset, nil -} - -func (p *Prompt) FastReadField5(buf []byte) (int, error) { - offset := 0 - - _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) - offset += l - if err != nil { - return offset, err - } - _field := make([]*Tool, 0, size) - values := make([]Tool, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - if l, err := _elem.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - - _field = append(_field, _elem) - } - p.Tools = _field - return offset, nil -} - -func (p *Prompt) FastReadField6(buf []byte) (int, error) { - offset := 0 - _field := NewToolCallConfig() - if l, err := _field.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - p.ToolCallConfig = _field - return offset, nil -} - -func (p *Prompt) FastReadField7(buf []byte) (int, error) { - offset := 0 - _field := NewLLMConfig() - if l, err := _field.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - p.LlmConfig = _field - return offset, nil -} - -func (p *Prompt) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *Prompt) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - offset += p.fastWriteField3(buf[offset:], w) - offset += p.fastWriteField4(buf[offset:], w) - offset += p.fastWriteField5(buf[offset:], w) - offset += p.fastWriteField6(buf[offset:], w) - offset += p.fastWriteField7(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *Prompt) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - l += p.field3Length() - l += p.field4Length() - l += p.field5Length() - l += p.field6Length() - l += p.field7Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *Prompt) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetWorkspaceID() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 1) - offset += thrift.Binary.WriteI64(buf[offset:], *p.WorkspaceID) - } - return offset -} - -func (p *Prompt) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetPromptKey() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.PromptKey) - } - return offset -} - -func (p *Prompt) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetVersion() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 3) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Version) - } - return offset -} - -func (p *Prompt) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetPromptTemplate() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 4) - offset += p.PromptTemplate.FastWriteNocopy(buf[offset:], w) - } - return offset -} - -func (p *Prompt) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetTools() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 5) - listBeginOffset := offset - offset += thrift.Binary.ListBeginLength() - var length int - for _, v := range p.Tools { - length++ - offset += v.FastWriteNocopy(buf[offset:], w) - } - thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) - } - return offset -} - -func (p *Prompt) fastWriteField6(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetToolCallConfig() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 6) - offset += p.ToolCallConfig.FastWriteNocopy(buf[offset:], w) - } - return offset -} - -func (p *Prompt) fastWriteField7(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetLlmConfig() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 7) - offset += p.LlmConfig.FastWriteNocopy(buf[offset:], w) - } - return offset -} - -func (p *Prompt) field1Length() int { - l := 0 - if p.IsSetWorkspaceID() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() - } - return l -} - -func (p *Prompt) field2Length() int { - l := 0 - if p.IsSetPromptKey() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.PromptKey) - } - return l -} - -func (p *Prompt) field3Length() int { - l := 0 - if p.IsSetVersion() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Version) - } - return l -} - -func (p *Prompt) field4Length() int { - l := 0 - if p.IsSetPromptTemplate() { - l += thrift.Binary.FieldBeginLength() - l += p.PromptTemplate.BLength() - } - return l -} - -func (p *Prompt) field5Length() int { - l := 0 - if p.IsSetTools() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.ListBeginLength() - for _, v := range p.Tools { - _ = v - l += v.BLength() - } - } - return l -} - -func (p *Prompt) field6Length() int { - l := 0 - if p.IsSetToolCallConfig() { - l += thrift.Binary.FieldBeginLength() - l += p.ToolCallConfig.BLength() - } - return l -} - -func (p *Prompt) field7Length() int { - l := 0 - if p.IsSetLlmConfig() { - l += thrift.Binary.FieldBeginLength() - l += p.LlmConfig.BLength() - } - return l -} - -func (p *Prompt) DeepCopy(s interface{}) error { - src, ok := s.(*Prompt) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.WorkspaceID != nil { - tmp := *src.WorkspaceID - p.WorkspaceID = &tmp - } - - if src.PromptKey != nil { - var tmp string - if *src.PromptKey != "" { - tmp = kutils.StringDeepCopy(*src.PromptKey) - } - p.PromptKey = &tmp - } - - if src.Version != nil { - var tmp string - if *src.Version != "" { - tmp = kutils.StringDeepCopy(*src.Version) - } - p.Version = &tmp - } - - var _promptTemplate *PromptTemplate - if src.PromptTemplate != nil { - _promptTemplate = &PromptTemplate{} - if err := _promptTemplate.DeepCopy(src.PromptTemplate); err != nil { - return err - } - } - p.PromptTemplate = _promptTemplate - - if src.Tools != nil { - p.Tools = make([]*Tool, 0, len(src.Tools)) - for _, elem := range src.Tools { - var _elem *Tool - if elem != nil { - _elem = &Tool{} - if err := _elem.DeepCopy(elem); err != nil { - return err - } - } - - p.Tools = append(p.Tools, _elem) - } - } - - var _toolCallConfig *ToolCallConfig - if src.ToolCallConfig != nil { - _toolCallConfig = &ToolCallConfig{} - if err := _toolCallConfig.DeepCopy(src.ToolCallConfig); err != nil { - return err - } - } - p.ToolCallConfig = _toolCallConfig - - var _llmConfig *LLMConfig - if src.LlmConfig != nil { - _llmConfig = &LLMConfig{} - if err := _llmConfig.DeepCopy(src.LlmConfig); err != nil { - return err - } - } - p.LlmConfig = _llmConfig - - return nil -} - -func (p *PromptTemplate) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.LIST { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 3: - if fieldTypeId == thrift.LIST { - l, err = p.FastReadField3(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 100: - if fieldTypeId == thrift.MAP { - l, err = p.FastReadField100(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptTemplate[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *PromptTemplate) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *TemplateType - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.TemplateType = _field - return offset, nil -} - -func (p *PromptTemplate) FastReadField2(buf []byte) (int, error) { - offset := 0 - - _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) - offset += l - if err != nil { - return offset, err - } - _field := make([]*Message, 0, size) - values := make([]Message, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - if l, err := _elem.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - - _field = append(_field, _elem) - } - p.Messages = _field - return offset, nil -} - -func (p *PromptTemplate) FastReadField3(buf []byte) (int, error) { - offset := 0 - - _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) - offset += l - if err != nil { - return offset, err - } - _field := make([]*VariableDef, 0, size) - values := make([]VariableDef, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - if l, err := _elem.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - - _field = append(_field, _elem) - } - p.VariableDefs = _field - return offset, nil -} - -func (p *PromptTemplate) FastReadField100(buf []byte) (int, error) { - offset := 0 - - _, _, size, l, err := thrift.Binary.ReadMapBegin(buf[offset:]) - offset += l - if err != nil { - return offset, err - } - _field := make(map[string]string, size) - for i := 0; i < size; i++ { - var _key string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _key = v - } - - var _val string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _val = v - } - - _field[_key] = _val - } - p.Metadata = _field - return offset, nil -} - -func (p *PromptTemplate) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *PromptTemplate) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - offset += p.fastWriteField3(buf[offset:], w) - offset += p.fastWriteField100(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *PromptTemplate) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - l += p.field3Length() - l += p.field100Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *PromptTemplate) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetTemplateType() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.TemplateType) - } - return offset -} - -func (p *PromptTemplate) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetMessages() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 2) - listBeginOffset := offset - offset += thrift.Binary.ListBeginLength() - var length int - for _, v := range p.Messages { - length++ - offset += v.FastWriteNocopy(buf[offset:], w) - } - thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) - } - return offset -} - -func (p *PromptTemplate) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetVariableDefs() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 3) - listBeginOffset := offset - offset += thrift.Binary.ListBeginLength() - var length int - for _, v := range p.VariableDefs { - length++ - offset += v.FastWriteNocopy(buf[offset:], w) - } - thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) - } - return offset -} - -func (p *PromptTemplate) fastWriteField100(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetMetadata() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.MAP, 100) - mapBeginOffset := offset - offset += thrift.Binary.MapBeginLength() - var length int - for k, v := range p.Metadata { - length++ - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, k) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, v) - } - thrift.Binary.WriteMapBegin(buf[mapBeginOffset:], thrift.STRING, thrift.STRING, length) - } - return offset -} - -func (p *PromptTemplate) field1Length() int { - l := 0 - if p.IsSetTemplateType() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.TemplateType) - } - return l -} - -func (p *PromptTemplate) field2Length() int { - l := 0 - if p.IsSetMessages() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.ListBeginLength() - for _, v := range p.Messages { - _ = v - l += v.BLength() - } - } - return l -} - -func (p *PromptTemplate) field3Length() int { - l := 0 - if p.IsSetVariableDefs() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.ListBeginLength() - for _, v := range p.VariableDefs { - _ = v - l += v.BLength() - } - } - return l -} - -func (p *PromptTemplate) field100Length() int { - l := 0 - if p.IsSetMetadata() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.MapBeginLength() - for k, v := range p.Metadata { - _, _ = k, v - - l += thrift.Binary.StringLengthNocopy(k) - l += thrift.Binary.StringLengthNocopy(v) - } - } - return l -} - -func (p *PromptTemplate) DeepCopy(s interface{}) error { - src, ok := s.(*PromptTemplate) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.TemplateType != nil { - tmp := *src.TemplateType - p.TemplateType = &tmp - } - - if src.Messages != nil { - p.Messages = make([]*Message, 0, len(src.Messages)) - for _, elem := range src.Messages { - var _elem *Message - if elem != nil { - _elem = &Message{} - if err := _elem.DeepCopy(elem); err != nil { - return err - } - } - - p.Messages = append(p.Messages, _elem) - } - } - - if src.VariableDefs != nil { - p.VariableDefs = make([]*VariableDef, 0, len(src.VariableDefs)) - for _, elem := range src.VariableDefs { - var _elem *VariableDef - if elem != nil { - _elem = &VariableDef{} - if err := _elem.DeepCopy(elem); err != nil { - return err - } - } - - p.VariableDefs = append(p.VariableDefs, _elem) - } - } - - if src.Metadata != nil { - p.Metadata = make(map[string]string, len(src.Metadata)) - for key, val := range src.Metadata { - var _key string - if key != "" { - _key = kutils.StringDeepCopy(key) - } - - var _val string - if val != "" { - _val = kutils.StringDeepCopy(val) - } - - p.Metadata[_key] = _val - } - } - - return nil -} - -func (p *ToolCallConfig) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ToolCallConfig[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *ToolCallConfig) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *ToolChoiceType - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.ToolChoice = _field - return offset, nil -} - -func (p *ToolCallConfig) FastReadField2(buf []byte) (int, error) { - offset := 0 - _field := NewToolChoiceSpecification() - if l, err := _field.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - p.ToolChoiceSpecification = _field - return offset, nil -} - -func (p *ToolCallConfig) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *ToolCallConfig) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *ToolCallConfig) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *ToolCallConfig) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetToolChoice() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.ToolChoice) - } - return offset -} - -func (p *ToolCallConfig) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetToolChoiceSpecification() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 2) - offset += p.ToolChoiceSpecification.FastWriteNocopy(buf[offset:], w) - } - return offset -} - -func (p *ToolCallConfig) field1Length() int { - l := 0 - if p.IsSetToolChoice() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.ToolChoice) - } - return l -} - -func (p *ToolCallConfig) field2Length() int { - l := 0 - if p.IsSetToolChoiceSpecification() { - l += thrift.Binary.FieldBeginLength() - l += p.ToolChoiceSpecification.BLength() - } - return l -} - -func (p *ToolCallConfig) DeepCopy(s interface{}) error { - src, ok := s.(*ToolCallConfig) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.ToolChoice != nil { - tmp := *src.ToolChoice - p.ToolChoice = &tmp - } - - var _toolChoiceSpecification *ToolChoiceSpecification - if src.ToolChoiceSpecification != nil { - _toolChoiceSpecification = &ToolChoiceSpecification{} - if err := _toolChoiceSpecification.DeepCopy(src.ToolChoiceSpecification); err != nil { - return err - } - } - p.ToolChoiceSpecification = _toolChoiceSpecification - - return nil -} - -func (p *ToolChoiceSpecification) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ToolChoiceSpecification[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *ToolChoiceSpecification) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *ToolType - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Type = _field - return offset, nil -} - -func (p *ToolChoiceSpecification) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Name = _field - return offset, nil -} - -func (p *ToolChoiceSpecification) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *ToolChoiceSpecification) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *ToolChoiceSpecification) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *ToolChoiceSpecification) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetType() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Type) - } - return offset -} - -func (p *ToolChoiceSpecification) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetName() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Name) - } - return offset -} - -func (p *ToolChoiceSpecification) field1Length() int { - l := 0 - if p.IsSetType() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Type) - } - return l -} - -func (p *ToolChoiceSpecification) field2Length() int { - l := 0 - if p.IsSetName() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Name) - } - return l -} - -func (p *ToolChoiceSpecification) DeepCopy(s interface{}) error { - src, ok := s.(*ToolChoiceSpecification) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.Type != nil { - tmp := *src.Type - p.Type = &tmp - } - - if src.Name != nil { - var tmp string - if *src.Name != "" { - tmp = kutils.StringDeepCopy(*src.Name) - } - p.Name = &tmp - } - - return nil -} - -func (p *Message) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 3: - if fieldTypeId == thrift.LIST { - l, err = p.FastReadField3(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 4: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField4(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 5: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField5(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 6: - if fieldTypeId == thrift.LIST { - l, err = p.FastReadField6(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 100: - if fieldTypeId == thrift.MAP { - l, err = p.FastReadField100(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_Message[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *Message) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *Role - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Role = _field - return offset, nil -} - -func (p *Message) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Content = _field - return offset, nil -} - -func (p *Message) FastReadField3(buf []byte) (int, error) { - offset := 0 - - _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) - offset += l - if err != nil { - return offset, err - } - _field := make([]*ContentPart, 0, size) - values := make([]ContentPart, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - if l, err := _elem.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - - _field = append(_field, _elem) - } - p.Parts = _field - return offset, nil -} - -func (p *Message) FastReadField4(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.ReasoningContent = _field - return offset, nil -} - -func (p *Message) FastReadField5(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.ToolCallID = _field - return offset, nil -} - -func (p *Message) FastReadField6(buf []byte) (int, error) { - offset := 0 - - _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) - offset += l - if err != nil { - return offset, err - } - _field := make([]*ToolCall, 0, size) - values := make([]ToolCall, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - if l, err := _elem.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - - _field = append(_field, _elem) - } - p.ToolCalls = _field - return offset, nil -} - -func (p *Message) FastReadField100(buf []byte) (int, error) { - offset := 0 - - _, _, size, l, err := thrift.Binary.ReadMapBegin(buf[offset:]) - offset += l - if err != nil { - return offset, err - } - _field := make(map[string]string, size) - for i := 0; i < size; i++ { - var _key string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _key = v - } - - var _val string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _val = v - } - - _field[_key] = _val - } - p.Metadata = _field - return offset, nil -} - -func (p *Message) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *Message) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - offset += p.fastWriteField3(buf[offset:], w) - offset += p.fastWriteField4(buf[offset:], w) - offset += p.fastWriteField5(buf[offset:], w) - offset += p.fastWriteField6(buf[offset:], w) - offset += p.fastWriteField100(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *Message) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - l += p.field3Length() - l += p.field4Length() - l += p.field5Length() - l += p.field6Length() - l += p.field100Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *Message) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetRole() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Role) - } - return offset -} - -func (p *Message) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetContent() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Content) - } - return offset -} - -func (p *Message) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetParts() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 3) - listBeginOffset := offset - offset += thrift.Binary.ListBeginLength() - var length int - for _, v := range p.Parts { - length++ - offset += v.FastWriteNocopy(buf[offset:], w) - } - thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) - } - return offset -} - -func (p *Message) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetReasoningContent() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 4) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.ReasoningContent) - } - return offset -} - -func (p *Message) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetToolCallID() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 5) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.ToolCallID) - } - return offset -} - -func (p *Message) fastWriteField6(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetToolCalls() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 6) - listBeginOffset := offset - offset += thrift.Binary.ListBeginLength() - var length int - for _, v := range p.ToolCalls { - length++ - offset += v.FastWriteNocopy(buf[offset:], w) - } - thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) - } - return offset -} - -func (p *Message) fastWriteField100(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetMetadata() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.MAP, 100) - mapBeginOffset := offset - offset += thrift.Binary.MapBeginLength() - var length int - for k, v := range p.Metadata { - length++ - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, k) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, v) - } - thrift.Binary.WriteMapBegin(buf[mapBeginOffset:], thrift.STRING, thrift.STRING, length) - } - return offset -} - -func (p *Message) field1Length() int { - l := 0 - if p.IsSetRole() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Role) - } - return l -} - -func (p *Message) field2Length() int { - l := 0 - if p.IsSetContent() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Content) - } - return l -} - -func (p *Message) field3Length() int { - l := 0 - if p.IsSetParts() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.ListBeginLength() - for _, v := range p.Parts { - _ = v - l += v.BLength() - } - } - return l -} - -func (p *Message) field4Length() int { - l := 0 - if p.IsSetReasoningContent() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.ReasoningContent) - } - return l -} - -func (p *Message) field5Length() int { - l := 0 - if p.IsSetToolCallID() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.ToolCallID) - } - return l -} - -func (p *Message) field6Length() int { - l := 0 - if p.IsSetToolCalls() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.ListBeginLength() - for _, v := range p.ToolCalls { - _ = v - l += v.BLength() - } - } - return l -} - -func (p *Message) field100Length() int { - l := 0 - if p.IsSetMetadata() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.MapBeginLength() - for k, v := range p.Metadata { - _, _ = k, v - - l += thrift.Binary.StringLengthNocopy(k) - l += thrift.Binary.StringLengthNocopy(v) - } - } - return l -} - -func (p *Message) DeepCopy(s interface{}) error { - src, ok := s.(*Message) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.Role != nil { - tmp := *src.Role - p.Role = &tmp - } - - if src.Content != nil { - var tmp string - if *src.Content != "" { - tmp = kutils.StringDeepCopy(*src.Content) - } - p.Content = &tmp - } - - if src.Parts != nil { - p.Parts = make([]*ContentPart, 0, len(src.Parts)) - for _, elem := range src.Parts { - var _elem *ContentPart - if elem != nil { - _elem = &ContentPart{} - if err := _elem.DeepCopy(elem); err != nil { - return err - } - } - - p.Parts = append(p.Parts, _elem) - } - } - - if src.ReasoningContent != nil { - var tmp string - if *src.ReasoningContent != "" { - tmp = kutils.StringDeepCopy(*src.ReasoningContent) - } - p.ReasoningContent = &tmp - } - - if src.ToolCallID != nil { - var tmp string - if *src.ToolCallID != "" { - tmp = kutils.StringDeepCopy(*src.ToolCallID) - } - p.ToolCallID = &tmp - } - - if src.ToolCalls != nil { - p.ToolCalls = make([]*ToolCall, 0, len(src.ToolCalls)) - for _, elem := range src.ToolCalls { - var _elem *ToolCall - if elem != nil { - _elem = &ToolCall{} - if err := _elem.DeepCopy(elem); err != nil { - return err - } - } - - p.ToolCalls = append(p.ToolCalls, _elem) - } - } - - if src.Metadata != nil { - p.Metadata = make(map[string]string, len(src.Metadata)) - for key, val := range src.Metadata { - var _key string - if key != "" { - _key = kutils.StringDeepCopy(key) - } - - var _val string - if val != "" { - _val = kutils.StringDeepCopy(val) - } - - p.Metadata[_key] = _val - } - } - - return nil -} - -func (p *ContentPart) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 3: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField3(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 4: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField4(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 5: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField5(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 6: - if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField6(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ContentPart[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *ContentPart) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *ContentType - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Type = _field - return offset, nil -} - -func (p *ContentPart) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Text = _field - return offset, nil -} - -func (p *ContentPart) FastReadField3(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.ImageURL = _field - return offset, nil -} - -func (p *ContentPart) FastReadField4(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Base64Data = _field - return offset, nil -} - -func (p *ContentPart) FastReadField5(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.VideoURL = _field - return offset, nil -} - -func (p *ContentPart) FastReadField6(buf []byte) (int, error) { - offset := 0 - _field := NewMediaConfig() - if l, err := _field.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - p.Config = _field - return offset, nil -} - -func (p *ContentPart) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *ContentPart) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - offset += p.fastWriteField3(buf[offset:], w) - offset += p.fastWriteField4(buf[offset:], w) - offset += p.fastWriteField5(buf[offset:], w) - offset += p.fastWriteField6(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *ContentPart) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - l += p.field3Length() - l += p.field4Length() - l += p.field5Length() - l += p.field6Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *ContentPart) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetType() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Type) - } - return offset -} - -func (p *ContentPart) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetText() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Text) - } - return offset -} - -func (p *ContentPart) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetImageURL() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 3) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.ImageURL) - } - return offset -} - -func (p *ContentPart) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetBase64Data() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 4) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Base64Data) - } - return offset -} - -func (p *ContentPart) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetVideoURL() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 5) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.VideoURL) - } - return offset -} - -func (p *ContentPart) fastWriteField6(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetConfig() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 6) - offset += p.Config.FastWriteNocopy(buf[offset:], w) - } - return offset -} - -func (p *ContentPart) field1Length() int { - l := 0 - if p.IsSetType() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Type) - } - return l -} - -func (p *ContentPart) field2Length() int { - l := 0 - if p.IsSetText() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Text) - } - return l -} - -func (p *ContentPart) field3Length() int { - l := 0 - if p.IsSetImageURL() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.ImageURL) - } - return l -} - -func (p *ContentPart) field4Length() int { - l := 0 - if p.IsSetBase64Data() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Base64Data) - } - return l -} - -func (p *ContentPart) field5Length() int { - l := 0 - if p.IsSetVideoURL() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.VideoURL) - } - return l -} - -func (p *ContentPart) field6Length() int { - l := 0 - if p.IsSetConfig() { - l += thrift.Binary.FieldBeginLength() - l += p.Config.BLength() - } - return l -} - -func (p *ContentPart) DeepCopy(s interface{}) error { - src, ok := s.(*ContentPart) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.Type != nil { - tmp := *src.Type - p.Type = &tmp - } - - if src.Text != nil { - var tmp string - if *src.Text != "" { - tmp = kutils.StringDeepCopy(*src.Text) - } - p.Text = &tmp - } - - if src.ImageURL != nil { - var tmp string - if *src.ImageURL != "" { - tmp = kutils.StringDeepCopy(*src.ImageURL) - } - p.ImageURL = &tmp - } - - if src.Base64Data != nil { - var tmp string - if *src.Base64Data != "" { - tmp = kutils.StringDeepCopy(*src.Base64Data) - } - p.Base64Data = &tmp - } - - if src.VideoURL != nil { - var tmp string - if *src.VideoURL != "" { - tmp = kutils.StringDeepCopy(*src.VideoURL) - } - p.VideoURL = &tmp - } - - var _config *MediaConfig - if src.Config != nil { - _config = &MediaConfig{} - if err := _config.DeepCopy(src.Config); err != nil { - return err - } - } - p.Config = _config - - return nil -} - -func (p *MediaConfig) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.DOUBLE { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_MediaConfig[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *MediaConfig) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *float64 - if v, l, err := thrift.Binary.ReadDouble(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Fps = _field - return offset, nil -} - -func (p *MediaConfig) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *MediaConfig) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *MediaConfig) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *MediaConfig) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetFps() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.DOUBLE, 1) - offset += thrift.Binary.WriteDouble(buf[offset:], *p.Fps) - } - return offset -} - -func (p *MediaConfig) field1Length() int { - l := 0 - if p.IsSetFps() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.DoubleLength() - } - return l -} - -func (p *MediaConfig) DeepCopy(s interface{}) error { - src, ok := s.(*MediaConfig) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.Fps != nil { - tmp := *src.Fps - p.Fps = &tmp - } - - return nil -} - -func (p *VariableDef) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 3: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField3(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_VariableDef[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *VariableDef) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Key = _field - return offset, nil -} - -func (p *VariableDef) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Desc = _field - return offset, nil -} - -func (p *VariableDef) FastReadField3(buf []byte) (int, error) { - offset := 0 - - var _field *VariableType - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Type = _field - return offset, nil -} - -func (p *VariableDef) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *VariableDef) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - offset += p.fastWriteField3(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *VariableDef) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - l += p.field3Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *VariableDef) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetKey() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Key) - } - return offset -} - -func (p *VariableDef) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetDesc() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Desc) - } - return offset -} - -func (p *VariableDef) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetType() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 3) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Type) - } - return offset -} - -func (p *VariableDef) field1Length() int { - l := 0 - if p.IsSetKey() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Key) - } - return l -} - -func (p *VariableDef) field2Length() int { - l := 0 - if p.IsSetDesc() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Desc) - } - return l -} - -func (p *VariableDef) field3Length() int { - l := 0 - if p.IsSetType() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Type) - } - return l -} - -func (p *VariableDef) DeepCopy(s interface{}) error { - src, ok := s.(*VariableDef) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.Key != nil { - var tmp string - if *src.Key != "" { - tmp = kutils.StringDeepCopy(*src.Key) - } - p.Key = &tmp - } - - if src.Desc != nil { - var tmp string - if *src.Desc != "" { - tmp = kutils.StringDeepCopy(*src.Desc) - } - p.Desc = &tmp - } - - if src.Type != nil { - tmp := *src.Type - p.Type = &tmp - } - - return nil -} - -func (p *Tool) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_Tool[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *Tool) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *ToolType - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Type = _field - return offset, nil -} - -func (p *Tool) FastReadField2(buf []byte) (int, error) { - offset := 0 - _field := NewFunction() - if l, err := _field.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - p.Function = _field - return offset, nil -} - -func (p *Tool) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *Tool) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *Tool) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *Tool) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetType() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Type) - } - return offset -} - -func (p *Tool) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetFunction() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 2) - offset += p.Function.FastWriteNocopy(buf[offset:], w) - } - return offset -} - -func (p *Tool) field1Length() int { - l := 0 - if p.IsSetType() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Type) - } - return l -} - -func (p *Tool) field2Length() int { - l := 0 - if p.IsSetFunction() { - l += thrift.Binary.FieldBeginLength() - l += p.Function.BLength() - } - return l -} - -func (p *Tool) DeepCopy(s interface{}) error { - src, ok := s.(*Tool) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.Type != nil { - tmp := *src.Type - p.Type = &tmp - } - - var _function *Function - if src.Function != nil { - _function = &Function{} - if err := _function.DeepCopy(src.Function); err != nil { - return err - } - } - p.Function = _function - - return nil -} - -func (p *Function) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 3: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField3(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_Function[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *Function) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Name = _field - return offset, nil -} - -func (p *Function) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Description = _field - return offset, nil -} - -func (p *Function) FastReadField3(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Parameters = _field - return offset, nil -} - -func (p *Function) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *Function) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - offset += p.fastWriteField3(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *Function) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - l += p.field3Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *Function) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetName() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Name) - } - return offset -} - -func (p *Function) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetDescription() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Description) - } - return offset -} - -func (p *Function) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetParameters() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 3) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Parameters) - } - return offset -} - -func (p *Function) field1Length() int { - l := 0 - if p.IsSetName() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Name) - } - return l -} - -func (p *Function) field2Length() int { - l := 0 - if p.IsSetDescription() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Description) - } - return l -} - -func (p *Function) field3Length() int { - l := 0 - if p.IsSetParameters() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Parameters) - } - return l -} - -func (p *Function) DeepCopy(s interface{}) error { - src, ok := s.(*Function) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.Name != nil { - var tmp string - if *src.Name != "" { - tmp = kutils.StringDeepCopy(*src.Name) - } - p.Name = &tmp - } - - if src.Description != nil { - var tmp string - if *src.Description != "" { - tmp = kutils.StringDeepCopy(*src.Description) - } - p.Description = &tmp - } - - if src.Parameters != nil { - var tmp string - if *src.Parameters != "" { - tmp = kutils.StringDeepCopy(*src.Parameters) - } - p.Parameters = &tmp - } - - return nil -} - -func (p *ToolCall) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.I32 { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 3: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField3(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 4: - if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField4(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ToolCall[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *ToolCall) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *int32 - if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Index = _field - return offset, nil -} - -func (p *ToolCall) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.ID = _field - return offset, nil -} - -func (p *ToolCall) FastReadField3(buf []byte) (int, error) { - offset := 0 - - var _field *ToolType - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Type = _field - return offset, nil -} - -func (p *ToolCall) FastReadField4(buf []byte) (int, error) { - offset := 0 - _field := NewFunctionCall() - if l, err := _field.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - p.FunctionCall = _field - return offset, nil -} - -func (p *ToolCall) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *ToolCall) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - offset += p.fastWriteField3(buf[offset:], w) - offset += p.fastWriteField4(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *ToolCall) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - l += p.field3Length() - l += p.field4Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *ToolCall) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetIndex() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 1) - offset += thrift.Binary.WriteI32(buf[offset:], *p.Index) - } - return offset -} - -func (p *ToolCall) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetID() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.ID) - } - return offset -} - -func (p *ToolCall) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetType() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 3) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Type) - } - return offset -} - -func (p *ToolCall) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetFunctionCall() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 4) - offset += p.FunctionCall.FastWriteNocopy(buf[offset:], w) - } - return offset -} - -func (p *ToolCall) field1Length() int { - l := 0 - if p.IsSetIndex() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I32Length() - } - return l -} - -func (p *ToolCall) field2Length() int { - l := 0 - if p.IsSetID() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.ID) - } - return l -} - -func (p *ToolCall) field3Length() int { - l := 0 - if p.IsSetType() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Type) - } - return l -} - -func (p *ToolCall) field4Length() int { - l := 0 - if p.IsSetFunctionCall() { - l += thrift.Binary.FieldBeginLength() - l += p.FunctionCall.BLength() - } - return l -} - -func (p *ToolCall) DeepCopy(s interface{}) error { - src, ok := s.(*ToolCall) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.Index != nil { - tmp := *src.Index - p.Index = &tmp - } - - if src.ID != nil { - var tmp string - if *src.ID != "" { - tmp = kutils.StringDeepCopy(*src.ID) - } - p.ID = &tmp - } - - if src.Type != nil { - tmp := *src.Type - p.Type = &tmp - } - - var _functionCall *FunctionCall - if src.FunctionCall != nil { - _functionCall = &FunctionCall{} - if err := _functionCall.DeepCopy(src.FunctionCall); err != nil { - return err - } - } - p.FunctionCall = _functionCall - - return nil -} - -func (p *FunctionCall) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_FunctionCall[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *FunctionCall) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Name = _field - return offset, nil -} - -func (p *FunctionCall) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Arguments = _field - return offset, nil -} - -func (p *FunctionCall) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *FunctionCall) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *FunctionCall) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *FunctionCall) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetName() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Name) - } - return offset -} - -func (p *FunctionCall) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetArguments() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Arguments) - } - return offset -} - -func (p *FunctionCall) field1Length() int { - l := 0 - if p.IsSetName() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Name) - } - return l -} - -func (p *FunctionCall) field2Length() int { - l := 0 - if p.IsSetArguments() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Arguments) - } - return l -} - -func (p *FunctionCall) DeepCopy(s interface{}) error { - src, ok := s.(*FunctionCall) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.Name != nil { - var tmp string - if *src.Name != "" { - tmp = kutils.StringDeepCopy(*src.Name) - } - p.Name = &tmp - } - - if src.Arguments != nil { - var tmp string - if *src.Arguments != "" { - tmp = kutils.StringDeepCopy(*src.Arguments) - } - p.Arguments = &tmp - } - - return nil -} - -func (p *LLMConfig) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.DOUBLE { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.I32 { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 3: - if fieldTypeId == thrift.I32 { - l, err = p.FastReadField3(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 4: - if fieldTypeId == thrift.DOUBLE { - l, err = p.FastReadField4(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 5: - if fieldTypeId == thrift.DOUBLE { - l, err = p.FastReadField5(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 6: - if fieldTypeId == thrift.DOUBLE { - l, err = p.FastReadField6(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 7: - if fieldTypeId == thrift.BOOL { - l, err = p.FastReadField7(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_LLMConfig[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *LLMConfig) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *float64 - if v, l, err := thrift.Binary.ReadDouble(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Temperature = _field - return offset, nil -} - -func (p *LLMConfig) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field *int32 - if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.MaxTokens = _field - return offset, nil -} - -func (p *LLMConfig) FastReadField3(buf []byte) (int, error) { - offset := 0 - - var _field *int32 - if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.TopK = _field - return offset, nil -} - -func (p *LLMConfig) FastReadField4(buf []byte) (int, error) { - offset := 0 - - var _field *float64 - if v, l, err := thrift.Binary.ReadDouble(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.TopP = _field - return offset, nil -} - -func (p *LLMConfig) FastReadField5(buf []byte) (int, error) { - offset := 0 - - var _field *float64 - if v, l, err := thrift.Binary.ReadDouble(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.PresencePenalty = _field - return offset, nil -} - -func (p *LLMConfig) FastReadField6(buf []byte) (int, error) { - offset := 0 - - var _field *float64 - if v, l, err := thrift.Binary.ReadDouble(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.FrequencyPenalty = _field - return offset, nil -} - -func (p *LLMConfig) FastReadField7(buf []byte) (int, error) { - offset := 0 - - var _field *bool - if v, l, err := thrift.Binary.ReadBool(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.JSONMode = _field - return offset, nil -} - -func (p *LLMConfig) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *LLMConfig) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - offset += p.fastWriteField3(buf[offset:], w) - offset += p.fastWriteField4(buf[offset:], w) - offset += p.fastWriteField5(buf[offset:], w) - offset += p.fastWriteField6(buf[offset:], w) - offset += p.fastWriteField7(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *LLMConfig) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - l += p.field3Length() - l += p.field4Length() - l += p.field5Length() - l += p.field6Length() - l += p.field7Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *LLMConfig) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetTemperature() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.DOUBLE, 1) - offset += thrift.Binary.WriteDouble(buf[offset:], *p.Temperature) - } - return offset -} - -func (p *LLMConfig) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetMaxTokens() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 2) - offset += thrift.Binary.WriteI32(buf[offset:], *p.MaxTokens) - } - return offset -} - -func (p *LLMConfig) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetTopK() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 3) - offset += thrift.Binary.WriteI32(buf[offset:], *p.TopK) - } - return offset -} - -func (p *LLMConfig) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetTopP() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.DOUBLE, 4) - offset += thrift.Binary.WriteDouble(buf[offset:], *p.TopP) - } - return offset -} - -func (p *LLMConfig) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetPresencePenalty() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.DOUBLE, 5) - offset += thrift.Binary.WriteDouble(buf[offset:], *p.PresencePenalty) - } - return offset -} - -func (p *LLMConfig) fastWriteField6(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetFrequencyPenalty() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.DOUBLE, 6) - offset += thrift.Binary.WriteDouble(buf[offset:], *p.FrequencyPenalty) - } - return offset -} - -func (p *LLMConfig) fastWriteField7(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetJSONMode() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.BOOL, 7) - offset += thrift.Binary.WriteBool(buf[offset:], *p.JSONMode) - } - return offset -} - -func (p *LLMConfig) field1Length() int { - l := 0 - if p.IsSetTemperature() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.DoubleLength() - } - return l -} - -func (p *LLMConfig) field2Length() int { - l := 0 - if p.IsSetMaxTokens() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I32Length() - } - return l -} - -func (p *LLMConfig) field3Length() int { - l := 0 - if p.IsSetTopK() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I32Length() - } - return l -} - -func (p *LLMConfig) field4Length() int { - l := 0 - if p.IsSetTopP() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.DoubleLength() - } - return l -} - -func (p *LLMConfig) field5Length() int { - l := 0 - if p.IsSetPresencePenalty() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.DoubleLength() - } - return l -} - -func (p *LLMConfig) field6Length() int { - l := 0 - if p.IsSetFrequencyPenalty() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.DoubleLength() - } - return l -} - -func (p *LLMConfig) field7Length() int { - l := 0 - if p.IsSetJSONMode() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.BoolLength() - } - return l -} - -func (p *LLMConfig) DeepCopy(s interface{}) error { - src, ok := s.(*LLMConfig) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.Temperature != nil { - tmp := *src.Temperature - p.Temperature = &tmp - } - - if src.MaxTokens != nil { - tmp := *src.MaxTokens - p.MaxTokens = &tmp - } - - if src.TopK != nil { - tmp := *src.TopK - p.TopK = &tmp - } - - if src.TopP != nil { - tmp := *src.TopP - p.TopP = &tmp - } - - if src.PresencePenalty != nil { - tmp := *src.PresencePenalty - p.PresencePenalty = &tmp - } - - if src.FrequencyPenalty != nil { - tmp := *src.FrequencyPenalty - p.FrequencyPenalty = &tmp - } - - if src.JSONMode != nil { - tmp := *src.JSONMode - p.JSONMode = &tmp - } - - return nil -} - -func (p *VariableVal) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 3: - if fieldTypeId == thrift.LIST { - l, err = p.FastReadField3(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 4: - if fieldTypeId == thrift.LIST { - l, err = p.FastReadField4(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_VariableVal[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *VariableVal) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Key = _field - return offset, nil -} - -func (p *VariableVal) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Value = _field - return offset, nil -} - -func (p *VariableVal) FastReadField3(buf []byte) (int, error) { - offset := 0 - - _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) - offset += l - if err != nil { - return offset, err - } - _field := make([]*Message, 0, size) - values := make([]Message, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - if l, err := _elem.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - - _field = append(_field, _elem) - } - p.PlaceholderMessages = _field - return offset, nil -} - -func (p *VariableVal) FastReadField4(buf []byte) (int, error) { - offset := 0 - - _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) - offset += l - if err != nil { - return offset, err - } - _field := make([]*ContentPart, 0, size) - values := make([]ContentPart, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - if l, err := _elem.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - - _field = append(_field, _elem) - } - p.MultiPartValues = _field - return offset, nil -} - -func (p *VariableVal) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *VariableVal) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - offset += p.fastWriteField3(buf[offset:], w) - offset += p.fastWriteField4(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *VariableVal) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - l += p.field3Length() - l += p.field4Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *VariableVal) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetKey() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Key) - } - return offset -} - -func (p *VariableVal) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetValue() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Value) - } - return offset -} - -func (p *VariableVal) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetPlaceholderMessages() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 3) - listBeginOffset := offset - offset += thrift.Binary.ListBeginLength() - var length int - for _, v := range p.PlaceholderMessages { - length++ - offset += v.FastWriteNocopy(buf[offset:], w) - } - thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) - } - return offset -} - -func (p *VariableVal) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetMultiPartValues() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 4) - listBeginOffset := offset - offset += thrift.Binary.ListBeginLength() - var length int - for _, v := range p.MultiPartValues { - length++ - offset += v.FastWriteNocopy(buf[offset:], w) - } - thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) - } - return offset -} - -func (p *VariableVal) field1Length() int { - l := 0 - if p.IsSetKey() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Key) - } - return l -} - -func (p *VariableVal) field2Length() int { - l := 0 - if p.IsSetValue() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Value) - } - return l -} - -func (p *VariableVal) field3Length() int { - l := 0 - if p.IsSetPlaceholderMessages() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.ListBeginLength() - for _, v := range p.PlaceholderMessages { - _ = v - l += v.BLength() - } - } - return l -} - -func (p *VariableVal) field4Length() int { - l := 0 - if p.IsSetMultiPartValues() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.ListBeginLength() - for _, v := range p.MultiPartValues { - _ = v - l += v.BLength() - } - } - return l -} - -func (p *VariableVal) DeepCopy(s interface{}) error { - src, ok := s.(*VariableVal) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.Key != nil { - var tmp string - if *src.Key != "" { - tmp = kutils.StringDeepCopy(*src.Key) - } - p.Key = &tmp - } - - if src.Value != nil { - var tmp string - if *src.Value != "" { - tmp = kutils.StringDeepCopy(*src.Value) - } - p.Value = &tmp - } - - if src.PlaceholderMessages != nil { - p.PlaceholderMessages = make([]*Message, 0, len(src.PlaceholderMessages)) - for _, elem := range src.PlaceholderMessages { - var _elem *Message - if elem != nil { - _elem = &Message{} - if err := _elem.DeepCopy(elem); err != nil { - return err - } - } - - p.PlaceholderMessages = append(p.PlaceholderMessages, _elem) - } - } - - if src.MultiPartValues != nil { - p.MultiPartValues = make([]*ContentPart, 0, len(src.MultiPartValues)) - for _, elem := range src.MultiPartValues { - var _elem *ContentPart - if elem != nil { - _elem = &ContentPart{} - if err := _elem.DeepCopy(elem); err != nil { - return err - } - } - - p.MultiPartValues = append(p.MultiPartValues, _elem) - } - } - - return nil -} - -func (p *TokenUsage) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.I32 { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.I32 { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_TokenUsage[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *TokenUsage) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *int32 - if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.InputTokens = _field - return offset, nil -} - -func (p *TokenUsage) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field *int32 - if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.OutputTokens = _field - return offset, nil -} - -func (p *TokenUsage) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *TokenUsage) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *TokenUsage) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *TokenUsage) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetInputTokens() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 1) - offset += thrift.Binary.WriteI32(buf[offset:], *p.InputTokens) - } - return offset -} - -func (p *TokenUsage) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetOutputTokens() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 2) - offset += thrift.Binary.WriteI32(buf[offset:], *p.OutputTokens) - } - return offset -} - -func (p *TokenUsage) field1Length() int { - l := 0 - if p.IsSetInputTokens() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I32Length() - } - return l -} - -func (p *TokenUsage) field2Length() int { - l := 0 - if p.IsSetOutputTokens() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I32Length() - } - return l -} - -func (p *TokenUsage) DeepCopy(s interface{}) error { - src, ok := s.(*TokenUsage) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.InputTokens != nil { - tmp := *src.InputTokens - p.InputTokens = &tmp - } - - if src.OutputTokens != nil { - tmp := *src.OutputTokens - p.OutputTokens = &tmp - } - - return nil -} - -func (p *ListPromptBasicRequest) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.I64 { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.I32 { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 3: - if fieldTypeId == thrift.I32 { - l, err = p.FastReadField3(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 4: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField4(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 5: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField5(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 254: - if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField254(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 255: - if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField255(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListPromptBasicRequest[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *ListPromptBasicRequest) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *int64 - if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.WorkspaceID = _field - return offset, nil -} - -func (p *ListPromptBasicRequest) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field *int32 - if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.PageNumber = _field - return offset, nil -} - -func (p *ListPromptBasicRequest) FastReadField3(buf []byte) (int, error) { - offset := 0 - - var _field *int32 - if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.PageSize = _field - return offset, nil -} - -func (p *ListPromptBasicRequest) FastReadField4(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.KeyWord = _field - return offset, nil -} - -func (p *ListPromptBasicRequest) FastReadField5(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Creator = _field - return offset, nil -} - -func (p *ListPromptBasicRequest) FastReadField254(buf []byte) (int, error) { - offset := 0 - _field := extra.NewExtra() - if l, err := _field.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - p.Extra = _field - return offset, nil -} - -func (p *ListPromptBasicRequest) FastReadField255(buf []byte) (int, error) { - offset := 0 - _field := base.NewBase() - if l, err := _field.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - p.Base = _field - return offset, nil -} - -func (p *ListPromptBasicRequest) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *ListPromptBasicRequest) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - offset += p.fastWriteField3(buf[offset:], w) - offset += p.fastWriteField4(buf[offset:], w) - offset += p.fastWriteField5(buf[offset:], w) - offset += p.fastWriteField254(buf[offset:], w) - offset += p.fastWriteField255(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *ListPromptBasicRequest) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - l += p.field3Length() - l += p.field4Length() - l += p.field5Length() - l += p.field254Length() - l += p.field255Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *ListPromptBasicRequest) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetWorkspaceID() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 1) - offset += thrift.Binary.WriteI64(buf[offset:], *p.WorkspaceID) - } - return offset -} - -func (p *ListPromptBasicRequest) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetPageNumber() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 2) - offset += thrift.Binary.WriteI32(buf[offset:], *p.PageNumber) - } - return offset -} - -func (p *ListPromptBasicRequest) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetPageSize() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 3) - offset += thrift.Binary.WriteI32(buf[offset:], *p.PageSize) - } - return offset -} - -func (p *ListPromptBasicRequest) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetKeyWord() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 4) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.KeyWord) - } - return offset -} - -func (p *ListPromptBasicRequest) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetCreator() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 5) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Creator) - } - return offset -} - -func (p *ListPromptBasicRequest) fastWriteField254(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetExtra() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 254) - offset += p.Extra.FastWriteNocopy(buf[offset:], w) - } - return offset -} - -func (p *ListPromptBasicRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetBase() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) - offset += p.Base.FastWriteNocopy(buf[offset:], w) - } - return offset -} - -func (p *ListPromptBasicRequest) field1Length() int { - l := 0 - if p.IsSetWorkspaceID() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() - } - return l -} - -func (p *ListPromptBasicRequest) field2Length() int { - l := 0 - if p.IsSetPageNumber() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I32Length() - } - return l -} - -func (p *ListPromptBasicRequest) field3Length() int { - l := 0 - if p.IsSetPageSize() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I32Length() - } - return l -} - -func (p *ListPromptBasicRequest) field4Length() int { - l := 0 - if p.IsSetKeyWord() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.KeyWord) - } - return l -} - -func (p *ListPromptBasicRequest) field5Length() int { - l := 0 - if p.IsSetCreator() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Creator) - } - return l -} - -func (p *ListPromptBasicRequest) field254Length() int { - l := 0 - if p.IsSetExtra() { - l += thrift.Binary.FieldBeginLength() - l += p.Extra.BLength() - } - return l -} - -func (p *ListPromptBasicRequest) field255Length() int { - l := 0 - if p.IsSetBase() { - l += thrift.Binary.FieldBeginLength() - l += p.Base.BLength() - } - return l -} - -func (p *ListPromptBasicRequest) DeepCopy(s interface{}) error { - src, ok := s.(*ListPromptBasicRequest) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.WorkspaceID != nil { - tmp := *src.WorkspaceID - p.WorkspaceID = &tmp - } - - if src.PageNumber != nil { - tmp := *src.PageNumber - p.PageNumber = &tmp - } - - if src.PageSize != nil { - tmp := *src.PageSize - p.PageSize = &tmp - } - - if src.KeyWord != nil { - var tmp string - if *src.KeyWord != "" { - tmp = kutils.StringDeepCopy(*src.KeyWord) - } - p.KeyWord = &tmp - } - - if src.Creator != nil { - var tmp string - if *src.Creator != "" { - tmp = kutils.StringDeepCopy(*src.Creator) - } - p.Creator = &tmp - } - - var _extra *extra.Extra - if src.Extra != nil { - _extra = &extra.Extra{} - if err := _extra.DeepCopy(src.Extra); err != nil { - return err - } - } - p.Extra = _extra - - var _base *base.Base - if src.Base != nil { - _base = &base.Base{} - if err := _base.DeepCopy(src.Base); err != nil { - return err - } - } - p.Base = _base - - return nil -} - -func (p *ListPromptBasicResponse) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.I32 { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 3: - if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField3(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 255: - if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField255(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListPromptBasicResponse[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *ListPromptBasicResponse) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *int32 - if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Code = _field - return offset, nil -} - -func (p *ListPromptBasicResponse) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Msg = _field - return offset, nil -} - -func (p *ListPromptBasicResponse) FastReadField3(buf []byte) (int, error) { - offset := 0 - _field := NewListPromptBasicData() - if l, err := _field.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - p.Data = _field - return offset, nil -} - -func (p *ListPromptBasicResponse) FastReadField255(buf []byte) (int, error) { - offset := 0 - _field := base.NewBaseResp() - if l, err := _field.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - p.BaseResp = _field - return offset, nil -} - -func (p *ListPromptBasicResponse) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *ListPromptBasicResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - offset += p.fastWriteField3(buf[offset:], w) - offset += p.fastWriteField255(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *ListPromptBasicResponse) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - l += p.field3Length() - l += p.field255Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *ListPromptBasicResponse) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetCode() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 1) - offset += thrift.Binary.WriteI32(buf[offset:], *p.Code) - } - return offset -} - -func (p *ListPromptBasicResponse) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetMsg() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Msg) - } - return offset -} - -func (p *ListPromptBasicResponse) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetData() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 3) - offset += p.Data.FastWriteNocopy(buf[offset:], w) - } - return offset -} - -func (p *ListPromptBasicResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetBaseResp() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) - offset += p.BaseResp.FastWriteNocopy(buf[offset:], w) - } - return offset -} - -func (p *ListPromptBasicResponse) field1Length() int { - l := 0 - if p.IsSetCode() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I32Length() - } - return l -} - -func (p *ListPromptBasicResponse) field2Length() int { - l := 0 - if p.IsSetMsg() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Msg) - } - return l -} - -func (p *ListPromptBasicResponse) field3Length() int { - l := 0 - if p.IsSetData() { - l += thrift.Binary.FieldBeginLength() - l += p.Data.BLength() - } - return l -} - -func (p *ListPromptBasicResponse) field255Length() int { - l := 0 - if p.IsSetBaseResp() { - l += thrift.Binary.FieldBeginLength() - l += p.BaseResp.BLength() - } - return l -} - -func (p *ListPromptBasicResponse) DeepCopy(s interface{}) error { - src, ok := s.(*ListPromptBasicResponse) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.Code != nil { - tmp := *src.Code - p.Code = &tmp - } - - if src.Msg != nil { - var tmp string - if *src.Msg != "" { - tmp = kutils.StringDeepCopy(*src.Msg) - } - p.Msg = &tmp - } - - var _data *ListPromptBasicData - if src.Data != nil { - _data = &ListPromptBasicData{} - if err := _data.DeepCopy(src.Data); err != nil { - return err - } - } - p.Data = _data - - var _baseResp *base.BaseResp - if src.BaseResp != nil { - _baseResp = &base.BaseResp{} - if err := _baseResp.DeepCopy(src.BaseResp); err != nil { - return err - } - } - p.BaseResp = _baseResp - - return nil -} - -func (p *PromptBasic) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.I64 { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.I64 { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 3: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField3(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 4: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField4(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 5: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField5(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 6: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField6(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 7: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField7(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 8: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField8(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 9: - if fieldTypeId == thrift.I64 { - l, err = p.FastReadField9(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 10: - if fieldTypeId == thrift.I64 { - l, err = p.FastReadField10(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 11: - if fieldTypeId == thrift.I64 { - l, err = p.FastReadField11(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PromptBasic[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *PromptBasic) FastReadField1(buf []byte) (int, error) { - offset := 0 - - var _field *int64 - if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.ID = _field - return offset, nil -} - -func (p *PromptBasic) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field *int64 - if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.WorkspaceID = _field - return offset, nil -} - -func (p *PromptBasic) FastReadField3(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.PromptKey = _field - return offset, nil -} - -func (p *PromptBasic) FastReadField4(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.DisplayName = _field - return offset, nil -} - -func (p *PromptBasic) FastReadField5(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Description = _field - return offset, nil -} - -func (p *PromptBasic) FastReadField6(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.LatestVersion = _field - return offset, nil -} - -func (p *PromptBasic) FastReadField7(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.CreatedBy = _field - return offset, nil -} - -func (p *PromptBasic) FastReadField8(buf []byte) (int, error) { - offset := 0 - - var _field *string - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.UpdatedBy = _field - return offset, nil -} - -func (p *PromptBasic) FastReadField9(buf []byte) (int, error) { - offset := 0 - - var _field *int64 - if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.CreatedAt = _field - return offset, nil -} - -func (p *PromptBasic) FastReadField10(buf []byte) (int, error) { - offset := 0 - - var _field *int64 - if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.UpdatedAt = _field - return offset, nil -} - -func (p *PromptBasic) FastReadField11(buf []byte) (int, error) { - offset := 0 - - var _field *int64 - if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.LatestCommittedAt = _field - return offset, nil -} - -func (p *PromptBasic) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *PromptBasic) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField2(buf[offset:], w) - offset += p.fastWriteField9(buf[offset:], w) - offset += p.fastWriteField10(buf[offset:], w) - offset += p.fastWriteField11(buf[offset:], w) - offset += p.fastWriteField3(buf[offset:], w) - offset += p.fastWriteField4(buf[offset:], w) - offset += p.fastWriteField5(buf[offset:], w) - offset += p.fastWriteField6(buf[offset:], w) - offset += p.fastWriteField7(buf[offset:], w) - offset += p.fastWriteField8(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *PromptBasic) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - l += p.field3Length() - l += p.field4Length() - l += p.field5Length() - l += p.field6Length() - l += p.field7Length() - l += p.field8Length() - l += p.field9Length() - l += p.field10Length() - l += p.field11Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *PromptBasic) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetID() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 1) - offset += thrift.Binary.WriteI64(buf[offset:], *p.ID) - } - return offset -} - -func (p *PromptBasic) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetWorkspaceID() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 2) - offset += thrift.Binary.WriteI64(buf[offset:], *p.WorkspaceID) - } - return offset -} - -func (p *PromptBasic) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetPromptKey() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 3) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.PromptKey) - } - return offset -} - -func (p *PromptBasic) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetDisplayName() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 4) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.DisplayName) - } - return offset -} - -func (p *PromptBasic) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetDescription() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 5) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Description) - } - return offset -} - -func (p *PromptBasic) fastWriteField6(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetLatestVersion() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 6) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.LatestVersion) - } - return offset -} - -func (p *PromptBasic) fastWriteField7(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetCreatedBy() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 7) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.CreatedBy) - } - return offset -} - -func (p *PromptBasic) fastWriteField8(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetUpdatedBy() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 8) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.UpdatedBy) - } - return offset -} - -func (p *PromptBasic) fastWriteField9(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetCreatedAt() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 9) - offset += thrift.Binary.WriteI64(buf[offset:], *p.CreatedAt) - } - return offset -} - -func (p *PromptBasic) fastWriteField10(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetUpdatedAt() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 10) - offset += thrift.Binary.WriteI64(buf[offset:], *p.UpdatedAt) - } - return offset -} - -func (p *PromptBasic) fastWriteField11(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetLatestCommittedAt() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 11) - offset += thrift.Binary.WriteI64(buf[offset:], *p.LatestCommittedAt) - } - return offset -} - -func (p *PromptBasic) field1Length() int { - l := 0 - if p.IsSetID() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() - } - return l -} - -func (p *PromptBasic) field2Length() int { - l := 0 - if p.IsSetWorkspaceID() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() - } - return l -} - -func (p *PromptBasic) field3Length() int { - l := 0 - if p.IsSetPromptKey() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.PromptKey) - } - return l -} - -func (p *PromptBasic) field4Length() int { - l := 0 - if p.IsSetDisplayName() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.DisplayName) - } - return l -} - -func (p *PromptBasic) field5Length() int { - l := 0 - if p.IsSetDescription() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Description) - } - return l -} - -func (p *PromptBasic) field6Length() int { - l := 0 - if p.IsSetLatestVersion() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.LatestVersion) - } - return l -} - -func (p *PromptBasic) field7Length() int { - l := 0 - if p.IsSetCreatedBy() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.CreatedBy) - } - return l -} - -func (p *PromptBasic) field8Length() int { - l := 0 - if p.IsSetUpdatedBy() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.UpdatedBy) - } - return l -} - -func (p *PromptBasic) field9Length() int { - l := 0 - if p.IsSetCreatedAt() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() - } - return l -} - -func (p *PromptBasic) field10Length() int { - l := 0 - if p.IsSetUpdatedAt() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() - } - return l -} - -func (p *PromptBasic) field11Length() int { - l := 0 - if p.IsSetLatestCommittedAt() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() - } - return l -} - -func (p *PromptBasic) DeepCopy(s interface{}) error { - src, ok := s.(*PromptBasic) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.ID != nil { - tmp := *src.ID - p.ID = &tmp - } - - if src.WorkspaceID != nil { - tmp := *src.WorkspaceID - p.WorkspaceID = &tmp - } - - if src.PromptKey != nil { - var tmp string - if *src.PromptKey != "" { - tmp = kutils.StringDeepCopy(*src.PromptKey) - } - p.PromptKey = &tmp - } - - if src.DisplayName != nil { - var tmp string - if *src.DisplayName != "" { - tmp = kutils.StringDeepCopy(*src.DisplayName) - } - p.DisplayName = &tmp - } - - if src.Description != nil { - var tmp string - if *src.Description != "" { - tmp = kutils.StringDeepCopy(*src.Description) - } - p.Description = &tmp - } - - if src.LatestVersion != nil { - var tmp string - if *src.LatestVersion != "" { - tmp = kutils.StringDeepCopy(*src.LatestVersion) - } - p.LatestVersion = &tmp - } - - if src.CreatedBy != nil { - var tmp string - if *src.CreatedBy != "" { - tmp = kutils.StringDeepCopy(*src.CreatedBy) - } - p.CreatedBy = &tmp - } - - if src.UpdatedBy != nil { - var tmp string - if *src.UpdatedBy != "" { - tmp = kutils.StringDeepCopy(*src.UpdatedBy) - } - p.UpdatedBy = &tmp - } - - if src.CreatedAt != nil { - tmp := *src.CreatedAt - p.CreatedAt = &tmp - } - - if src.UpdatedAt != nil { - tmp := *src.UpdatedAt - p.UpdatedAt = &tmp - } - - if src.LatestCommittedAt != nil { - tmp := *src.LatestCommittedAt - p.LatestCommittedAt = &tmp - } - - return nil -} - -func (p *ListPromptBasicData) FastRead(buf []byte) (int, error) { - - var err error - var offset int - var l int - var fieldTypeId thrift.TType - var fieldId int16 - for { - fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldBeginError - } - if fieldTypeId == thrift.STOP { - break - } - switch fieldId { - case 1: - if fieldTypeId == thrift.LIST { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 2: - if fieldTypeId == thrift.I32 { - l, err = p.FastReadField2(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - default: - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - } - - return offset, nil -ReadFieldBeginError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) -ReadFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListPromptBasicData[fieldId]), err) -SkipFieldError: - return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) -} - -func (p *ListPromptBasicData) FastReadField1(buf []byte) (int, error) { - offset := 0 - - _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) - offset += l - if err != nil { - return offset, err - } - _field := make([]*PromptBasic, 0, size) - values := make([]PromptBasic, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - if l, err := _elem.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - - _field = append(_field, _elem) - } - p.Prompts = _field - return offset, nil -} - -func (p *ListPromptBasicData) FastReadField2(buf []byte) (int, error) { - offset := 0 - - var _field *int32 - if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.Total = _field - return offset, nil -} - -func (p *ListPromptBasicData) FastWrite(buf []byte) int { - return p.FastWriteNocopy(buf, nil) -} - -func (p *ListPromptBasicData) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p != nil { - offset += p.fastWriteField2(buf[offset:], w) - offset += p.fastWriteField1(buf[offset:], w) - } - offset += thrift.Binary.WriteFieldStop(buf[offset:]) - return offset -} - -func (p *ListPromptBasicData) BLength() int { - l := 0 - if p != nil { - l += p.field1Length() - l += p.field2Length() - } - l += thrift.Binary.FieldStopLength() - return l -} - -func (p *ListPromptBasicData) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetPrompts() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 1) - listBeginOffset := offset - offset += thrift.Binary.ListBeginLength() - var length int - for _, v := range p.Prompts { - length++ - offset += v.FastWriteNocopy(buf[offset:], w) - } - thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) - } - return offset -} - -func (p *ListPromptBasicData) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetTotal() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 2) - offset += thrift.Binary.WriteI32(buf[offset:], *p.Total) - } - return offset -} - -func (p *ListPromptBasicData) field1Length() int { - l := 0 - if p.IsSetPrompts() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.ListBeginLength() - for _, v := range p.Prompts { - _ = v - l += v.BLength() - } - } - return l -} - -func (p *ListPromptBasicData) field2Length() int { - l := 0 - if p.IsSetTotal() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I32Length() - } - return l -} - -func (p *ListPromptBasicData) DeepCopy(s interface{}) error { - src, ok := s.(*ListPromptBasicData) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) - } - - if src.Prompts != nil { - p.Prompts = make([]*PromptBasic, 0, len(src.Prompts)) - for _, elem := range src.Prompts { - var _elem *PromptBasic - if elem != nil { - _elem = &PromptBasic{} - if err := _elem.DeepCopy(elem); err != nil { - return err - } - } - - p.Prompts = append(p.Prompts, _elem) - } - } - - if src.Total != nil { - tmp := *src.Total - p.Total = &tmp } + p.BaseResp = _baseResp return nil } diff --git a/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift b/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift index a7002de45..a8769ea82 100644 --- a/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift +++ b/idl/thrift/coze/loop/prompt/coze.loop.prompt.openapi.thrift @@ -72,7 +72,6 @@ struct ListPromptBasicRequest { 5: optional string creator (api.body="creator") // 创建人 6: optional map extra (api.body="extra") // 额外查询条件 - 254: optional extra.Extra extra (agw.source="not_body_struct") 255: optional base.Base Base }