Spaces:
Sleeping
Sleeping
shri-jai
commited on
Commit
·
cbbf969
1
Parent(s):
f48bf02
chore: image_url to kb
Browse files
alembic/versions/f6a1d6fc82d0_add_image_url_column_to_kb.py
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""add: image url column to kb
|
| 2 |
+
|
| 3 |
+
Revision ID: f6a1d6fc82d0
|
| 4 |
+
Revises: 1cbb7317540a
|
| 5 |
+
Create Date: 2025-12-01 16:55:06.113217
|
| 6 |
+
|
| 7 |
+
"""
|
| 8 |
+
from typing import Sequence, Union
|
| 9 |
+
|
| 10 |
+
from alembic import op
|
| 11 |
+
import sqlalchemy as sa
|
| 12 |
+
import sqlmodel.sql.sqltypes
|
| 13 |
+
|
| 14 |
+
|
| 15 |
+
# revision identifiers, used by Alembic.
|
| 16 |
+
revision: str = 'f6a1d6fc82d0'
|
| 17 |
+
down_revision: Union[str, Sequence[str], None] = '1cbb7317540a'
|
| 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 |
+
"""Upgrade schema."""
|
| 24 |
+
# ### commands auto generated by Alembic - please adjust! ###
|
| 25 |
+
op.add_column('knowledge_chunk', sa.Column('image_url', sqlmodel.sql.sqltypes.AutoString(), nullable=True))
|
| 26 |
+
# ### end Alembic commands ###
|
| 27 |
+
|
| 28 |
+
|
| 29 |
+
def downgrade() -> None:
|
| 30 |
+
"""Downgrade schema."""
|
| 31 |
+
# ### commands auto generated by Alembic - please adjust! ###
|
| 32 |
+
op.drop_column('knowledge_chunk', 'image_url')
|
| 33 |
+
# ### end Alembic commands ###
|
src/chatbot/models.py
CHANGED
|
@@ -31,5 +31,6 @@ class KnowledgeChunk(SQLModel, table=True):
|
|
| 31 |
)
|
| 32 |
chunk_index: int
|
| 33 |
chunk_text: str
|
|
|
|
| 34 |
embedding: List[float] = Field(sa_column=Column(Vector(768)))
|
| 35 |
knowledge_base: "KnowledgeBase" = Relationship(back_populates="knowledge_chunk")
|
|
|
|
| 31 |
)
|
| 32 |
chunk_index: int
|
| 33 |
chunk_text: str
|
| 34 |
+
image_url: str | None = Field(default=None)
|
| 35 |
embedding: List[float] = Field(sa_column=Column(Vector(768)))
|
| 36 |
knowledge_base: "KnowledgeBase" = Relationship(back_populates="knowledge_chunk")
|
src/chatbot/router.py
CHANGED
|
@@ -57,7 +57,7 @@ async def semantic_search(
|
|
| 57 |
|
| 58 |
sql = text(
|
| 59 |
"""
|
| 60 |
-
SELECT id, kb_id, chunk_text,
|
| 61 |
embedding <#> :query_vec AS score
|
| 62 |
FROM knowledge_chunk
|
| 63 |
ORDER BY embedding <#> :query_vec ASC
|
|
@@ -75,6 +75,7 @@ async def semantic_search(
|
|
| 75 |
chunk_id=str(r.id),
|
| 76 |
kb_id=str(r.kb_id),
|
| 77 |
text=r.chunk_text,
|
|
|
|
| 78 |
score=float(r.score),
|
| 79 |
)
|
| 80 |
for r in rows
|
|
|
|
| 57 |
|
| 58 |
sql = text(
|
| 59 |
"""
|
| 60 |
+
SELECT id, kb_id, chunk_text,image_url,
|
| 61 |
embedding <#> :query_vec AS score
|
| 62 |
FROM knowledge_chunk
|
| 63 |
ORDER BY embedding <#> :query_vec ASC
|
|
|
|
| 75 |
chunk_id=str(r.id),
|
| 76 |
kb_id=str(r.kb_id),
|
| 77 |
text=r.chunk_text,
|
| 78 |
+
image_url=r.image_url,
|
| 79 |
score=float(r.score),
|
| 80 |
)
|
| 81 |
for r in rows
|
src/chatbot/schemas.py
CHANGED
|
@@ -33,6 +33,7 @@ class SemanticSearchResult(BaseModel):
|
|
| 33 |
chunk_id: str
|
| 34 |
kb_id: str
|
| 35 |
text: str
|
|
|
|
| 36 |
score: float
|
| 37 |
|
| 38 |
class ManualTextRequest(BaseModel):
|
|
|
|
| 33 |
chunk_id: str
|
| 34 |
kb_id: str
|
| 35 |
text: str
|
| 36 |
+
image_url: str | None = None
|
| 37 |
score: float
|
| 38 |
|
| 39 |
class ManualTextRequest(BaseModel):
|