Skip to content

Commit c6e29f9

Browse files
authored
[Docs] Update docs for ERNIEBot 4.0
2 parents 5c53cc1 + 0136135 commit c6e29f9

13 files changed

+34
-58
lines changed

.pre-commit-config.yaml

+10-25
Original file line numberDiff line numberDiff line change
@@ -16,29 +16,14 @@ repos:
1616
- id: check-symlinks
1717
- id: check-added-large-files
1818

19-
- repo: local
19+
- repo: https://github.com/Lucas-C/pre-commit-hooks
20+
rev: v1.0.1
2021
hooks:
21-
- id: copyright_checker
22-
name: copyright_checker
23-
entry: python ./.copyright.hook
24-
language: system
25-
files: \.(c|cc|cxx|cpp|cu|h|hpp|hxx|proto|py)$
26-
exclude: (?!.*third_party)^.*$
27-
28-
- repo: local
29-
hooks:
30-
- id: clang-format-with-version-check
31-
name: clang-format
32-
description: Format files with ClangFormat.
33-
entry: bash .clang_format.hook -i
34-
language: system
35-
files: \.(c|cc|cxx|cpp|cu|hxx|proto)$
36-
37-
- repo: local
38-
hooks:
39-
- id: cpplint-cpp-source
40-
name: cpplint
41-
description: Check C++ code style using cpplint.py.
42-
entry: bash .cpplint_pre_commit.hook
43-
language: system
44-
files: \.(c|cc|cxx|cpp|cu|h|hpp|hxx)$
22+
- id: forbid-crlf
23+
files: \.md$
24+
- id: remove-crlf
25+
files: \.md$
26+
- id: forbid-tabs
27+
files: \.md$
28+
- id: remove-tabs
29+
files: \.md$

README.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ models = erniebot.Model.list()
3434
print(models)
3535
# ernie-bot 文心一言旗舰版
3636
# ernie-bot-turbo 文心一言轻量版
37+
# ernie-bot-4 基于文心大模型4.0版本的文心一言
3738
# ernie-text-embedding 文心百中语义模型
3839
# ernie-vilg-v2 文心一格模型
3940

@@ -72,7 +73,7 @@ erniebot api image.create --model ernie-vilg-v2 --prompt "画一只驴肉火烧"
7273

7374
### 对话补全(Chat Completion)
7475

75-
ERNIE Bot SDK提供具备对话补全能力的文心一言旗舰版模型ernie-bot和文心一言迅捷版模型ernie-bot-turbo
76+
ERNIE Bot SDK提供具备对话补全能力的文心一言旗舰版模型ernie-bot、文心一言迅捷版模型ernie-bot-turbo以及基于文心大模型4.0版本的文心一言ernie-bot-4
7677

7778
旗舰版模型的效果更好,迅捷版模型的响应速度更快、推理时延更低,大家可以根据实际场景的需求选择合适的模型。
7879

docs/README.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ models = erniebot.Model.list()
2525
print(models)
2626
# ernie-bot 文心一言旗舰版
2727
# ernie-bot-turbo 文心一言轻量版
28+
# ernie-bot-4 基于文心大模型4.0版本的文心一言
2829
# ernie-text-embedding 文心百中语义模型
2930
# ernie-vilg-v2 文心一格模型
3031

@@ -63,7 +64,7 @@ erniebot api image.create --model ernie-vilg-v2 --prompt "画一只驴肉火烧"
6364

6465
### 对话补全(Chat Completion)
6566

66-
ERNIE Bot SDK提供具备对话补全能力的文心一言旗舰版模型ernie-bot和文心一言迅捷版模型ernie-bot-turbo
67+
ERNIE Bot SDK提供具备对话补全能力的文心一言旗舰版模型ernie-bot、文心一言迅捷版模型ernie-bot-turbo以及基于文心大模型4.0版本的文心一言ernie-bot-4
6768

