blob: fd34278a146d675f4b6390619498eadfd7b02129 [file]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package schema
import (
"github.com/apache/answer/internal/base/validator"
)
// AIConversationListReq ai conversation list req
type AIConversationListReq struct {
Page int `validate:"omitempty,min=1" form:"page"`
PageSize int `validate:"omitempty,min=1" form:"page_size"`
UserID string `validate:"omitempty" json:"-"`
}
// AIConversationListItem ai conversation list item
type AIConversationListItem struct {
ConversationID string `json:"conversation_id"`
Topic string `json:"topic"`
CreatedAt int64 `json:"created_at"`
}
// AIConversationDetailReq ai conversation detail req
type AIConversationDetailReq struct {
ConversationID string `validate:"required" form:"conversation_id" json:"conversation_id"`
UserID string `validate:"omitempty" json:"-"`
}
// AIConversationRecord ai conversation record
type AIConversationRecord struct {
ChatCompletionID string `json:"chat_completion_id"`
Role string `json:"role"`
Content string `json:"content"`
Helpful int `json:"helpful"`
Unhelpful int `json:"unhelpful"`
CreatedAt int64 `json:"created_at"`
}
// AIConversationDetailResp ai conversation detail resp
type AIConversationDetailResp struct {
ConversationID string `json:"conversation_id"`
Topic string `json:"topic"`
Records []*AIConversationRecord `json:"records"`
CreatedAt int64 `json:"created_at"`
UpdatedAt int64 `json:"updated_at"`
}
// AIConversationVoteReq ai conversation vote req
type AIConversationVoteReq struct {
ChatCompletionID string `validate:"required" json:"chat_completion_id"`
VoteType string `validate:"required,oneof=helpful unhelpful" json:"vote_type"`
Cancel bool `validate:"omitempty" json:"cancel"`
UserID string `validate:"omitempty" json:"-"`
}
// AIConversationAdminListReq ai conversation admin list req
type AIConversationAdminListReq struct {
Page int `validate:"omitempty,min=1" form:"page"`
PageSize int `validate:"omitempty,min=1" form:"page_size"`
}
// AIConversationAdminListItem ai conversation admin list item
type AIConversationAdminListItem struct {
ID string `json:"id"`
Topic string `json:"topic"`
UserInfo AIConversationUserInfo `json:"user_info"`
HelpfulCount int64 `json:"helpful_count"`
UnhelpfulCount int64 `json:"unhelpful_count"`
CreatedAt int64 `json:"created_at"`
}
// AIConversationUserInfo ai conversation user info
type AIConversationUserInfo struct {
ID string `json:"id"`
Username string `json:"username"`
DisplayName string `json:"display_name"`
Avatar string `json:"avatar"`
Rank int `json:"rank"`
}
// AIConversationAdminDetailReq ai conversation admin detail req
type AIConversationAdminDetailReq struct {
ConversationID string `validate:"required" form:"conversation_id" json:"conversation_id"`
}
// AIConversationAdminDetailResp ai conversation admin detail resp
type AIConversationAdminDetailResp struct {
ConversationID string `json:"conversation_id"`
Topic string `json:"topic"`
UserInfo AIConversationUserInfo `json:"user_info"`
Records []AIConversationRecord `json:"records"`
CreatedAt int64 `json:"created_at"`
}
// AIConversationAdminDeleteReq admin delete ai
type AIConversationAdminDeleteReq struct {
ConversationID string `validate:"required" json:"conversation_id"`
}
func (req *AIConversationDetailReq) Check() (errFields []*validator.FormErrorField, err error) {
return nil, nil
}
func (req *AIConversationVoteReq) Check() (errFields []*validator.FormErrorField, err error) {
return nil, nil
}