feat: invoke app

This commit is contained in:
Yeuoly
2024-08-29 21:14:23 +08:00
parent 12ea085e22
commit ece82b87bf
3 changed files with 4 additions and 7 deletions

View File

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

View File

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

View File

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