Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
uni-ai-chat
提交
cb8cab3c
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看板
提交
cb8cab3c
编写于
5月 09, 2023
作者:
DCloud_JSON
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1.0.3发插件市场
上级
96425f42
变更
9
展开全部
隐藏空白更改
内联
并排
Showing
9 changed file
with
5346 addition
and
1282 deletion
+5346
-1282
_redme.md
_redme.md
+0
-3
changelog.md
changelog.md
+1
-1
components/uni-ai-msg/uni-ai-msg.scss
components/uni-ai-msg/uni-ai-msg.scss
+63
-0
components/uni-ai-msg/uni-ai-msg.vue
components/uni-ai-msg/uni-ai-msg.vue
+10
-68
lib/highlight/highlight-uni.min.js
lib/highlight/highlight-uni.min.js
+5256
-0
lib/highlight/highlight.min.js
lib/highlight/highlight.min.js
+0
-1203
manifest.json
manifest.json
+7
-3
pages/chat/chat.vue
pages/chat/chat.vue
+6
-1
uniCloud-aliyun/cloudfunctions/uni-ai-chat/index.obj.js
uniCloud-aliyun/cloudfunctions/uni-ai-chat/index.obj.js
+3
-3
未找到文件。
_redme.md
浏览文件 @
cb8cab3c
...
@@ -225,9 +225,6 @@ module.exports = async (obj) => {
...
@@ -225,9 +225,6 @@ module.exports = async (obj) => {
请参考文档:
[
云函数通过https访问其他服务器时出现“certificate has expired”
](
faq.md#lets-encrypt-cert
)
请参考文档:
[
云函数通过https访问其他服务器时出现“certificate has expired”
](
faq.md#lets-encrypt-cert
)
## 已知问题
-
App-Vue3 使用highlight.js 因特殊正则引起报错,导致消息内容出错
## 其他
## 其他
DCloud基于
`uni-ai`
提供了很多开源模板,除了本项目
`uni-ai-chat`
,还有:
DCloud基于
`uni-ai`
提供了很多开源模板,除了本项目
`uni-ai-chat`
,还有:
...
...
changelog.md
浏览文件 @
cb8cab3c
## 1.0.3(2023-0
4-27
)
## 1.0.3(2023-0
5-09
)
-
新增 提供了商业化能力,与uni-ai对话消耗积分。积分可通过看
[
激励视频广告
](
https://uniapp.dcloud.net.cn/component/ad-rewarded-video.html
)
获得。
-
新增 提供了商业化能力,与uni-ai对话消耗积分。积分可通过看
[
激励视频广告
](
https://uniapp.dcloud.net.cn/component/ad-rewarded-video.html
)
获得。
-
优化 根据配置的llm服务商以及是否开启流式响应,自动处理是否逐字返回
-
优化 根据配置的llm服务商以及是否开启流式响应,自动处理是否逐字返回
-
修复 llm服务商为openai时,内容换行位置不正确的问题
-
修复 llm服务商为openai时,内容换行位置不正确的问题
...
...
components/uni-ai-msg/uni-ai-msg.scss
0 → 100644
浏览文件 @
cb8cab3c
@import
"@/lib/highlight/github-dark.min.css"
;
/* #ifndef APP-NVUE */
.
rich-text-box
:
:
v-deep
pre
.
hljs
{
padding
:
5px
8px
;
margin
:
5px
0
;
overflow
:
auto
;
}
.cursor
{
display
:
none
;
}
.show-cursor
.cursor
{
display
:
inline-block
;
color
:
blue
;
font-weight
:
bold
;
animation
:
blinking
1s
infinite
;
}
@keyframes
blinking
{
from
{
opacity
:
1
.0
;
}
to
{
opacity
:
0
.0
;
}
}
/* #endif */
/* #ifdef H5 */
.copy-box
{
position
:
fixed
;
}
// .copy-mask{
// background-color: rgba(255,255,255,0.5);
// width: 100vw;
// height: 100vh;
// position: fixed;
// top: 0;
// left: 0;
// z-index: 9;
// }
.copy
{
position
:
fixed
;
background-color
:
#fff
;
box-shadow
:
0
0
3px
#aaa
;
padding
:
5px
;
border-radius
:
5px
;
z-index
:
999
;
cursor
:
pointer
;
font-size
:
14px
;
color
:
#222
;
}
.copy
:hover
{
color
:
#00a953
;
}
/* #endif */
\ No newline at end of file
components/uni-ai-msg/uni-ai-msg.vue
浏览文件 @
cb8cab3c
...
@@ -13,10 +13,11 @@
...
@@ -13,10 +13,11 @@
<
script
>
<
script
>
import
MarkdownIt
from
'
@/lib/markdown-it.min.js
'
;
import
MarkdownIt
from
'
@/lib/markdown-it.min.js
'
;
import
hljs
from
"
@/lib/highlight/highlight.min.js
"
;
// hljs是由 Highlight.js 经兼容性修改后的文件,请勿直接升级。否则会造成uni-app-vue3-Android下有兼容问题
import
hljs
from
"
@/lib/highlight/highlight-uni.min.js
"
;
// import hljs from "highlight.js";
import
parseHtml
from
'
@/lib/html-parser.js
'
;
// import parseHtml from '@/lib/html-parser.js';
// console.log('hljs--',hljs);
// console.log('hljs--',hljs);
// console.log('hljs--',hljs.getLanguage('js'));
// console.log('hljs--',hljs.getLanguage('js'));
...
@@ -93,14 +94,15 @@
...
@@ -93,14 +94,15 @@
computed: {
computed: {
html() {
html() {
if(this.md.split("```").length%2){
if(this.md.split("```").length%2){
return markdownIt.render(this.md +
'
<
span
class
=
"
cursor
"
>|<
/span>'
)
;
return markdownIt.render(this.md +
'
\
n
<
span
class
=
"
cursor
"
>|<
/span>'
)
;
}
else
{
}
else
{
return
markdownIt
.
render
(
this
.
md
)
+
'
\n
<span class="cursor">|</span>
'
;
return
markdownIt
.
render
(
this
.
md
)
+
'
\n
<span class="cursor">|</span>
'
;
}
}
},
},
nodes
()
{
nodes
()
{
return
this
.
html
// return this.html
// return parseHtml(this.html)
// console.log('parseHtml(this.html)',parseHtml(this.html));
return
parseHtml
(
this
.
html
)
}
}
},
},
methods
:
{
methods
:
{
...
@@ -118,67 +120,7 @@
...
@@ -118,67 +120,7 @@
</
script
>
</
script
>
<
style
lang=
"scss"
>
<
style
lang=
"scss"
>
@import
"@/lib/highlight/github-dark.min.css"
;
/* #ifndef VUE3 && APP-PLUS */
@import
"@/components/uni-ai-msg/uni-ai-msg.scss"
;
/* #ifndef APP-NVUE */
.
rich-text-box
:
:
v-deep
pre
.
hljs
{
padding
:
5px
8px
;
margin
:
5px
0
;
overflow
:
auto
;
}
.cursor
{
display
:
none
;
}
.show-cursor
.cursor
{
display
:
inline-block
;
color
:
blue
;
font-weight
:
bold
;
animation
:
blinking
1s
infinite
;
}
@keyframes
blinking
{
from
{
opacity
:
1
.0
;
}
to
{
opacity
:
0
.0
;
}
}
/* #endif */
/* #ifdef H5 */
.copy-box
{
position
:
fixed
;
}
// .copy-mask{
// background-color: rgba(255,255,255,0.5);
// width: 100vw;
// height: 100vh;
// position: fixed;
// top: 0;
// left: 0;
// z-index: 9;
// }
.copy
{
position
:
fixed
;
background-color
:
#fff
;
box-shadow
:
0
0
3px
#aaa
;
padding
:
5px
;
border-radius
:
5px
;
z-index
:
999
;
cursor
:
pointer
;
font-size
:
14px
;
color
:
#222
;
}
.copy
:hover
{
color
:
#00a953
;
}
/* #endif */
/* #endif */
</
style
>
</
style
>
\ No newline at end of file
lib/highlight/highlight-uni.min.js
0 → 100644
浏览文件 @
cb8cab3c
此差异已折叠。
点击以展开。
lib/highlight/highlight.min.js
已删除
100644 → 0
浏览文件 @
96425f42
此差异已折叠。
点击以展开。
manifest.json
浏览文件 @
cb8cab3c
...
@@ -54,7 +54,8 @@
...
@@ -54,7 +54,8 @@
},
},
"oauth"
:
{
"oauth"
:
{
"univerify"
:
{}
"univerify"
:
{}
}
},
"push"
:
{}
}
}
}
}
},
},
...
@@ -85,10 +86,13 @@
...
@@ -85,10 +86,13 @@
"uniStatistics"
:
{
"uniStatistics"
:
{
"enable"
:
false
"enable"
:
false
},
},
"vueVersion"
:
"
3
"
,
"vueVersion"
:
"
2
"
,
"h5"
:
{
"h5"
:
{
"unipush"
:
{
"unipush"
:
{
"enable"
:
true
"enable"
:
false
},
"devServer"
:
{
"port"
:
8080
}
}
},
},
"fallbackLocale"
:
"zh-Hans"
"fallbackLocale"
:
"zh-Hans"
...
...
pages/chat/chat.vue
浏览文件 @
cb8cab3c
...
@@ -46,7 +46,7 @@
...
@@ -46,7 +46,7 @@
<uni-icons
@
click=
"clear"
type=
"trash"
size=
"24"
color=
"#888"
></uni-icons>
<uni-icons
@
click=
"clear"
type=
"trash"
size=
"24"
color=
"#888"
></uni-icons>
</view>
</view>
<view
class=
"textarea-box"
>
<view
class=
"textarea-box"
>
<textarea
v-model=
"content"
class=
"textarea"
:auto-height=
"!isWidescreen"
:disabled=
"inputBoxDisabled"
<textarea
v-model=
"content"
:cursor-spacing=
"15"
class=
"textarea"
:auto-height=
"!isWidescreen"
:disabled=
"inputBoxDisabled"
:placeholder=
"placeholderText"
:maxlength=
"-1"
placeholder-class=
"input-placeholder"
></textarea>
:placeholder=
"placeholderText"
:maxlength=
"-1"
placeholder-class=
"input-placeholder"
></textarea>
</view>
</view>
<view
class=
"send-btn-box"
>
<view
class=
"send-btn-box"
>
...
@@ -483,6 +483,10 @@
...
@@ -483,6 +483,10 @@
</
script
>
</
script
>
<
style
lang=
"scss"
>
<
style
lang=
"scss"
>
/* #ifdef VUE3 && APP-PLUS */
@import
"@/components/uni-ai-msg/uni-ai-msg.scss"
;
/* #endif */
/* #ifndef APP-NVUE */
/* #ifndef APP-NVUE */
view
,
view
,
textarea
,
textarea
,
...
@@ -736,6 +740,7 @@
...
@@ -736,6 +740,7 @@
.content
{
.content
{
background-color
:
#f9f9f9
;
background-color
:
#f9f9f9
;
position
:
relative
;
position
:
relative
;
max-width
:
90%
;
}
}
// .copy {
// .copy {
// color: #888888;
// color: #888888;
...
...
uniCloud-aliyun/cloudfunctions/uni-ai-chat/index.obj.js
浏览文件 @
cb8cab3c
...
@@ -201,17 +201,17 @@ module.exports = {
...
@@ -201,17 +201,17 @@ module.exports = {
res
.
on
(
'
message
'
,
async
(
message
)
=>
{
res
.
on
(
'
message
'
,
async
(
message
)
=>
{
reply
+=
message
reply
+=
message
await
channel
.
write
(
message
)
await
channel
.
write
(
message
)
console
.
log
(
'
---message----
'
,
message
)
//
console.log('---message----', message)
})
})
}
else
{
}
else
{
res
.
on
(
'
line
'
,
async
(
line
)
=>
{
res
.
on
(
'
line
'
,
async
(
line
)
=>
{
await
channel
.
write
(
reply
?
(
"
\n\n
"
+
line
)
:
line
)
await
channel
.
write
(
reply
?
(
"
\n\n
"
+
line
)
:
line
)
reply
+=
line
reply
+=
line
console
.
log
(
'
---line----
'
,
line
)
//
console.log('---line----', line)
})
})
}
}
res
.
on
(
'
end
'
,
async
()
=>
{
res
.
on
(
'
end
'
,
async
()
=>
{
console
.
log
(
'
---end----
'
,
reply
)
//
console.log('---end----',reply)
messages
.
push
({
messages
.
push
({
"
content
"
:
reply
,
"
content
"
:
reply
,
"
role
"
:
"
assistant
"
"
role
"
:
"
assistant
"
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录