提交 d9ba6d50 编写于 作者: L lvqing

Merge branch 'master' of https://gitcode.net/dcloud/unidocs-zh

......@@ -48,9 +48,9 @@
```html
<img class="zooming" src="xxx">
```
11. md 支持书写属性(花括号 `{` 与 markdown 语法之间不能有空格)
11. md 支持书写属性(`#{` 与 markdown 语法之间不能有空格)
```md
![](https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/uni-app-multiport.jpg){.zooming data=abc width=100 height=100}
![](https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/uni-app-multiport.jpg)#{.zooming data=abc width=100 height=100}
```
渲染为:
......
......@@ -24,7 +24,7 @@ const config = {
}],
['script', { src: `/js/redirect.js?${Date.now()}&v=${Date.now()}&version=${Date.now()}` }],
['script', { src: 'https://hm.baidu.com/hm.js?fe3b7a223fc08c795f0f4b6350703e6f' }],
['script', { src: 'miku-delivery-1.1.0.js' }],
['script', { src: '/miku-delivery-1.1.0.js' }],
['script', { src: `/js/miku.js?${Date.now()}&v=${Date.now()}&version=${Date.now()}` }]
],
locales: {
......@@ -85,7 +85,10 @@ const config = {
.use(require('./markdown/img-add-attrs'))
.end()
.plugin('attrs')
.use(require('markdown-it-attrs'))
.use(require('markdown-it-attrs'),[{
leftDelimiter: '#{',
rightDelimiter: '}'
}])
}
},
chainWebpack (config, isServer) {
......
......@@ -225,4 +225,4 @@ pageClass: custom-page-class
实际运行效果如下(点击图片可放大):
![](https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/uni-app-multiport.jpg){.zooming}
![](https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/uni-app-multiport.jpg)#{.zooming}
......@@ -81,8 +81,8 @@ iOS平台云端打包相关配置
"enable": false
},
"app-plus": {
"allowsInlineMediaPlayback":"true|false", //可选,是否允许video标签非全屏播放 (仅iOS生效)
"mediaPlaybackRequiresUserAction":"true|false", //可选,可通过此属性配置h5中的音频是否自动播放,注意当设置为false时开启自动播放,默认为true(仅iOS生效 HX3.0.1 + 版本支持)
"allowsInlineMediaPlayback": true, //可选,Boolean类型, 是否允许 h5 中视频非全屏播放,3.8.5版本开始默认值为 true (仅iOS生效)
"mediaPlaybackRequiresUserAction": false, //可选,Boolean类型,可通过此属性配置 h5中的音视频是否可通过API自动播放,注意当设置为 false 时允许API控制自动播放,3.8.5版本开始默认值为 false(仅iOS生效 3.0.1 + 版本支持)
"nvueCompiler": "weex", //可选,字符串类型,nvue页面编译模式,可取值uni-app、weex,参考:https://ask.dcloud.net.cn/article/36074
"nvueStyleCompiler": "weex", //可选,字符串类型,nvue页面样式编译模式,可取值uni-app、weex,参考:https://ask.dcloud.net.cn/article/38751
"renderer": "native", //可选,字符串类型,可不加载基于 webview 的运行框架,可取值native
......
本文旨在帮助 uts 插件开发者和使用者,快速了解在MAC环境真机运行时 CocoaPods 的安装方法,以及 CocoaPods 使用过程中常见错误处理
> 此功能 HBuilder X 3.8.5+ 版本支持
## CocoaPods install
CocoaPods安装
正常安装 CocoaPods 需要在终端执行下述命令
```
sudo gem install cocoapods
```
- 如果执行之后报下面的错误
```
ERROR: Error installing cocoapods:
The last version of activesupport (>= 5.0, < 8) to support your Ruby & RubyGems was 6.1.7.3. Try installing it with `gem install activesupport -v 6.1.7.3` and then running the current command again
activesupport requires Ruby version >= 2.7.0. The current ruby version is 2.6.10.210.
```
说明缺少activesupport插件,在终端执行以下命令
```
sudo gem install activesupport -v 6.1.7.3
```
安装成功后再次执行 sudo gem install cocoapods 安装 CocoaPods.
- 如果执行命令之后报错,说明需要升级 gem 和 ruby
```
Building native extensions. This could take a while...
ERROR: Error installing cocoapods:
ERROR: Failed to build gem native extension.
current directory: /Library/Ruby/Gems/2.6.0/gems/ffi-1.15.5/ext/ffi c
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby-I/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0-r./siteconf20230612-9566-nht0td.rbextconf.rb
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/2.6/us/lib/ruby/include/ruby.h
You might have to install separate package for the ruby development environment, ruby-dev or ruby-devel for example.
extconf failed, exit code 1
Gem files will remain installed in /Library/Ruby/Gems/2.6.0/gems/ffi-1.15.5 for inspection.
Results logged to /Library/Ruby/Gems/2.6.0/extensions/universal-darwin-22/2.6.0/ffi-1.15.5/gem make.out
```
下面是升级 Gem 和 Ruby 的方法
### 升级 Gem
Gem 是管理 Ruby 标准包,如果 Gem 版本过低可能造成无法安装 CocoaPods,升级 Gem 使用下述命令
```
gem -v //查看当前gem版本
sudo gem update --system  //升级gem
```
### 升级 Ruby
MacOS 会自带 Ruby,但可能系统的Ruby版本过低,导致无法安装 CocoaPods, 可通过以下方式更新 Ruby
- 如果没有安装 Homebrew,可以先在终端中输入以下命令安装 Homebrew:
```
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
```
Ruby 的升级有以下两种常见的方式,可任选其中一种:
#### 通过 RVM 升级 Ruby
- 安装 RVM:在终端中输入以下命令安装 RVM:
```
curl -sSL https://get.rvm.io | bash -s stable
```
这个命令会从 RVM 官网下载安装脚本并运行。安装完成后,需要在终端中执行以下命令以便让 RVM 生效:
```
source ~/.rvm/scripts/rvm
```
- 查看 rvm 版本
```
rvm -v
```
- 查看可安装的 ruby 版本列表
```
rvm list known
```
- 安装指定 ruby 版本(eg:安装 ruby 3.0.0版本)
```
rvm install ruby-3.0.0
```
- 切换 Ruby 使用版本(eg:指定使用3.0.0版本)
```
rvm use ruby-3.0.0
```
#### 通过 Homebrew 升级 Ruby
在终端执行如下命令
```
brew install ruby
```
安装完成后,ruby 默认使用的是系统自带的版本
- 查看版本号
```
ruby -v
```
- 查看 ruby 安装路径
```
which ruby
```
- 配置环境变量
```
echo 'export PATH="/opt/homebrew/opt/ruby/bin:$PATH"' >> ~/.zshrc
```
- 配置完成后重启终端,再次查看 Ruby 版本号,校验是否为安装的 Ruby版本
### 安装 CocoaPods
升级完 Gem 和 Ruby 后,在终端输入如下命令,
```
sudo gem install cocoapods
```
这会耗费一段时间,完成后可查看 cocoapods 的版本号
```
pod --version
```
也可以查看 pod 的安装位置
```
which pod
```
在 cocoapods 安装完后需要更新一次本地 repo 仓库,在终端执行
```
pod repo update
```
这将耗费较长时间,请耐心等待。
至此 CocoaPods 已经安装完成,可以尝试 Search 下一 pod 库:
```
pod search Alamofire
```
## pod依赖库使用过程中常见错误及处理方式说明
### MAC 环境真机运行 uts 插件时未安装 CocoaPods
错误信息:uni_module [xxxx](iOS)存在pod三方依赖库,请先安装 CocoaPods!
说明:出现此错误是因为当前环境没有安装 CocoaPods
处理方法: 请参照上述章节描述的方式安装 CocoaPods 工具。
### 指定的 pod 库在本地 repo 仓库找不到索引
错误信息:CocoaPods could not find compatible versions for pod "xxx"
报错示例:
```ts
'Analyzing dependencies\n' +
'[!] CocoaPods could not find compatible versions for pod "HandyJSON":\n' +
' In Podfile:\n' +
' HandyJSON (= 2.0.2)\n' +
'\n' +
'None of your spec sources contain a spec satisfying the dependency: `HandyJSON (= 2.0.2)`.\n' +
'\n' +
'You have either:\n' +
' * out-of-date source repos which you can update with `pod repo update` or with `pod install --repo-update`.\n' +
' * mistyped the name or version.\n' +
' * not added the source repo that hosts the Podspec to your Podfile.\n',
```
说明:出现此错误是因为执行 pod install 时在本地 repo 仓库未找到对应的库索引。
处理方法:
- 请首先确保配置的 pod 库 name 正确,配置的 version 不高于 pod 库发行的最高版本号, 未使用私有仓库 pod 库。
- 真机运行时在终端手动执行 pod repo update 命令。(说明:由于pod repo update 较为耗时,为了保证编译速度,避免无必要的 pod repo update, 插件内部只执行了 pod install),
- 云打包时请重新打包,或者联系管理员。
### pod库下载失败
错误信息示例:
- 示例一
```ts
'[!] Error installing Alamofire\n' +
'[!] /usr/bin/git clone https://github.com/Alamofire/Alamofire.git /var/folders/9h/2znqhy813g932mrj_c9f781w0000gn/T/d20230614-22451-49mc32 --template= --single-branch --depth 1 --branch 5.7.1\n' +
'\n' +
"Cloning into '/var/folders/9h/2znqhy813g932mrj_c9f781w0000gn/T/d20230614-22451-49mc32'...\n" +
"fatal: unable to access 'https://github.com/Alamofire/Alamofire.git/': error:02FFF03C:system library:func(4095):Operation timed out\n",
```
- 示例二
```ts
"[!] CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/all_pods_versions_8_e_e.txt Response: Couldn't resolve host name\n",
```
- 示例三
```ts
'[!] CDN: trunk Repo update failed - 75 error(s):'
```
说明: 出现此类错误是因为网络超时、不能正常访问 github、或者需要翻墙。
处理方式:
- 真机运行:检查您的网络,确保网络顺畅,且可以正常访问github,某些pod库的下载可能需要翻墙。在网络不好时,请多试几次。
- 云打包:请重新打包,或者联系管理员。
\ No newline at end of file
##### config.json
uts插件在iOS平台的其它原生配置文件,可以在其中配置依赖的系统库等信息
```json
{
"frameworks": [
"可选,依赖的系统库(系统库有.framework和.tbd和.dylib类型)"
],
"deploymentTarget": "9.0", // 可选,插件支持的最低 iOS 版本 默认:9.0"
"validArchitectures": [ // 可选,支持的 CPU 架构类型 默认:arm64
"arm64"
],
"dependencies-pods": [ // 可选, 需要依赖的pod库, HBuilder X 3.8.5+ 版本支持
{
"name": "WechatOpenSDK",
"version": "2.0.2"
}]
}
```
**配置说明:**
- frameworks:插件需要依赖的系统库(系统库有 .framework 和 .tbd 和 .dylib 类型),此节点为可选项。
- deploymentTarget:插件支持的最低 iOS 版本号,此节点为可选项,默认设置为 9.0.
+ 插件支持的最低版本号应该设置为所有依赖的三方库(包含 framework .a pod )中最低支持版本号中的最高的一个。
+ pod 库的最低支持系统版本号可在 pod 库的 spec 文件或者 readme 中查看。
- validArchitectures:插件支持的 CPU 架构类型,此节点为可选项,默认值为:arm64。
- dependencies-pods:插件需要依赖的 pod 库, HBuilder X 3.8.5+ 版本支持
+ 把需要依赖的 pod 库相关信息配置在 dependencies-pods 节点下,需要明确指定每个 pod 库的名字 (name) 和版本号 (version),可同时配置多个 pod 依赖库。目前不支持通过 podfile 文件直接设置,也不支持 podfile 文件中除了 name 和 version 之外的其他配置项。
+ 为了保证插件的稳定性,避免因未指定 pod 库版本,执行 pod install 之后 pod 库最新版本造成的代码不兼容问题,需要明确指定 pod 库的具体版本。version 字段不可省略,不可为空字符串。 建议将 version 配置为 `"9.7.0"` 这种明确的数字版本号,不建议使用 `~>, >, >=, <, <=` 等带符号的配置。
+ 使用 CocoaPods 官方默认地址 (source 'https://github.com/CocoaPods/Specs.git'), 不接受 (source '私有库url') 等存放在私有域名下pod库。
+ 有关 CocoaPods 使用过程中常见的错误和处理方式[详见](https://uniapp.dcloud.net.cn/plugin/uts-ios-cocoapods.html)
\ No newline at end of file
......@@ -91,6 +91,37 @@ llm.chatCompletion({
})
```
## 概念介绍@concept
### Token@concept-token
在大语言模型中,token是指自然语言文本中的最小粒度单位,也就是一个最小的单词或符号。通常情况下,自然语言文本是由一个一个的token组成的,每个token都具备自己的词性、词义等属性。
在训练大语言模型时,会使用一种称为“词向量”的技术,将每个token表示成一个向量形式,这个向量可以包含很多有用的语义信息,比如单词的词性、上下文等。模型通过这些向量来学习和理解自然语言文本,并能够完成各种任务。
在大语言模型处理任务的过程中,输入的文本会被转译为token输入到模型中,而输出则是从token转译到文本。输入token与输出token的合计数量直接影响了大语言模型所消耗的算力,所以业界通常采用基于token数量的计费模式。
也就是一次请求,输入的前文和返回的后文,合计算token总数来计费。
不同的模型在处理文本时分词方法不完全相同,可能存在特定的一句话在不同的模型里面会计算出完全不一样的token数量,此外LLM服务商在处理输入时可能会加入一些额外token。如果服务商调整tokenizer算法也可能会导致token数计算变化。
中文、英文、数字、符号,对应的token数量也不同。
对于连续对话,如果有前文记忆总结,那么总结内容也会消耗token。比如uni-ai-chat模板中已经内置了前文记忆总结功能,会额外消耗token数(如果不进行总结,要不丢失会话记忆,要不多轮对话会因为token数太多无法进行)
不同大语言模型单次请求的token最大数是有上限的,详见开发文档。
举例,同样是输入15个字,返回100个字,在minimax和gpt-3.5-turbo上,token数不一样。
```text
minimax:总token数**315**
用户:写一段关于森林的100字小作文
AI:森林,大自然的宝库,生机勃勃,郁郁葱葱。它为动物提供栖息之所,为植物提供生长的沃土。茂密的枝叶遮挡烈日,使森林内部充满凉爽,是夏日的天堂。徒步走进森林,感受清新的空气和鸟鸣,心旷神怡。树木彼此交织,形成绿色的迷宫,散发神秘的气氛。山谷河流点缀其中,与森林和谐共生,形成大自然的奇景。森林不仅是生态的保护者,也是人类心灵的避风港。
gpt-3.5-turbo:输入token数23,输出token数226,总token数**249**
用户:写一段关于森林的100字小作文
AI: 森林是地球上最美丽多样的自然景观之一。它们是许多生物的家园,包括动物和植物,这些生物相互依赖,在森林中形成一个复杂的生态系统。森林也是地球上最重要的碳吸收器之一,因此也是气候变化的关键因素之一。然而,现代人类的活动却给森林带来了极大的压力,我们的砍伐、野火和污染威胁了整个生态系统的平衡,我们必须介入保护森林。只有保护森林,才能在未来保持我们的人类家园健康和可持续。
```
## 后续版本计划
......
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册