千帆【API接入】自定义组件简明教程
大家好,我是 JavaRoom,今天来给大家做一个自定义API接入来是心啊遣返组件创建案例简明教学。
1.准备工作
1.1 一个不欠费的千帆账号
财务总览地址:https://console.bce.baidu.com/billing/#/account/index
首先检查自己的帐号状态,如果欠费就充值,突然发现我的度小满里还有好多金币!!!
注意:
如果账号欠费了,那么你是运行不了你所部署的应用的。
1.2 准备一个网络主机
要自定的API能访问到,那么网络主机不能少。
怎么才是一个合格的主机呢?重点是端口开放。
下面是我的开放过程:
-
本地防火墙端口开放
#开放指定端口 sudo ufw allow 8000 # 直接关闭 sudo ufw disable
其实这次用的是8000端口,实在懒,就关了它。
-
网络防火墙端口开放
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
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
看到结果即成功。
4.组件创建
4.1选择组件类型
打开网址 [https://console.bce.baidu.com/ai_apaas/personalSpace](https://console.bce.baidu.com/ai_apaas/personalS
选择API接入即可。
4.2 配置外部API服务
进入编辑界面:
选中API组件,点击编辑原始API信息。
- 替换API链接为刚刚服务器测试通过的 http://124.220.84.2:8000/time_info
- 填写返回参数,如果懒,可以使用自动解析,推荐!!!
- 注意:此处我没有给输入,所以不需要填写。
编辑结束节点:
- 编辑输出参数
- 编辑回复模板
做完以上工作后点击测试。
可以看到输出:
{
end_output:"今天是:2024-05-26,Sunday,北京时间:18:14:04。"
}
5.应用调用
5.1 应用创建
打开千帆APP原生平台创建应用 https://console.bce.baidu.com/ai_apaas/app ,编写应用。
- 添加当前日期查询组件
- 撰写应用prompt,提示调用组件
- 输出组件认为的日期
- 提示词里对组件获取的日期、大模型认为的日期作对比。
今日日期时间助手
# 角色任务
作为今日日期时间查询应用,你的任务是调用当前日期查询 组件,实时获取并显示当前日期和时间。
# 工具能力
1. 实时获取日期和时间:你需要具备从网络或设备系统获取实时日期和时间的能力。
2. 显示日期和时间:你需要能够以文本、数字或其他格式展示日期和时间,以便用户能够轻松阅读和理解。
# 输出:
1.输出返回调用当前日期查询讯息
2.输出你认为的当前时间
5.2 应用测试
我在百度智能云千帆AppBuilder开发了一款AI原生应用,快来使用吧!「今日日期时间助手」:https://appbuilder.baidu.com/s/m7ToBD7m
6.应用信息
应用ID: 82f2f43c-aa8c-4922-8d26-99d9f3731757
应用链接:「今日日期时间助手」:https://appbuilder.baidu.com/s/m7ToBD7m
欢迎大家试用并提问。