Vara1605454 commited on
Commit
c943274
·
verified ·
1 Parent(s): 40f66e4

project-samarth

Browse files
Files changed (1) hide show
  1. database/schema.py +70 -0
database/schema.py ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from sqlalchemy import create_engine, Column, Integer, String, Text, DateTime, Float, JSON, Boolean
2
+ from sqlalchemy.ext.declarative import declarative_base
3
+ from sqlalchemy.orm import sessionmaker
4
+ from datetime import datetime
5
+ import os
6
+
7
+ Base = declarative_base()
8
+
9
+ class ChatSession(Base):
10
+ __tablename__ = 'chat_sessions'
11
+
12
+ id = Column(Integer, primary_key=True)
13
+ session_id = Column(String(100), unique=True, nullable=False, index=True)
14
+ created_at = Column(DateTime, default=datetime.utcnow)
15
+ last_active = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
16
+
17
+ class ChatMessage(Base):
18
+ __tablename__ = 'chat_messages'
19
+
20
+ id = Column(Integer, primary_key=True)
21
+ session_id = Column(String(100), nullable=False, index=True)
22
+ role = Column(String(20), nullable=False)
23
+ content = Column(Text, nullable=False)
24
+ sources = Column(JSON)
25
+ timestamp = Column(DateTime, default=datetime.utcnow)
26
+
27
+ class DatasetMetadata(Base):
28
+ __tablename__ = 'dataset_metadata'
29
+
30
+ id = Column(Integer, primary_key=True)
31
+ dataset_id = Column(String(100), unique=True, nullable=False, index=True)
32
+ name = Column(String(500))
33
+ category = Column(String(100))
34
+ description = Column(Text)
35
+ endpoint = Column(String(500))
36
+ fields = Column(JSON)
37
+ record_count = Column(Integer)
38
+ last_fetched = Column(DateTime)
39
+ is_active = Column(Boolean, default=True)
40
+
41
+ class EmbeddingMetadata(Base):
42
+ __tablename__ = 'embedding_metadata'
43
+
44
+ id = Column(Integer, primary_key=True)
45
+ dataset_id = Column(String(100), nullable=False, index=True)
46
+ chunk_id = Column(String(100), nullable=False, index=True)
47
+ content = Column(Text, nullable=False)
48
+ meta_info = Column(JSON)
49
+ embedding_model = Column(String(100))
50
+ created_at = Column(DateTime, default=datetime.utcnow)
51
+
52
+ def init_db():
53
+ database_url = os.getenv('DATABASE_URL')
54
+ if not database_url:
55
+ raise ValueError("DATABASE_URL environment variable not set")
56
+
57
+ engine = create_engine(database_url)
58
+ Base.metadata.create_all(engine)
59
+
60
+ Session = sessionmaker(bind=engine)
61
+ return Session()
62
+
63
+ def get_db_session():
64
+ database_url = os.getenv('DATABASE_URL')
65
+ if not database_url:
66
+ raise ValueError("DATABASE_URL environment variable not set")
67
+
68
+ engine = create_engine(database_url)
69
+ Session = sessionmaker(bind=engine)
70
+ return Session()