Compare commits

...

1 Commits

Author SHA1 Message Date
Weves
a3a978c4c8 reformat files for black bump 2024-05-14 00:10:15 -07:00
101 changed files with 240 additions and 127 deletions

View File

@@ -5,6 +5,7 @@ Revises: 5f4b8568a221
Create Date: 2024-03-02 23:23:49.960309
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql

View File

@@ -5,6 +5,7 @@ Revises: 570282d33c49
Create Date: 2024-05-05 19:30:34.317972
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.sql import table

View File

@@ -5,6 +5,7 @@ Revises: 77d07dffae64
Create Date: 2023-11-11 20:51:24.228999
"""
from alembic import op
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: e50154680a5c
Create Date: 2024-03-19 15:30:44.425436
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql

View File

@@ -5,6 +5,7 @@ Revises: 6d387b3196c2
Create Date: 2023-05-05 15:49:35.716016
"""
import fastapi_users_db_sqlalchemy
import sqlalchemy as sa
from alembic import op

View File

@@ -5,6 +5,7 @@ Revises: 2666d766cb9b
Create Date: 2023-05-24 18:45:17.244495
"""
import fastapi_users_db_sqlalchemy
import sqlalchemy as sa
from alembic import op

View File

@@ -5,6 +5,7 @@ Revises: 7f99be1cb9f5
Create Date: 2023-10-16 23:21:01.283424
"""
from alembic import op
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: f1c6478c3fd8
Create Date: 2024-05-11 16:11:23.718084
"""
from alembic import op
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: 776b3bbe9092
Create Date: 2024-03-27 19:41:29.073594
"""
from alembic import op
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: e0a68a81d434
Create Date: 2023-10-05 18:47:09.582849
"""
from alembic import op
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: 27c6ecc08586
Create Date: 2023-06-14 23:45:51.760440
"""
import sqlalchemy as sa
from alembic import op

View File

@@ -5,6 +5,7 @@ Revises: 703313b75876
Create Date: 2024-04-13 18:07:29.153817
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql

View File

@@ -5,6 +5,7 @@ Revises: 3c5e35aa9af0
Create Date: 2023-07-18 17:33:40.365034
"""
from alembic import op
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: 9d97fecfab7f
Create Date: 2023-10-27 11:38:33.803145
"""
from alembic import op
from sqlalchemy import String

View File

@@ -5,6 +5,7 @@ Revises: e91df4e935ef
Create Date: 2024-03-20 18:53:32.461518
"""
from alembic import op
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises:
Create Date: 2023-05-04 00:55:32.971991
"""
import sqlalchemy as sa
from alembic import op
from sqlalchemy.dialects import postgresql

View File

@@ -5,6 +5,7 @@ Revises: ecab2b3f1a3b
Create Date: 2024-04-11 11:05:18.414438
"""
from alembic import op
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: 7da0ae5ad583
Create Date: 2023-11-27 17:23:29.668422
"""
from alembic import op
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: 7547d982db8f
Create Date: 2024-05-04 17:49:28.568109
"""
from alembic import op
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: 800f48024ae9
Create Date: 2023-09-20 16:59:39.097177
"""
from alembic import op
import fastapi_users_db_sqlalchemy
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: d929f0c1c6af
Create Date: 2023-09-04 15:29:44.002164
"""
import fastapi_users_db_sqlalchemy
from alembic import op
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: e6a4bbc13fe4
Create Date: 2023-08-10 21:43:09.069523
"""
from alembic import op
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: dbaa756c2ccf
Create Date: 2024-02-16 15:02:03.319907
"""
from alembic import op
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: 0a98909f2757
Create Date: 2024-05-07 14:54:55.493100
"""
from alembic import op
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: 47433d30de82
Create Date: 2023-05-05 14:40:10.242502
"""
import fastapi_users_db_sqlalchemy
import sqlalchemy as sa
from alembic import op

View File

@@ -5,6 +5,7 @@ Revises: fad14119fb92
Create Date: 2024-04-15 01:36:02.952809
"""
import json
from typing import cast
from alembic import op

View File

@@ -5,6 +5,7 @@ Revises: 475fcefe8826
Create Date: 2024-04-14 21:15:28.659634
"""
from alembic import op
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: ef7da92f7213
Create Date: 2024-05-02 15:18:56.573347
"""
from alembic import op
import sqlalchemy as sa
import fastapi_users_db_sqlalchemy

View File

@@ -5,6 +5,7 @@ Revises: dba7f71618f5
Create Date: 2023-09-21 10:03:21.509899
"""
from alembic import op
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: b156fa702355
Create Date: 2023-12-22 21:42:10.018804
"""
from alembic import op
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: 4738e4b3bae1
Create Date: 2024-03-22 21:34:27.629444
"""
from alembic import op
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: d61e513bef0a
Create Date: 2023-11-01 12:33:01.999617
"""
from alembic import op
from sqlalchemy import String

View File

@@ -5,6 +5,7 @@ Revises: 7ccea01261f6
Create Date: 2023-10-15 23:40:50.593262
"""
from alembic import op
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: 904e5138fffb
Create Date: 2024-01-11 17:56:37.934381
"""
from alembic import op
import fastapi_users_db_sqlalchemy
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: a570b80a5f20
Create Date: 2023-10-15 10:39:23.317453
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql

View File

@@ -5,6 +5,7 @@ Revises: e86866a9c78a
Create Date: 2023-11-27 00:16:19.959414
"""
from alembic import op
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: febe9eaa0644
Create Date: 2023-09-24 16:34:17.526128
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql

View File

@@ -5,6 +5,7 @@ Revises: 79acd316403a
Create Date: 2024-01-15 00:19:55.991224
"""
from alembic import op
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: 78dbe7e38469
Create Date: 2023-10-15 22:48:15.487762
"""
from alembic import op

View File

@@ -5,6 +5,7 @@ Revises: 767f1c2a00eb
Create Date: 2023-09-19 16:13:42.299715
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.schema import Sequence, CreateSequence

View File

@@ -5,6 +5,7 @@ Revises: 15326fcec57e
Create Date: 2023-11-26 02:38:35.008070
"""
from alembic import op
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: 76b60d407dfb
Create Date: 2023-12-21 11:55:54.132279
"""
from alembic import op
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: ec3ec2eabf7b
Create Date: 2024-02-10 19:31:28.339135
"""
from alembic import op
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: 5e84129c8be3
Create Date: 2023-08-18 21:15:57.629515
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql

View File

@@ -5,6 +5,7 @@ Revises: 5809c0787398
Create Date: 2023-09-13 18:34:31.327944
"""
from alembic import op
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: 3b25685ff73c
Create Date: 2023-10-05 12:29:26.620000
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql

View File

@@ -5,6 +5,7 @@ Revises: 891cd83c87a8
Create Date: 2024-01-01 10:44:43.733974
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql

View File

@@ -5,6 +5,7 @@ Revises: 173cae5bba26
Create Date: 2024-03-21 12:05:23.956734
"""
from alembic import op
import sqlalchemy as sa
from danswer.configs.constants import DocumentSource

View File

@@ -5,6 +5,7 @@ Revises: ffc707a226b4
Create Date: 2023-10-20 12:22:31.930449
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql

View File

