Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
uni-ai-chat
提交
815418cb
U
uni-ai-chat
项目概览
DCloud
/
uni-ai-chat
通知
893
Star
11
Fork
8
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
2
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-ai-chat
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
2
Issue
2
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
815418cb
编写于
5月 06, 2023
作者:
DCloud_JSON
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
更新配置字段和文档
上级
934a24b2
变更
4
显示空白变更内容
内联
并排
Showing
4 changed file
with
22 addition
and
20 deletion
+22
-20
_redme.md
_redme.md
+11
-10
uniCloud-aliyun/cloudfunctions/reward-video-callback/index.js
...loud-aliyun/cloudfunctions/reward-video-callback/index.js
+4
-4
uniCloud-aliyun/cloudfunctions/uni-ai-chat/index.obj.js
uniCloud-aliyun/cloudfunctions/uni-ai-chat/index.obj.js
+3
-3
uni_modules/uni-config-center/uniCloud/cloudfunctions/common/uni-config-center/uni-ai-chat/config.json
...unctions/common/uni-config-center/uni-ai-chat/config.json
+4
-3
未找到文件。
_redme.md
浏览文件 @
815418cb
...
@@ -53,10 +53,11 @@
...
@@ -53,10 +53,11 @@
| 字段 | 类型 | 默认值| 描述 |
| 字段 | 类型 | 默认值| 描述 |
| :-------- | :-------- | :--- | :-------------------- |
| :-------- | :-------- | :--- | :-------------------- |
| contentSecurity | Boolean | false | 开启内容安全识别 |
| contentSecurity | Boolean | false | 开启内容安全识别 |
| ad | object | - | 广告配置 |
| spentScore | Number | 0 | 对话一次所需消耗的积分数 |
|
|
-
rewardScore | Number | 3 | 看一次广告奖励多少积分 |
| earnedScore | object | - | 配置积分的获取策略 |
| needReduceScore | Number | 0 | 对话一次需要消耗的积分数 |
|
|
-
ad | Number | 3 | 观看1次广告可获得的积分数量 |
| chatCompletionOptions | Object | - | 支持配置:
`model`
,
`tokensToGenerate`
(默认值:512),
`temperature`
,
`topP`
,详情查看:
[
https://uniapp.dcloud.net.cn/uniCloud/uni-ai.html#chat-completion
](
https://uniapp.dcloud.net.cn/uniCloud/uni-ai.html#chat-completion
)
|
|
|
-
price | Number | 3 | 支付1元可获得的积分数量(暂未支持) |
| chatCompletionOptions | Object | - | 支持配置:
`model`
,
`tokensToGenerate`
(默认值:512),
`temperature`
,
`topP`
</br>
详情查看:
[
https://uniapp.dcloud.net.cn/uniCloud/uni-ai.html#chat-completion
](
https://uniapp.dcloud.net.cn/uniCloud/uni-ai.html#chat-completion
)
|
| llm | Object | - | 大语言模型配置,详情查看:
[
https://uniapp.dcloud.net.cn/uniCloud/uni-ai.html#get-llm-manager
](
https://uniapp.dcloud.net.cn/uniCloud/uni-ai.html#get-llm-manager
)
|
| llm | Object | - | 大语言模型配置,详情查看:
[
https://uniapp.dcloud.net.cn/uniCloud/uni-ai.html#get-llm-manager
](
https://uniapp.dcloud.net.cn/uniCloud/uni-ai.html#get-llm-manager
)
|
...
@@ -66,7 +67,7 @@
...
@@ -66,7 +67,7 @@
注意:如果对ai返回结果进行内容安全检查,会导致stream流式响应失效。
注意:如果对ai返回结果进行内容安全检查,会导致stream流式响应失效。
## 营运专题@ad
## 营运专题
@ad
v1.0.3起支持:启用与uni-ai对话消耗积分(积分通过看
[
激励视频广告
](
https://uniapp.dcloud.net.cn/component/ad-rewarded-video.html
)
获得)的模式。
v1.0.3起支持:启用与uni-ai对话消耗积分(积分通过看
[
激励视频广告
](
https://uniapp.dcloud.net.cn/component/ad-rewarded-video.html
)
获得)的模式。
**平台差异说明**
**平台差异说明**
...
@@ -80,17 +81,17 @@ v1.0.3起支持:启用与uni-ai对话消耗积分(积分通过看[激励视
...
@@ -80,17 +81,17 @@ v1.0.3起支持:启用与uni-ai对话消耗积分(积分通过看[激励视
2.
创建激励视频广告位;在
[
应用列表
](
https://uniad.dcloud.net.cn/list/app
)
点击
`应用详情`
再点击
`新建广告位`
;如下图:广告类型选
`激励视频广告`
,配置服务器回调,选uni-ai-chat部署的uniCloud服务空间,回调云函数名称选:
`reward-video-callback`
2.
创建激励视频广告位;在
[
应用列表
](
https://uniad.dcloud.net.cn/list/app
)
点击
`应用详情`
再点击
`新建广告位`
;如下图:广告类型选
`激励视频广告`
,配置服务器回调,选uni-ai-chat部署的uniCloud服务空间,回调云函数名称选:
`reward-video-callback`
<img
width=
"500px"
src=
"https://dcloud-chjh-web.oss-cn-hangzhou.aliyuncs.com/unidoc/zh/uni-ai-chat/uni-ai-chat-create-adpid.jpg"
>
<img
width=
"500px"
src=
"https://dcloud-chjh-web.oss-cn-hangzhou.aliyuncs.com/unidoc/zh/uni-ai-chat/uni-ai-chat-create-adpid.jpg"
>
微信小程序端注意
:
**微信小程序端注意**
:
-
参考:
[
uniAD微信小程序广告开通指南
](
https://ask.dcloud.net.cn/article/39928
)
开通广告后会自动创建广告位
- 参考:[uniAD微信小程序广告开通指南](https://ask.dcloud.net.cn/article/39928)开通广告后会自动创建广告位
-
广告服务器回调,提前条件:详情查看
[
https://uniapp.dcloud.net.cn/uni-ad/ad-rewarded-video.html#callbackweixin
](
https://uniapp.dcloud.net.cn/uni-ad/ad-rewarded-video.html#callbackweixin
)
- 广告服务器回调,提前条件:详情查看[https://uniapp.dcloud.net.cn/uni-ad/ad-rewarded-video.html#callbackweixin](https://uniapp.dcloud.net.cn/uni-ad/ad-rewarded-video.html#callbackweixin)
3.
配置广告位唯一标识(adpid)
3.
配置广告位唯一标识(adpid)
-
客户端,配置路径:
`/config.js`
-
客户端,配置路径:
`/config.js`
-
服务端,配置路径:
`uniCloud/cloudfunctions/common/uni-config-center/uni-ad/config.json`
-
服务端,配置路径:
`uniCloud/cloudfunctions/common/uni-config-center/uni-ad/config.json`
4.
一般
的营运模式,会给予新注册的用户少量的默认积分(即:新注册用户有n次免费对话次数),
在
`uni-id/hooks`
配置。路径:
`uniCloud/cloudfunctions/common/uni-config-center/uni-id/hooks/index.js`
4.
一般
情况下,新注册的用户将获得少量初始积分(即:对于新注册用户,系统将给予其n次免费对话机会);
在
`uni-id/hooks`
配置。路径:
`uniCloud/cloudfunctions/common/uni-config-center/uni-id/hooks/index.js`
5.
配置对话一次需要消耗多少积分
`needReduceScore`
[
详情查看
](
#config
)
5.
配置对话一次需要消耗多少积分
`needReduceScore`
[
详情查看
](
#config
)
6.
配置看一次广告获得多少积分
`
ad.rewardScore
`
[
详情查看
](
#config
)
6.
配置看一次广告获得多少积分
`
earnedScore.ad
`
[
详情查看
](
#config
)
注意:因为广告服务器回调走的是云端,以上配置项,配置完成后记得上传。
注意:因为广告服务器回调走的是云端,以上配置项,配置完成后记得上传。
...
...
uniCloud-aliyun/cloudfunctions/reward-video-callback/index.js
浏览文件 @
815418cb
...
@@ -17,23 +17,23 @@ async function nextFn(data) {
...
@@ -17,23 +17,23 @@ async function nextFn(data) {
}
}
if
(
typeof
data
.
extra
==
'
object
'
&&
data
.
extra
.
unique_type
==
"
uni-ai-chat
"
){
if
(
typeof
data
.
extra
==
'
object
'
&&
data
.
extra
.
unique_type
==
"
uni-ai-chat
"
){
await
uniAiChat
RewardScore
(
data
)
await
uniAiChat
EarnedScoreByAd
(
data
)
}
}
// uni-ai-chat 看广告奖励积分
// uni-ai-chat 看广告奖励积分
async
function
uniAiChat
RewardScore
(
data
){
async
function
uniAiChat
EarnedScoreByAd
(
data
){
const
uniAiChatConfig
=
require
(
'
uni-config-center
'
)({
const
uniAiChatConfig
=
require
(
'
uni-config-center
'
)({
pluginId
:
'
uni-ai-chat
'
pluginId
:
'
uni-ai-chat
'
}).
config
()
}).
config
()
console
.
log
(
'
uniAiChatConfig
'
,
uniAiChatConfig
);
console
.
log
(
'
uniAiChatConfig
'
,
uniAiChatConfig
);
if
(
!
uniAiChatConfig
||
!
uniAiChatConfig
.
ad
||
!
uniAiChatConfig
.
ad
.
rewardScore
){
if
(
!
uniAiChatConfig
||
!
uniAiChatConfig
.
ad
||
!
uniAiChatConfig
.
earnedScore
.
ad
){
throw
new
Error
(
'
请先完成uni-ai-chat的广告奖励配置
'
)
throw
new
Error
(
'
请先完成uni-ai-chat的广告奖励配置
'
)
}
}
if
(
!
data
.
extra
.
user_id
){
if
(
!
data
.
extra
.
user_id
){
return
console
.
error
(
'
userId 不能为空
'
);
return
console
.
error
(
'
userId 不能为空
'
);
}
}
let
score
=
db
.
command
.
inc
(
uniAiChatConfig
.
ad
.
rewardScore
)
let
score
=
db
.
command
.
inc
(
uniAiChatConfig
.
earnedScore
.
ad
)
let
res
=
await
db
.
collection
(
'
uni-id-users
'
).
doc
(
data
.
extra
.
user_id
).
update
({
score
})
let
res
=
await
db
.
collection
(
'
uni-id-users
'
).
doc
(
data
.
extra
.
user_id
).
update
({
score
})
console
.
log
(
'
update res
'
,
res
)
console
.
log
(
'
update res
'
,
res
)
}
}
...
...
uniCloud-aliyun/cloudfunctions/uni-ai-chat/index.obj.js
浏览文件 @
815418cb
...
@@ -22,7 +22,7 @@ module.exports = {
...
@@ -22,7 +22,7 @@ module.exports = {
if
(
this
.
getMethodName
()
==
'
send
'
){
if
(
this
.
getMethodName
()
==
'
send
'
){
// 从配置中心获取是否需要销毁积分
// 从配置中心获取是否需要销毁积分
if
(
config
.
needReduce
Score
){
if
(
config
.
spent
Score
){
/*先校验token(用户身份令牌)是否有效,并获得用户的_id*/
/*先校验token(用户身份令牌)是否有效,并获得用户的_id*/
// 获取客户端信息
// 获取客户端信息
...
@@ -49,7 +49,7 @@ module.exports = {
...
@@ -49,7 +49,7 @@ module.exports = {
}
}
await
userscollection
.
doc
(
this
.
current_uid
)
await
userscollection
.
doc
(
this
.
current_uid
)
.
update
({
.
update
({
score
:
db
.
command
.
inc
(
-
1
*
config
.
needReduce
Score
)
score
:
db
.
command
.
inc
(
-
1
*
config
.
spent
Score
)
})
})
}
}
...
@@ -63,7 +63,7 @@ module.exports = {
...
@@ -63,7 +63,7 @@ module.exports = {
this
.
textSecCheck
=
async
(
content
)
=>
{
this
.
textSecCheck
=
async
(
content
)
=>
{
let
{
SSEChannel
}
=
this
.
getParams
()[
0
]
||
{}
let
{
SSEChannel
}
=
this
.
getParams
()[
0
]
||
{}
if
(
SSEChannel
){
if
(
SSEChannel
){
return
console
.
log
(
'
提示:流式响应模式,内容安全识别功能无效
'
);
throw
"
流式响应模式,内容安全识别功能无效
"
}
}
// 检测文本
// 检测文本
const
checkRes
=
await
uniSecCheck
.
textSecCheck
({
const
checkRes
=
await
uniSecCheck
.
textSecCheck
({
...
...
uni_modules/uni-config-center/uniCloud/cloudfunctions/common/uni-config-center/uni-ai-chat/config.json
浏览文件 @
815418cb
{
{
"contentSecurity"
:
false
,
"contentSecurity"
:
false
,
"ad"
:{
"spentScore"
:
0
,
"rewardScore"
:
3
"earnedScore"
:{
"ad"
:
3
,
"price"
:
3
},
},
"needReduceScore"
:
0
,
"llm"
:{},
"llm"
:{},
"chatCompletionOptions"
:{
"chatCompletionOptions"
:{
"tokensToGenerate"
:
512
"tokensToGenerate"
:
512
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录