pro-craft 0.1.27__py3-none-any.whl → 0.1.29__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/database.py +19 -0
- pro_craft/prompt_craft/async_.py +9 -19
- pro_craft/prompt_craft/sync.py +1 -0
- {pro_craft-0.1.27.dist-info → pro_craft-0.1.29.dist-info}/METADATA +1 -1
- {pro_craft-0.1.27.dist-info → pro_craft-0.1.29.dist-info}/RECORD +7 -7
- {pro_craft-0.1.27.dist-info → pro_craft-0.1.29.dist-info}/WHEEL +0 -0
- {pro_craft-0.1.27.dist-info → pro_craft-0.1.29.dist-info}/top_level.txt +0 -0
pro_craft/database.py
CHANGED
|
@@ -179,6 +179,11 @@ class Prompt(PromptBase):
|
|
|
179
179
|
class UseCase(PromptBase):
|
|
180
180
|
__tablename__ = 'ai_usecase' # 数据库中的表名,你可以改成你希望的名字
|
|
181
181
|
|
|
182
|
+
__table_args__ = (
|
|
183
|
+
UniqueConstraint('prompt_id', 'use_case', name='_prompt_id_version_uc'),
|
|
184
|
+
# 'name' 参数是可选的,用于给数据库中的约束指定一个名称,方便管理和调试
|
|
185
|
+
)
|
|
186
|
+
|
|
182
187
|
# id (int, primary_key=True, autoincrement=True)
|
|
183
188
|
# 你的属性表中 id 为 int, true (not null), true (primary key), 0 (length), ASC (key order), true (auto increment)
|
|
184
189
|
id = Column(
|
|
@@ -206,6 +211,14 @@ class UseCase(PromptBase):
|
|
|
206
211
|
comment="用例"
|
|
207
212
|
)
|
|
208
213
|
|
|
214
|
+
timestamp = Column(
|
|
215
|
+
DateTime,
|
|
216
|
+
nullable=False, # 不能为空
|
|
217
|
+
server_default=text('CURRENT_TIMESTAMP'),
|
|
218
|
+
onupdate=text('CURRENT_TIMESTAMP'),
|
|
219
|
+
comment="时间戳"
|
|
220
|
+
)
|
|
221
|
+
|
|
209
222
|
output = Column(
|
|
210
223
|
Text, # TEXT 类型,适用于长文本
|
|
211
224
|
nullable=False, # 不能为空
|
|
@@ -220,6 +233,12 @@ class UseCase(PromptBase):
|
|
|
220
233
|
comment="理想结果" # 列注释
|
|
221
234
|
)
|
|
222
235
|
|
|
236
|
+
faired_time = Column(
|
|
237
|
+
Integer,
|
|
238
|
+
nullable=False, # 不能为空
|
|
239
|
+
comment="失败次数"
|
|
240
|
+
)
|
|
241
|
+
|
|
223
242
|
is_deleted = Column(Boolean, default=False, server_default=text('0'))
|
|
224
243
|
|
|
225
244
|
# 定义 __repr__ 方法以便打印对象时有清晰的表示
|
pro_craft/prompt_craft/async_.py
CHANGED
|
@@ -159,7 +159,6 @@ class AsyncIntel():
|
|
|
159
159
|
pool_pre_ping=True, # 使用前检查连接活性
|
|
160
160
|
pool_timeout=30 # 等待连接池中连接的最长时间(秒)
|
|
161
161
|
)
|
|
162
|
-
self.create_specific_database(self.engine,["ai_prompts","ai_usecase"])
|
|
163
162
|
|
|
164
163
|
if model_name in ["gemini-2.5-flash-preview-05-20-nothinking",]:
|
|
165
164
|
self.llm = BianXieAdapter(model_name = model_name)
|
|
@@ -169,8 +168,9 @@ class AsyncIntel():
|
|
|
169
168
|
print('Use BianXieAdapter')
|
|
170
169
|
self.llm = BianXieAdapter()
|
|
171
170
|
|
|
172
|
-
async def create_specific_database(self
|
|
173
|
-
|
|
171
|
+
async def create_specific_database(self):
|
|
172
|
+
tables_to_create_names = ["ai_prompts","ai_usecase"]
|
|
173
|
+
async with self.engine.begin() as conn:
|
|
174
174
|
# 从 metadata 中获取对应的 Table 对象
|
|
175
175
|
specific_database_objects = []
|
|
176
176
|
for table_name in tables_to_create_names:
|
|
@@ -254,6 +254,7 @@ class AsyncIntel():
|
|
|
254
254
|
)
|
|
255
255
|
records_to_sync = source_results.scalars().all()
|
|
256
256
|
if not records_to_sync:
|
|
257
|
+
print("没有更多记录了")
|
|
257
258
|
break # 没有更多记录了
|
|
258
259
|
|
|
259
260
|
#2 max_timestamp_in_batch = datetime(1970, 1, 1) # 初始化为最早时间
|
|
@@ -912,6 +913,7 @@ class AsyncIntel():
|
|
|
912
913
|
prompt_id: str,
|
|
913
914
|
ExtraFormats: list[object] = [],
|
|
914
915
|
version: str = None,
|
|
916
|
+
MIN_SUCCESS_RATE = 80.0
|
|
915
917
|
):
|
|
916
918
|
|
|
917
919
|
async with create_async_session(self.engine) as session:
|
|
@@ -974,22 +976,10 @@ class AsyncIntel():
|
|
|
974
976
|
bad_case.append(i)
|
|
975
977
|
|
|
976
978
|
success_rate = (successful_assertions / total_assertions) * 100
|
|
977
|
-
print(f"\n--- Aggregated Results ---")
|
|
978
|
-
print(f"Total test cases: {total_assertions}")
|
|
979
|
-
print(f"Successful cases: {successful_assertions}")
|
|
980
|
-
print(f"Success Rate: {success_rate:.2f}%")
|
|
981
|
-
|
|
982
|
-
# if success_rate >= MIN_SUCCESS_RATE:
|
|
983
|
-
# return "通过", json.dumps(result_cases,ensure_ascii=False)
|
|
984
|
-
# else:
|
|
985
|
-
# return "未通过",json.dumps(result_cases,ensure_ascii=False)
|
|
986
|
-
|
|
987
|
-
print(bad_case)
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
# return results
|
|
991
|
-
|
|
992
|
-
|
|
993
979
|
|
|
980
|
+
if success_rate >= MIN_SUCCESS_RATE:
|
|
981
|
+
return "通过", success_rate, total_assertions, json.dumps(bad_case,ensure_ascii=False),
|
|
982
|
+
else:
|
|
983
|
+
return "未通过",success_rate, total_assertions, json.dumps(bad_case,ensure_ascii=False),
|
|
994
984
|
|
|
995
985
|
# 整体测试d, 测试未通过d, 大模型调整再测试, 依旧不通过, 大模型裂变, 仍不通过, 互换人力
|
pro_craft/prompt_craft/sync.py
CHANGED
|
@@ -73,6 +73,7 @@ class Intel():
|
|
|
73
73
|
):
|
|
74
74
|
database_url = database_url or os.getenv("database_url")
|
|
75
75
|
assert database_url
|
|
76
|
+
assert "aiomysql" not in database_url
|
|
76
77
|
self.engine = create_engine(database_url, echo=False, # echo=True 仍然会打印所有执行的 SQL 语句
|
|
77
78
|
pool_size=10, # 连接池中保持的连接数
|
|
78
79
|
max_overflow=20, # 当pool_size不够时,允许临时创建的额外连接数
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
pro_craft/__init__.py,sha256=KU9yexREoJVO5eyDNnOCzdYC8Bfo6p4Z45KWZTeO63U,698
|
|
2
|
-
pro_craft/database.py,sha256=
|
|
2
|
+
pro_craft/database.py,sha256=NnJhtyaWbPk-KMMEPo5mRaIfyYYpxcBnt74gIzXNO_U,9302
|
|
3
3
|
pro_craft/file_manager.py,sha256=abVAlJ07_egWNuTj4JiP4me8NloQrsXGNd-SP63ab94,3738
|
|
4
4
|
pro_craft/log.py,sha256=x9RS_0LITN2SE8dcVaEcUFdcfr__jCYpFkIkVmqE5f0,3061
|
|
5
5
|
pro_craft/utils.py,sha256=R1DFkS4dsm5dIhg8lLTgBBvItvIYyyojROdh-ykqiYk,5250
|
|
6
6
|
pro_craft/code_helper/coder.py,sha256=L6pRQr0pYRIHrMFZ4-pO_tZf1koxgGgF3L7Vl-GIyjM,24687
|
|
7
7
|
pro_craft/code_helper/designer.py,sha256=3gyCqrjcw61sHzDjUPKhL1LOAE8xWLLbNT8NlK2mFLc,4739
|
|
8
8
|
pro_craft/prompt_craft/__init__.py,sha256=83ruWO1Oci-DWvdVhPqcQrgdZTNfbmK72VQCkWASk7A,80
|
|
9
|
-
pro_craft/prompt_craft/async_.py,sha256=
|
|
9
|
+
pro_craft/prompt_craft/async_.py,sha256=vbrOWcWohCmyAsFTBQul1tn_7Fgt6OPoWa2ccRSEQVU,43635
|
|
10
10
|
pro_craft/prompt_craft/new.py,sha256=ULjGGl95vmHrOs7XECJGlaqj1NE9BypE5WnFYhGugRY,25903
|
|
11
|
-
pro_craft/prompt_craft/sync.py,sha256=
|
|
11
|
+
pro_craft/prompt_craft/sync.py,sha256=OmRVieHojyBwRZDAi8zUGBxp3-yP3sf26DDd3bWG5wM,26224
|
|
12
12
|
pro_craft/server/mcp/__init__.py,sha256=4dbl-lFcm0r2tkOP04OxqiZG2jR-rqF181qi2AfU6UA,123
|
|
13
13
|
pro_craft/server/mcp/prompt.py,sha256=OZrsyUfSQMOY_KX7dWthW209adz5JfELsQ0ODfuQR44,1245
|
|
14
14
|
pro_craft/server/router/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
15
15
|
pro_craft/server/router/prompt.py,sha256=Wa4FfYRL6oeyA3F-79pmPeIH0Vo8wSEv7RH1lP6jXck,2907
|
|
16
|
-
pro_craft-0.1.
|
|
17
|
-
pro_craft-0.1.
|
|
18
|
-
pro_craft-0.1.
|
|
19
|
-
pro_craft-0.1.
|
|
16
|
+
pro_craft-0.1.29.dist-info/METADATA,sha256=HQm6oP2LIU-KOJLOIPZHrA23kROjkzjPFFWcKp56EUo,1689
|
|
17
|
+
pro_craft-0.1.29.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
18
|
+
pro_craft-0.1.29.dist-info/top_level.txt,sha256=yqYDHArnYMWpeCxkmGRwlL6sJtxiOUnYylLDx9EOgFg,10
|
|
19
|
+
pro_craft-0.1.29.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|