6869
旗舰版模型的效果更好,迅捷版模型的响应速度更快、推理时延更低,大家可以根据实际场景的需求选择合适的模型。
6970

docs/api_reference/chat_completion.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ erniebot.ChatCompletion.create(**kwargs: Any)
1313

1414
| 参数名 | 类型 | 必填 | 描述 |
1515
| :--- | :--- | :------- | :---- |
16-
| model | str || 模型名称。当前支持`'ernie-bot'``'ernie-bot-turbo'`|
16+
| model | str || 模型名称。当前支持`'ernie-bot'``'ernie-bot-turbo'``'ernie-bot-4'`|
1717
| messages | list[dict] || 对话上下文信息。列表中的元素个数须为奇数。详见[`messages`](#messages)|
18-
| functions | list[dict] || 可触发函数的描述列表。详见[`functions`](#functions)`ernie-bot-turbo`模型暂不支持此参数|
18+
| functions | list[dict] || 可触发函数的描述列表。详见[`functions`](#functions)。ernie-bot-turbo模型暂不支持此参数|
1919
| top_p | float || 生成环节在概率加和为`top_p`以内的top token集合内进行采样: <br>(1) 影响输出文本的多样性,取值越大,生成文本的多样性越强; <br>(2) 默认`0.8`,取值范围为`[0, 1.0]`; <br>(3) 建议此参数和temperature只设置其中一个。 |
2020
| temperature | float || 采样环节的参数,用于控制随机性。 <br>(1) 较高的数值会使输出更加随机,而较低的数值会使其更加集中和确定; <br>(2) 默认`0.95`,范围为`(0, 1.0]`,不能为`0`; <br>(3) 建议此参数和`top_p`只设置其中一个。 |
2121
| penalty_score | float || 通过对已生成的token增加惩罚,减少重复生成的现象,值越高则惩罚越大。 <br>(1) 值越大表示惩罚越大; <br>(2) 默认`1.0`,取值范围:`[1.0, 2.0]`|

docs/authentication.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ ERNIE Bot SDK支持多个后端来调用文心大模型(如下表格),大
66

77
| 后端 | API_TYPE | 支持的模型 |
88
| :--- | :---- | :--- |
9-
| AI Studio | aistudio | ernie-bot,ernie-bot-turbo,ernie-text-embedding |
10-
| 千帆大模型平台 | qianfan | ernie-bot,ernie-bot-turbo,ernie-text-embedding |
9+
| AI Studio | aistudio | ernie-bot,ernie-bot-turbo,ernie-bot-4,ernie-text-embedding |
10+
| 千帆大模型平台 | qianfan | ernie-bot,ernie-bot-turbo,ernie-bot-4,ernie-text-embedding |
1111
| 智能创作平台 | yinian | ernie-vilg-v2 |
1212

1313
## 1 AI Studio后端的认证鉴权

docs/guides/chat_completion.md

+5-4
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,13 @@
3838

3939
![pic3](https://bce.bdstatic.com/doc/ai-cloud-share/WENXINWORKSHOP/image_edb718d.png)
4040

41-
目前文心提供如下两种生成式对话模型,
41+
目前文心提供如下几种生成式对话模型:
4242

4343
| 模型 | 说明 | API调用方式 |
4444
| :--- | :--- | :----- |
45-
| ernie-bot | 具备最优的知识增强和生成能力,在文本创作、问答、推理和代码生成等方面表现出色。 |`erniebot.ChatCompletion.create(model='ernie-bot', ...)` |
46-
| ernie-bot-turbo | 具备更快的响应速度和学习能力,API调用成本更低。 | `erniebot.ChatCompletion.create(model='ernie-bot-turbo', ...)`|
45+
| ernie-bot | 具备优秀的知识增强和内容生成能力,在文本创作、问答、推理和代码生成等方面表现出色。 |`erniebot.ChatCompletion.create(model='ernie-bot', ...)` |
46+
| ernie-bot-turbo | 具备更快的响应速度和学习能力,API调用成本更低。 | `erniebot.ChatCompletion.create(model='ernie-bot-turbo', ...)` |
47+
| ernie-bot-4 | 基于文心大模型4.0版本的文心一言,具备目前文心一言系列模型中最优的理解和生成能力。 | `erniebot.ChatCompletion.create(model='ernie-bot-turbo', ...)` |
4748

4849
参阅[ChatCompletion API文档](../api_reference/chat_completion.md)了解API的完整使用方式。
4950

@@ -55,7 +56,7 @@
5556

5657
### 模型的输入输出有什么限制?
5758

58-
ernie-bot与ernie-bot-turbo模型对于输入和输出的token数量会有限制,通常情况下输入的token数量不能超过3072,输出的token数量不会超过1024。当输入的token数量超过限制时,会有以下几种情况:
59+
文心一言模型对于输入和输出的token数量会有限制,通常情况下输入的token数量不能超过3072,输出的token数量不会超过1024。当输入的token数量超过限制时,会有以下几种情况:
5960

6061
* 单轮对话下,用户发送的文本超出输入限制,会直接返回错误;
6162
* 多轮对话下,用户发送的文本,如若最近一次用户文本超出输入限制,会直接返回错误;如若最近一次用户文本没有超出限制,则模型服务会在拼接历史信息时最多拼接到相应的token数上限,并丢弃多余的历史信息。

erniebot/intro.py

+1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ def list() -> List[Tuple[str, str]]:
2626
return [
2727
('ernie-bot', "文心一言旗舰版"),
2828
('ernie-bot-turbo', "文心一言轻量版"),
29+
('ernie-bot-4', "基于文心大模型4.0版本的文心一言"),
2930
('ernie-text-embedding', "文心百中语义模型"),
3031
('ernie-vilg-v2', "文心一格模型"),
3132
]

erniebot/resources/chat_completion.py

+1-11
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,7 @@
2121
from erniebot.api_types import APIType
2222
from erniebot.response import EBResponse
2323
from erniebot.types import (FilesType, HeadersType, ParamsType, ResponseT)
24-
from erniebot.utils.logging import logger
2524
from erniebot.utils.misc import transform
26-
from erniebot.utils.token_helper import approx_num_tokens
2725
from .abc import Creatable
2826
from .resource import EBResource
2927

@@ -131,10 +129,6 @@ def _set_val_if_key_exists(src: dict, dst: dict, key: str) -> None:
131129
if top_p < 0. or top_p > 1.:
132130
raise errors.InvalidArgumentError(
133131
"`top_p` must be in the range [0, 1].")
134-
if 'temperature' in params:
135-
logger.warning(
136-
"It is not recommended to specify both `temperature` and `top_p`."
137-
)
138132
params['top_p'] = top_p
139133
if 'penalty_score' in kwargs:
140134
penalty_score = kwargs['penalty_score']
@@ -168,11 +162,10 @@ def _set_val_if_key_exists(src: dict, dst: dict, key: str) -> None:
168162
return url, params, headers, files, stream, request_timeout
169163

170164
def _postprocess_create(self, resp: ResponseT) -> ResponseT:
171-
return transform(ChatResponse.from_response, resp)
165+
return transform(ChatResponse.from_mapping, resp)
172166

173167
@classmethod
174168
def _validate_messages(cls, messages: List[dict]) -> None:
175-
# TODO: Optionally check the total number of tokens
176169
if len(messages) % 2 != 1:
177170
raise errors.InvalidArgumentError(
178171
"`messages` must have an odd number of elements.")
@@ -195,9 +188,6 @@ def _validate_messages(cls, messages: List[dict]) -> None:
195188
if 'name' not in message:
196189
raise errors.InvalidArgumentError(
197190
f"Message {idx} does not contain the function name.")
198-
if approx_num_tokens(messages[-1]['content']) > 3000:
199-
raise errors.InvalidArgumentError(
200-
f"The last message has more than 3000 tokens.")
201191

202192
@classmethod
203193
def _validate_functions(cls, functions: List[dict]) -> None:

erniebot/resources/chat_file.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -76,4 +76,4 @@ def _prepare_create(self,
7676
return url, params, headers, files, stream, request_timeout
7777

7878
def _postprocess_create(self, resp: ResponseT) -> ResponseT:
79-
return transform(ChatResponse.from_response, resp)
79+
return transform(ChatResponse.from_mapping, resp)

erniebot/resources/embedding.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ def _set_val_if_key_exists(src: dict, dst: dict, key: str) -> None:
110110
return url, params, headers, files, stream, request_timeout
111111

112112
def _postprocess_create(self, resp: ResponseT) -> ResponseT:
113-
return transform(EmbeddingResponse.from_response, resp)
113+
return transform(EmbeddingResponse.from_mapping, resp)
114114

115115

116116
class EmbeddingResponse(EBResponse):

erniebot/resources/fine_tuning.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ def _prepare_create(self,
8080
return url, params, headers, files, stream, request_timeout
8181

8282
def _postprocess_create(self, resp: ResponseT) -> ResponseT:
83-
return transform(FineTuningResponse.from_response, resp)
83+
return transform(FineTuningResponse.from_mapping, resp)
8484

8585

8686
class FineTuningJob(EBResource, Creatable, Queryable, Cancellable):
@@ -170,7 +170,7 @@ def _get_required_arg(key: str) -> Any:
170170
return url, params, headers, files, stream, request_timeout
171171

172172
def _postprocess_create(self, resp: ResponseT) -> ResponseT:
173-
return transform(FineTuningResponse.from_response, resp)
173+
return transform(FineTuningResponse.from_mapping, resp)
174174

175175
def _prepare_query(self,
176176
kwargs: Dict[str, Any]) -> Tuple[str,
@@ -217,7 +217,7 @@ def _prepare_query(self,
217217
return url, params, headers, request_timeout
218218

219219
def _postprocess_query(self, resp: EBResponse) -> EBResponse:
220-
return FineTuningResponse.from_response(resp)
220+
return FineTuningResponse.from_mapping(resp)
221221

222222
def _prepare_cancel(self,
223223
kwargs: Dict[str, Any]) -> Tuple[str,
@@ -264,7 +264,7 @@ def _prepare_cancel(self,
264264
return url, params, headers, request_timeout
265265

266266
def _postprocess_cancel(self, resp: EBResponse) -> EBResponse:
267-
return FineTuningResponse.from_response(resp)
267+
return FineTuningResponse.from_mapping(resp)
268268

269269

270270
class FineTuningResponse(EBResponse):

erniebot/resources/image.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ def _prepare_fetch(self, resp_p: EBResponse) -> Tuple[str,
303303
return url, params, headers
304304

305305
def _postprocess(self, resp_f: EBResponse) -> EBResponse:
306-
return ImageV2Response.from_response(resp_f)
306+
return ImageV2Response.from_mapping(resp_f)
307307

308308
@staticmethod
309309
def _check_status(resp: EBResponse) -> bool:

erniebot/response.py

+2-5
Original file line numberDiff line numberDiff line change
@@ -62,11 +62,8 @@ def __init__(self,
6262
self._update_from_dict(rbody)
6363

6464
@classmethod
65-
def from_response(cls, response: 'EBResponse') -> Self:
66-
resp_type = response.__class__
67-
if resp_type is not EBResponse:
68-
raise TypeError(f"`response` has type `{resp_type.__name__}`.")
69-
return cls(response.rcode, response.rbody, response.rheaders)
65+
def from_mapping(cls, mapping: Mapping) -> Self:
66+
return cls(mapping['rcode'], mapping['rbody'], mapping['rheaders'])
7067

7168
def __getitem__(self, key: str) -> Any:
7269
if key in self._dict:

0 commit comments

Comments
 (0)