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.

Files changed (31) hide show
  1. {pro_craft-0.1.53 → pro_craft-0.1.54}/PKG-INFO +2 -1
  2. {pro_craft-0.1.53 → pro_craft-0.1.54}/pyproject.toml +2 -2
  3. {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft/prompt_craft/async_.py +2 -1
  4. {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft.egg-info/PKG-INFO +2 -1
  5. {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft.egg-info/SOURCES.txt +0 -1
  6. {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft.egg-info/requires.txt +1 -0
  7. pro_craft-0.1.53/src/pro_craft/server/router/prompt copy.py +0 -183
  8. {pro_craft-0.1.53 → pro_craft-0.1.54}/README.md +0 -0
  9. {pro_craft-0.1.53 → pro_craft-0.1.54}/setup.cfg +0 -0
  10. {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft/__init__.py +0 -0
  11. {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft/code_helper/coder.py +0 -0
  12. {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft/code_helper/designer.py +0 -0
  13. {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft/database.py +0 -0
  14. {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft/file_manager.py +0 -0
  15. {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft/log.py +0 -0
  16. {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft/prompt_craft/__init__.py +0 -0
  17. {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft/prompt_craft/new.py +0 -0
  18. {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft/prompt_craft/sync.py +0 -0
  19. {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft/server/mcp/__init__.py +0 -0
  20. {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft/server/mcp/models.py +0 -0
  21. {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft/server/mcp/prompt.py +0 -0
  22. {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft/server/router/__init__.py +0 -0
  23. {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft/server/router/models.py +0 -0
  24. {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft/server/router/prompt.py +0 -0
  25. {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft/utils.py +0 -0
  26. {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft.egg-info/dependency_links.txt +0 -0
  27. {pro_craft-0.1.53 → pro_craft-0.1.54}/src/pro_craft.egg-info/top_level.txt +0 -0
  28. {pro_craft-0.1.53 → pro_craft-0.1.54}/tests/test22.py +0 -0
  29. {pro_craft-0.1.53 → pro_craft-0.1.54}/tests/test_11.py +0 -0
  30. {pro_craft-0.1.53 → pro_craft-0.1.54}/tests/test_coder.py +0 -0
  31. {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.53
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.53"
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.53
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
@@ -4,6 +4,7 @@ db-help>=0.2.2
4
4
  fastapi>=0.119.0
5
5
  llmada>=1.1.11
6
6
  mcp[cli]>=1.19.0
7
+ modusched==0.1.5
7
8
  plotly>=6.3.1
8
9
  pyyaml>=6.0.3
9
10
  toml>=0.10.2
@@ -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