@@ -5,6 +5,7 @@ Revises: 904451035c9b
Create Date: 2023-10-02 12:27:10.265725
"""
from alembic import op
import fastapi_users_db_sqlalchemy
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: 7da543f5672f
Create Date: 2023-09-26 16:19:30.933183
"""
import fastapi_users_db_sqlalchemy
from alembic import op
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: df0c7ad8a076
Create Date: 2023-08-06 12:05:47.087325
"""
from alembic import op
from sqlalchemy.dialects import postgresql

View File

@@ -5,6 +5,7 @@ Revises: baf71f781b9e
Create Date: 2023-12-12 00:57:41.823371
"""
import fastapi_users_db_sqlalchemy
from alembic import op
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: 50b683a8295c
Create Date: 2023-12-06 21:56:50.286158
"""
from alembic import op
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: 8e26726b7683
Create Date: 2023-09-14 15:04:14.444909
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql

View File

@@ -5,6 +5,7 @@ Revises: 46625e4745d4
Create Date: 2023-10-27 23:02:43.369964
"""
from alembic import op
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: 465f78d9b7f9
Create Date: 2023-07-29 15:06:25.126169
"""
import sqlalchemy as sa
from alembic import op
from sqlalchemy.dialects import postgresql

View File

@@ -5,6 +5,7 @@ Revises: 8aabb57f3b49
Create Date: 2023-08-27 13:03:54.274987
"""
import fastapi_users_db_sqlalchemy
from alembic import op
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: d5645c915d0e
Create Date: 2023-09-18 15:18:37.370972
"""
from alembic import op
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: 7f726bad5367
Create Date: 2024-01-25 17:12:31.813160
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy import table, column, String, Integer, Boolean

View File

@@ -5,6 +5,7 @@ Revises: d7111c1238cd
Create Date: 2023-08-05 13:35:39.609619
"""
from alembic import op
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: ae62505e3acc
Create Date: 2023-10-04 20:22:33.380286
"""
from alembic import op
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: fcd135795f21
Create Date: 2024-03-14 18:06:08.523106
"""
from alembic import op
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: b082fec533f0
Create Date: 2023-08-10 12:37:23.335471
"""
from alembic import op

View File

@@ -5,6 +5,7 @@ Revises: 80696cf850ae
Create Date: 2023-11-26 02:51:47.657357
"""
from alembic import op
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: 91fd3b470d1a
Create Date: 2024-03-17 11:47:24.675881
"""
import fastapi_users_db_sqlalchemy
from alembic import op
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: dbaa756c2ccf
Create Date: 2024-02-06 22:03:28.098158
"""
from alembic import op
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: 38eda64af7fe
Create Date: 2024-04-01 19:08:21.359102
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql

View File

@@ -5,6 +5,7 @@ Revises: 401c1ac29467
Create Date: 2024-04-28 16:59:33.199153
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql

View File

@@ -5,6 +5,7 @@ Revises: 643a84a42a33
Create Date: 2024-05-09 18:11:49.210667
"""
from alembic import op
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: 72bdc9929a46
Create Date: 2024-04-25 17:05:09.695703
"""
from alembic import op
# revision identifiers, used by Alembic.

View File

@@ -5,6 +5,7 @@ Revises: 0a2b51deb0b8
Create Date: 2024-03-04 17:03:27.116284
"""
from alembic import op
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: 57b53544726e
Create Date: 2023-09-24 13:06:24.018610
"""
from alembic import op
import sqlalchemy as sa

View File

@@ -5,6 +5,7 @@ Revises: 30c1d5744104
Create Date: 2023-10-18 16:52:25.967592
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql

View File

@@ -82,9 +82,11 @@ def load_personas_from_yaml(
persona_id=(-1 * p_id) if p_id is not None else None,
name=persona["name"],
description=persona["description"],
num_chunks=persona.get("num_chunks")
if persona.get("num_chunks") is not None
else default_chunks,
num_chunks=(
persona.get("num_chunks")
if persona.get("num_chunks") is not None
else default_chunks
),
llm_relevance_filter=persona.get("llm_relevance_filter"),
starter_messages=persona.get("starter_messages"),
llm_filter_extraction=persona.get("llm_filter_extraction"),

View File

@@ -84,9 +84,9 @@ class BookstackConnector(LoadConnector, PollConnector):
source=DocumentSource.BOOKSTACK,
semantic_identifier="Book: " + title,
title=title,
doc_updated_at=time_str_to_utc(updated_at_str)
if updated_at_str is not None
else None,
doc_updated_at=(
time_str_to_utc(updated_at_str) if updated_at_str is not None else None
),
metadata={"type": "book"},
)
@@ -113,9 +113,9 @@ class BookstackConnector(LoadConnector, PollConnector):
source=DocumentSource.BOOKSTACK,
semantic_identifier="Chapter: " + title,
title=title,
doc_updated_at=time_str_to_utc(updated_at_str)
if updated_at_str is not None
else None,
doc_updated_at=(
time_str_to_utc(updated_at_str) if updated_at_str is not None else None
),
metadata={"type": "chapter"},
)
@@ -137,9 +137,9 @@ class BookstackConnector(LoadConnector, PollConnector):
source=DocumentSource.BOOKSTACK,
semantic_identifier="Shelf: " + title,
title=title,
doc_updated_at=time_str_to_utc(updated_at_str)
if updated_at_str is not None
else None,
doc_updated_at=(
time_str_to_utc(updated_at_str) if updated_at_str is not None else None
),
metadata={"type": "shelf"},
)
@@ -170,9 +170,9 @@ class BookstackConnector(LoadConnector, PollConnector):
source=DocumentSource.BOOKSTACK,
semantic_identifier="Page: " + str(title),
title=str(title),
doc_updated_at=time_str_to_utc(updated_at_str)
if updated_at_str is not None
else None,
doc_updated_at=(
time_str_to_utc(updated_at_str) if updated_at_str is not None else None
),
metadata={"type": "page"},
)

View File

@@ -220,9 +220,11 @@ class ConfluenceConnector(LoadConnector, PollConnector):
self.space,
start=start_ind,
limit=batch_size,
status="current"
if CONFLUENCE_CONNECTOR_INDEX_ONLY_ACTIVE_PAGES
else None,
status=(
"current"
if CONFLUENCE_CONNECTOR_INDEX_ONLY_ACTIVE_PAGES
else None
),
expand="body.storage.value,version",
)
except Exception:
@@ -241,9 +243,11 @@ class ConfluenceConnector(LoadConnector, PollConnector):
self.space,
start=start_ind + i,
limit=1,
status="current"
if CONFLUENCE_CONNECTOR_INDEX_ONLY_ACTIVE_PAGES
else None,
status=(
"current"
if CONFLUENCE_CONNECTOR_INDEX_ONLY_ACTIVE_PAGES
else None
),
expand="body.storage.value,version",
)
)
@@ -376,9 +380,9 @@ class ConfluenceConnector(LoadConnector, PollConnector):
source=DocumentSource.CONFLUENCE,
semantic_identifier=page["title"],
doc_updated_at=last_modified,
primary_owners=[BasicExpertInfo(email=author)]
if author
else None,
primary_owners=(
[BasicExpertInfo(email=author)] if author else None
),
metadata={
"Wiki Space Name": self.space,
},

View File

@@ -79,14 +79,14 @@ class CommonFieldExtractor:
def get_issue_common_fields(jira: Issue) -> dict:
return {
"Priority": jira.fields.priority.name if jira.fields.priority else None,
"Reporter": jira.fields.reporter.displayName
if jira.fields.reporter
else None,
"Assignee": jira.fields.assignee.displayName
if jira.fields.assignee
else None,
"Reporter": (
jira.fields.reporter.displayName if jira.fields.reporter else None
),
"Assignee": (
jira.fields.assignee.displayName if jira.fields.assignee else None
),
"Status": jira.fields.status.name if jira.fields.status else None,
"Resolution": jira.fields.resolution.name
if jira.fields.resolution
else None,
"Resolution": (
jira.fields.resolution.name if jira.fields.resolution else None
),
}

View File

