Skip to content
Merged
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
40 changes: 40 additions & 0 deletions python/valuecell/server/db/init_db.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
from valuecell.server.db.connection import DatabaseManager, get_database_manager
from valuecell.server.db.models.agent import Agent
from valuecell.server.db.models.base import Base
from valuecell.server.db.models.strategy_prompt import StrategyPrompt
from valuecell.server.db.repositories.asset_repository import get_asset_repository
from valuecell.server.services.assets import get_asset_service
from valuecell.utils.path import get_agent_card_path
Expand Down Expand Up @@ -414,6 +415,45 @@ def initialize_basic_data(self) -> bool:
logger.info(f"Updated default agent: {agent_name}")

session.commit()
# Insert default strategy prompt from template if not present
try:
template_path = (
Path(__file__).resolve().parents[2]
/ "agents"
/ "strategy_agent"
/ "templates"
/ "default.txt"
)
prompt_id = "prompt-system-default"
existing_prompt = (
session.query(StrategyPrompt)
.filter(StrategyPrompt.id == prompt_id)
.first()
)
if not existing_prompt:
if template_path.exists():
content = template_path.read_text(encoding="utf-8")
prompt = StrategyPrompt(
id=prompt_id, name="System Default", content=content
)
session.add(prompt)
session.commit()
logger.info(
"Inserted default strategy prompt: %s", prompt_id
)
else:
logger.warning(
"Default strategy prompt template not found: %s",
template_path,
)
except Exception as e:
# Do not fail the whole DB init for prompt insertion; log and continue
try:
session.rollback()
except Exception:
pass
logger.error("Failed to insert default strategy prompt: %s", e)

logger.info("Default agent data initialization completed")
return True

Expand Down