pro-craft 0.1.53__tar.gz → 0.1.54__tar.gz
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-0.1.53 → pro_craft-0.1.54}/PKG-INFO +2 -1
- {pro_craft-0.1.53 → pro_craft-0.1.54}/pyproject.toml +2 -2
- {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft/prompt_craft/async_.py +2 -1
- {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft.egg-info/PKG-INFO +2 -1
- {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft.egg-info/SOURCES.txt +0 -1
- {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft.egg-info/requires.txt +1 -0
- pro_craft-0.1.53/src/pro_craft/server/router/prompt copy.py +0 -183
- {pro_craft-0.1.53 → pro_craft-0.1.54}/README.md +0 -0
- {pro_craft-0.1.53 → pro_craft-0.1.54}/setup.cfg +0 -0
- {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft/__init__.py +0 -0
- {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft/code_helper/coder.py +0 -0
- {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft/code_helper/designer.py +0 -0
- {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft/database.py +0 -0
- {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft/file_manager.py +0 -0
- {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft/log.py +0 -0
- {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft/prompt_craft/__init__.py +0 -0
- {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft/prompt_craft/new.py +0 -0
- {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft/prompt_craft/sync.py +0 -0
- {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft/server/mcp/__init__.py +0 -0
- {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft/server/mcp/models.py +0 -0
- {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft/server/mcp/prompt.py +0 -0
- {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft/server/router/__init__.py +0 -0
- {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft/server/router/models.py +0 -0
- {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft/server/router/prompt.py +0 -0
- {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft/utils.py +0 -0
- {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft.egg-info/dependency_links.txt +0 -0
- {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft.egg-info/top_level.txt +0 -0
- {pro_craft-0.1.53 → pro_craft-0.1.54}/tests/test22.py +0 -0
- {pro_craft-0.1.53 → pro_craft-0.1.54}/tests/test_11.py +0 -0
- {pro_craft-0.1.53 → pro_craft-0.1.54}/tests/test_coder.py +0 -0
- {pro_craft-0.1.53 → pro_craft-0.1.54}/tests/test_designer.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pro-craft
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.54
|
|
4
4
|
Summary: Add your description here
|
|
5
5
|
Requires-Python: >=3.12
|
|
6
6
|
Description-Content-Type: text/markdown
|
|
@@ -10,6 +10,7 @@ Requires-Dist: db-help>=0.2.2
|
|
|
10
10
|
Requires-Dist: fastapi>=0.119.0
|
|
11
11
|
Requires-Dist: llmada>=1.1.11
|
|
12
12
|
Requires-Dist: mcp[cli]>=1.19.0
|
|
13
|
+
Requires-Dist: modusched==0.1.5
|
|
13
14
|
Requires-Dist: plotly>=6.3.1
|
|
14
15
|
Requires-Dist: pyyaml>=6.0.3
|
|
15
16
|
Requires-Dist: toml>=0.10.2
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "pro-craft"
|
|
3
|
-
version = "0.1.
|
|
3
|
+
version = "0.1.54"
|
|
4
4
|
description = "Add your description here"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.12"
|
|
7
|
-
dependencies = [ "aiomysql>=0.2.0", "anyio>=4.11.0", "db-help>=0.2.2", "fastapi>=0.119.0", "llmada>=1.1.11", "mcp[cli]>=1.19.0", "plotly>=6.3.1", "pyyaml>=6.0.3", "toml>=0.10.2", "utils-tool==0.1.3", "uvicorn>=0.38.0",]
|
|
7
|
+
dependencies = [ "aiomysql>=0.2.0", "anyio>=4.11.0", "db-help>=0.2.2", "fastapi>=0.119.0", "llmada>=1.1.11", "mcp[cli]>=1.19.0", "modusched==0.1.5", "plotly>=6.3.1", "pyyaml>=6.0.3", "toml>=0.10.2", "utils-tool==0.1.3", "uvicorn>=0.38.0",]
|
|
8
8
|
|
|
9
9
|
[tool.setuptools.package-data]
|
|
10
10
|
pro_craft = [ "config.yaml",]
|
|
@@ -683,12 +683,13 @@ class AsyncIntel():
|
|
|
683
683
|
|
|
684
684
|
except JSONDecodeError as e:
|
|
685
685
|
try:
|
|
686
|
-
self.logger.error(f
|
|
686
|
+
self.logger.error(f'{type(json_str)} $ intellect尝试补救 $ {json_str}')
|
|
687
687
|
json_str = fix_broken_json_string(json_str)
|
|
688
688
|
ai_result = json.loads(json_str)
|
|
689
689
|
OutputFormat(**ai_result)
|
|
690
690
|
|
|
691
691
|
except JSONDecodeError as e:
|
|
692
|
+
self.logger.error(f'{type(json_str)} $ {prompt_id}intellect生成的内容为无法被Json解析 $ {json_str}')
|
|
692
693
|
raise IntellectRemoveFormatError(f"prompt_id: {prompt_id} 生成的内容为无法被Json解析 {e}") from e
|
|
693
694
|
|
|
694
695
|
except ValidationError as e:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pro-craft
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.54
|
|
4
4
|
Summary: Add your description here
|
|
5
5
|
Requires-Python: >=3.12
|
|
6
6
|
Description-Content-Type: text/markdown
|
|
@@ -10,6 +10,7 @@ Requires-Dist: db-help>=0.2.2
|
|
|
10
10
|
Requires-Dist: fastapi>=0.119.0
|
|
11
11
|
Requires-Dist: llmada>=1.1.11
|
|
12
12
|
Requires-Dist: mcp[cli]>=1.19.0
|
|
13
|
+
Requires-Dist: modusched==0.1.5
|
|
13
14
|
Requires-Dist: plotly>=6.3.1
|
|
14
15
|
Requires-Dist: pyyaml>=6.0.3
|
|
15
16
|
Requires-Dist: toml>=0.10.2
|
|
@@ -21,7 +21,6 @@ src/pro_craft/server/mcp/models.py
|
|
|
21
21
|
src/pro_craft/server/mcp/prompt.py
|
|
22
22
|
src/pro_craft/server/router/__init__.py
|
|
23
23
|
src/pro_craft/server/router/models.py
|
|
24
|
-
src/pro_craft/server/router/prompt copy.py
|
|
25
24
|
src/pro_craft/server/router/prompt.py
|
|
26
25
|
tests/test22.py
|
|
27
26
|
tests/test_11.py
|
|
@@ -1,183 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
from fastapi import APIRouter
|
|
4
|
-
from pro_craft import Intel,AsyncIntel
|
|
5
|
-
from pro_craft.utils import create_async_session
|
|
6
|
-
from fastapi import FastAPI, HTTPException
|
|
7
|
-
from .models import *
|
|
8
|
-
from fastapi import APIRouter, Depends, HTTPException, status, Header
|
|
9
|
-
import os
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
def create_router(database_url: str,
|
|
13
|
-
slave_database_url: str,
|
|
14
|
-
model_name: str,
|
|
15
|
-
logger = None):
|
|
16
|
-
"""
|
|
17
|
-
# TODO 整理改为异步
|
|
18
|
-
创建一个包含 ProCraft 路由的 FastAPI APIRouter 实例。
|
|
19
|
-
|
|
20
|
-
Args:
|
|
21
|
-
database_url (str): 数据库连接字符串。
|
|
22
|
-
model_name (str): 用于 Intel 实例的模型名称。
|
|
23
|
-
api_key_secret (str, optional): 用于验证 API Key 的秘密字符串。
|
|
24
|
-
如果提供,它将覆盖环境变量 PRO_CRAFT_API_KEY。
|
|
25
|
-
如果都不提供,会使用硬编码的 'your_default_secret_key'。
|
|
26
|
-
Returns:
|
|
27
|
-
APIRouter: 配置好的 FastAPI APIRouter 实例。
|
|
28
|
-
"""
|
|
29
|
-
|
|
30
|
-
intels = AsyncIntel(
|
|
31
|
-
database_url=database_url,
|
|
32
|
-
model_name=model_name,
|
|
33
|
-
logger=logger
|
|
34
|
-
)
|
|
35
|
-
|
|
36
|
-
async def verify_api_key(authorization: Optional[str] = Header(None)):
|
|
37
|
-
# if not authorization:
|
|
38
|
-
# raise HTTPException(status_code=401, detail="Invalid authorization scheme")
|
|
39
|
-
# if not authorization.startswith("Bearer "):
|
|
40
|
-
# raise HTTPException(status_code=401, detail="Invalid authorization scheme")
|
|
41
|
-
|
|
42
|
-
# token = authorization.split(" ")[1]
|
|
43
|
-
|
|
44
|
-
key = os.getenv("prompt_api_key")
|
|
45
|
-
key_ = "123578"
|
|
46
|
-
if key_ != key:
|
|
47
|
-
raise HTTPException(status_code=401, detail="Error Server Position2")
|
|
48
|
-
|
|
49
|
-
router = APIRouter(
|
|
50
|
-
tags=["prompt"], # 这里使用 Depends 确保每次请求都验证
|
|
51
|
-
dependencies = [Depends(verify_api_key)]
|
|
52
|
-
)
|
|
53
|
-
|
|
54
|
-
# 自动修改
|
|
55
|
-
@router.post("/push_order",
|
|
56
|
-
description="可选 train,inference,summary,finetune,patch",
|
|
57
|
-
response_model=PromptResponse,
|
|
58
|
-
)
|
|
59
|
-
async def push_order(request: PushOrderRequest):
|
|
60
|
-
try:
|
|
61
|
-
result = await intels.push_action_order(
|
|
62
|
-
demand=request.demand,
|
|
63
|
-
prompt_id=request.prompt_id,
|
|
64
|
-
action_type=request.action_type
|
|
65
|
-
)
|
|
66
|
-
return PromptResponse(msg = "success",content=result)
|
|
67
|
-
except Exception as e:
|
|
68
|
-
raise HTTPException(
|
|
69
|
-
status_code=500, detail=f"{e}"
|
|
70
|
-
)
|
|
71
|
-
|
|
72
|
-
# 人为干预
|
|
73
|
-
|
|
74
|
-
@router.get("/registered_prompt",
|
|
75
|
-
description="获取以注册的提示词",
|
|
76
|
-
response_model=PromptResponse)
|
|
77
|
-
async def registered_prompt():
|
|
78
|
-
try:
|
|
79
|
-
result = ["memorycard-format",
|
|
80
|
-
"memorycard-polish",
|
|
81
|
-
"memorycard-merge",
|
|
82
|
-
"memorycard-score",
|
|
83
|
-
"memorycard-generate-content",
|
|
84
|
-
"user-overview",
|
|
85
|
-
"user-relationship-extraction",
|
|
86
|
-
"avatar-brief",
|
|
87
|
-
"avatar-personality-extraction",
|
|
88
|
-
"avatar-desensitization",
|
|
89
|
-
""
|
|
90
|
-
"biograph-free-writer",
|
|
91
|
-
"biograph-paid-title",
|
|
92
|
-
"biograph-outline",
|
|
93
|
-
"biograph-brief",
|
|
94
|
-
"biograph-extract-person-name",
|
|
95
|
-
"biograph-extract-place",
|
|
96
|
-
"biograph-extract-material",
|
|
97
|
-
"biograph_material_add",
|
|
98
|
-
"biograph_material_init",
|
|
99
|
-
"biograph-writer"]
|
|
100
|
-
|
|
101
|
-
return PromptResponse(msg = "success",content=' | '.join(result))
|
|
102
|
-
except Exception as e:
|
|
103
|
-
raise HTTPException(
|
|
104
|
-
status_code=500, detail=f"{e}"
|
|
105
|
-
)
|
|
106
|
-
@router.post("/get_prompt",
|
|
107
|
-
description="获得现行提示词",
|
|
108
|
-
response_model=PromptResponse)
|
|
109
|
-
async def get_prompt(request: GetPromptRequest):
|
|
110
|
-
try:
|
|
111
|
-
async with create_async_session(intels.engine) as session:
|
|
112
|
-
result = await intels.get_prompt_safe(
|
|
113
|
-
prompt_id=request.prompt_id,
|
|
114
|
-
version = request.version,
|
|
115
|
-
session=session
|
|
116
|
-
)
|
|
117
|
-
return PromptResponse(msg = "success",content={"prompt": result.prompt, "version": result.version})
|
|
118
|
-
|
|
119
|
-
except Exception as e:
|
|
120
|
-
raise HTTPException(
|
|
121
|
-
status_code=500, detail=f"{e}"
|
|
122
|
-
)
|
|
123
|
-
|
|
124
|
-
@router.post("/update_prompt",
|
|
125
|
-
description="更新现行提示词",
|
|
126
|
-
response_model=PromptResponse)
|
|
127
|
-
async def update_prompt(request: UpdatePromptRequest):
|
|
128
|
-
try:
|
|
129
|
-
async with create_async_session(intels.engine) as session:
|
|
130
|
-
await intels.save_prompt(
|
|
131
|
-
prompt_id = request.prompt_id,
|
|
132
|
-
new_prompt = request.prompt,
|
|
133
|
-
use_case = "",
|
|
134
|
-
action_type = "inference",
|
|
135
|
-
demand = "上传",
|
|
136
|
-
score = 70,
|
|
137
|
-
session = session)
|
|
138
|
-
return PromptResponse(msg = "success",content="")
|
|
139
|
-
except Exception as e:
|
|
140
|
-
raise HTTPException(
|
|
141
|
-
status_code=500, detail=f"{e}"
|
|
142
|
-
)
|
|
143
|
-
|
|
144
|
-
@router.post("/rollback_prompt",
|
|
145
|
-
description="回滚现行提示词",
|
|
146
|
-
response_model=PromptResponse)
|
|
147
|
-
async def roll_back(request: RollBackPromptRequest):
|
|
148
|
-
try:
|
|
149
|
-
async with create_async_session(intels.engine) as session:
|
|
150
|
-
result = await intels.get_prompt_safe(
|
|
151
|
-
prompt_id=request.prompt_id,
|
|
152
|
-
version = request.version,
|
|
153
|
-
session=session
|
|
154
|
-
)
|
|
155
|
-
assert result.version == request.version
|
|
156
|
-
await intels.save_prompt(
|
|
157
|
-
prompt_id = request.prompt_id,
|
|
158
|
-
new_prompt = result.prompt,
|
|
159
|
-
use_case = result.use_case,
|
|
160
|
-
action_type = "inference",
|
|
161
|
-
demand = "",
|
|
162
|
-
score = 61,
|
|
163
|
-
session = session)
|
|
164
|
-
return PromptResponse(msg = "success",content="")
|
|
165
|
-
except Exception as e:
|
|
166
|
-
raise HTTPException(
|
|
167
|
-
status_code=500, detail=f"{e}"
|
|
168
|
-
)
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
#系统级别服务
|
|
172
|
-
|
|
173
|
-
@router.post("/sync_database")
|
|
174
|
-
async def sync_database():
|
|
175
|
-
try:
|
|
176
|
-
result = await intels.sync_production_database(slave_database_url)
|
|
177
|
-
return PromptResponse(msg = "success",content="")
|
|
178
|
-
except Exception as e:
|
|
179
|
-
raise HTTPException(
|
|
180
|
-
status_code=500, detail=f"{e}"
|
|
181
|
-
)
|
|
182
|
-
return router
|
|
183
|
-
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|