MetaGPT

Форк
0
/
const.py 
138 строк · 4.3 Кб
1
#!/usr/bin/env python
2
# -*- coding: utf-8 -*-
3
"""
4
@Time    : 2023/5/1 11:59
5
@Author  : alexanderwu
6
@File    : const.py
7
@Modified By: mashenquan, 2023-11-1. According to Section 2.2.1 and 2.2.2 of RFC 116, added key definitions for
8
        common properties in the Message.
9
@Modified By: mashenquan, 2023-11-27. Defines file repository paths according to Section 2.2.3.4 of RFC 135.
10
@Modified By: mashenquan, 2023/12/5. Add directories for code summarization..
11
"""
12
import os
13
from pathlib import Path
14

15
from loguru import logger
16

17
import metagpt
18

19

20
def get_metagpt_package_root():
21
    """Get the root directory of the installed package."""
22
    package_root = Path(metagpt.__file__).parent.parent
23
    for i in (".git", ".project_root", ".gitignore"):
24
        if (package_root / i).exists():
25
            break
26
    else:
27
        package_root = Path.cwd()
28

29
    logger.info(f"Package root set to {str(package_root)}")
30
    return package_root
31

32

33
def get_metagpt_root():
34
    """Get the project root directory."""
35
    # Check if a project root is specified in the environment variable
36
    project_root_env = os.getenv("METAGPT_PROJECT_ROOT")
37
    if project_root_env:
38
        project_root = Path(project_root_env)
39
        logger.info(f"PROJECT_ROOT set from environment variable to {str(project_root)}")
40
    else:
41
        # Fallback to package root if no environment variable is set
42
        project_root = get_metagpt_package_root()
43
    return project_root
44

45

46
# METAGPT PROJECT ROOT AND VARS
47
CONFIG_ROOT = Path.home() / ".metagpt"
48
METAGPT_ROOT = get_metagpt_root()  # Dependent on METAGPT_PROJECT_ROOT
49
DEFAULT_WORKSPACE_ROOT = METAGPT_ROOT / "workspace"
50

51
EXAMPLE_PATH = METAGPT_ROOT / "examples"
52
EXAMPLE_DATA_PATH = EXAMPLE_PATH / "data"
53
DATA_PATH = METAGPT_ROOT / "data"
54
EXAMPLE_BENCHMARK_PATH = EXAMPLE_PATH / "data/rag_bm"
55
TEST_DATA_PATH = METAGPT_ROOT / "tests/data"
56
RESEARCH_PATH = DATA_PATH / "research"
57
TUTORIAL_PATH = DATA_PATH / "tutorial_docx"
58
INVOICE_OCR_TABLE_PATH = DATA_PATH / "invoice_table"
59

60
UT_PATH = DATA_PATH / "ut"
61
SWAGGER_PATH = UT_PATH / "files/api/"
62
UT_PY_PATH = UT_PATH / "files/ut/"
63
API_QUESTIONS_PATH = UT_PATH / "files/question/"
64

65
SERDESER_PATH = DEFAULT_WORKSPACE_ROOT / "storage"  # TODO to store `storage` under the individual generated project
66

67
TMP = METAGPT_ROOT / "tmp"
68

69
SOURCE_ROOT = METAGPT_ROOT / "metagpt"
70
PROMPT_PATH = SOURCE_ROOT / "prompts"
71
SKILL_DIRECTORY = SOURCE_ROOT / "skills"
72
TOOL_SCHEMA_PATH = METAGPT_ROOT / "metagpt/tools/schemas"
73
TOOL_LIBS_PATH = METAGPT_ROOT / "metagpt/tools/libs"
74

75
# REAL CONSTS
76

77
MEM_TTL = 24 * 30 * 3600
78

79
MESSAGE_ROUTE_FROM = "sent_from"
80
MESSAGE_ROUTE_TO = "send_to"
81
MESSAGE_ROUTE_CAUSE_BY = "cause_by"
82
MESSAGE_META_ROLE = "role"
83
MESSAGE_ROUTE_TO_ALL = "<all>"
84
MESSAGE_ROUTE_TO_NONE = "<none>"
85

86
REQUIREMENT_FILENAME = "requirement.txt"
87
BUGFIX_FILENAME = "bugfix.txt"
88
PACKAGE_REQUIREMENTS_FILENAME = "requirements.txt"
89

90
DOCS_FILE_REPO = "docs"
91
PRDS_FILE_REPO = "docs/prd"
92
SYSTEM_DESIGN_FILE_REPO = "docs/system_design"
93
TASK_FILE_REPO = "docs/task"
94
CODE_PLAN_AND_CHANGE_FILE_REPO = "docs/code_plan_and_change"
95
COMPETITIVE_ANALYSIS_FILE_REPO = "resources/competitive_analysis"
96
DATA_API_DESIGN_FILE_REPO = "resources/data_api_design"
97
SEQ_FLOW_FILE_REPO = "resources/seq_flow"
98
SYSTEM_DESIGN_PDF_FILE_REPO = "resources/system_design"
99
PRD_PDF_FILE_REPO = "resources/prd"
100
TASK_PDF_FILE_REPO = "resources/api_spec_and_task"
101
CODE_PLAN_AND_CHANGE_PDF_FILE_REPO = "resources/code_plan_and_change"
102
TEST_CODES_FILE_REPO = "tests"
103
TEST_OUTPUTS_FILE_REPO = "test_outputs"
104
CODE_SUMMARIES_FILE_REPO = "docs/code_summary"
105
CODE_SUMMARIES_PDF_FILE_REPO = "resources/code_summary"
106
RESOURCES_FILE_REPO = "resources"
107
SD_OUTPUT_FILE_REPO = "resources/sd_output"
108
GRAPH_REPO_FILE_REPO = "docs/graph_repo"
109
VISUAL_GRAPH_REPO_FILE_REPO = "resources/graph_db"
110
CLASS_VIEW_FILE_REPO = "docs/class_view"
111

112
YAPI_URL = "http://yapi.deepwisdomai.com/"
113

114
DEFAULT_LANGUAGE = "English"
115
DEFAULT_MAX_TOKENS = 1500
116
COMMAND_TOKENS = 500
117
BRAIN_MEMORY = "BRAIN_MEMORY"
118
SKILL_PATH = "SKILL_PATH"
119
SERPER_API_KEY = "SERPER_API_KEY"
120
DEFAULT_TOKEN_SIZE = 500
121

122
# format
123
BASE64_FORMAT = "base64"
124

125
# REDIS
126
REDIS_KEY = "REDIS_KEY"
127

128
# Message id
129
IGNORED_MESSAGE_ID = "0"
130

131
# Class Relationship
132
GENERALIZATION = "Generalize"
133
COMPOSITION = "Composite"
134
AGGREGATION = "Aggregate"
135

136
# Timeout
137
USE_CONFIG_TIMEOUT = 0  # Using llm.timeout configuration.
138
LLM_API_TIMEOUT = 300
139

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.