-
-
Notifications
You must be signed in to change notification settings - Fork 78
Expand file tree
/
Copy pathapi_aily_aily_session_aily_message_create.go
More file actions
146 lines (130 loc) · 9.96 KB
/
Copy pathapi_aily_aily_session_aily_message_create.go
File metadata and controls
146 lines (130 loc) · 9.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
// Code generated by lark_sdk_gen. DO NOT EDIT.
/**
* Copyright 2022 chyroc
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package lark
import (
"context"
)
// CreateAilySessionAilyMessage 该 API 用于向某个飞书 Aily 应用发送一条消息(Message);每个消息从属于一个活跃的会话(Session)。
//
// 更多信息及示例代码, 可参考 [Aily OpenAPI 接入与接口说明](https://bytedance.larkoffice.com/wiki/UTU6wVTVGigefykjO1acAOOvnNc)。
// ## 实体概念说明
// - 会话(Session): 管理用户与 Aily 助手之间的交互会话;每次会话记录了用户发送给 Aily 助手的消息以及 Aily 助手的响应。
// - 消息(Message): 消息可以包含文本、表格、图片等多种类型的内容。
// - 运行(Run): Aily 助手基于会话内消息进行意图判定、调用匹配的技能, 并返回技能执行后的结果消息。
//
// doc: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/aily-v1/aily_session-aily_message/create
// new doc: https://open.feishu.cn/document/aily-v1/aily_session-aily_message/create
func (r *AilyService) CreateAilySessionAilyMessage(ctx context.Context, request *CreateAilySessionAilyMessageReq, options ...MethodOptionFunc) (*CreateAilySessionAilyMessageResp, *Response, error) {
if r.cli.mock.mockAilyCreateAilySessionAilyMessage != nil {
r.cli.Log(ctx, LogLevelDebug, "[lark] Aily#CreateAilySessionAilyMessage mock enable")
return r.cli.mock.mockAilyCreateAilySessionAilyMessage(ctx, request, options...)
}
req := &RawRequestReq{
Scope: "Aily",
API: "CreateAilySessionAilyMessage",
Method: "POST",
URL: r.cli.openBaseURL + "/open-apis/aily/v1/sessions/:aily_session_id/messages",
Body: request,
MethodOption: newMethodOption(options),
NeedTenantAccessToken: true,
NeedUserAccessToken: true,
}
resp := new(createAilySessionAilyMessageResp)
response, err := r.cli.RawRequest(ctx, req, resp)
return resp.Data, response, err
}
// MockAilyCreateAilySessionAilyMessage mock AilyCreateAilySessionAilyMessage method
func (r *Mock) MockAilyCreateAilySessionAilyMessage(f func(ctx context.Context, request *CreateAilySessionAilyMessageReq, options ...MethodOptionFunc) (*CreateAilySessionAilyMessageResp, *Response, error)) {
r.mockAilyCreateAilySessionAilyMessage = f
}
// UnMockAilyCreateAilySessionAilyMessage un-mock AilyCreateAilySessionAilyMessage method
func (r *Mock) UnMockAilyCreateAilySessionAilyMessage() {
r.mockAilyCreateAilySessionAilyMessage = nil
}
// CreateAilySessionAilyMessageReq ...
type CreateAilySessionAilyMessageReq struct {
AilySessionID string `path:"aily_session_id" json:"-"` // 会话 ID;参考 [创建会话](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/aily-v1/aily_session/create) 接口示例值: "session_4dfunz7sp1g8m" 长度范围: `9` ~ `32` 字符- 正则校验: `session_[0-9a-hjkmnp-z]{1, 24}`
IdempotentID string `json:"idempotent_id,omitempty"` // 幂等 ID(如使用 UUID 生成器或时间戳), 同一会话下相同的幂等 ID 视为同一个消息(72h)示例值: "idempotent_id_1" 长度范围: `0` ~ `64` 字符
ContentType string `json:"content_type,omitempty"` // 消息的类型, 包括 `MDX` | `TEXT` 等- `MDX` 能够表达富文本信息结构, 可参考 [Aily 消息节点 markdown 语法](https://bytedance.larkoffice.com/wiki/ZlHYw8jJci3o4dkkEZZcybM0nah)- `TEXT` 作为纯文本进行处理示例值: "MDX"可选值有: MDXTEXTGUI 卡片SmartCardJSON
Content string `json:"content,omitempty"` // 消息内容示例值: "你好" 长度范围: `0` ~ `61440` 字符
FileIDs []string `json:"file_ids,omitempty"` // 消息中包含的文件 ID 列表示例值: ["file_4d9nu1ev3a2rq"] 长度范围: `0` ~ `32`
QuoteMessageID *string `json:"quote_message_id,omitempty"` // 引用的消息 ID示例值: "message_4de9bpg70qskh" 长度范围: `0` ~ `32` 字符- 正则校验: `message_[0-9a-hjkmnp-z]{1, 24}`
Mentions []*Mention `json:"mentions,omitempty"` // 被@的实体 长度范围: `0` ~ `32`
}
// CreateAilySessionAilyMessageReqMention ...
type CreateAilySessionAilyMessageReqMention struct {
EntityID *string `json:"entity_id,omitempty"` // 实体 ID示例值: "ou_5ad573a6411d72b8305fda3a9c15c70e" 长度范围: `0` ~ `64` 字符
IdentityProvider *string `json:"identity_provider,omitempty"` // 身份提供者示例值: "FEISHU"可选值有: Aily 账号体系飞书账号体系
Key *string `json:"key,omitempty"` // 被@实体在消息体中的占位符示例值: "@_user_1" 长度范围: `0` ~ `32` 字符
Name *string `json:"name,omitempty"` // 被@实体的名称示例值: "张三" 长度范围: `0` ~ `32` 字符
AilyID *string `json:"aily_id,omitempty"` // 飞书智能伙伴创建平台账号体系下的 ID示例值: "1794840334557292" 长度范围: `0` ~ `20` 字符
}
// CreateAilySessionAilyMessageResp ...
type CreateAilySessionAilyMessageResp struct {
Message *CreateAilySessionAilyMessageRespMessage `json:"message,omitempty"` // 消息信息
}
// CreateAilySessionAilyMessageRespMessage ...
type CreateAilySessionAilyMessageRespMessage struct {
ID string `json:"id,omitempty"` // 消息 ID
SessionID string `json:"session_id,omitempty"` // 会话 ID
RunID string `json:"run_id,omitempty"` // 运行 ID
ContentType string `json:"content_type,omitempty"` // 消息内容类型可选值有: MDXTEXTGUI 卡片SmartCardJSON
Content string `json:"content,omitempty"` // 消息内容
Files []*CreateAilySessionAilyMessageRespMessageFile `json:"files,omitempty"` // 消息中包含的文件
QuoteMessageID string `json:"quote_message_id,omitempty"` // 引用的消息 ID
Sender *Sender `json:"sender,omitempty"` // 发送者
Mentions []*Mention `json:"mentions,omitempty"` // 被@的实体
PlainText string `json:"plain_text,omitempty"` // 消息体的纯文本表达
CreatedAt string `json:"created_at,omitempty"` // 消息的创建时间, 毫秒时间戳
Status string `json:"status,omitempty"` // 状态可选值有: 生成中已完成
}
// CreateAilySessionAilyMessageRespMessageFile ...
type CreateAilySessionAilyMessageRespMessageFile struct {
ID string `json:"id,omitempty"` // 文件 ID
MimeType string `json:"mime_type,omitempty"` // 文件类型, 参见[MIME 类型(IANA 媒体类型)](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types)
FileName string `json:"file_name,omitempty"` // 文件名
Metadata string `json:"metadata,omitempty"` // 其他透传信息
CreatedAt string `json:"created_at,omitempty"` // 文件的创建时间, 毫秒时间戳
PreviewURL *CreateAilySessionAilyMessageRespMessageFilePreviewURL `json:"preview_url,omitempty"` // 文件预览链接
}
// CreateAilySessionAilyMessageRespMessageFilePreviewURL ...
type CreateAilySessionAilyMessageRespMessageFilePreviewURL struct {
URL string `json:"url,omitempty"` // 文件的 URL
ExpiredAt string `json:"expired_at,omitempty"` // url 过期时间, 秒时间戳
}
// CreateAilySessionAilyMessageRespMessageMention ...
type CreateAilySessionAilyMessageRespMessageMention struct {
EntityID string `json:"entity_id,omitempty"` // 实体 ID
IdentityProvider string `json:"identity_provider,omitempty"` // 身份提供者可选值有: Aily 账号体系飞书账号体系
Key string `json:"key,omitempty"` // 被@实体在消息体中的占位符
Name string `json:"name,omitempty"` // 被@实体的名称
AilyID string `json:"aily_id,omitempty"` // 飞书智能伙伴创建平台账号体系下的 ID
}
// CreateAilySessionAilyMessageRespMessageSender ...
type CreateAilySessionAilyMessageRespMessageSender struct {
EntityID string `json:"entity_id,omitempty"` // 实体 ID
IdentityProvider string `json:"identity_provider,omitempty"` // 身份提供者可选值有: Aily 账号体系飞书账号体系
SenderType string `json:"sender_type,omitempty"` // 发送人类型可选值有: 用户应用
AilyID string `json:"aily_id,omitempty"` // 飞书智能伙伴创建平台账号体系下的 ID
}
// createAilySessionAilyMessageResp ...
type createAilySessionAilyMessageResp struct {
Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败
Msg string `json:"msg,omitempty"` // 错误描述
Data *CreateAilySessionAilyMessageResp `json:"data,omitempty"`
Error *ErrorDetail `json:"error,omitempty"`
}