- Implement dual-agent architecture supporting both Chat Completions and Responses API - Add comprehensive file upload functionality for responses agents with image and PDF support - Integrate OpenAI Conversations API for persistent file context across messages - Add compact UI design with reduced font sizes and tighter spacing for better chat focus - Include vector store management, document upload system, and admin dashboard enhancements - Fix conversation persistence ensuring uploaded files remain accessible in follow-up questions 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
48 lines
No EOL
2 KiB
JavaScript
48 lines
No EOL
2 KiB
JavaScript
const { sequelize } = require('../config/database');
|
|
const User = require('./User');
|
|
const Assistant = require('./Assistant');
|
|
const Conversation = require('./Conversation');
|
|
const Message = require('./Message');
|
|
const VectorStore = require('./VectorStore');
|
|
const Document = require('./Document');
|
|
const ResponseSession = require('./ResponseSession');
|
|
|
|
// Existing relationships
|
|
User.hasMany(Conversation, { foreignKey: 'userId', as: 'conversations' });
|
|
Conversation.belongsTo(User, { foreignKey: 'userId', as: 'user' });
|
|
|
|
Assistant.hasMany(Conversation, { foreignKey: 'assistantId', as: 'conversations' });
|
|
Conversation.belongsTo(Assistant, { foreignKey: 'assistantId', as: 'assistant' });
|
|
|
|
Conversation.hasMany(Message, { foreignKey: 'conversationId', as: 'messages' });
|
|
Message.belongsTo(Conversation, { foreignKey: 'conversationId', as: 'conversation' });
|
|
|
|
// New relationships for dual agent support
|
|
VectorStore.hasMany(Document, { foreignKey: 'vectorStoreId', as: 'documents' });
|
|
Document.belongsTo(VectorStore, { foreignKey: 'vectorStoreId', as: 'vectorStore' });
|
|
|
|
Assistant.hasMany(Document, { foreignKey: 'assistantId', as: 'documents' });
|
|
Document.belongsTo(Assistant, { foreignKey: 'assistantId', as: 'assistant' });
|
|
|
|
User.hasMany(Document, { foreignKey: 'uploadedByUserId', as: 'uploadedDocuments' });
|
|
Document.belongsTo(User, { foreignKey: 'uploadedByUserId', as: 'uploadedBy' });
|
|
|
|
Conversation.hasMany(ResponseSession, { foreignKey: 'conversationId', as: 'responseSessions' });
|
|
ResponseSession.belongsTo(Conversation, { foreignKey: 'conversationId', as: 'conversation' });
|
|
|
|
Assistant.hasMany(ResponseSession, { foreignKey: 'assistantId', as: 'responseSessions' });
|
|
ResponseSession.belongsTo(Assistant, { foreignKey: 'assistantId', as: 'assistant' });
|
|
|
|
User.hasMany(ResponseSession, { foreignKey: 'userId', as: 'responseSessions' });
|
|
ResponseSession.belongsTo(User, { foreignKey: 'userId', as: 'user' });
|
|
|
|
module.exports = {
|
|
sequelize,
|
|
User,
|
|
Assistant,
|
|
Conversation,
|
|
Message,
|
|
VectorStore,
|
|
Document,
|
|
ResponseSession,
|
|
}; |