feat: invoke app

pull/9184/head
Yeuoly 2 years ago
parent 12ea085e22
commit ece82b87bf
No known key found for this signature in database
GPG Key ID: A66E7E320FB19F61

@ -1,6 +1,6 @@
import time import time
from flask_restful import Resource, reqparse from flask_restful import Resource
from controllers.console.setup import setup_required from controllers.console.setup import setup_required
from controllers.inner_api import api from controllers.inner_api import api
@ -117,16 +117,13 @@ class PluginInvokeAppApi(Resource):
@get_tenant @get_tenant
@plugin_data(payload_type=RequestInvokeApp) @plugin_data(payload_type=RequestInvokeApp)
def post(self, user_id: str, tenant_model: Tenant, payload: RequestInvokeApp): def post(self, user_id: str, tenant_model: Tenant, payload: RequestInvokeApp):
parser = reqparse.RequestParser()
args = parser.parse_args()
response = PluginAppBackwardsInvocation.invoke_app( response = PluginAppBackwardsInvocation.invoke_app(
app_id=payload.app_id, app_id=payload.app_id,
user_id=user_id, user_id=user_id,
tenant_id=tenant_model.id, tenant_id=tenant_model.id,
conversation_id=payload.conversation_id, conversation_id=payload.conversation_id,
query=payload.query, query=payload.query,
stream=payload.stream, stream=payload.response_mode == 'streaming',
inputs=payload.inputs, inputs=payload.inputs,
files=payload.files files=payload.files
) )

@ -11,7 +11,7 @@ class BaseBackwardsInvocation:
for chunk in response: for chunk in response:
if isinstance(chunk, BaseModel): if isinstance(chunk, BaseModel):
yield chunk.model_dump_json().encode() + b'\n\n' yield chunk.model_dump_json().encode() + b'\n\n'
if isinstance(chunk, str): elif isinstance(chunk, str):
yield f"event: {chunk}\n\n".encode() yield f"event: {chunk}\n\n".encode()
else: else:
yield json.dumps(chunk).encode() + b'\n\n' yield json.dumps(chunk).encode() + b'\n\n'

@ -105,4 +105,4 @@ class RequestInvokeApp(BaseModel):
conversation_id: Optional[str] = None conversation_id: Optional[str] = None
user: Optional[str] = None user: Optional[str] = None
files: list[dict] = Field(default_factory=list) files: list[dict] = Field(default_factory=list)
stream: bool = Field(default=False)
Loading…
Cancel
Save