KnifeHub 中的 Knife 取自“瑞士军刀”(Swiss Army Knife)的意思,KnifeHub 允许你收纳你的小工具,可以自由集成可用的 Python 代码的工具库。
这样就能够将自己所需的 Python 代码片段整合到一个地方,并允许通过 API 请求调用。
以下是创建一个 KnifeHub 的小工具的步骤:
-
创建脚本目录:在
./data
目录下创建一个新的目录,目录的名称将作为你的脚本的名称。例如,你可以创建一个名为pangu_spacing
的目录。 -
编写脚本:在你的脚本目录中创建一个名为
script.py
的 Python 脚本。你的脚本应该从命令行参数中接收输入,并通过print
函数输出结果。例如,你可以创建一个使用pangu.spacing_text
函数来添加空格的脚本。import sys import pangu def main(input_text): spaced_text = pangu.spacing_text(input_text) print(spaced_text) if __name__ == "__main__": input_text = sys.argv[1] main(input_text)
-
列出依赖:在你的脚本目录中创建一个名为
requirements.txt
的文件,列出你的脚本的依赖。例如,如果你的脚本使用了pangu
模块,那么你的requirements.txt
文件应该包含一行pangu
。
你可以通过以下命令在开发环境中运行 KnifeHub:
uvicorn main:app --host 0.0.0.0 --port 9080 --reload
你也可以通过 Docker 在生产环境中运行 KnifeHub:
docker build -t knifehub .
docker run -p 9080:9080 knifehub
你可以通过 API 请求来列出所有可用的脚本:
GET /scripts
你也可以通过 API 请求来运行一个脚本:
POST /run/{script_name}
Content-Type: application/json
{
"script_input": "你的输入文本"
}
请注意,{script_name}
应该替换为你的脚本的名称,请求体应该包含一个 script_input
属性,它的值是你想要传递给你的脚本的输入。