提交 e0ed0901 编写于 作者: Q qiang

Merge branch 'master' of github.com:dcloudio/unidoc-zh

......@@ -60,11 +60,6 @@ export default {
"state": 1,
"prefix": "群5"
},
{
"number": "697264024",
"state": 1,
"prefix": "群6"
},
{
"number": "942061423",
"state": 1,
......@@ -130,6 +125,11 @@ export default {
"state": 1,
"prefix": "群19",
},
{
"number": "165796402",
"state": 1,
"prefix": "群20"
},
{
"number": "717019120",
"state": 1,
......@@ -206,10 +206,10 @@ export default {
"prefix": "群35"
},
{
"number": "165796402",
"number": "697264024",
"state": 0,
"prefix": "20",
joinQQGroupHref: 'https://qm.qq.com/cgi-bin/qm/qr?k=BDEYCWr7DU4qJajBYvdMr9586qCPCTEr&jump_from=webapi&authKey=HXWl5IN15ipM/i0PCczuCEM1ZjxqBHBTV8Yz9ZAYEg6uezTtAK2hT/G9BTvodGRX'
"prefix": "6",
joinQQGroupHref: 'https://qm.qq.com/cgi-bin/qm/qr?k=BWxBTekKAvLgeujlZ5Xgv0B7plgfQ7e8&jump_from=webapi&authKey=wmmuhlITjzR1CfHom8vV0zO2OBRE/X1KCcwBQHo1qdOM+u3PwDjrpZ5wONjpWtIa'
}
]
}
......@@ -22,7 +22,7 @@
**Tips**
- `<text>` 组件内只支持嵌套 `<text>`,不支持其它组件或自定义组件,否则会引发在不同平台的渲染差异。
- `<text>` 组件内只支持嵌套 `<text>`(app-nvue 暂不支持),不支持其它组件或自定义组件,否则会引发在不同平台的渲染差异。
- 在app-nvue下,只有`<text>`才能包裹文本内容。无法在`<view>`组件包裹文本。
- decode 可以解析的有 `&nbsp;` `&lt;` `&gt;` `&amp;` `&apos;` `&ensp;` `&emsp;`
- 各个操作系统的空格标准并不一致。
......
......@@ -92,6 +92,7 @@
* [uni-open-bridge](uni-open-bridge.md)
* [uni-cloud-s2s](uni-cloud-s2s.md)
* [uni-subscribemsg 公共模块](uni-subscribemsg.md)
* [uni-ai](uni-ai.md)
* [案例](resource.md)
* [开发者使用反馈](feedback.md)
* [DCloud行业认证服务商](https://ask.dcloud.net.cn/article/39388)
......
......@@ -45,7 +45,7 @@ HBuilderX内使用运行菜单运行到小程序时会连接本地调试服务
**在开发模式下推荐直接忽略域名校验。**
即使在开发工具勾选了忽略域名校验,体验版与正式版不会忽略域名校验。**如果要发布`体验版`或`正式版`,请务必在HBuilderX内使用发行菜单。uni-app项目发行运行输出的目录不同,请注意不要选错了**
即使在开发工具勾选了忽略域名校验,体验版与正式版不会忽略域名校验。**如果要发布`体验版`或`正式版`,请务必在HBuilderX内使用发行菜单。uni-app项目发行运行输出的目录不同,请注意不要选错了**
### Web中使用uniCloud的跨域处理@useinh5
......
......@@ -71,8 +71,6 @@
对于云函数,上传并运行时会自动带上配置的运行测试参数。请参考:[配置运行测试参数](?id=runparam)
注:云对象不支持上传并运行。
## 客户端联调云函数@calllocalfunction
> `HBuilderX 3.0.0`起支持
......
# uni-ai
ai大潮来袭,如何把ai能力引入自己的应用中?几乎是每个开发者都在关心的问题。
`uni-ai`,定位就是开发者使用ai能力的最佳开发库,更丰富、更易用、更高效。
## 特点
1. 聚合
`uni-ai`,聚合了国内外各种流行的ai能力。包括
- 大语言模型LLM:chatGPT、GPT-4、文心一言以及一些优秀创业公司
- 图形能力:stable diffusion、midjourney等
`uni-ai`支持配置自己在AI厂商处申请的API Key和代理,也支持免配直接使用。
2. prompt辅助
自然语言谁都会说,但想提出一个好prompt来指挥ai满足自己的需求并不简单。
`uni-ai`整合了大量prompt模板,并且提供了 `format prompt``prompt插件市场`
举个例子,如果你需要写一个产品营销文案,你可以使用自然语言,如`请帮我编写一份产品营销文案,产品名称叫uni-app,它的特点是开发一次全端覆盖。`
但实际上,自然语言这么写是繁琐且容易纰漏的。format prompt是弹出一个表单,你在表单里填写:
```
产品名称:uni-app
目标用户:程序员
产品归类:前端应用开发框架
产品用途:使用该框架开发应用,一次编码可覆盖到Android app、iOS app、web、以及各家小程序,如微信、百度、支付宝、抖音、qq、京东等小程序和快应用。
卖点:高效、易学、生态完善
文风:技术风格
字数:500字
```
`uni-ai`,为你提供更好的prompt。
3. 私有数据训练
目前的大模型,没有最新的、以及企业私有的数据。各家也未开放fine-turning微调模型。
如何把私有数据灌入ai中,几乎是每个企业都关心的事情。
`uni-ai`提供了一整套方案解决这个问题,只需把私有数据按指定格式提交到你的uniCloud服务空间,就可以自动把这些最新的、私有的知识加入到ai的回答中。
4. 开源项目
ai能力非常常见的应用场景,有智能客服和自动生成文稿。
`uni-ai`把这些常见场景对应的应用均已做好,并且开源。开发者可以直接拿走使用。
- uni-im,内置了智能客服。[详见](https://uniapp.dcloud.net.cn/uniCloud/uni-im.html)
- uni-cms,内置了智能内容生成。[详见](https://uniapp.dcloud.net.cn/uniCloud/uni-cms.html)
这些完善的项目,包括了前端页面(全端可用)、云对象、云数据库等全套代码,开箱即用。
![](https://web-assets.dcloud.net.cn/unidoc/zh/uni-ai/uni-ai-pc-cms-im.png)
5. 费用优化
ai能力调用,是需要按token数量付费的。token太少会回答不准,太多则费用太高。
`uni-ai`提供了多种取舍策略,方便开发者平衡效果和费用。
6. 后置命令处理
ai都是回答文字内容,但实际场景中经常需要自动化执行一些命令。
`uni-ai`提供了action机制,让ai变的更加强大。
例如,请ai帮忙写一段代码,其中涉及了未引用的三方插件,那么action可以通知HBuilder弹出下载这个插件的界面,不但代码生成了,其中的插件也自动下载了。
使用简单的js api,快速开始你的ai之旅吧!
```js
// 因涉及费用,ai能力调用均需在服务器端进行,也就是uniCloud云函数或云对象中
let llm = uniCloud.ai.getLLMManager({
provider,
model
})
llm.chatCompletion({
messages: [{
role: 'user',
content: '你好'
}]
})
```
## API
## 内测邀请
目前`uni-ai`处于内测邀请阶段,可以在需求墙为uni-ai投票(在[需求墙](https://dev.dcloud.net.cn/wish/)选uniCloud分类,对uni-ai投票)。
DCloud会遴选邀请部分用户参与内测。完善后会正式推出。
> 服务器业务不在uniCloud上的开发者,可以把云函数URL化,把uni-ai当做http接口调用。
### 获取LLM服务商实例@get-llm-manager
用法:`uniCloud.ai.getLLMManager(Object GetLLMManagerOptions);`
**参数说明GetLLMManagerOptions**
|参数 |类型 |必填 |默认值 |说明 |
|--- |--- |--- |--- |--- |
|provider |string |是 |- |llm服务商,目前支持`minimax``openai` |
|apiKey |string |openai必填 |- |`openai`的apiKey |
|proxy |string |否 |- |`openai`代理服务器 |
**示例**
```js
const llm = uniCloud.ai.getLLMManager({
provider: 'minimax'
})
```
### 对话@chat-completion
用法:`llm.chatCompletion(Object ChatCompletionOptions)`
**参数说明ChatCompletionOptions**
|参数 |类型 |必填 |默认值 |说明 |
|--- |--- |--- |--- |--- |
|messages |array |是 | - |对话信息 |
|model |string |否 |minimax默认为abab5-chat,openai默认为gpt-3.5-turbo |模型名称,不同服务商可选模型不同,见下方说明 |
|maxTokens |number |否 |minimax为128、openai默认不限制 |总token数限制 |
|temperature|number |否 |minimax默认为0.95,openai默认为1 |较高的值将使输出更加随机,而较低的值将使输出更加集中和确定。建议temperature和top_p同时只调整其中一个 |
|topP |number |否 |minimax默认为0.9,openai默认为1 |采样方法,数值越小结果确定性越强;数值越大,结果越随机 |
**messages参数说明**
LLM没有记忆能力,messages参数内需要包含前文,LLM才能理解之前聊天的内容。
messages是一个数组,其中每项有消息内容和角色组成
messages示例
```js
const messages = [{
role: 'system',
content: '这里是一些对话的背景设定'
},{
role: 'user',
content: '你好'
}, {
role: 'assistant',
content: '你好'
}, {
role: 'user',
content: '请讲解一下勾股定理'
}]
```
role有三个可能的值:
- system 系统,对应的content字段一般用于对话背景设定等功能。**minimax仅能在messages数组第一项放system角色及信息**
- user 用户,对应的content字段为用户输入的信息
- assistant ai助手,对应的content字段为ai返回的信息
多数情况下messages内容越多消耗的token越多,所以一般是需要开发者要求ai对上文进行总结,下次对话传递总结及总结之后的对话内容以实现更长的对话。
**可用模型**
|服务商 |接口 |模型 |
|--- |--- |--- |
|minimax|chatCompletion |abab4-chat、abab5-chat(默认值) |
|openai |chatCompletion |gpt-4、gpt-4-0314、gpt-4-32k、gpt-4-32k-0314、gpt-3.5-turbo(默认值)、gpt-3.5-turbo-0301|
**示例**
```js
llm.chatCompletion({
messages: [{
role: 'user',
content: '你好'
}]
})
```
......@@ -56,6 +56,16 @@ uni-cms是全端的、开源的、云端一体的CMS内容管理系统。
**注意**
- 如果您的项目不是`uni-starter`或者不存在 `uni-id-pages`插件,请将`uni-id-pages`一同导入至项目中,要了解`uni-id-pages` [详见](/uniCloud/uni-id-pages.md)
#### 3. 添加文章作者
在uni-admin管理后台中“系统管理”-“角色管理”中添加文章作者角色,如下图所示:
![](https://web-assets.dcloud.net.cn/unidoc/zh/202303291731004.png)
**注意**
- 为了保证文章作者的安全,需要为文章作者分配一个专用的角色(唯一ID `author`),而不是使用管理员角色。
## 二次开发
> 如果目前的 uni-CMS 不能满足你的需求,你可以基于 uni-CMS 进行二次开发。
......@@ -187,7 +197,7 @@ uni-cms-article // uni-cms-article 插件
### uni-cms 云对象
#### 配置文件
#### 配置文件@uni-cms-config
uni-cms 配置文件为 `uni_modules/uni-config-center/common/uni-cms/config.js`, 用于配置uni-cms相关信息, 完整配置如下:
```json
......@@ -348,11 +358,15 @@ export default {
### 内容安全检测@content-security-check
内容安全功能由[uni-sec-check]()提供,`uni-sec-check`文档[详见]()
内容安全功能由[uni-sec-check](https://ext.dcloud.net.cn/plugin?id=5460)提供,默认不开启。
`uni-sec-check`文档[详见](https://ext.dcloud.net.cn/plugin?id=5460)
注意:`uni-sec-check`模块依赖`uni-open-bridge`, 使用前需要在`uni-config-center`内添加`uni-id`配置,
具体配置参考[uni-sec-check文档](https://ext.dcloud.net.cn/plugin?id=5460)
uni-cms 会使用 uni-sec-check 检测用户输入的文字与上传的图片,如果检测到违规内容,内容将无法正常发布。
您可以根据自己需求开启或关闭内容安全检测,在 `uni-cms` 配置文件中配置 `contentSecurity` 字段,例如:
您可以根据自己需求开启或关闭内容安全检测,在 `uni-cms` 云端配置文件中配置 `contentSecurity` 字段,例如:
```javascript
// 开启
......@@ -374,6 +388,7 @@ uni-cms 会使用 uni-sec-check 检测用户输入的文字与上传的图片,
- `allowCheckType`存在`content`值时;内容安全将会对文章标题、文章内容、文章摘要进行检测。
- `allowCheckType`存在`image`值时;内容安全将会对上传的封面图片、文章内容中的图片进行检测。
- 详细的`uni-cms`配置文件参考[uni-cms配置](#uni-cms-config)
## 后续计划
......
......@@ -1943,19 +1943,24 @@ await uniIdCo.setAuthorizedApp({
#### 注册用户@external-register
外部用户注册,注册成功后,uni-id 返回 uid 与 用户 token ,请务必在自身系统中维护好 uid 与 token。
|uni-id-nonce|string|是|随机字符串|
|uni-id-timestamp|string|是|当前时间戳; 单位毫秒|
|uni-id-signature|string|是|请求鉴权签名; 签名算法见下|
**接口形式**
**HTTP 示例**
```javascript
POST /your-uni-id-co-path/externalRegister HTTP/1.1
Host: xxx.com
uni-id-nonce: xxxxxxx
uni-id-timestamp: 1676882808550
uni-id-signature: 11c965267a4a02c6978949c7135215b0a75aea22b2b84ed491e792365c8269efa
Content-Type: application/json
Cache-Control: no-cache
```js
await uniIdCo.externalRegister({
externalUid,
nickname,
avatar,
gender
})
{"externalUid": "test externalUid", "nickname": "张三", "avatar": "xxxxxxx", "gender": 0}
```
**参数说明**
**Request Body 说明**
| 参数名 | 类型 | 必填 | 说明 |
|---------------|------------|-----|----------------------------|
......@@ -1964,7 +1969,7 @@ await uniIdCo.externalRegister({
| avatar | string | 否 | 用户头像 |
| gender | number | 否 | 用户性别;0 未知 1 男性 2 女性 |
**返回值**
**Response Body 说明**
|参数名 |类型 |说明 |
|-- |-- |-- |
......@@ -1985,23 +1990,27 @@ await uniIdCo.externalRegister({
该接口使用URL方式调用时,需要携带鉴权签名值,查看[URL化请求鉴权签名计算](uni-id-pages.md#http-reqeust-auth)
**接口形式**
**HTTP 示例**
```javascript
POST /your-uni-id-co-path/externalLogin HTTP/1.1
Host: xxx.com
uni-id-nonce: xxxxxxx
uni-id-timestamp: 1676882808550
uni-id-signature: 11c965267a4a02c6978949c7135215b0a75aea22b2b84ed491e792365c8269efa
Content-Type: application/json
Cache-Control: no-cache
```js
await uniIdCo.externalLogin({
uid,
externalUid
})
{"externalUid": "test externalUid"}
```
**参数说明**
**Request Body 说明**
|参数名 |类型 |必填 |说明 |
|-- |-- |-- |-- |
|uid |string |否 |uni-id体系的用户Id;与externalUid 二选一 |
|externalUid |string |否 |自身系统的用户id;与 uid 二选一 |
**返回值**
**Response Body 说明**
|参数名 |类型 |说明 |
|-- |-- |-- |
......@@ -2018,27 +2027,20 @@ await uniIdCo.externalLogin({
该接口使用URL方式调用时,需要携带鉴权签名值,查看[URL化请求鉴权签名计算](uni-id-pages.md#http-reqeust-auth)
**接口形式**
**HTTP 示例**
```javascript
POST /your-uni-id-co-path/externalLogin HTTP/1.1
Host: xxx.com
uni-id-nonce: xxxxxxx
uni-id-timestamp: 1676882808550
uni-id-signature: 11c965267a4a02c6978949c7135215b0a75aea22b2b84ed491e792365c8269efa
Content-Type: application/json
Cache-Control: no-cache
```js
await uniIdCo.updateUserInfoByExternal({
uid,
externalUid,
username,
password,
nickname,
authorizedApp,
role,
mobile,
email,
tags,
status,
gender,
avatar
})
{"externalUid": "test externalUid", "nickname": "张三"}
```
**参数说明**
**Request Body 说明**
| 参数名 | 类型 | 必填 | 说明 |
|---------------|---------------------|-----|-----------------------------------------------|
......@@ -2056,7 +2058,7 @@ await uniIdCo.updateUserInfoByExternal({
| avatar | string | 否 | 用户头像 |
| gender | number | 否 | 用户性别;0 未知 1 男性 2 女性 |
**返回值**
**Response Body 说明**
| 参数名 | 类型 | 说明 |
|---------------------------------|---------------------|----------------------|
......
......@@ -1002,7 +1002,7 @@ uni-id-user表中有一个数组型字段`dcloud_appid`,可以存贮这个用
uni-id 3.3.0版本起用户注册时会自动在用户表的记录内标记为注册应用对应的用户,如果没有单独授权登录其他应用的话则只能登录这个应用。即在乘客端应用注册的,默认只能在乘客端应用登录。
如何授权登录其他应用请参考:[授权、禁止用户在特定客户端应用登录](#authorize-app)
如何授权登录其他应用请参考:[授权、禁止用户在特定客户端应用登录](uni-id-pages.md#authorize-app)
需要注意的是客户端APPID信息是由端上传上来的,并非完全可信,尽量在入口处进行校验。例:
......
......@@ -9215,10 +9215,10 @@ vuepress-plugin-zooming@^1.1.8:
dependencies:
zooming "^2.1.1"
vuepress-theme-uni-app-test@^1.3.7:
version "1.3.7"
resolved "https://registry.npmmirror.com/vuepress-theme-uni-app-test/-/vuepress-theme-uni-app-test-1.3.7.tgz#1c8495dff68d5e66803a45a28deae234c5ac2d06"
integrity sha512-cUQxjuWNlpm8SrqoadnkEoBMWOJeSoX7Nn7uvYuGJ7myxpluv/r/CuRT7or8rvf181iIRei6/qNEtoLV8icPuw==
vuepress-theme-uni-app-test@^1.3.8:
version "1.3.8"
resolved "https://registry.npmmirror.com/vuepress-theme-uni-app-test/-/vuepress-theme-uni-app-test-1.3.8.tgz#bc0f9fe35a18ee516e94a769873c7aa9162b1396"
integrity sha512-JMuQ+ljne1YrsZOODS67tSftFfIjoydFpTcEoWZvYxyEEHJBVJUl+5Gfznqd8ax3/Nt9hE+j0r/BtxY5EM7QTQ==
dependencies:
"@vuepress/plugin-back-to-top" "^1.9.5"
"@vuepress/theme-default" "^1.8.2"
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册