我正在设计一个利用人工智能进行图像分析的web应用程序。我的CRUD操作API是用Django编写的。现在我想添加AI功能,它在启动时加载模型一次,接收图像,并返回结果。将来,它还将允许对数据进行注释并对模型进行微调。
首先,我想在Django应用程序中加载模型,但是接下来我必须用加载的模型存储一个变量,这不是一个好的设计。对吗?
我还有别的选择吗?AI服务器必须是有状态的,我需要某种API。有什么干净的解决办法吗?
AI模型在Keras中实现,并从*.h5文件中加载。我考虑了一个消息队列和一个单独的AI服务器,但是除了图像处理之外,服务器还必须公开一些API来进行设置。如果我想用API实现一个单独的AI服务器,那么为什么不使用我已经拥有的Django服务器呢?在这种情况下,在哪里存储模型的对象?
另一个问题是,我需要存储的对象之一是线程,它持续监视服务器检查要分析的新映像。如果我声明这个变量(例如在settings.py中),它将阻止进一步的执行,因为它从未离开声明在其中的命名空间。
我要求就这个问题的设计提出建议。
发布于 2022-12-18 09:28:54
这是一个粗略的答案。
不过!如果您的应用程序需要大量的服务器端状态(如ML模型),或者需要基于状态的超快响应,例如多人游戏。然后,您需要在调用之间的内存中保存该状态。这只是一个技术上的限制,这些技巧对你来说是行不通的。
如果您必须这样做,那么您的体系结构就会改变,以避免以不同的方式耗尽内存的问题,而不是无状态。
等
一个网站的标准“良好实践”,不适用于你。
https://softwareengineering.stackexchange.com/questions/442892
复制相似问题