welearn-database 1.5.1__tar.gz → 1.5.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {welearn_database-1.5.1 → welearn_database-1.5.2}/PKG-INFO +1 -1
- {welearn_database-1.5.1 → welearn_database-1.5.2}/pyproject.toml +1 -1
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/alembic/versions/5aad97149044_add_histo_table_for_materialized_views.py +3 -3
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/alembic/versions/6d4346fad6f4_view_used_feature_per_session.py +2 -2
- welearn_database-1.5.2/welearn_database/alembic/versions/95ffe7afa64c_add_index_idx_welearn_document_keyword_.py +35 -0
- welearn_database-1.5.2/welearn_database/alembic/versions/f5e91a5c950d_add_analytic_form.py +67 -0
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/data/enumeration.py +6 -0
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/data/models/document_related.py +3 -3
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/data/models/user_related.py +33 -1
- {welearn_database-1.5.1 → welearn_database-1.5.2}/LICENSE +0 -0
- {welearn_database-1.5.1 → welearn_database-1.5.2}/README.md +0 -0
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/__init__.py +0 -0
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/alembic/README +0 -0
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/alembic/env.py +0 -0
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/alembic/script.py.mako +0 -0
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/alembic/versions/068312e7800c_add_referrer_origin_column_to_user_and_.py +0 -0
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/alembic/versions/0e0bc0fca384_doc_qty_per_source.py +0 -0
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/alembic/versions/16ff997426d3_remove_error_retrieval_unique_constraint.py +0 -0
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/alembic/versions/2ad4895b2674_data_collection.py +0 -0
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/alembic/versions/4c7161819e5a_grafana_views.py +0 -0
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/alembic/versions/4f5a188dd614_add_main_url_column.py +0 -0
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/alembic/versions/4fcbfb7f3145_added_api_key_management_table.py +0 -0
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/alembic/versions/5d82613c9aca_context_document.py +0 -0
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/alembic/versions/821173cf9c5d_initial_migration.py +0 -0
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/alembic/versions/84c42739c17b_create_table_errordataquality.py +0 -0
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/alembic/versions/89920abb7ff8_add_category.py +0 -0
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/alembic/versions/8b780aea403a_add_university_data.py +0 -0
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/alembic/versions/96bba9e4842a_merge_external_id_error_quality.py +0 -0
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/alembic/versions/9b4f1da0c1f2_data_collection_for_focus_group.py +0 -0
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/alembic/versions/a50a1db3ca2a_add_used_since_column_for_embeddings.py +0 -0
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/alembic/versions/b031206324b7_agent_related.py +0 -0
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/alembic/versions/b049924f7067_modify_corpus_name_embedding_model_lang_.py +0 -0
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/alembic/versions/b84462ca3800_update_grafana_process_state_view.py +0 -0
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/alembic/versions/ccdbd708c997_create_column_external_id.py +0 -0
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/alembic/versions/e354666f951d_inferred_user.py +0 -0
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/alembic/versions/f1ce0ad2845b_add_doi_column_to_document.py +0 -0
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/alembic/versions/f8602200fa99_update_session_view.py +0 -0
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/data/__init__.py +0 -0
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/data/details_dict.py +0 -0
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/data/models/__init__.py +0 -0
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/data/models/agent_related.py +0 -0
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/data/models/corpus_related.py +0 -0
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/data/models/grafana.py +0 -0
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/database_utils.py +0 -0
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/exceptions.py +0 -0
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/modules/__init__.py +0 -0
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/modules/text_cleaning.py +0 -0
- {welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/regular_expression.py +0 -0
|
@@ -27,7 +27,7 @@ def upgrade() -> None:
|
|
|
27
27
|
"id", sa.Uuid(), server_default=text("gen_random_uuid()"), nullable=False
|
|
28
28
|
),
|
|
29
29
|
sa.Column("source_name", sa.String(), nullable=False),
|
|
30
|
-
sa.Column("
|
|
30
|
+
sa.Column("count", sa.Integer(), nullable=False),
|
|
31
31
|
sa.Column(
|
|
32
32
|
"created_at", postgresql.TIMESTAMP(), server_default="NOW()", nullable=False
|
|
33
33
|
),
|
|
@@ -41,7 +41,7 @@ def upgrade() -> None:
|
|
|
41
41
|
"id", sa.Uuid(), server_default=text("gen_random_uuid()"), nullable=False
|
|
42
42
|
),
|
|
43
43
|
sa.Column("source_name", sa.String(), nullable=False),
|
|
44
|
-
sa.Column("
|
|
44
|
+
sa.Column("count", sa.Integer(), nullable=False),
|
|
45
45
|
sa.Column(
|
|
46
46
|
"created_at", postgresql.TIMESTAMP(), server_default="NOW()", nullable=False
|
|
47
47
|
),
|
|
@@ -54,7 +54,7 @@ def upgrade() -> None:
|
|
|
54
54
|
sa.Column(
|
|
55
55
|
"id", sa.Uuid(), server_default=text("gen_random_uuid()"), nullable=False
|
|
56
56
|
),
|
|
57
|
-
sa.Column("
|
|
57
|
+
sa.Column("count", sa.Integer(), nullable=False),
|
|
58
58
|
sa.Column(
|
|
59
59
|
"created_at", postgresql.TIMESTAMP(), server_default="NOW()", nullable=False
|
|
60
60
|
),
|
|
@@ -31,8 +31,8 @@ VALUES
|
|
|
31
31
|
('/api/v1/qna/chat/answer', 'chat'),
|
|
32
32
|
('/api/v1/qna/chat/agent', 'chat'),
|
|
33
33
|
('/api/v1/tutor/syllabus', 'syllabus'),
|
|
34
|
-
('/api/v1/user/bookmarks
|
|
35
|
-
('/api/v1/user
|
|
34
|
+
('/api/v1/user/bookmarks/' || ':' || 'document_id', 'bookmark'),
|
|
35
|
+
('/api/v1/user/' || ':' || 'user_id' || '/bookmarks/' || ':' || 'document_id', 'bookmark')
|
|
36
36
|
) AS t(endpoint_name, feature_name)
|
|
37
37
|
),
|
|
38
38
|
session_feature_pair AS (
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"""add_index_idx_welearn_document_keyword_document_id
|
|
2
|
+
|
|
3
|
+
Revision ID: 95ffe7afa64c
|
|
4
|
+
Revises: f5e91a5c950d
|
|
5
|
+
Create Date: 2026-09-16 15:44:06.977345
|
|
6
|
+
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from typing import Sequence, Union
|
|
10
|
+
|
|
11
|
+
import sqlalchemy as sa
|
|
12
|
+
from alembic import op
|
|
13
|
+
|
|
14
|
+
# revision identifiers, used by Alembic.
|
|
15
|
+
revision: str = "95ffe7afa64c"
|
|
16
|
+
down_revision: Union[str, None] = "f5e91a5c950d"
|
|
17
|
+
branch_labels: Union[str, Sequence[str], None] = None
|
|
18
|
+
depends_on: Union[str, Sequence[str], None] = None
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def upgrade() -> None:
|
|
22
|
+
op.create_index(
|
|
23
|
+
"idx_welearn_document_keyword_document_id",
|
|
24
|
+
"welearn_document_keyword",
|
|
25
|
+
["welearn_document_id"],
|
|
26
|
+
schema="document_related",
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def downgrade() -> None:
|
|
31
|
+
op.drop_index(
|
|
32
|
+
"idx_welearn_document_keyword_document_id",
|
|
33
|
+
table_name="document_keyword",
|
|
34
|
+
schema="document_related",
|
|
35
|
+
)
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"""add analytic form
|
|
2
|
+
|
|
3
|
+
Revision ID: f5e91a5c950d
|
|
4
|
+
Revises: 6d4346fad6f4
|
|
5
|
+
Create Date: 2026-09-02 16:32:55.188400
|
|
6
|
+
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from typing import Sequence, Union
|
|
10
|
+
|
|
11
|
+
import sqlalchemy as sa
|
|
12
|
+
from alembic import op
|
|
13
|
+
from sqlalchemy.dialects import postgresql
|
|
14
|
+
|
|
15
|
+
# revision identifiers, used by Alembic.
|
|
16
|
+
revision: str = "f5e91a5c950d"
|
|
17
|
+
down_revision: Union[str, None] = "6d4346fad6f4"
|
|
18
|
+
branch_labels: Union[str, Sequence[str], None] = None
|
|
19
|
+
depends_on: Union[str, Sequence[str], None] = None
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def upgrade() -> None:
|
|
23
|
+
op.create_table(
|
|
24
|
+
"analytic_form",
|
|
25
|
+
sa.Column(
|
|
26
|
+
"id", sa.Uuid(), server_default=sa.func.gen_random_uuid(), nullable=False
|
|
27
|
+
),
|
|
28
|
+
sa.Column("form_name", sa.String(), nullable=False),
|
|
29
|
+
sa.Column("question", sa.String(), nullable=False),
|
|
30
|
+
sa.Column("answer", sa.String(), nullable=False),
|
|
31
|
+
sa.Column(
|
|
32
|
+
"answer_type",
|
|
33
|
+
postgresql.ENUM(
|
|
34
|
+
"text",
|
|
35
|
+
"checkbox",
|
|
36
|
+
"predefined_text",
|
|
37
|
+
name="answer_type",
|
|
38
|
+
schema="user_related",
|
|
39
|
+
),
|
|
40
|
+
nullable=False,
|
|
41
|
+
),
|
|
42
|
+
sa.Column("session_id", sa.Uuid(), nullable=False),
|
|
43
|
+
sa.Column(
|
|
44
|
+
"created_at",
|
|
45
|
+
sa.TIMESTAMP(timezone=False),
|
|
46
|
+
nullable=False,
|
|
47
|
+
server_default="NOW()",
|
|
48
|
+
),
|
|
49
|
+
sa.ForeignKeyConstraint(
|
|
50
|
+
["session_id"],
|
|
51
|
+
["user_related.session.id"],
|
|
52
|
+
name="analytic_form_session_id_fkey",
|
|
53
|
+
),
|
|
54
|
+
sa.PrimaryKeyConstraint("id"),
|
|
55
|
+
schema="user_related",
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
def downgrade() -> None:
|
|
60
|
+
op.drop_constraint(
|
|
61
|
+
"analytic_form_session_id_fkey",
|
|
62
|
+
"analytic_form",
|
|
63
|
+
schema="user_related",
|
|
64
|
+
type_="foreignkey",
|
|
65
|
+
)
|
|
66
|
+
op.drop_table("analytic_form", schema="user_related")
|
|
67
|
+
op.execute("DROP TYPE IF EXISTS user_related.answer_type")
|
{welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/data/models/document_related.py
RENAMED
|
@@ -490,7 +490,7 @@ class HistoricalQtyDocumentPerCorpus(Base):
|
|
|
490
490
|
nullable=False,
|
|
491
491
|
)
|
|
492
492
|
source_name: Mapped[str] = mapped_column()
|
|
493
|
-
|
|
493
|
+
count: Mapped[int]
|
|
494
494
|
created_at: Mapped[datetime] = mapped_column(
|
|
495
495
|
TIMESTAMP(timezone=False),
|
|
496
496
|
nullable=False,
|
|
@@ -510,7 +510,7 @@ class HistoricalQtyDocumentInQdrantPerCorpus(Base):
|
|
|
510
510
|
nullable=False,
|
|
511
511
|
)
|
|
512
512
|
source_name: Mapped[str] = mapped_column()
|
|
513
|
-
|
|
513
|
+
count: Mapped[int]
|
|
514
514
|
created_at: Mapped[datetime] = mapped_column(
|
|
515
515
|
TIMESTAMP(timezone=False),
|
|
516
516
|
nullable=False,
|
|
@@ -529,7 +529,7 @@ class HistoricalQtyDocumentInQdrant(Base):
|
|
|
529
529
|
server_default=GEN_RANDOM_UUID,
|
|
530
530
|
nullable=False,
|
|
531
531
|
)
|
|
532
|
-
|
|
532
|
+
count: Mapped[int]
|
|
533
533
|
created_at: Mapped[datetime] = mapped_column(
|
|
534
534
|
TIMESTAMP(timezone=False),
|
|
535
535
|
nullable=False,
|
{welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/data/models/user_related.py
RENAMED
|
@@ -5,7 +5,7 @@ from sqlalchemy import ForeignKey, func, types
|
|
|
5
5
|
from sqlalchemy.dialects.postgresql import ENUM, TIMESTAMP
|
|
6
6
|
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
7
7
|
|
|
8
|
-
from welearn_database.data.enumeration import DbSchemaEnum, FilterType
|
|
8
|
+
from welearn_database.data.enumeration import DbSchemaEnum, FilterType, QuestionType
|
|
9
9
|
from welearn_database.data.models.document_related import WeLearnDocument
|
|
10
10
|
|
|
11
11
|
from . import Base
|
|
@@ -271,3 +271,35 @@ class FilterUsedInQuery(Base):
|
|
|
271
271
|
filter_value: Mapped[str]
|
|
272
272
|
|
|
273
273
|
chat_message: Mapped["ChatMessage"] = relationship()
|
|
274
|
+
|
|
275
|
+
|
|
276
|
+
class AnalyticForm(Base):
|
|
277
|
+
__tablename__ = "analytic_form"
|
|
278
|
+
__table_args__ = {"schema": DbSchemaEnum.USER_RELATED.value}
|
|
279
|
+
|
|
280
|
+
id: Mapped[UUID] = mapped_column(
|
|
281
|
+
types.Uuid, primary_key=True, nullable=False, server_default="gen_random_uuid()"
|
|
282
|
+
)
|
|
283
|
+
form_name: Mapped[str] = mapped_column(nullable=False)
|
|
284
|
+
question: Mapped[str] = mapped_column(nullable=False)
|
|
285
|
+
answer: Mapped[str] = mapped_column(nullable=False)
|
|
286
|
+
answer_type: Mapped[str] = mapped_column(
|
|
287
|
+
ENUM(
|
|
288
|
+
*(e.value.lower() for e in QuestionType),
|
|
289
|
+
name="answer_type",
|
|
290
|
+
schema=DbSchemaEnum.USER_RELATED.value,
|
|
291
|
+
),
|
|
292
|
+
nullable=False,
|
|
293
|
+
)
|
|
294
|
+
session_id: Mapped[UUID] = mapped_column(
|
|
295
|
+
types.Uuid,
|
|
296
|
+
ForeignKey(f"{DbSchemaEnum.USER_RELATED.value}.session.id"),
|
|
297
|
+
nullable=False,
|
|
298
|
+
)
|
|
299
|
+
created_at: Mapped[datetime] = mapped_column(
|
|
300
|
+
TIMESTAMP(timezone=False),
|
|
301
|
+
nullable=False,
|
|
302
|
+
default=func.localtimestamp(),
|
|
303
|
+
server_default="NOW()",
|
|
304
|
+
)
|
|
305
|
+
session = relationship("Session", foreign_keys=[session_id])
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/data/models/agent_related.py
RENAMED
|
File without changes
|
{welearn_database-1.5.1 → welearn_database-1.5.2}/welearn_database/data/models/corpus_related.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|