123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- from flask_restful import Resource, reqparse
- from controllers.console.setup import setup_required
- from controllers.inner_api import api
- from controllers.inner_api.plugin.wraps import get_tenant, plugin_data
- from controllers.inner_api.wraps import plugin_inner_api_only
- from core.plugin.entities.request import RequestInvokeLLM, RequestInvokeModeration, RequestInvokeRerank, RequestInvokeSpeech2Text, RequestInvokeTTS, RequestInvokeTextEmbedding, RequestInvokeTool
- from libs.helper import compact_generate_response
- from models.account import Tenant
- from services.plugin.plugin_invoke_service import PluginInvokeService
- class PluginInvokeLLMApi(Resource):
- @setup_required
- @plugin_inner_api_only
- @get_tenant
- @plugin_data(payload_type=RequestInvokeLLM)
- def post(self, user_id: str, tenant_model: Tenant, payload: RequestInvokeLLM):
- pass
- class PluginInvokeTextEmbeddingApi(Resource):
- @setup_required
- @plugin_inner_api_only
- @get_tenant
- @plugin_data(payload_type=RequestInvokeTextEmbedding)
- def post(self, user_id: str, tenant_model: Tenant, payload: RequestInvokeTextEmbedding):
- pass
- class PluginInvokeRerankApi(Resource):
- @setup_required
- @plugin_inner_api_only
- @get_tenant
- @plugin_data(payload_type=RequestInvokeRerank)
- def post(self, user_id: str, tenant_model: Tenant, payload: RequestInvokeRerank):
- pass
- class PluginInvokeTTSApi(Resource):
- @setup_required
- @plugin_inner_api_only
- @get_tenant
- @plugin_data(payload_type=RequestInvokeTTS)
- def post(self, user_id: str, tenant_model: Tenant, payload: RequestInvokeTTS):
- pass
- class PluginInvokeSpeech2TextApi(Resource):
- @setup_required
- @plugin_inner_api_only
- @get_tenant
- @plugin_data(payload_type=RequestInvokeSpeech2Text)
- def post(self, user_id: str, tenant_model: Tenant, payload: RequestInvokeSpeech2Text):
- pass
- class PluginInvokeModerationApi(Resource):
- @setup_required
- @plugin_inner_api_only
- @get_tenant
- @plugin_data(payload_type=RequestInvokeModeration)
- def post(self, user_id: str, tenant_model: Tenant, payload: RequestInvokeModeration):
- pass
- class PluginInvokeToolApi(Resource):
- @setup_required
- @plugin_inner_api_only
- @get_tenant
- @plugin_data(payload_type=RequestInvokeTool)
- def post(self, user_id: str, tenant_model: Tenant):
- parser = reqparse.RequestParser()
- parser.add_argument('provider', type=dict, required=True, location='json')
- parser.add_argument('tool', type=dict, required=True, location='json')
- parser.add_argument('parameters', type=dict, required=True, location='json')
- args = parser.parse_args()
- response = PluginInvokeService.invoke_tool(
- user_id, tenant_model, args['provider'], args['tool'], args['parameters']
- )
- return compact_generate_response(response)
- class PluginInvokeNodeApi(Resource):
- @setup_required
- @plugin_inner_api_only
- @get_tenant
- def post(self, user_id: str, tenant_model: Tenant):
- parser = reqparse.RequestParser()
- args = parser.parse_args()
- return {'message': 'success'}
- api.add_resource(PluginInvokeLLMApi, '/invoke/llm')
- api.add_resource(PluginInvokeTextEmbeddingApi, '/invoke/text-embedding')
- api.add_resource(PluginInvokeRerankApi, '/invoke/rerank')
- api.add_resource(PluginInvokeTTSApi, '/invoke/tts')
- api.add_resource(PluginInvokeSpeech2TextApi, '/invoke/speech2text')
- api.add_resource(PluginInvokeModerationApi, '/invoke/moderation')
- api.add_resource(PluginInvokeToolApi, '/invoke/tool')
- api.add_resource(PluginInvokeNodeApi, '/invoke/node')
|