我工作的最终成果应该是一个 Python 函数,它以一个 JSON 对象作为唯一输入,并返回另一个 JSON 对象作为输出。更具体地说,我是一名数据科学家,我所说的功能源自数据并提供预测(换句话说,它是一个机器学习模型)。
所以,我的问题是如何将此功能交付给将其整合到网络服务中的“技术团队”。
目前我面临的问题很少。首先,技术团队不一定在 Python 环境下工作。因此,他们不能只是将我的函数“复制并粘贴”到他们的代码中。其次,我想确保我的函数在与我相同的环境中运行。例如,我可以想象我使用了一些技术团队没有的库,或者他们的版本与我使用的版本不同。
添加
作为一种可能的解决方案,我考虑以下内容。我启动了一个 Python 进程,它监听一个套接字,接受传入的字符串,将它们转换为 JSON,将 JSON 提供给“已发布”函数并将输出 JSON 作为字符串返回。这个解决方案有缺点吗?换句话说,将 Python 函数“发布”为监听套接字的后台进程是否是个好主意?
最佳答案
您对使用套接字有正确的想法,但是有大量框架完全按照您的意愿行事。点赞hleggs , 我建议你结帐Flask构建一个微服务。这将允许其他团队在 HTTP 请求中将 JSON 对象发布到您的 flask 应用程序并接收回 JSON 对象。无需了解底层系统或其他要求!
这是一个使用 JSON 回复和响应的 flask 应用模板
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/', methods=['POST'])
def index():
json = request.json
return jsonify(your_function(json))
if __name__=='__main__':
app.run(host='0.0.0.0', port=5000)
编辑:根据 Peter Britain 直接嵌入我的代码的建议
关于python - 如何(以何种形式)共享(交付)一个 Python 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38700517/