MetaGPT/metagpt/const.py

70 lines
2.3 KiB
Python
Raw Normal View History

2023-06-30 17:10:48 +08:00
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
@Time : 2023/5/1 11:59
@Author : alexanderwu
@File : const.py
2023-11-27 15:49:05 +08:00
@Modified By: mashenquan, 2023-11-1. According to Section 2.2.1 and 2.2.2 of RFC 116, added key definitions for
2023-11-03 11:12:59 +08:00
common properties in the Message.
2023-11-27 15:49:05 +08:00
@Modified By: mashenquan, 2023-11-27. Defines file repository paths according to Section 2.2.3.4 of RFC 135.
2023-06-30 17:10:48 +08:00
"""
from pathlib import Path
def get_project_root():
2023-07-27 08:40:32 -05:00
"""Search upwards to find the project root directory."""
2023-06-30 17:10:48 +08:00
current_path = Path.cwd()
while True:
2023-09-18 12:46:15 +08:00
if (
(current_path / ".git").exists()
or (current_path / ".project_root").exists()
or (current_path / ".gitignore").exists()
):
2023-06-30 17:10:48 +08:00
return current_path
parent_path = current_path.parent
if parent_path == current_path:
raise Exception("Project root not found.")
current_path = parent_path
PROJECT_ROOT = get_project_root()
2023-09-18 12:46:15 +08:00
DATA_PATH = PROJECT_ROOT / "data"
WORKSPACE_ROOT = PROJECT_ROOT / "workspace"
PROMPT_PATH = PROJECT_ROOT / "metagpt/prompts"
UT_PATH = PROJECT_ROOT / "data/ut"
2023-06-30 17:10:48 +08:00
SWAGGER_PATH = UT_PATH / "files/api/"
UT_PY_PATH = UT_PATH / "files/ut/"
API_QUESTIONS_PATH = UT_PATH / "files/question/"
YAPI_URL = "http://yapi.deepwisdomai.com/"
2023-09-18 12:46:15 +08:00
TMP = PROJECT_ROOT / "tmp"
2023-08-08 22:59:26 +08:00
RESEARCH_PATH = DATA_PATH / "research"
TUTORIAL_PATH = DATA_PATH / "tutorial_docx"
2023-10-10 14:26:03 +08:00
INVOICE_OCR_TABLE_PATH = DATA_PATH / "invoice_table"
2023-09-18 12:46:15 +08:00
SKILL_DIRECTORY = PROJECT_ROOT / "metagpt/skills"
MEM_TTL = 24 * 30 * 3600
2023-11-08 20:27:18 +08:00
MESSAGE_ROUTE_FROM = "sent_from"
MESSAGE_ROUTE_TO = "send_to"
MESSAGE_ROUTE_CAUSE_BY = "cause_by"
MESSAGE_META_ROLE = "role"
MESSAGE_ROUTE_TO_ALL = "<all>"
2023-11-23 23:04:41 +08:00
MESSAGE_ROUTE_TO_NONE = "<none>"
2023-11-22 17:08:00 +08:00
REQUIREMENT_FILENAME = "requirement.txt"
2023-11-27 19:32:33 +08:00
PACKAGE_REQUIREMENTS_FILENAME = "requirements.txt"
2023-11-22 17:08:00 +08:00
DOCS_FILE_REPO = "docs"
PRDS_FILE_REPO = "docs/prds"
2023-11-22 20:40:42 +08:00
SYSTEM_DESIGN_FILE_REPO = "docs/system_design"
TASK_FILE_REPO = "docs/tasks"
2023-11-22 21:45:44 +08:00
COMPETITIVE_ANALYSIS_FILE_REPO = "resources/competitive_analysis"
DATA_API_DESIGN_FILE_REPO = "resources/data_api_design"
SEQ_FLOW_FILE_REPO = "resources/seq_flow"
SYSTEM_DESIGN_PDF_FILE_REPO = "resources/system_design"
PRD_PDF_FILE_REPO = "resources/prd"
2023-11-23 11:29:09 +08:00
TASK_PDF_FILE_REPO = "resources/api_spec_and_tasks"
TEST_CODES_FILE_REPO = "tests"
2023-11-24 19:56:27 +08:00
TEST_OUTPUTS_FILE_REPO = "test_outputs"