千帆【API接入】自定义组件简明教程

676 阅读4分钟

千帆【API接入】自定义组件简明教程

大家好,我是 JavaRoom,今天来给大家做一个自定义API接入来是心啊遣返组件创建案例简明教学。

1.准备工作

1.1 一个不欠费的千帆账号

财务总览地址:console.bce.baidu.com/billing/#/a…

2.jpg

首先检查自己的帐号状态,如果欠费就充值,突然发现我的度小满里还有好多金币!!!

注意:

如果账号欠费了,那么你是运行不了你所部署的应用的。

1.2 准备一个网络主机

要自定的API能访问到,那么网络主机不能少。

怎么才是一个合格的主机呢?重点是端口开放。

下面是我的开放过程:

  • 本地防火墙端口开放

    #开放指定端口
    sudo ufw allow 8000
    # 直接关闭
    sudo ufw disable
    

    其实这次用的是8000端口,实在懒,就关了它。

  • 网络防火墙端口开放

3.jpg

2.本地写一个时间API

2.1 fastapi安装

思来想去,用fastapi应该是最简洁的,我想使用它来实现返回当前时间、星期、日期的阿皮。

首先是fastapi安装

pip install fastapi

2.2 自定义API实现time_test.py

from fastapi import FastAPI
from datetime import datetime
from typing import Dict

app = FastAPI()

@app.get("/time_info")
async def get_current_time_info() -> Dict[str, str]:
    """
    获取当前时间信息并返回字典。
    
    Args:
        无参数。
    
    Returns:
        包含当前时间信息的字典,包含以下键值对:
            - current_time (str): 当前时间,格式为"%H:%M:%S"
            - current_weekday (str): 当前星期,格式为"%A"
            - current_date (str): 当前日期,格式为"%Y-%m-%d"
    
    """
    now = datetime.now()
    current_time = now.strftime("%H:%M:%S")
    current_weekday = now.strftime("%A")
    current_date = now.strftime("%Y-%m-%d")
    
    return {
        "current_time": current_time,
        "current_weekday": current_weekday,
        "current_date": current_date
    }    

为了方便,以上代码、注释我使用comate自动生成。

2.3Uvicorn本地测试

使用Uvicorn运行应用:

uvicorn time_test:app --host 192.168.1.100 --port 8000 --reload

访问url:http://124.220.84.2:8000/time_info

4.jpg

3.网络部署

  • 安装fastapi

  • 打开sftp,直接上传刚刚测试好的time_test.py文件

  • 运行部署命令

# nohup表示关闭终端进程不断,& 表示后台运行, time_test表示文件名, 0.0.0.0 表示所有地址
nohup uvicorn time_test:app --host 0.0.0.0  --reload &
  • 测试

打开我的地址:http://124.220.84.2:8000/time_info

5.jpg

看到结果即成功。

4.组件创建

4.1选择组件类型

打开网址 [console.bce.baidu.com/ai_apaas/pe…console.bce.baidu.com/ai_apaas/pe…

6.jpg

7.jpg

选择API接入即可。

4.2 配置外部API服务

进入编辑界面:

7.jpg

8.jpg

选中API组件,点击编辑原始API信息。

  • 替换API链接为刚刚服务器测试通过的 http://124.220.84.2:8000/time_info
  • 填写返回参数,如果懒,可以使用自动解析,推荐!!!
  • 注意:此处我没有给输入,所以不需要填写。

编辑结束节点:

9.jpg

  • 编辑输出参数
  • 编辑回复模板

做完以上工作后点击测试。

10.jpg 可以看到输出:

{
end_output:"今天是:2024-05-26,Sunday,北京时间:18:14:04。"
}

5.应用调用

5.1 应用创建

打开千帆APP原生平台创建应用 console.bce.baidu.com/ai_apaas/ap… ,编写应用。

  • 添加当前日期查询组件
  • 撰写应用prompt,提示调用组件
  • 输出组件认为的日期
  • 提示词里对组件获取的日期、大模型认为的日期作对比。
今日日期时间助手
# 角色任务
作为今日日期时间查询应用,你的任务是调用当前日期查询 组件,实时获取并显示当前日期和时间。

# 工具能力

1. 实时获取日期和时间:你需要具备从网络或设备系统获取实时日期和时间的能力。
2. 显示日期和时间:你需要能够以文本、数字或其他格式展示日期和时间,以便用户能够轻松阅读和理解。

# 输出:
1.输出返回调用当前日期查询讯息
2.输出你认为的当前时间

11.jpg

5.2 应用测试

我在百度智能云千帆AppBuilder开发了一款AI原生应用,快来使用吧!「今日日期时间助手」appbuilder.baidu.com/s/m7ToBD7m

今日日期时间助手.png

12.jpg

6.应用信息

应用ID: 82f2f43c-aa8c-4922-8d26-99d9f3731757

应用链接:「今日日期时间助手」appbuilder.baidu.com/s/m7ToBD7m

欢迎大家试用并提问。