+1
-1
src/bot/agent.py
+1
-1
src/bot/agent.py
+20
-16
src/bot/config.py
+20
-16
src/bot/config.py
···
12
12
)
13
13
14
14
# Bluesky credentials
15
-
bluesky_handle: str = Field(..., description="The handle of the Bluesky account")
15
+
bluesky_handle: str = Field(
16
+
default=..., description="The handle of the Bluesky account"
17
+
)
16
18
bluesky_password: str = Field(
17
-
..., description="The password of the Bluesky account"
19
+
default=..., description="The password of the Bluesky account"
18
20
)
19
21
bluesky_service: str = Field(
20
-
"https://bsky.social", description="The service URL of the Bluesky account"
22
+
default="https://bsky.social",
23
+
description="The service URL of the Bluesky account",
21
24
)
22
25
23
26
# Bot configuration
24
-
bot_name: str = Field("Bot", description="The name of the bot")
27
+
bot_name: str = Field(default="Bot", description="The name of the bot")
25
28
personality_file: str = Field(
26
-
"personalities/phi.md", description="The file containing the bot's personality"
29
+
default="personalities/phi.md",
30
+
description="The file containing the bot's personality",
27
31
)
28
32
29
33
# LLM configuration (support multiple providers)
30
34
openai_api_key: str | None = Field(
31
-
None, description="The API key for the OpenAI API"
35
+
default=None, description="The API key for the OpenAI API"
32
36
)
33
37
anthropic_api_key: str | None = Field(
34
-
None, description="The API key for the Anthropic API"
38
+
default=None, description="The API key for the Anthropic API"
35
39
)
36
40
37
41
# Google Search configuration
38
42
google_api_key: str | None = Field(
39
-
None, description="The API key for the Google API"
43
+
default=None, description="The API key for the Google API"
40
44
)
41
45
google_search_engine_id: str | None = Field(
42
-
None, description="The search engine ID for the Google API"
46
+
default=None, description="The search engine ID for the Google API"
43
47
)
44
48
45
49
# TurboPuffer configuration
46
50
turbopuffer_api_key: str | None = Field(
47
-
None, description="The API key for the TurboPuffer API"
51
+
default=None, description="The API key for the TurboPuffer API"
48
52
)
49
53
turbopuffer_namespace: str = Field(
50
-
"bot-memories", description="The namespace for the TurboPuffer API"
54
+
default="bot-memories", description="The namespace for the TurboPuffer API"
51
55
)
52
56
turbopuffer_region: str = Field(
53
-
"gcp-us-central1", description="The region for the TurboPuffer API"
57
+
default="gcp-us-central1", description="The region for the TurboPuffer API"
54
58
)
55
59
56
60
# Server configuration
57
-
host: str = Field("0.0.0.0", description="The host for the server")
58
-
port: int = Field(8000, description="The port for the server")
61
+
host: str = Field(default="0.0.0.0", description="The host for the server")
62
+
port: int = Field(default=8000, description="The port for the server")
59
63
60
64
# Polling configuration
61
65
notification_poll_interval: int = Field(
62
-
10, description="The interval for polling for notifications"
66
+
default=10, description="The interval for polling for notifications"
63
67
)
64
68
65
69
# Debug mode
66
-
debug: bool = Field(True, description="Whether to run in debug mode")
70
+
debug: bool = Field(default=True, description="Whether to run in debug mode")
67
71
68
72
@model_validator(mode="after")
69
73
def configure_logging(self) -> Self: