Skip to content

Commit 11da1f5

Browse files
authored
feat: add decompose_queries field to get_docs_settings (#5947)
1 parent 72682ca commit 11da1f5

File tree

7 files changed

+56
-2
lines changed

7 files changed

+56
-2
lines changed

fern/apis/fai/openapi.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5926,6 +5926,18 @@
59265926
],
59275927
"title": "Discord Enabled",
59285928
"description": "Whether Ask AI is enabled for discord"
5929+
},
5930+
"decompose_queries": {
5931+
"anyOf": [
5932+
{
5933+
"type": "boolean"
5934+
},
5935+
{
5936+
"type": "null"
5937+
}
5938+
],
5939+
"title": "Decompose Queries",
5940+
"description": "Whether query decomposition is enabled"
59295941
}
59305942
},
59315943
"type": "object",

packages/fai-sdk/src/api/types/GetSettingsResponse.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,6 @@ export interface GetSettingsResponse {
1313
slack_enabled?: boolean;
1414
/** Whether Ask AI is enabled for discord */
1515
discord_enabled?: boolean;
16+
/** Whether query decomposition is enabled */
17+
decompose_queries?: boolean;
1618
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
"""add decompose_queries column to settings table
2+
3+
Revision ID: add_decompose_queries
4+
Revises: add_subqueries_to_queries
5+
Create Date: 2025-12-15 00:00:00.000000
6+
7+
"""
8+
from typing import Sequence, Union
9+
10+
from alembic import op
11+
import sqlalchemy as sa
12+
13+
14+
# revision identifiers, used by Alembic.
15+
revision: str = 'add_decompose_queries'
16+
down_revision: Union[str, Sequence[str], None] = 'add_subqueries_to_queries'
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+
"""Upgrade schema."""
23+
op.add_column('settings', sa.Column('decompose_queries', sa.Boolean(), nullable=False, server_default='false'))
24+
25+
26+
def downgrade() -> None:
27+
"""Downgrade schema."""
28+
op.drop_column('settings', 'decompose_queries')

servers/fai/src/fai/models/api/settings_api.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ class GetSettingsResponse(BaseModel):
2222
docs_enabled: bool | None = Field(None, description="Whether Ask AI is enabled for docs")
2323
slack_enabled: bool | None = Field(None, description="Whether Ask AI is enabled for slack")
2424
discord_enabled: bool | None = Field(None, description="Whether Ask AI is enabled for discord")
25+
decompose_queries: bool | None = Field(None, description="Whether query decomposition is enabled")
2526

2627

2728
class ToggleAskAiResponse(BaseModel):

servers/fai/src/fai/models/db/settings_db.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ class SettingsDb(Base):
2828
slack_enabled = Column(Boolean, nullable=False, default=True)
2929
discord_enabled = Column(Boolean, nullable=False, default=True)
3030
is_preview = Column(Boolean, nullable=False, default=False)
31+
decompose_queries = Column(Boolean, nullable=False, default=False)
3132

3233
def to_api(self) -> Settings:
3334
return Settings(
@@ -40,4 +41,5 @@ def to_api(self) -> Settings:
4041
slack_enabled=self.slack_enabled,
4142
discord_enabled=self.discord_enabled,
4243
is_preview=self.is_preview,
44+
decompose_queries=self.decompose_queries,
4345
)

servers/fai/src/fai/models/types/settings_types.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,4 @@ class Settings(BaseModel):
1111
docs_enabled: bool = True
1212
slack_enabled: bool = True
1313
discord_enabled: bool = True
14+
decompose_queries: bool = False

servers/fai/src/fai/routes/settings.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,10 +78,18 @@ async def get_docs_settings(
7878
job_id = existing_record.job_id if existing_record else None
7979

8080
return GetSettingsResponse(
81-
ask_ai_enabled=ask_ai_enabled, job_id=job_id, docs_enabled=existing_record.docs_enabled
81+
ask_ai_enabled=ask_ai_enabled,
82+
job_id=job_id,
83+
docs_enabled=existing_record.docs_enabled,
84+
decompose_queries=existing_record.decompose_queries,
8285
)
8386
except Exception:
84-
return GetSettingsResponse(ask_ai_enabled=False, job_id=None, docs_enabled=existing_record.docs_enabled)
87+
return GetSettingsResponse(
88+
ask_ai_enabled=False,
89+
job_id=None,
90+
docs_enabled=existing_record.docs_enabled if existing_record else None,
91+
decompose_queries=existing_record.decompose_queries if existing_record else None,
92+
)
8593

8694

8795
@fai_app.get(

0 commit comments

Comments
 (0)