Files
autoAiWorkSys/api/model/ai_call_records.js
张成 68b4db0aee 1
2026-02-01 22:00:19 +08:00

145 lines
4.0 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
const Sequelize = require('sequelize');
const { DataTypes } = Sequelize;
module.exports = (sequelize) => {
const AiCallRecords = sequelize.define('ai_call_records', {
id: {
type: DataTypes.INTEGER(11),
allowNull: false,
primaryKey: true,
autoIncrement: true,
comment: '主键ID'
},
user_id: {
type: DataTypes.INTEGER(11),
allowNull: true,
comment: '用户ID'
},
sn_code: {
type: DataTypes.STRING(100),
allowNull: true,
comment: '设备SN码'
},
service_type: {
type: DataTypes.STRING(50),
allowNull: false,
comment: '服务类型chat/completion/embedding'
},
model_name: {
type: DataTypes.STRING(100),
allowNull: false,
comment: '模型名称'
},
prompt_tokens: {
type: DataTypes.INTEGER(11),
allowNull: false,
defaultValue: 0,
comment: '输入Token数'
},
completion_tokens: {
type: DataTypes.INTEGER(11),
allowNull: false,
defaultValue: 0,
comment: '输出Token数'
},
total_tokens: {
type: DataTypes.INTEGER(11),
allowNull: false,
defaultValue: 0,
comment: '总Token数'
},
request_content: {
type: DataTypes.TEXT,
allowNull: true,
comment: '请求内容'
},
response_content: {
type: DataTypes.TEXT,
allowNull: true,
comment: '响应内容'
},
cost_amount: {
type: DataTypes.DECIMAL(10, 4),
allowNull: true,
comment: '费用(元)'
},
status: {
type: DataTypes.STRING(20),
allowNull: false,
defaultValue: 'success',
comment: '状态success/failed'
},
error_message: {
type: DataTypes.TEXT,
allowNull: true,
comment: '错误信息'
},
response_time: {
type: DataTypes.INTEGER(11),
allowNull: true,
comment: '响应时间(毫秒)'
},
api_provider: {
type: DataTypes.STRING(50),
allowNull: true,
defaultValue: 'qwen',
comment: 'API提供商'
},
business_type: {
type: DataTypes.STRING(50),
allowNull: true,
comment: '业务类型'
},
reference_id: {
type: DataTypes.STRING(100),
allowNull: true,
comment: '关联业务ID'
},
create_time: {
type: DataTypes.DATE,
allowNull: false,
defaultValue: Sequelize.literal('CURRENT_TIMESTAMP'),
comment: '创建时间'
},
last_modify_time: {
type: DataTypes.DATE,
allowNull: false,
defaultValue: Sequelize.literal('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'),
comment: '最后修改时间'
},
is_delete: {
type: DataTypes.TINYINT(1),
allowNull: false,
defaultValue: 0,
comment: '是否删除0-否1-是'
}
}, {
tableName: 'ai_call_records',
timestamps: false,
indexes: [
{
name: 'idx_user_id',
fields: ['user_id']
},
{
name: 'idx_sn_code',
fields: ['sn_code']
},
{
name: 'idx_create_time',
fields: ['create_time']
},
{
name: 'idx_is_delete',
fields: ['is_delete']
},
{
name: 'idx_business_type',
fields: ['business_type']
}
]
});
return AiCallRecords;
};