Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions backend/app/repositories/models/custom_bot_kb.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from app.routes.schemas.bot_kb import (
type_kb_chunking_strategy,
type_kb_embeddings_model,
type_kb_parsing_model,
type_kb_parsing_model_stored,
type_kb_search_type,
type_kb_web_crawling_scope,
type_os_character_filter,
Expand Down Expand Up @@ -92,7 +92,7 @@ class BedrockKnowledgeBaseModel(BaseModel):
knowledge_base_id: str | None = None
exist_knowledge_base_id: str | None = None
data_source_ids: list[str] | None = None
parsing_model: type_kb_parsing_model = "disabled"
parsing_model: type_kb_parsing_model_stored = "disabled"
web_crawling_scope: type_kb_web_crawling_scope = "DEFAULT"
web_crawling_filters: WebCrawlingFiltersModel = WebCrawlingFiltersModel(
exclude_patterns=[], include_patterns=[]
Expand Down
10 changes: 9 additions & 1 deletion backend/app/routes/schemas/bot_kb.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,15 @@
]
type_kb_embeddings_model = Literal["titan_v2", "cohere_multilingual_v3"]
type_kb_search_type = Literal["hybrid", "semantic"]
# Only models that are still invocable on Bedrock are selectable.
# claude-3-5-sonnet-v1 and claude-3-sonnet-v1 reached end of life and every
# ingestion using them fails with a 404 from IngestKnowledgeBaseDocuments.
type_kb_parsing_model = Literal[
"anthropic.claude-3-haiku-v1",
"disabled",
]
# Superset kept so bots created before the end-of-life cut still deserialize.
type_kb_parsing_model_stored = Literal[
"anthropic.claude-3-5-sonnet-v1",
"anthropic.claude-3-haiku-v1",
"anthropic.claude-3-sonnet-v1",
Expand Down Expand Up @@ -125,7 +133,7 @@ class BedrockKnowledgeBaseOutput(BaseSchema):
knowledge_base_id: str | None = None
exist_knowledge_base_id: str | None = None
data_source_ids: list[str] | None = None
parsing_model: type_kb_parsing_model = "disabled"
parsing_model: type_kb_parsing_model_stored = "disabled"
web_crawling_scope: type_kb_web_crawling_scope = "DEFAULT"
web_crawling_filters: WebCrawlingFilters = WebCrawlingFilters(
exclude_patterns=[], include_patterns=[]
Expand Down
8 changes: 7 additions & 1 deletion cdk/lib/utils/bedrock-knowledge-base-args.ts
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,13 @@ export const getParsingModel = (
}
switch (parsingModel) {
case "anthropic.claude-3-5-sonnet-v1":
return BedrockFoundationModel.ANTHROPIC_CLAUDE_3_5_SONNET_V1_0;
case "anthropic.claude-3-sonnet-v1":
// End of life on Bedrock (ingestion fails with 404). Fall back to the
// remaining live parsing model so existing bots keep syncing.
console.warn(
`Parsing model ${parsingModel} reached end of life on Bedrock, falling back to Claude 3 Haiku.`
);
return BedrockFoundationModel.ANTHROPIC_CLAUDE_HAIKU_V1_0;
case "anthropic.claude-3-haiku-v1":
return BedrockFoundationModel.ANTHROPIC_CLAUDE_HAIKU_V1_0;
case "disabled":
Expand Down
7 changes: 0 additions & 7 deletions frontend/src/features/knowledgeBase/pages/BotKbEditPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -333,13 +333,6 @@ const BotKbEditPage: React.FC = () => {
value: 'disabled',
description: t('knowledgeBaseSettings.parsingModel.none.hint'),
},
{
label: t('knowledgeBaseSettings.parsingModel.claude_3_5_sonnet_v1.label'),
value: 'anthropic.claude-3-5-sonnet-v1',
description: t(
'knowledgeBaseSettings.parsingModel.claude_3_5_sonnet_v1.hint'
),
},
{
label: t('knowledgeBaseSettings.parsingModel.claude_3_haiku_v1.label'),
value: 'anthropic.claude-3-haiku-v1',
Expand Down
2 changes: 1 addition & 1 deletion frontend/src/features/knowledgeBase/types/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export type BedrockKnowledgeBase = {

export type EmbeddingsModel = 'titan_v2' | 'cohere_multilingual_v3';

export type ParsingModel = 'anthropic.claude-3-5-sonnet-v1' | 'anthropic.claude-3-haiku-v1' | 'disabled';
export type ParsingModel = 'anthropic.claude-3-haiku-v1' | 'disabled';

export type ChunkingStrategy = 'default' | 'fixed_size' | 'hierarchical' | 'semantic' | 'none';

Expand Down