merging two columns into one nullable column, num_days

This commit is contained in:
Luke Wulf 2024-06-27 17:49:08 -07:00
parent 17807d5a56
commit b61bd3da2f
14 changed files with 10 additions and 44 deletions

1
.gitignore vendored
View File

@ -4,7 +4,6 @@
.mypy_cache
.idea
/backend/apicache/
/backend/package-lock.json
/deployment/data/nginx/app.conf
.vscode/launch.json
*.sw?

View File

@ -17,14 +17,8 @@ depends_on: None = None
def upgrade() -> None:
op.add_column(
"persona", sa.Column("use_recent_documents", sa.Boolean(), nullable=True)
)
op.execute("UPDATE persona SET use_recent_documents = false")
op.alter_column("persona", "use_recent_documents", nullable=False)
op.add_column("persona", sa.Column("num_days", sa.Float(), nullable=True))
def downgrade() -> None:
op.drop_column("persona", "use_recent_documents")
op.drop_column("persona", "num_days")

View File

@ -85,7 +85,6 @@ def load_personas_from_yaml(
num_chunks=persona.get("num_chunks")
if persona.get("num_chunks") is not None
else default_chunks,
use_recent_documents=persona.get("use_recent_documents", False),
num_days=persona.get("num_days"),
llm_relevance_filter=persona.get("llm_relevance_filter"),
starter_messages=persona.get("starter_messages"),

View File

@ -15,8 +15,6 @@ personas:
# Remove the field to set to the system default number of chunks/tokens to pass to Gen AI
# Each chunk is 512 tokens long
num_chunks: 10
# Flag to limit all searches to most recent documents by last_updated_time
use_recent_documents: false
# Specifies how young a document should be to be included in search context
# If a documents last_updated_time is over the current time + num_days it is excluded
# Field unused if use_recent_documents is set to false
@ -52,7 +50,6 @@ personas:
prompts:
- "OnlyLLM"
num_chunks: 0
use_recent_documents: false
llm_relevance_filter: true
llm_filter_extraction: true
recency_bias: "auto"
@ -66,7 +63,6 @@ personas:
prompts:
- "Paraphrase"
num_chunks: 10
use_recent_documents: false
llm_relevance_filter: true
llm_filter_extraction: true
recency_bias: "auto"

View File

@ -971,8 +971,6 @@ class Persona(Base):
)
# Number of chunks to pass to the LLM for generation.
num_chunks: Mapped[float | None] = mapped_column(Float, nullable=True)
# True if persona should only use context from recent documents, false by default
use_recent_documents: Mapped[bool] = mapped_column(Boolean)
# Number of days old for last_updated documents, only used if use_recent_documents is true
num_days: Mapped[float | None] = mapped_column(Float, nullable=True)
# Pass every chunk through LLM for evaluation, fairly expensive

View File

