最近需要用python把AI的能力封装起来,通过暴露API的方式供别的服务来调用。整体的想法是,选择对应接口,接口读取传入的sql语句,自动去数据库读取数据,运算后将结果在存放在数据库中。
搭建FastAPI框架,由于AI训练时间比较久,所以采用了fastapi的后台运行方式。
如下,这样就可以了,而且也可以在后台执行程序中,利用多进程写代码。
@app.post("/sql_tmp/{operation_name}")
async def Operation_item(background_tasks: BackgroundTasks, operation: str, item: DataBaseTmpItem, p_item: ProjectItem):
debug = 0
if debug == 1:
d = DatabaseManager(user=sql_config.user,
password=sql_config.password,
host=sql_config.host,
port=sql_config.port,
dbname=sql_config.dbname,
)
background_tasks.add_task(send_notification_debug, operation, item, p_item, d)
else:
background_tasks.add_task(send_notification, operation, item, p_item)
return {
"status": 1,
"message": "任务已提交"
}