YAML文件填写规范

avilliai Lv3

你大抵是不想看YAML 入门教程 | 菜鸟教程 (runoob.com) 的,我就在这里列举一些注意事项好了。

关于 “-“

1
2
3
gemini:
- xxxxxx
- xxxxxx

”-“ 在这里的意思是,告诉读取yaml的bot:对应的值是列表的一部分。什么是列表?你可以把它想象为一个弹夹,每个apikey都是一颗子弹,而bot使用时则是从弹夹中选取子弹;因此即使你只有一个apikey,也必须按照这一规则填写。**-的后面需要有一个空格,变成- 具体的填写内容才能生效**

1
2
3
4
5
6
7
gemini: 你的key     #这是一个错误填写示例
------------------------------------
gemini:
- xxxxx #这是一个正确填写示例
------------------------------------
gemini:
- xxxxxx #这样写也可以

你应该已经注意到了,- 的位置似乎可以缩进也可以不缩进,是的,只要确保 - 以及其后的内容的缩进级别不要超过key的级别即可。

我们不使用gemini: key是因为,考虑到部分bot面向的用户量比较大,因此使用列表(弹夹)能够通过填写多个apikey以分散单个apikey的压力。(google会有每分钟请求限制)

你可以看到,我们在使用openai sdk的时候也使用了同样的思路。

关于 “:”

在编写yaml文件时,我们基本使用半角符号。因此无法被读取,而:可以,并且:后面需要加一个空格变成: ,这样才是一个完整的yaml键值对key: value

关于”True”和”true”

在yaml文件中,这两种写法都能被读取为boolean值,所以两种写法都可以,falseFalse也是同理。

关于数字

在python中,能转为int类型的数据,在yaml文件被读取时都会被转为int。

关于key: value以及嵌套结构

你可能需要回顾一下数据类型的知识了。

key可以对应多种数据类型。
比如我们上面的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
key: value
key2:
- value1
- value2
- value3
key3:
sonKey:
- songvalue1
- songvalue2
- songvalue3
- {grandsonkey: songvalue4}
sonKey2:
grandsonkey: grandsonValue
grandsonkey1: grandsonValue1 #它可以无限嵌套下去
grandsonkey1:
grandgrandsonkey1: grandgrandsonValue1
grandgrandsonkey2:
- grandgrandsonValue1
- grandgrandsonValue2
- grandgrandsonValue3

嵌套结构在yaml文件中很常见,在Manyana和Eridanus中也得到了较为广泛的使用。

中文问题

中文可以做key,也可以做value,那么为什么Manyana用那么多蹩脚的拼音、英文当作key呢?

答案很简单,因为我铸币。

  • 标题: YAML文件填写规范
  • 作者: avilliai
  • 创建于 : 2024-08-05 18:45:14
  • 更新于 : 2024-08-05 19:02:47
  • 链接: https://avilliai.github.io/2024/08/05/YAML文件填写规范/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论