@@ -81,9 +81,9 @@ def _run_drive_file_query(
lambda: (
service.files()
.list(
corpora="allDrives"
if include_shared
else "user", # needed to search through shared drives
corpora=(
"allDrives" if include_shared else "user"
), # needed to search through shared drives
pageSize=batch_size,
supportsAllDrives=include_shared,
includeItemsFromAllDrives=include_shared,

View File

@@ -119,9 +119,11 @@ class GoogleSitesConnector(LoadConnector):
semantic_identifier=title,
sections=[
Section(
link=(self.base_url.rstrip("/") + "/" + path.lstrip("/"))
if path
else "",
link=(
(self.base_url.rstrip("/") + "/" + path.lstrip("/"))
if path
else ""
),
text=parsed_html.cleaned_text,
)
],

View File

@@ -142,9 +142,11 @@ class Document(DocumentBase):
@classmethod
def from_base(cls, base: DocumentBase) -> "Document":
return cls(
id=make_url_compatible(base.id)
if base.id
else "ingestion_api_" + make_url_compatible(base.semantic_identifier),
id=(
make_url_compatible(base.id)
if base.id
else "ingestion_api_" + make_url_compatible(base.semantic_identifier)
),
sections=base.sections,
source=base.source or DocumentSource.INGESTION_API,
semantic_identifier=base.semantic_identifier,

View File

@@ -75,9 +75,9 @@ def _get_channels(
client.conversations_list,
exclude_archived=exclude_archived,
# also get private channels the bot is added to
types=["public_channel", "private_channel"]
if get_private
else ["public_channel"],
types=(
["public_channel", "private_channel"] if get_private else ["public_channel"]
),
):
channels.extend(result["channels"])

View File

@@ -798,14 +798,14 @@ def translate_db_search_doc_to_server_search_doc(
hidden=db_search_doc.hidden,
metadata=db_search_doc.doc_metadata if not remove_doc_content else {},
score=db_search_doc.score,
match_highlights=db_search_doc.match_highlights
if not remove_doc_content
else [],
match_highlights=(
db_search_doc.match_highlights if not remove_doc_content else []
),
updated_at=db_search_doc.updated_at if not remove_doc_content else None,
primary_owners=db_search_doc.primary_owners if not remove_doc_content else [],
secondary_owners=db_search_doc.secondary_owners
if not remove_doc_content
else [],
secondary_owners=(
db_search_doc.secondary_owners if not remove_doc_content else []
),
)

View File

@@ -249,8 +249,9 @@ def upsert_documents_complete(
def delete_document_by_connector_credential_pair__no_commit(
db_session: Session,
document_ids: list[str],
connector_credential_pair_identifier: ConnectorCredentialPairIdentifier
| None = None,
connector_credential_pair_identifier: (
ConnectorCredentialPairIdentifier | None
) = None,
) -> None:
stmt = delete(DocumentByConnectorCredentialPair).where(
DocumentByConnectorCredentialPair.id.in_(document_ids)

View File

@@ -631,11 +631,13 @@ def _query_vespa(query_params: Mapping[str, str | int | float]) -> list[Inferenc
params = dict(
**query_params,
**{
"presentation.timing": True,
}
if LOG_VESPA_TIMING_INFORMATION
else {},
**(
{
"presentation.timing": True,
}
if LOG_VESPA_TIMING_INFORMATION
else {}
),
)
response = requests.post(
@@ -1047,12 +1049,14 @@ class VespaIndex(DocumentIndex):
"query": query_keywords,
"input.query(query_embedding)": str(query_embedding),
"input.query(decay_factor)": str(DOC_TIME_DECAY * time_decay_multiplier),
"input.query(alpha)": hybrid_alpha
if hybrid_alpha is not None
else HYBRID_ALPHA,
"input.query(title_content_ratio)": title_content_ratio
if title_content_ratio is not None
else TITLE_CONTENT_RATIO,
"input.query(alpha)": (
hybrid_alpha if hybrid_alpha is not None else HYBRID_ALPHA
),
"input.query(title_content_ratio)": (
title_content_ratio
if title_content_ratio is not None
else TITLE_CONTENT_RATIO
),
"hits": num_to_retrieve,
"offset": offset,
"ranking.profile": f"hybrid_search{len(query_embedding)}",

View File

@@ -25,10 +25,12 @@ class BaseChunk(BaseModel):
chunk_id: int
blurb: str # The first sentence(s) of the first Section of the chunk
content: str
source_links: dict[
int, str
] | None # Holds the link and the offsets into the raw Chunk text
section_continuation: bool # True if this Chunk's start is not at the start of a Section
source_links: (
dict[int, str] | None
) # Holds the link and the offsets into the raw Chunk text
section_continuation: (
bool # True if this Chunk's start is not at the start of a Section
)
class DocAwareChunk(BaseChunk):

View File

@@ -123,9 +123,9 @@ class Answer:
self._final_prompt: list[BaseMessage] | None = None
self._streamed_output: list[str] | None = None
self._processed_stream: list[
AnswerQuestionPossibleReturn | ToolResponse | ToolRunKickoff
] | None = None
self._processed_stream: (
list[AnswerQuestionPossibleReturn | ToolResponse | ToolRunKickoff] | None
) = None
def _update_prompt_builder_for_search_tool(
self, prompt_builder: AnswerPromptBuilder, final_context_documents: list[LlmDoc]

View File

@@ -211,9 +211,11 @@ async def lifespan(app: FastAPI) -> AsyncGenerator:
logger.info("Verifying Document Index(s) is/are available.")
document_index = get_default_document_index(
primary_index_name=db_embedding_model.index_name,
secondary_index_name=secondary_db_embedding_model.index_name
if secondary_db_embedding_model
else None,
secondary_index_name=(
secondary_db_embedding_model.index_name
if secondary_db_embedding_model
else None
),
)
# Vespa startup is a bit slow, so give it a few seconds
wait_time = 5
@@ -221,9 +223,11 @@ async def lifespan(app: FastAPI) -> AsyncGenerator:
try:
document_index.ensure_indices_exist(
index_embedding_dim=db_embedding_model.model_dim,
secondary_index_embedding_dim=secondary_db_embedding_model.model_dim
if secondary_db_embedding_model
else None,
secondary_index_embedding_dim=(
secondary_db_embedding_model.model_dim
if secondary_db_embedding_model
else None
),
)
break
except Exception:

View File

@@ -84,8 +84,9 @@ def stream_answer_objects(
bypass_acl: bool = False,
use_citations: bool = False,
danswerbot_flow: bool = False,
retrieval_metrics_callback: Callable[[RetrievalMetricsContainer], None]
| None = None,
retrieval_metrics_callback: (
Callable[[RetrievalMetricsContainer], None] | None
) = None,
rerank_metrics_callback: Callable[[RerankMetricsContainer], None] | None = None,
) -> AnswerObjectIterator:
"""Streams in order:
@@ -281,8 +282,9 @@ def get_search_answer(
bypass_acl: bool = False,
use_citations: bool = False,
danswerbot_flow: bool = False,
retrieval_metrics_callback: Callable[[RetrievalMetricsContainer], None]
| None = None,
retrieval_metrics_callback: (
Callable[[RetrievalMetricsContainer], None] | None
) = None,
rerank_metrics_callback: Callable[[RerankMetricsContainer], None] | None = None,
) -> OneShotQAResponse:
"""Collects the streamed one shot answer responses into a single object"""

View File

@@ -56,8 +56,9 @@ class SearchPipeline:
user: User | None,
db_session: Session,
bypass_acl: bool = False, # NOTE: VERY DANGEROUS, USE WITH CAUTION
retrieval_metrics_callback: Callable[[RetrievalMetricsContainer], None]
| None = None,
retrieval_metrics_callback: (
Callable[[RetrievalMetricsContainer], None] | None
) = None,
rerank_metrics_callback: Callable[[RerankMetricsContainer], None] | None = None,
):
self.search_request = search_request
@@ -88,9 +89,9 @@ class SearchPipeline:
self.ran_merge_chunk = False
# generator state
self._postprocessing_generator: Generator[
list[InferenceChunk] | list[str], None, None
] | None = None
self._postprocessing_generator: (
Generator[list[InferenceChunk] | list[str], None, None] | None
) = None
def _combine_chunks(self, post_rerank: bool) -> list[InferenceSection]:
if not post_rerank and self._retrieved_sections:

View File

@@ -209,9 +209,11 @@ def search_postprocessing(
llm_chunk_selection = cast(
list[str] | None,
post_processing_results.get(str(llm_filter_task_id))
if llm_filter_task_id
else None,
(
post_processing_results.get(str(llm_filter_task_id))
if llm_filter_task_id
else None
),
)
if llm_chunk_selection is not None:
yield [

View File

@@ -95,9 +95,11 @@ def recommend_search_flow(
return HelperResponse(
values={
"flow": flow,
"search_type": model_search_type
if heuristic_search_type is None
else heuristic_search_type,
"search_type": (
model_search_type
if heuristic_search_type is None
else heuristic_search_type
),
},
details=[message] if message else [],
)

View File

@@ -174,8 +174,9 @@ def retrieve_chunks(
db_session: Session,
hybrid_alpha: float = HYBRID_ALPHA, # Only applicable to hybrid search
multilingual_expansion_str: str | None = MULTILINGUAL_QUERY_EXPANSION,
retrieval_metrics_callback: Callable[[RetrievalMetricsContainer], None]
| None = None,
retrieval_metrics_callback: (
Callable[[RetrievalMetricsContainer], None] | None
) = None,
) -> list[InferenceChunk]:
"""Returns a list of the best chunks from an initial keyword/semantic/ hybrid search."""
# Don't do query expansion on complex queries, rephrasings likely would not work well

View File

@@ -416,14 +416,16 @@ def get_connector_indexing_status(
docs_indexed=cc_pair_to_document_cnt.get(
(connector.id, credential.id), 0
),
error_msg=latest_index_attempt.error_msg
if latest_index_attempt
else None,
latest_index_attempt=IndexAttemptSnapshot.from_index_attempt_db_model(
latest_index_attempt
)
if latest_index_attempt
else None,
error_msg=(
latest_index_attempt.error_msg if latest_index_attempt else None
),
latest_index_attempt=(
IndexAttemptSnapshot.from_index_attempt_db_model(
latest_index_attempt
)
if latest_index_attempt
else None
),
deletion_attempt=get_deletion_status(
connector_id=connector.id,
credential_id=credential.id,

View File

@@ -49,9 +49,11 @@ class IndexAttemptSnapshot(BaseModel):
docs_removed_from_index=index_attempt.docs_removed_from_index or 0,
error_msg=index_attempt.error_msg,
full_exception_trace=index_attempt.full_exception_trace,
time_started=index_attempt.time_started.isoformat()
if index_attempt.time_started
else None,
time_started=(
index_attempt.time_started.isoformat()
if index_attempt.time_started
else None
),
time_updated=index_attempt.time_updated.isoformat(),
)
@@ -111,9 +113,11 @@ class CredentialSnapshot(CredentialBase):
def from_credential_db_model(cls, credential: Credential) -> "CredentialSnapshot":
return CredentialSnapshot(
id=credential.id,
credential_json=mask_credential_dict(credential.credential_json)
if MASK_CREDENTIAL_PREFIX
else credential.credential_json,
credential_json=(
mask_credential_dict(credential.credential_json)
if MASK_CREDENTIAL_PREFIX
else credential.credential_json
),
user_id=credential.user_id,
admin_public=credential.admin_public,
time_created=credential.time_created,

View File

@@ -82,9 +82,9 @@ def gpt_search(
source_type=chunk.source_type,
link=chunk.source_links.get(0, "") if chunk.source_links else "",
metadata=chunk.metadata,
document_age=time_ago(chunk.updated_at)
if chunk.updated_at
else "Unknown",
document_age=(
time_ago(chunk.updated_at) if chunk.updated_at else "Unknown"
),
)
for chunk in top_chunks
],

View File

@@ -75,7 +75,9 @@ class SlackBotConfigCreationRequest(BaseModel):
# by an optional `PersonaSnapshot` object. Keeping it like this
# for now for simplicity / speed of development
document_sets: list[int] | None
persona_id: int | None # NOTE: only one of `document_sets` / `persona_id` should be set
persona_id: (
int | None
) # NOTE: only one of `document_sets` / `persona_id` should be set
channel_names: list[str]
respond_tag_only: bool = False
respond_to_bots: bool = False

View File

@@ -140,7 +140,7 @@ def get_embedding_models(
next_model = get_secondary_db_embedding_model(db_session)
return FullModelVersionResponse(
current_model=EmbeddingModelDetail.from_model(current_model),
secondary_model=EmbeddingModelDetail.from_model(next_model)
if next_model
else None,
secondary_model=(
EmbeddingModelDetail.from_model(next_model) if next_model else None
),
)

View File

@@ -191,13 +191,13 @@ class SearchTool(Tool):
search_pipeline = SearchPipeline(
search_request=SearchRequest(
query=query,
human_selected_filters=self.retrieval_options.filters
if self.retrieval_options
else None,
human_selected_filters=(
self.retrieval_options.filters if self.retrieval_options else None
),
persona=self.persona,
offset=self.retrieval_options.offset
if self.retrieval_options
else None,
offset=(
self.retrieval_options.offset if self.retrieval_options else None
),
limit=self.retrieval_options.limit if self.retrieval_options else None,
chunks_above=self.chunks_above,
chunks_below=self.chunks_below,

View File

@@ -1,4 +1,4 @@
black==24.3.0
black==23.3.0
celery-types==0.19.0
mypy-extensions==1.0.0
mypy==1.8.0

Some files were not shown because too many files have changed in this diff Show More