我现在的AI公司和另外一个公司有商业合作。对方希望我们把一个模块用Python或者Java做好,然后私有化部署到对方本地。
用最简单的语言说,这个模块本质上约等于读取一段文本、然后用AI模型处理一个字符串,
AI_sess = tf.Session(graph=tf.Graph(), config=config)
def process(dict_file, string):
sess_yield = sess.run(string, ...)
data = load(dict_file)
result = data + sess_yield
return result
出于保护我公司产权的原则,我能想到的就是用tensorflow/torch封成一个pkl/pb模型文件,这样就不会暴露代码给对方了。但是似乎这样只能封进去一些基本的运算和操作。
请问:有没有办法把Python或Java文件加密,然后再交给对方私有化部署呢?
通过cpython编译成so文件是最简单的办法
1、假设你的源码文件或是a.py
2、新建一个setup.py文件
3、此时在你当前目下面会生成/build/lib.xxx-10.7-x86_64-2.7目录,从里面找到a.so拷贝到你原来a.py目录,这时你删除a.py,不影响你调用a.py里面的方法