Signed-off-by: weiyang <24080293@smb956101.com> Co-authored-by: weiyang <24080293@smb956101.com>tags/0.14.2
| @@ -104,10 +104,11 @@ class MessageFeedbackApi(Resource): | |||
| parser = reqparse.RequestParser() | |||
| parser.add_argument("rating", type=str, choices=["like", "dislike", None], location="json") | |||
| parser.add_argument("content", type=str, location="json") | |||
| args = parser.parse_args() | |||
| try: | |||
| MessageService.create_feedback(app_model, message_id, end_user, args["rating"]) | |||
| MessageService.create_feedback(app_model, message_id, end_user, args["rating"], args["content"]) | |||
| except services.errors.message.MessageNotExistsError: | |||
| raise NotFound("Message Not Exists.") | |||
| @@ -151,7 +151,12 @@ class MessageService: | |||
| @classmethod | |||
| def create_feedback( | |||
| cls, app_model: App, message_id: str, user: Optional[Union[Account, EndUser]], rating: Optional[str] | |||
| cls, | |||
| app_model: App, | |||
| message_id: str, | |||
| user: Optional[Union[Account, EndUser]], | |||
| rating: Optional[str], | |||
| content: Optional[str], | |||
| ) -> MessageFeedback: | |||
| if not user: | |||
| raise ValueError("user cannot be None") | |||
| @@ -164,6 +169,7 @@ class MessageService: | |||
| db.session.delete(feedback) | |||
| elif rating and feedback: | |||
| feedback.rating = rating | |||
| feedback.content = content | |||
| elif not rating and not feedback: | |||
| raise ValueError("rating cannot be None when feedback not exists") | |||
| else: | |||
| @@ -172,6 +178,7 @@ class MessageService: | |||
| conversation_id=message.conversation_id, | |||
| message_id=message.id, | |||
| rating=rating, | |||
| content=content, | |||
| from_source=("user" if isinstance(user, EndUser) else "admin"), | |||
| from_end_user_id=(user.id if isinstance(user, EndUser) else None), | |||
| from_account_id=(user.id if isinstance(user, Account) else None), | |||
| @@ -346,6 +346,9 @@ The text generation application offers non-session support and is ideal for tran | |||
| <Property name='user' type='string' key='user'> | |||
| User identifier, defined by the developer's rules, must be unique within the application. | |||
| </Property> | |||
| <Property name='content' type='string' key='content'> | |||
| The specific content of message feedback. | |||
| </Property> | |||
| </Properties> | |||
| ### Response | |||
| @@ -353,7 +356,7 @@ The text generation application offers non-session support and is ideal for tran | |||
| </Col> | |||
| <Col sticky> | |||
| <CodeGroup title="Request" tag="POST" label="/messages/:message_id/feedbacks" targetCode={`curl -X POST '${props.appDetail.api_base_url}/messages/:message_id/feedbacks \\\n --header 'Authorization: Bearer {api_key}' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n "rating": "like",\n "user": "abc-123"\n}'`}> | |||
| <CodeGroup title="Request" tag="POST" label="/messages/:message_id/feedbacks" targetCode={`curl -X POST '${props.appDetail.api_base_url}/messages/:message_id/feedbacks \\\n --header 'Authorization: Bearer {api_key}' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n "rating": "like",\n "user": "abc-123",\n "content": "message feedback information"\n}'`}> | |||
| ```bash {{ title: 'cURL' }} | |||
| curl -X POST '${props.appDetail.api_base_url}/messages/:message_id/feedbacks' \ | |||
| @@ -361,7 +364,8 @@ The text generation application offers non-session support and is ideal for tran | |||
| --header 'Content-Type: application/json' \ | |||
| --data-raw '{ | |||
| "rating": "like", | |||
| "user": "abc-123" | |||
| "user": "abc-123", | |||
| "content": "message feedback information" | |||
| }' | |||
| ``` | |||
| @@ -345,6 +345,9 @@ import { Row, Col, Properties, Property, Heading, SubProperty, Paragraph } from | |||
| <Property name='user' type='string' key='user'> | |||
| 開発者のルールで定義されたユーザー識別子。アプリケーション内で一意である必要があります。 | |||
| </Property> | |||
| <Property name='content' type='string' key='content'> | |||
| メッセージのフィードバックです。 | |||
| </Property> | |||
| </Properties> | |||
| ### レスポンス | |||
| @@ -352,7 +355,7 @@ import { Row, Col, Properties, Property, Heading, SubProperty, Paragraph } from | |||
| </Col> | |||
| <Col sticky> | |||
| <CodeGroup title="Request" tag="POST" label="/messages/:message_id/feedbacks" targetCode={`curl -X POST '${props.appDetail.api_base_url}/messages/:message_id/feedbacks \\\n --header 'Authorization: Bearer {api_key}' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n "rating": "like",\n "user": "abc-123"\n}'`}> | |||
| <CodeGroup title="Request" tag="POST" label="/messages/:message_id/feedbacks" targetCode={`curl -X POST '${props.appDetail.api_base_url}/messages/:message_id/feedbacks \\\n --header 'Authorization: Bearer {api_key}' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n "rating": "like",\n "user": "abc-123",\n "content": "message feedback information"\n}'`}> | |||
| ```bash {{ title: 'cURL' }} | |||
| curl -X POST '${props.appDetail.api_base_url}/messages/:message_id/feedbacks' \ | |||
| @@ -360,7 +363,8 @@ import { Row, Col, Properties, Property, Heading, SubProperty, Paragraph } from | |||
| --header 'Content-Type: application/json' \ | |||
| --data-raw '{ | |||
| "rating": "like", | |||
| "user": "abc-123" | |||
| "user": "abc-123", | |||
| "content": "message feedback information" | |||
| }' | |||
| ``` | |||
| @@ -320,6 +320,9 @@ import { Row, Col, Properties, Property, Heading, SubProperty } from '../md.tsx' | |||
| <Property name='user' type='string' key='user'> | |||
| 用户标识,由开发者定义规则,需保证用户标识在应用内唯一。 | |||
| </Property> | |||
| <Property name='content' type='string' key='content'> | |||
| 消息反馈的具体信息。 | |||
| </Property> | |||
| </Properties> | |||
| ### Response | |||
| @@ -327,7 +330,7 @@ import { Row, Col, Properties, Property, Heading, SubProperty } from '../md.tsx' | |||
| </Col> | |||
| <Col sticky> | |||
| <CodeGroup title="Request" tag="POST" label="/messages/:message_id/feedbacks" targetCode={`curl -X POST '${props.appDetail.api_base_url}/messages/:message_id/feedbacks \\\n--header 'Authorization: Bearer {api_key}' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n "rating": "like",\n "user": "abc-123"\n}'`}> | |||
| <CodeGroup title="Request" tag="POST" label="/messages/:message_id/feedbacks" targetCode={`curl -X POST '${props.appDetail.api_base_url}/messages/:message_id/feedbacks \\\n--header 'Authorization: Bearer {api_key}' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n "rating": "like",\n "user": "abc-123",\n "content": "message feedback information"\n}'`}> | |||
| ```bash {{ title: 'cURL' }} | |||
| curl -X POST '${props.appDetail.api_base_url}/messages/:message_id/feedbacks' \ | |||
| @@ -335,7 +338,8 @@ import { Row, Col, Properties, Property, Heading, SubProperty } from '../md.tsx' | |||
| --header 'Content-Type: application/json' \ | |||
| --data-raw '{ | |||
| "rating": "like", | |||
| "user": "abc-123" | |||
| "user": "abc-123", | |||
| "content": "message feedback information" | |||
| }' | |||
| ``` | |||
| @@ -444,6 +444,9 @@ Chat applications support session persistence, allowing previous chat history to | |||
| <Property name='user' type='string' key='user'> | |||
| User identifier, defined by the developer's rules, must be unique within the application. | |||
| </Property> | |||
| <Property name='content' type='string' key='content'> | |||
| The specific content of message feedback. | |||
| </Property> | |||
| </Properties> | |||
| ### Response | |||
| @@ -451,7 +454,7 @@ Chat applications support session persistence, allowing previous chat history to | |||
| </Col> | |||
| <Col sticky> | |||
| <CodeGroup title="Request" tag="POST" label="/messages/:message_id/feedbacks" targetCode={`curl -X POST '${props.appDetail.api_base_url}/messages/:message_id/feedbacks \\\n --header 'Authorization: Bearer {api_key}' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n "rating": "like",\n "user": "abc-123"\n}'`}> | |||
| <CodeGroup title="Request" tag="POST" label="/messages/:message_id/feedbacks" targetCode={`curl -X POST '${props.appDetail.api_base_url}/messages/:message_id/feedbacks \\\n --header 'Authorization: Bearer {api_key}' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n "rating": "like",\n "user": "abc-123",\n "content": "message feedback information"\n}'`}> | |||
| ```bash {{ title: 'cURL' }} | |||
| curl -X POST '${props.appDetail.api_base_url}/messages/:message_id/feedbacks' \ | |||
| @@ -459,7 +462,8 @@ Chat applications support session persistence, allowing previous chat history to | |||
| --header 'Content-Type: application/json' \ | |||
| --data-raw '{ | |||
| "rating": "like", | |||
| "user": "abc-123" | |||
| "user": "abc-123", | |||
| "content": "message feedback information" | |||
| }' | |||
| ``` | |||
| @@ -444,6 +444,9 @@ import { Row, Col, Properties, Property, Heading, SubProperty, Paragraph } from | |||
| <Property name='user' type='string' key='user'> | |||
| ユーザー識別子、開発者のルールによって定義され、アプリケーション内で一意でなければなりません。 | |||
| </Property> | |||
| <Property name='content' type='string' key='content'> | |||
| メッセージのフィードバックです。 | |||
| </Property> | |||
| </Properties> | |||
| ### 応答 | |||
| @@ -451,7 +454,7 @@ import { Row, Col, Properties, Property, Heading, SubProperty, Paragraph } from | |||
| </Col> | |||
| <Col sticky> | |||
| <CodeGroup title="リクエスト" tag="POST" label="/messages/:message_id/feedbacks" targetCode={`curl -X POST '${props.appDetail.api_base_url}/messages/:message_id/feedbacks \\\n --header 'Authorization: Bearer {api_key}' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n "rating": "like",\n "user": "abc-123"\n}'`}> | |||
| <CodeGroup title="リクエスト" tag="POST" label="/messages/:message_id/feedbacks" targetCode={`curl -X POST '${props.appDetail.api_base_url}/messages/:message_id/feedbacks \\\n --header 'Authorization: Bearer {api_key}' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n "rating": "like",\n "user": "abc-123",\n "content": "message feedback information"\n}'`}> | |||
| ```bash {{ title: 'cURL' }} | |||
| curl -X POST '${props.appDetail.api_base_url}/messages/:message_id/feedbacks' \ | |||
| @@ -459,7 +462,8 @@ import { Row, Col, Properties, Property, Heading, SubProperty, Paragraph } from | |||
| --header 'Content-Type: application/json' \ | |||
| --data-raw '{ | |||
| "rating": "like", | |||
| "user": "abc-123" | |||
| "user": "abc-123", | |||
| "content": "message feedback information" | |||
| }' | |||
| ``` | |||
| @@ -450,6 +450,9 @@ import { Row, Col, Properties, Property, Heading, SubProperty } from '../md.tsx' | |||
| <Property name='user' type='string' key='user'> | |||
| 用户标识,由开发者定义规则,需保证用户标识在应用内唯一。 | |||
| </Property> | |||
| <Property name='content' type='string' key='content'> | |||
| 消息反馈的具体信息。 | |||
| </Property> | |||
| </Properties> | |||
| ### Response | |||
| @@ -457,7 +460,7 @@ import { Row, Col, Properties, Property, Heading, SubProperty } from '../md.tsx' | |||
| </Col> | |||
| <Col sticky> | |||
| <CodeGroup title="Request" tag="POST" label="/messages/:message_id/feedbacks" targetCode={`curl -X POST '${props.appDetail.api_base_url}/messages/:message_id/feedbacks \\\n--header 'Authorization: Bearer {api_key}' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n "rating": "like",\n "user": "abc-123"\n}'`}> | |||
| <CodeGroup title="Request" tag="POST" label="/messages/:message_id/feedbacks" targetCode={`curl -X POST '${props.appDetail.api_base_url}/messages/:message_id/feedbacks \\\n--header 'Authorization: Bearer {api_key}' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n "rating": "like",\n "user": "abc-123",\n "content": "message feedback information"\n}'`}> | |||
| ```bash {{ title: 'cURL' }} | |||
| curl -X POST '${props.appDetail.api_base_url}/messages/:message_id/feedbacks' \ | |||
| @@ -465,7 +468,8 @@ import { Row, Col, Properties, Property, Heading, SubProperty } from '../md.tsx' | |||
| --header 'Content-Type: application/json' \ | |||
| --data-raw '{ | |||
| "rating": "like", | |||
| "user": "abc-123" | |||
| "user": "abc-123", | |||
| "content": "message feedback information" | |||
| }' | |||
| ``` | |||
| @@ -408,6 +408,9 @@ Chat applications support session persistence, allowing previous chat history to | |||
| <Property name='user' type='string' key='user'> | |||
| User identifier, defined by the developer's rules, must be unique within the application. | |||
| </Property> | |||
| <Property name='content' type='string' key='content'> | |||
| The specific content of message feedback. | |||
| </Property> | |||
| </Properties> | |||
| ### Response | |||
| @@ -415,7 +418,7 @@ Chat applications support session persistence, allowing previous chat history to | |||
| </Col> | |||
| <Col sticky> | |||
| <CodeGroup title="Request" tag="POST" label="/messages/:message_id/feedbacks" targetCode={`curl -X POST '${props.appDetail.api_base_url}/messages/:message_id/feedbacks \\\n --header 'Authorization: Bearer {api_key}' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n "rating": "like",\n "user": "abc-123"\n}'`}> | |||
| <CodeGroup title="Request" tag="POST" label="/messages/:message_id/feedbacks" targetCode={`curl -X POST '${props.appDetail.api_base_url}/messages/:message_id/feedbacks \\\n --header 'Authorization: Bearer {api_key}' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n "rating": "like",\n "user": "abc-123",\n "content": "message feedback information"\n}'`}> | |||
| ```bash {{ title: 'cURL' }} | |||
| curl -X POST '${props.appDetail.api_base_url}/messages/:message_id/feedbacks' \ | |||
| @@ -423,7 +426,8 @@ Chat applications support session persistence, allowing previous chat history to | |||
| --header 'Content-Type: application/json' \ | |||
| --data-raw '{ | |||
| "rating": "like", | |||
| "user": "abc-123" | |||
| "user": "abc-123", | |||
| "content": "message feedback information" | |||
| }' | |||
| ``` | |||
| @@ -408,6 +408,9 @@ import { Row, Col, Properties, Property, Heading, SubProperty, Paragraph } from | |||
| <Property name='user' type='string' key='user'> | |||
| ユーザー識別子、開発者のルールで定義され、アプリケーション内で一意でなければなりません。 | |||
| </Property> | |||
| <Property name='content' type='string' key='content'> | |||
| メッセージのフィードバックです。 | |||
| </Property> | |||
| </Properties> | |||
| ### 応答 | |||
| @@ -415,7 +418,7 @@ import { Row, Col, Properties, Property, Heading, SubProperty, Paragraph } from | |||
| </Col> | |||
| <Col sticky> | |||
| <CodeGroup title="リクエスト" tag="POST" label="/messages/:message_id/feedbacks" targetCode={`curl -X POST '${props.appDetail.api_base_url}/messages/:message_id/feedbacks \\\n --header 'Authorization: Bearer {api_key}' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n "rating": "like",\n "user": "abc-123"\n}'`}> | |||
| <CodeGroup title="リクエスト" tag="POST" label="/messages/:message_id/feedbacks" targetCode={`curl -X POST '${props.appDetail.api_base_url}/messages/:message_id/feedbacks \\\n --header 'Authorization: Bearer {api_key}' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n "rating": "like",\n "user": "abc-123",\n "content": "message feedback information"\n}'`}> | |||
| ```bash {{ title: 'cURL' }} | |||
| curl -X POST '${props.appDetail.api_base_url}/messages/:message_id/feedbacks' \ | |||
| @@ -423,7 +426,8 @@ import { Row, Col, Properties, Property, Heading, SubProperty, Paragraph } from | |||
| --header 'Content-Type: application/json' \ | |||
| --data-raw '{ | |||
| "rating": "like", | |||
| "user": "abc-123" | |||
| "user": "abc-123", | |||
| "content": "message feedback information" | |||
| }' | |||
| ``` | |||
| @@ -423,6 +423,9 @@ import { Row, Col, Properties, Property, Heading, SubProperty } from '../md.tsx' | |||
| <Property name='user' type='string' key='user'> | |||
| 用户标识,由开发者定义规则,需保证用户标识在应用内唯一。 | |||
| </Property> | |||
| <Property name='content' type='string' key='content'> | |||
| 消息反馈的具体信息。 | |||
| </Property> | |||
| </Properties> | |||
| ### Response | |||
| @@ -430,7 +433,7 @@ import { Row, Col, Properties, Property, Heading, SubProperty } from '../md.tsx' | |||
| </Col> | |||
| <Col sticky> | |||
| <CodeGroup title="Request" tag="POST" label="/messages/:message_id/feedbacks" targetCode={`curl -X POST '${props.appDetail.api_base_url}/messages/:message_id/feedbacks \\\n--header 'Authorization: Bearer {api_key}' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n "rating": "like",\n "user": "abc-123"\n}'`}> | |||
| <CodeGroup title="Request" tag="POST" label="/messages/:message_id/feedbacks" targetCode={`curl -X POST '${props.appDetail.api_base_url}/messages/:message_id/feedbacks \\\n--header 'Authorization: Bearer {api_key}' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n "rating": "like",\n "user": "abc-123",\n "content": "message feedback information"\n}'`}> | |||
| ```bash {{ title: 'cURL' }} | |||
| curl -X POST '${props.appDetail.api_base_url}/messages/:message_id/feedbacks' \ | |||
| @@ -438,7 +441,8 @@ import { Row, Col, Properties, Property, Heading, SubProperty } from '../md.tsx' | |||
| --header 'Content-Type: application/json' \ | |||
| --data-raw '{ | |||
| "rating": "like", | |||
| "user": "abc-123" | |||
| "user": "abc-123", | |||
| "content": "message feedback information" | |||
| }' | |||
| ``` | |||