pro-craft 0.1.22__py3-none-any.whl → 0.1.36__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pro-craft might be problematic. Click here for more details.
- pro_craft/__init__.py +7 -12
- pro_craft/database.py +22 -5
- pro_craft/file_manager.py +2 -2
- pro_craft/log.py +14 -14
- pro_craft/prompt_craft/async_.py +579 -336
- pro_craft/prompt_craft/new.py +3 -3
- pro_craft/prompt_craft/sync.py +28 -23
- pro_craft/server/router/prompt.py +15 -12
- {pro_craft-0.1.22.dist-info → pro_craft-0.1.36.dist-info}/METADATA +2 -1
- pro_craft-0.1.36.dist-info/RECORD +19 -0
- pro_craft/prompt_craft/evals.py +0 -61
- pro_craft-0.1.22.dist-info/RECORD +0 -20
- {pro_craft-0.1.22.dist-info → pro_craft-0.1.36.dist-info}/WHEEL +0 -0
- {pro_craft-0.1.22.dist-info → pro_craft-0.1.36.dist-info}/top_level.txt +0 -0
pro_craft/__init__.py
CHANGED
|
@@ -1,23 +1,18 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
|
|
1
4
|
from dotenv import load_dotenv, find_dotenv
|
|
5
|
+
|
|
2
6
|
dotenv_path = find_dotenv()
|
|
3
7
|
load_dotenv(".env", override=True)
|
|
4
8
|
|
|
5
9
|
from .log import Log
|
|
6
10
|
import logging
|
|
7
|
-
Log_ = Log(console_level = logging.WARNING,
|
|
11
|
+
Log_ = Log(console_level = logging.WARNING, # 显示控制台的等级
|
|
8
12
|
log_file_name="app.log")
|
|
9
13
|
logger = Log_.logger
|
|
10
|
-
Log_.set_super_log(logger.critical)
|
|
11
|
-
|
|
14
|
+
Log_.set_super_log(logger.critical) # 控制superlog 打印的等级 默认是最高级单独存储一个文件
|
|
12
15
|
super_log = Log_.super_log # 调试工具
|
|
13
|
-
|
|
14
|
-
def slog(s, target: str = "target",logger = logger.info):
|
|
15
|
-
COLOR_GREEN = "\033[92m"
|
|
16
|
-
COLOR_RESET = "\033[0m" # 重置颜色
|
|
17
|
-
logger("\n"+f"{COLOR_GREEN}=={COLOR_RESET}" * 50)
|
|
18
|
-
logger(target + "\n "+"--" * 40)
|
|
19
|
-
logger(type(s))
|
|
20
|
-
logger(s)
|
|
21
|
-
logger("\n"+f"{COLOR_GREEN}=={COLOR_RESET}" * 50)
|
|
16
|
+
inference_save_case = False
|
|
22
17
|
|
|
23
18
|
from .prompt_craft import AsyncIntel, Intel, IntelNew
|
pro_craft/database.py
CHANGED
|
@@ -72,7 +72,7 @@ PromptBase = declarative_base()
|
|
|
72
72
|
|
|
73
73
|
class SyncMetadata(PromptBase):
|
|
74
74
|
"""用于存储同步元数据的表模型"""
|
|
75
|
-
__tablename__ = "
|
|
75
|
+
__tablename__ = "ai_sync_metadata"
|
|
76
76
|
id = Column(Integer, primary_key=True, autoincrement=True)
|
|
77
77
|
last_sync_time = Column(DateTime, default=datetime(1970, 1, 1))
|
|
78
78
|
table_name = Column(String(255), unique=True)
|
|
@@ -80,9 +80,8 @@ class SyncMetadata(PromptBase):
|
|
|
80
80
|
def __repr__(self):
|
|
81
81
|
return f"<SyncMetadata(table_name='{self.table_name}', last_sync_time='{self.last_sync_time}')>"
|
|
82
82
|
|
|
83
|
-
|
|
84
83
|
class Prompt(PromptBase):
|
|
85
|
-
__tablename__ = '
|
|
84
|
+
__tablename__ = 'ai_prompts' # 数据库中的表名,你可以改成你希望的名字
|
|
86
85
|
# __tablename__ = 'llm_prompt' # 数据库中的表名,你可以改成你希望的名字
|
|
87
86
|
|
|
88
87
|
# 定义联合唯一约束
|
|
@@ -177,9 +176,13 @@ class Prompt(PromptBase):
|
|
|
177
176
|
f"is_deleted='{self.is_deleted}...'>"
|
|
178
177
|
)
|
|
179
178
|
|
|
180
|
-
|
|
181
179
|
class UseCase(PromptBase):
|
|
182
|
-
__tablename__ = '
|
|
180
|
+
__tablename__ = 'ai_usecase' # 数据库中的表名,你可以改成你希望的名字
|
|
181
|
+
|
|
182
|
+
# __table_args__ = (
|
|
183
|
+
# UniqueConstraint('prompt_id', 'use_case', name='_prompt_id_version_uc'),
|
|
184
|
+
# # 'name' 参数是可选的,用于给数据库中的约束指定一个名称,方便管理和调试
|
|
185
|
+
# )
|
|
183
186
|
|
|
184
187
|
# id (int, primary_key=True, autoincrement=True)
|
|
185
188
|
# 你的属性表中 id 为 int, true (not null), true (primary key), 0 (length), ASC (key order), true (auto increment)
|
|
@@ -208,6 +211,14 @@ class UseCase(PromptBase):
|
|
|
208
211
|
comment="用例"
|
|
209
212
|
)
|
|
210
213
|
|
|
214
|
+
timestamp = Column(
|
|
215
|
+
DateTime,
|
|
216
|
+
nullable=False, # 不能为空
|
|
217
|
+
server_default=text('CURRENT_TIMESTAMP'),
|
|
218
|
+
onupdate=text('CURRENT_TIMESTAMP'),
|
|
219
|
+
comment="时间戳"
|
|
220
|
+
)
|
|
221
|
+
|
|
211
222
|
output = Column(
|
|
212
223
|
Text, # TEXT 类型,适用于长文本
|
|
213
224
|
nullable=False, # 不能为空
|
|
@@ -222,6 +233,12 @@ class UseCase(PromptBase):
|
|
|
222
233
|
comment="理想结果" # 列注释
|
|
223
234
|
)
|
|
224
235
|
|
|
236
|
+
faired_time = Column(
|
|
237
|
+
Integer,
|
|
238
|
+
nullable=False, # 不能为空
|
|
239
|
+
comment="失败次数"
|
|
240
|
+
)
|
|
241
|
+
|
|
225
242
|
is_deleted = Column(Boolean, default=False, server_default=text('0'))
|
|
226
243
|
|
|
227
244
|
# 定义 __repr__ 方法以便打印对象时有清晰的表示
|
pro_craft/file_manager.py
CHANGED
|
@@ -7,7 +7,7 @@ from pro_craft import Intel
|
|
|
7
7
|
from enum import Enum
|
|
8
8
|
import json
|
|
9
9
|
|
|
10
|
-
from pro_craft.database import
|
|
10
|
+
from pro_craft.database import Prompt
|
|
11
11
|
from sqlalchemy import create_engine, Column, Integer, String
|
|
12
12
|
from sqlalchemy.orm import sessionmaker, declarative_base
|
|
13
13
|
from pro_craft.utils import create_session
|
|
@@ -30,7 +30,7 @@ class ContentManager():
|
|
|
30
30
|
self.qdrant = QdrantManager(host = "localhost")
|
|
31
31
|
self.neo = None
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
|
|
34
34
|
@intel.intellect_2(IntellectType.inference,
|
|
35
35
|
prompt_id = "db_help_001",
|
|
36
36
|
demand="""
|
pro_craft/log.py
CHANGED
|
@@ -12,6 +12,7 @@ class Log:
|
|
|
12
12
|
def __init__(self, console_level = logging.INFO, log_file_name="app.log"):
|
|
13
13
|
self.Console_LOG_LEVEL = console_level
|
|
14
14
|
self.log_file_name = log_file_name
|
|
15
|
+
os.makedirs("logs", exist_ok=False)
|
|
15
16
|
self.LOG_FILE_PATH = os.path.join("logs", log_file_name)
|
|
16
17
|
self.logger = self.get_logger()
|
|
17
18
|
self.super_log_level = self.logger.critical
|
|
@@ -60,23 +61,22 @@ class Log:
|
|
|
60
61
|
)
|
|
61
62
|
file_handler_debug.setLevel(logging.WARNING) # 文件中显示所有指定级别的日志
|
|
62
63
|
file_handler_debug.setFormatter(formatter)
|
|
63
|
-
|
|
64
|
+
|
|
65
|
+
file_handler_cri = RotatingFileHandler(
|
|
66
|
+
self.LOG_FILE_PATH.replace('.log','_slog.log'),
|
|
67
|
+
maxBytes=5 * 1024 * 1024, # 10 MB
|
|
68
|
+
backupCount=5,
|
|
69
|
+
encoding="utf-8",
|
|
70
|
+
)
|
|
71
|
+
file_handler_cri.setLevel(logging.CRITICAL) # 文件中显示所有指定级别的日志
|
|
72
|
+
file_handler_cri.setFormatter(formatter)
|
|
73
|
+
logger.addHandler(file_handler_cri)
|
|
64
74
|
return logger
|
|
65
75
|
|
|
66
76
|
def set_super_log(self,logger_info):
|
|
67
77
|
self.super_log_level = logger_info
|
|
68
78
|
|
|
69
|
-
def super_log(self,s, target: str = "target"):
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
COLOR_YELLOW = "\033[93m"
|
|
73
|
-
COLOR_BLUE = "\033[94m"
|
|
74
|
-
COLOR_RESET = "\033[0m" # 重置颜色
|
|
75
|
-
log_ = self.super_log_level
|
|
76
|
-
|
|
77
|
-
log_("\n"+f"{COLOR_GREEN}=={COLOR_RESET}" * 50)
|
|
78
|
-
log_(target + "\n "+"--" * 40)
|
|
79
|
-
log_(type(s))
|
|
80
|
-
log_(s)
|
|
81
|
-
log_("\n"+f"{COLOR_GREEN}=={COLOR_RESET}" * 50)
|
|
79
|
+
def super_log(self,s, target: str = "target",logger = None):
|
|
80
|
+
logger = logger or self.super_log_level
|
|
81
|
+
logger("\n" + "=="*25 + target +"=="*25 + f"\n type: {str(type(s))}" + f"\ncontent: {s}")
|
|
82
82
|
|