server/www: rename topic text field to transcript

This aleviate the current issue with vercel deployment
This commit is contained in:
2023-11-02 19:54:44 +01:00
committed by Mathieu Virbel
parent 9642d0fd1e
commit eb76cd9bcd
9 changed files with 101 additions and 13 deletions

View File

@@ -0,0 +1,80 @@
"""rename back text to transcript
Revision ID: 38a927dcb099
Revises: 9920ecfe2735
Create Date: 2023-11-02 19:53:09.116240
"""
from typing import Sequence, Union
from alembic import op
import sqlalchemy as sa
from sqlalchemy.sql import table, column
from sqlalchemy import select
# revision identifiers, used by Alembic.
revision: str = '38a927dcb099'
down_revision: Union[str, None] = '9920ecfe2735'
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None:
# bind the engine
bind = op.get_bind()
# Reflect the table
transcript = table("transcript", column("id", sa.String), column("topics", sa.JSON))
# Select all rows from the transcript table
results = bind.execute(select([transcript.c.id, transcript.c.topics]))
for row in results:
transcript_id = row["id"]
topics_json = row["topics"]
# Process each topic in the topics JSON array
updated_topics = []
for topic in topics_json:
if "text" in topic:
# Rename key 'text' back to 'transcript'
topic["transcript"] = topic.pop("text")
updated_topics.append(topic)
# Update the transcript table
bind.execute(
transcript.update()
.where(transcript.c.id == transcript_id)
.values(topics=updated_topics)
)
def downgrade() -> None:
# bind the engine
bind = op.get_bind()
# Reflect the table
transcript = table("transcript", column("id", sa.String), column("topics", sa.JSON))
# Select all rows from the transcript table
results = bind.execute(select([transcript.c.id, transcript.c.topics]))
for row in results:
transcript_id = row["id"]
topics_json = row["topics"]
# Process each topic in the topics JSON array
updated_topics = []
for topic in topics_json:
if "transcript" in topic:
# Rename key 'transcript' to 'text'
topic["text"] = topic.pop("transcript")
updated_topics.append(topic)
# Update the transcript table
bind.execute(
transcript.update()
.where(transcript.c.id == transcript_id)
.values(topics=updated_topics)
)

View File

@@ -9,7 +9,6 @@ from typing import Sequence, Union
from alembic import op
import sqlalchemy as sa
import json
from sqlalchemy.sql import table, column
from sqlalchemy import select

View File

@@ -63,7 +63,7 @@ class TranscriptTopic(BaseModel):
summary: str
timestamp: float
duration: float | None = 0
text: str | None = None
transcript: str | None = None
words: list[ProcessorWord] = []

View File

@@ -162,7 +162,7 @@ class PipelineMainBase(PipelineRunner):
title=data.title,
summary=data.summary,
timestamp=data.timestamp,
text=data.transcript.text,
transcript=data.transcript.text,
words=data.transcript.words,
)
if isinstance(data, TitleSummaryWithIdProcessorType):

View File

@@ -121,7 +121,7 @@ class GetTranscriptTopic(BaseModel):
title: str
summary: str
timestamp: float
text: str
transcript: str
segments: list[GetTranscriptSegmentTopic] = []
@classmethod
@@ -154,7 +154,7 @@ class GetTranscriptTopic(BaseModel):
title=topic.title,
summary=topic.summary,
timestamp=topic.timestamp,
text=text,
transcript=text,
segments=segments,
)

View File

@@ -167,7 +167,7 @@ async def test_transcript_rtc_and_websocket(
ev = events[eventnames.index("TOPIC")]
assert ev["data"]["id"]
assert ev["data"]["summary"] == "LLM SUMMARY"
assert ev["data"]["text"].startswith("Hello world.")
assert ev["data"]["transcript"].startswith("Hello world.")
assert ev["data"]["timestamp"] == 0.0
assert "FINAL_LONG_SUMMARY" in eventnames
@@ -316,7 +316,7 @@ async def test_transcript_rtc_and_websocket_and_fr(
ev = events[eventnames.index("TOPIC")]
assert ev["data"]["id"]
assert ev["data"]["summary"] == "LLM SUMMARY"
assert ev["data"]["text"].startswith("Hello world.")
assert ev["data"]["transcript"].startswith("Hello world.")
assert ev["data"]["timestamp"] == 0.0
assert "FINAL_LONG_SUMMARY" in eventnames