@ -82,7 +82,6 @@ def create_update_persona(
name=create_persona_request.name,
description=create_persona_request.description,
num_chunks=create_persona_request.num_chunks,
use_recent_documents=create_persona_request.use_recent_documents,
num_days=create_persona_request.num_days,
llm_relevance_filter=create_persona_request.llm_relevance_filter,
llm_filter_extraction=create_persona_request.llm_filter_extraction,
@ -329,7 +328,6 @@ def upsert_persona(
name: str,
description: str,
num_chunks: float,
use_recent_documents: bool,
num_days: float | None,
llm_relevance_filter: bool,
llm_filter_extraction: bool,
@ -369,7 +367,6 @@ def upsert_persona(
persona.name = name
persona.description = description
persona.num_chunks = num_chunks
persona.use_recent_documents = use_recent_documents
persona.num_days = num_days
persona.llm_relevance_filter = llm_relevance_filter
persona.llm_filter_extraction = llm_filter_extraction
@ -402,7 +399,6 @@ def upsert_persona(
name=name,
description=description,
num_chunks=num_chunks,
use_recent_documents=use_recent_documents,
num_days=num_days,
llm_relevance_filter=llm_relevance_filter,
llm_filter_extraction=llm_filter_extraction,

View File

@ -58,7 +58,6 @@ def create_slack_bot_persona(
name=persona_name,
description="",
num_chunks=num_chunks,
use_recent_documents=False,
num_days=None,
llm_relevance_filter=True,
llm_filter_extraction=True,

View File

@ -48,7 +48,7 @@ class BaseFilters(BaseModel):
@classmethod
def from_persona(cls, persona: Persona) -> "BaseFilters | None":
if persona.use_recent_documents and persona.num_days is not None:
if persona.num_days is not None:
from_date = datetime.now(timezone.utc) - timedelta(days=persona.num_days)
return cls(time_cutoff=from_date)
else:

View File

@ -19,7 +19,6 @@ class CreatePersonaRequest(BaseModel):
name: str
description: str
num_chunks: float
use_recent_documents: bool
num_days: float
llm_relevance_filter: bool
is_public: bool
@ -46,7 +45,6 @@ class PersonaSnapshot(BaseModel):
display_priority: int | None
description: str
num_chunks: float | None
use_recent_documents: bool
num_days: float | None
llm_relevance_filter: bool
llm_filter_extraction: bool
@ -84,7 +82,6 @@ class PersonaSnapshot(BaseModel):
display_priority=persona.display_priority,
description=persona.description,
num_chunks=persona.num_chunks,
use_recent_documents=persona.use_recent_documents,
num_days=persona.num_days,
llm_relevance_filter=persona.llm_relevance_filter,
llm_filter_extraction=persona.llm_filter_extraction,

View File

@ -1,6 +0,0 @@
{
"name": "backend",
"lockfileVersion": 2,
"requires": true,
"packages": {}
}

14
web/package-lock.json generated
View File

@ -2424,11 +2424,11 @@
}
},
"node_modules/braces": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
"integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"dependencies": {
"fill-range": "^7.1.1"
"fill-range": "^7.0.1"
},
"engines": {
"node": ">=8"
@ -3896,9 +3896,9 @@
}
},
"node_modules/fill-range": {
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
"integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"dependencies": {
"to-regex-range": "^5.0.1"
},

View File

@ -176,7 +176,7 @@ export function AssistantEditor({
existingPersona?.document_sets?.map((documentSet) => documentSet.id) ??
([] as number[]),
num_chunks: existingPersona?.num_chunks ?? null,
recent_documents_enabled: existingPersona?.use_recent_documents ?? false,
recent_documents_enabled: existingPersona?.num_days != null,
num_days: existingPersona?.num_days ?? null,
include_citations: existingPersona?.prompts[0]?.include_citations ?? true,
llm_relevance_filter: existingPersona?.llm_relevance_filter ?? false,
@ -318,7 +318,6 @@ export function AssistantEditor({
existingPromptId: existingPrompt?.id,
...values,
num_chunks: numChunks,
use_recent_documents: useRecentDocuments,
num_days: numDays,
users:
user && !checkUserIsNoAuthUser(user.id) ? [user.id] : undefined,
@ -329,7 +328,6 @@ export function AssistantEditor({
[promptResponse, personaResponse] = await createPersona({
...values,
num_chunks: numChunks,
use_recent_documents: useRecentDocuments,
num_days: numDays,
users:
user && !checkUserIsNoAuthUser(user.id) ? [user.id] : undefined,

View File

@ -36,7 +36,7 @@ export interface Persona {
llm_model_version_override?: string;
starter_messages: StarterMessage[] | null;
use_recent_documents: boolean;
num_days?: number;
num_days: number | null;
default_persona: boolean;
users: MinimalUserSnapshot[];
groups: number[];

View File

@ -7,7 +7,6 @@ interface PersonaCreationRequest {
task_prompt: string;
document_set_ids: number[];
num_chunks: number | null;
use_recent_documents: boolean;
num_days: number | null;
include_citations: boolean;
is_public: boolean;
@ -29,7 +28,6 @@ interface PersonaUpdateRequest {
task_prompt: string;
document_set_ids: number[];
num_chunks: number | null;
use_recent_documents: boolean;
num_days: number | null;
include_citations: boolean;
is_public: boolean;
@ -109,7 +107,6 @@ function buildPersonaAPIBody(
description,
document_set_ids,
num_chunks,
use_recent_documents,
num_days,
llm_relevance_filter,
is_public,
@ -122,7 +119,6 @@ function buildPersonaAPIBody(
name,
description,
num_chunks,
use_recent_documents,
num_days,
llm_relevance_filter,
llm_filter_extraction: false,