|
290 | 290 | "cell_type": "markdown",
|
291 | 291 | "metadata": {},
|
292 | 292 | "source": [
|
293 |
| - "### 2.1 API 申请指引" |
| 293 | + "### 2.1 千帆 SDK" |
| 294 | + ] |
| 295 | + }, |
| 296 | + { |
| 297 | + "cell_type": "markdown", |
| 298 | + "metadata": {}, |
| 299 | + "source": [ |
| 300 | + "#### 2.1.1 API 申请指引" |
294 | 301 | ]
|
295 | 302 | },
|
296 | 303 | {
|
|
360 | 367 | "cell_type": "markdown",
|
361 | 368 | "metadata": {},
|
362 | 369 | "source": [
|
363 |
| - "### 2.2 调用文心千帆 API" |
| 370 | + "#### 2.1.2 调用文心千帆 API" |
364 | 371 | ]
|
365 | 372 | },
|
366 | 373 | {
|
|
498 | 505 | " · temperature,温度系数,默认 0.8,文心的 temperature 参数要求范围为 (0, 1.0],不能设置为 0。"
|
499 | 506 | ]
|
500 | 507 | },
|
| 508 | + { |
| 509 | + "cell_type": "markdown", |
| 510 | + "metadata": {}, |
| 511 | + "source": [ |
| 512 | + "### 2.2 ERNIE SDK" |
| 513 | + ] |
| 514 | + }, |
| 515 | + { |
| 516 | + "cell_type": "markdown", |
| 517 | + "metadata": {}, |
| 518 | + "source": [ |
| 519 | + "#### 2.2.1 API 申请指引" |
| 520 | + ] |
| 521 | + }, |
| 522 | + { |
| 523 | + "cell_type": "markdown", |
| 524 | + "metadata": {}, |
| 525 | + "source": [ |
| 526 | + "这里将使用 `ERNIE SDK` 中的 `ERNIE Bot` 来调用文心一言。ERNIE Bot 为开发者提供了便捷易用的接口,使其能够轻松调用文心大模型的强大功能,涵盖了文本创作、通用对话、语义向量以及AI作图等多个基础功能。`ERNIE SDK` 并不像 `千帆 SDK` 那样支持各种大语言模型, 而是只支持百度自家的文心大模型。目前 ERNIE Bot 支持的模型有:\n", |
| 527 | + "\n", |
| 528 | + "```\n", |
| 529 | + "ernie-3.5 文心大模型(ernie-3.5)\n", |
| 530 | + "ernie-lite 文心大模型(ernie-lite)\n", |
| 531 | + "ernie-4.0 文心大模型(ernie-4.0)\n", |
| 532 | + "ernie-longtext 文心大模型(ernie-longtext)\n", |
| 533 | + "ernie-speed 文心大模型(ernie-speed)\n", |
| 534 | + "ernie-speed-128k 文心大模型(ernie-speed-128k)\n", |
| 535 | + "ernie-tiny-8k 文心大模型(ernie-tiny-8k)\n", |
| 536 | + "ernie-char-8k 文心大模型(ernie-char-8k)\n", |
| 537 | + "ernie-text-embedding 文心百中语义模型\n", |
| 538 | + "ernie-vilg-v2 文心一格模型\n", |
| 539 | + "```\n", |
| 540 | + "\n", |
| 541 | + "在使用 ERNIE SDK 之前,需要先获取 AI Studio 后端的认证鉴权(access token),在代码中需要配置自己的密钥才能实现对模型的调用,下面我们以 [Ernie Bot](https://ernie-bot-agent.readthedocs.io/zh-cn/latest/sdk/) 为例,介绍通过 ERNIE Bot 调用文心模型的流程。\n", |
| 542 | + "\n", |
| 543 | + "首先需要在 [AI Studio星河社区](https://aistudio.baidu.com/index) 注册并登录账号(新用户会送100万token的免费额度,为期3个月)。\n", |
| 544 | + "\n", |
| 545 | + "\n", |
| 546 | + "\n", |
| 547 | + "点击 `访问令牌` 获取账户的 access token,复制 access token 并且以此形式 `EB_ACCESS_TOKEN=\"...\"` 保存到 `.env` 文件中。\n", |
| 548 | + "\n", |
| 549 | + "\n", |
| 550 | + "然后执行以下代码,将密钥加载到环境变量中。" |
| 551 | + ] |
| 552 | + }, |
| 553 | + { |
| 554 | + "cell_type": "code", |
| 555 | + "execution_count": 1, |
| 556 | + "metadata": {}, |
| 557 | + "outputs": [], |
| 558 | + "source": [ |
| 559 | + "from dotenv import load_dotenv, find_dotenv\n", |
| 560 | + "\n", |
| 561 | + "# 读取本地/项目的环境变量。\n", |
| 562 | + "\n", |
| 563 | + "# find_dotenv() 寻找并定位 .env 文件的路径\n", |
| 564 | + "# load_dotenv() 读取该 .env 文件,并将其中的环境变量加载到当前的运行环境中 \n", |
| 565 | + "# 如果你设置的是全局的环境变量,这行代码则没有任何作用。\n", |
| 566 | + "_ = load_dotenv(find_dotenv())" |
| 567 | + ] |
| 568 | + }, |
| 569 | + { |
| 570 | + "cell_type": "markdown", |
| 571 | + "metadata": {}, |
| 572 | + "source": [ |
| 573 | + "#### 2.2.2 调用 Ernie Bot API" |
| 574 | + ] |
| 575 | + }, |
| 576 | + { |
| 577 | + "cell_type": "code", |
| 578 | + "execution_count": 2, |
| 579 | + "metadata": {}, |
| 580 | + "outputs": [], |
| 581 | + "source": [ |
| 582 | + "import erniebot\n", |
| 583 | + "import os\n", |
| 584 | + "\n", |
| 585 | + "erniebot.api_type = \"aistudio\"\n", |
| 586 | + "erniebot.access_token = os.environ.get(\"EB_ACCESS_TOKEN\")\n", |
| 587 | + "\n", |
| 588 | + "def gen_wenxin_messages(prompt):\n", |
| 589 | + " '''\n", |
| 590 | + " 构造文心模型请求参数 messages\n", |
| 591 | + "\n", |
| 592 | + " 请求参数:\n", |
| 593 | + " prompt: 对应的用户提示词\n", |
| 594 | + " '''\n", |
| 595 | + " messages = [{\"role\": \"user\", \"content\": prompt}]\n", |
| 596 | + " return messages\n", |
| 597 | + "\n", |
| 598 | + "\n", |
| 599 | + "def get_completion(prompt, model=\"ernie-3.5\", temperature=0.01):\n", |
| 600 | + " '''\n", |
| 601 | + " 获取文心模型调用结果\n", |
| 602 | + "\n", |
| 603 | + " 请求参数:\n", |
| 604 | + " prompt: 对应的提示词\n", |
| 605 | + " model: 调用的模型\n", |
| 606 | + " temperature: 模型输出的温度系数,控制输出的随机程度,取值范围是 0~1.0,且不能设置为 0。温度系数越低,输出内容越一致。\n", |
| 607 | + " '''\n", |
| 608 | + "\n", |
| 609 | + " chat_comp = erniebot.ChatCompletion()\n", |
| 610 | + " message = gen_wenxin_messages(prompt)\n", |
| 611 | + "\n", |
| 612 | + " resp = chat_comp.create(messages=message, \n", |
| 613 | + " model=model,\n", |
| 614 | + " temperature = temperature,\n", |
| 615 | + " system=\"你是一名个人助理\")\n", |
| 616 | + "\n", |
| 617 | + " return resp[\"result\"]" |
| 618 | + ] |
| 619 | + }, |
| 620 | + { |
| 621 | + "cell_type": "code", |
| 622 | + "execution_count": 3, |
| 623 | + "metadata": {}, |
| 624 | + "outputs": [ |
| 625 | + { |
| 626 | + "data": { |
| 627 | + "text/plain": [ |
| 628 | + "'你好!我是一名个人助理,我的主要任务是协助和支持你的日常工作和活动。我可以帮助你管理时间、安排日程、提供信息、解答问题,以及完成其他你需要的任务。如果你有任何需求或问题,请随时告诉我,我会尽力帮助你。'" |
| 629 | + ] |
| 630 | + }, |
| 631 | + "execution_count": 3, |
| 632 | + "metadata": {}, |
| 633 | + "output_type": "execute_result" |
| 634 | + } |
| 635 | + ], |
| 636 | + "source": [ |
| 637 | + "get_completion(\"你好,介绍一下你自己\")" |
| 638 | + ] |
| 639 | + }, |
| 640 | + { |
| 641 | + "cell_type": "markdown", |
| 642 | + "metadata": {}, |
| 643 | + "source": [ |
| 644 | + "`Ernie Bot API` 的调用方式和参数基本和 `文心千帆 API` 一样,除了在创建 `ChatCompletion` 时使用的是 `.create()` 函数。\n", |
| 645 | + "\n", |
| 646 | + "所以此处并不再过多介绍接口常用参数,你可以参考 [参数介绍](https://ernie-bot-agent.readthedocs.io/zh-cn/latest/sdk/api_reference/chat_completion/) 以获取其他参数的详细信息。" |
| 647 | + ] |
| 648 | + }, |
501 | 649 | {
|
502 | 650 | "cell_type": "markdown",
|
503 | 651 | "metadata": {},
|
|
0 commit comments