new file: .env.example new file: Dockerfile new file: app.py new file: blueprints/__init__.py new file: blueprints/auth.py new file: blueprints/chat.py new file: blueprints/context.py new file: blueprints/documents.py new file: blueprints/main.py new file: config.py new file: docker-compose.yml new file: models/__init__.py new file: models/chat_session.py new file: models/document.py new file: models/user.py new file: requirements.txt new file: services/__init__.py new file: services/document_parser.py new file: services/llm_service.py new file: services/rag_service.py new file: services/url_scraper.py new file: static/css/style.css new file: static/js/chat.js new file: static/js/inline_chat.js new file: static/js/main.js new file: templates/base.html new file: templates/document_view.html new file: templates/index.html new file: templates/login.html new file: templates/register.html
44 lines
1.4 KiB
Python
44 lines
1.4 KiB
Python
from datetime import datetime
|
|
from . import db
|
|
|
|
|
|
class Document(db.Model):
|
|
__tablename__ = "documents"
|
|
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
user_id = db.Column(db.Integer, db.ForeignKey("users.id"), nullable=False)
|
|
filename = db.Column(db.String(255), nullable=False)
|
|
original_name = db.Column(db.String(255), nullable=False)
|
|
file_type = db.Column(db.String(16), nullable=False)
|
|
indexed = db.Column(db.Boolean, default=False)
|
|
created_at = db.Column(db.DateTime, default=datetime.utcnow)
|
|
|
|
def to_dict(self):
|
|
return {
|
|
"id": self.id,
|
|
"original_name": self.original_name,
|
|
"file_type": self.file_type,
|
|
"indexed": self.indexed,
|
|
"created_at": self.created_at.isoformat(),
|
|
}
|
|
|
|
|
|
class UrlContext(db.Model):
|
|
__tablename__ = "url_contexts"
|
|
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
user_id = db.Column(db.Integer, db.ForeignKey("users.id"), nullable=False)
|
|
url = db.Column(db.String(2048), nullable=False)
|
|
title = db.Column(db.String(512), nullable=True)
|
|
indexed = db.Column(db.Boolean, default=False)
|
|
created_at = db.Column(db.DateTime, default=datetime.utcnow)
|
|
|
|
def to_dict(self):
|
|
return {
|
|
"id": self.id,
|
|
"url": self.url,
|
|
"title": self.title or self.url,
|
|
"indexed": self.indexed,
|
|
"created_at": self.created_at.isoformat(),
|
|
}
|