From 004b3caa43e1b898937cdd97aaeefddd418eb492 Mon Sep 17 00:00:00 2001 From: crazywoola <100913391+crazywoola@users.noreply.github.com> Date: Fri, 14 Jul 2023 10:37:33 +0800 Subject: [PATCH] Feature/add delete to service (#555) --- api/app.py | 4 ++ .../service_api/app/conversation.py | 12 ++--- .../develop/template/template_chat.en.mdx | 47 +++++++++++++++++++ .../develop/template/template_chat.zh.mdx | 46 ++++++++++++++++++ 4 files changed, 103 insertions(+), 6 deletions(-) diff --git a/api/app.py b/api/app.py index 1b67c0cbd2..886b535040 100644 --- a/api/app.py +++ b/api/app.py @@ -149,6 +149,10 @@ def register_blueprints(app): from controllers.web import bp as web_bp from controllers.console import bp as console_app_bp + CORS(service_api_bp, + allow_headers=['Content-Type', 'Authorization', 'X-App-Code'], + methods=['GET', 'PUT', 'POST', 'DELETE', 'OPTIONS', 'PATCH'] + ) app.register_blueprint(service_api_bp) CORS(web_bp, diff --git a/api/controllers/service_api/app/conversation.py b/api/controllers/service_api/app/conversation.py index d52eb3fea7..b58cd5a787 100644 --- a/api/controllers/service_api/app/conversation.py +++ b/api/controllers/service_api/app/conversation.py @@ -1,4 +1,5 @@ # -*- coding:utf-8 -*- +from flask import request from flask_restful import fields, marshal_with, reqparse from flask_restful.inputs import int_range from werkzeug.exceptions import NotFound @@ -56,16 +57,14 @@ class ConversationDetailApi(AppApiResource): conversation_id = str(c_id) - parser = reqparse.RequestParser() - parser.add_argument('user', type=str, location='args') - args = parser.parse_args() + user = request.get_json().get('user') - if end_user is None and args['user'] is not None: - end_user = create_or_update_end_user_for_user_id(app_model, args['user']) + if end_user is None and user is not None: + end_user = create_or_update_end_user_for_user_id(app_model, user) try: ConversationService.delete(app_model, conversation_id, end_user) - return {"result": "success"}, 204 + return {"result": "success"} except services.errors.conversation.ConversationNotExistsError: raise NotFound("Conversation Not Exists.") @@ -95,3 +94,4 @@ class ConversationRenameApi(AppApiResource): api.add_resource(ConversationRenameApi, '/conversations//name', endpoint='conversation_name') api.add_resource(ConversationApi, '/conversations') api.add_resource(ConversationApi, '/conversations/', endpoint='conversation') +api.add_resource(ConversationDetailApi, '/conversations/', endpoint='conversation_detail') diff --git a/web/app/components/develop/template/template_chat.en.mdx b/web/app/components/develop/template/template_chat.en.mdx index b690815b11..7e6c664449 100644 --- a/web/app/components/develop/template/template_chat.en.mdx +++ b/web/app/components/develop/template/template_chat.en.mdx @@ -334,6 +334,53 @@ For versatile conversational apps using a Q&A format, call the chat-messages API +--- + + + + + Delete conversation. + + ### Request Body + + + + The user identifier, defined by the developer, must ensure uniqueness within the app. + + + + + + + + ```bash {{ title: 'cURL' }} + curl --location --request DELETE 'https://cloud.langgenius.dev/api/conversations/{convsation_id}' \ + --header 'Content-Type: application/json' \ + --header 'Accept: application/json' \ + --header 'Authorization: Bearer ENTER-YOUR-SECRET-KEY' \ + --data '{ + "user": "abc-123" + }' + ``` + + + + + ```json {{ title: 'Response' }} + { + "result": "success" + } + ``` + + + + + --- +--- + + + + + 删除会话。 + + ### Request Body + + + + 用户标识,由开发者定义规则,需保证用户标识在应用内唯一。 + + + + + + + + ```bash {{ title: 'cURL' }} + curl --location --request DELETE 'https://cloud.langgenius.dev/api/conversations/{convsation_id}' \ + --header 'Content-Type: application/json' \ + --header 'Accept: application/json' \ + --header 'Authorization: Bearer ENTER-YOUR-SECRET-KEY' \ + --data '{ + "user": "abc-123" + }' + ``` + + + + + ```json {{ title: 'Response' }} + { + "result": "success" + } + ``` + + + + ---