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 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__ = "sync_metadata"
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__ = 'prompts_table' # 数据库中的表名,你可以改成你希望的名字
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__ = 'usecase' # 数据库中的表名,你可以改成你希望的名字
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 Base, Prompt
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
- logger.addHandler(file_handler_debug)
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
- COLOR_RED = "\033[91m"
71
- COLOR_GREEN = "\033[92m"
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