You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

结合FastAPI将多脚本DNA序列工具封装为多选项WebAPI

解决方案

1. 核心调整逻辑

原命令行模式是从sys.argv读取输入,FastAPI场景下直接从接口请求参数获取输入即可。建议每个工具对应一个独立接口,更符合你给出的调用示例规范。不要把Sequence实例初始化放在全局位置,避免并发请求时参数互相覆盖。

2. 完整调整后代码

from clases.sequence import Sequence
from clases.read_file import Read_file
from fastapi import FastAPI

app = FastAPI()

# 长度计算接口,完全匹配你给出的调用示例
@app.get("/length")
def calculate_length(input: str):
    # 用请求传入的input参数初始化Sequence,替换原有的sys.argv读取逻辑
    dna = Sequence(input)
    return {"result": dna.length()}

# 其他工具可以按照相同逻辑新增接口,比如GC含量计算示例
@app.get("/gc_content")
def calculate_gc(input: str):
    dna = Sequence(input)
    # 假设Sequence类已实现gc()方法,直接调用返回即可
    return {"result": dna.gc()}

# 保留原命令行执行逻辑,加入口判断避免FastAPI启动时自动执行,方便本地调试
if __name__ == "__main__":
    import sys
    if len(sys.argv) > 1:
        user_input = sys.argv[1]
        dna = Sequence(user_input)
        print("Length:")
        print(dna.length())
        print("\n")

3. 测试验证方式

  • 启动服务:执行uvicorn main:app --reload
  • 访问测试:浏览器输入http://127.0.0.1:8000/length?input=TATA,即可得到返回结果{"result":4}
  • 也可以直接访问FastAPI自带的接口调试页面http://127.0.0.1:8000/docs,可视化传参测试所有接口

内容的提问来源于stack exchange,提问作者Manolo Dominguez Becerra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 16:06:06