pycoze 0.1.252__py3-none-any.whl → 0.1.254__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
pycoze/ai/__init__.py CHANGED
@@ -1,2 +1,14 @@
1
1
  from .vram_reserve import reserve_vram, reserve_vram_retry, unreserve_vram
2
2
  from .llm import chat, chat_stream, extract, yes_or_no, extract_code, text_to_image_prompt
3
+
4
+ __all__ = [
5
+ reserve_vram,
6
+ reserve_vram_retry,
7
+ unreserve_vram,
8
+ chat,
9
+ chat_stream,
10
+ extract,
11
+ yes_or_no,
12
+ extract_code,
13
+ text_to_image_prompt
14
+ ]
pycoze/ai/llm/__init__.py CHANGED
@@ -1,2 +1,11 @@
1
1
  from .text_to_image_prompt import text_to_image_prompt
2
2
  from .chat import chat, chat_stream, extract, yes_or_no, extract_code
3
+
4
+ __all__ = [
5
+ text_to_image_prompt,
6
+ chat,
7
+ chat_stream,
8
+ extract,
9
+ yes_or_no,
10
+ extract_code
11
+ ]
pycoze/ai/vram_reserve.py CHANGED
@@ -8,7 +8,7 @@ import sys
8
8
  from pycoze import utils
9
9
 
10
10
  # 定义数据库连接和初始化
11
- params = utils.read_params_file()
11
+ params = utils.params
12
12
  if params:
13
13
  DATABASE_PATH = params["appPath"] + "/vram_usage.db"
14
14
  else:
pycoze/bot/__init__.py CHANGED
@@ -1 +1,3 @@
1
1
  from .bot import chat, get_chat_response
2
+
3
+ __all__ = [chat, get_chat_response]
@@ -92,7 +92,7 @@ def create_openai_func_call_agent_executor(
92
92
 
93
93
  return [SystemMessage(content=system_message)] + msgs
94
94
 
95
- if tools and tool_compatibility_mode:
95
+ if tools and not tool_compatibility_mode:
96
96
  llm_with_tools = llm.bind(tools=[convert_to_openai_tool(t) for t in tools])
97
97
  else:
98
98
  llm_with_tools = llm
@@ -106,7 +106,6 @@ def create_openai_func_call_agent_executor(
106
106
  if last_message.content.strip().endswith("```"):
107
107
  last_message.content = last_message.content + "\n\n" # 避免影响阅读
108
108
  tools = get_tools(last_message)
109
- print("tools", tools)
110
109
  if last_message.tool_calls or tools:
111
110
  return 'continue'
112
111
  return 'end'
@@ -26,7 +26,7 @@ class Runnable(RunnableBinding):
26
26
  )
27
27
  agent_executor = agent_executor.with_config({"recursion_limit": 50})
28
28
  super().__init__(
29
- tools=tools,
29
+ tools=tools if not tool_compatibility_mode else [],
30
30
  llm=llm,
31
31
  agent_execution_mode=agent_execution_mode,
32
32
  assistant_message=assistant_message,
pycoze/bot/agent_chat.py CHANGED
@@ -1,6 +1,6 @@
1
1
  import json
2
2
  from langchain_openai import ChatOpenAI
3
- from .agent import run_agent, Runnable, output, CHAT_DATA, clear_chat_data
3
+ from .agent import run_agent, Runnable,CHAT_DATA, clear_chat_data
4
4
  import asyncio
5
5
  from pycoze import utils
6
6
  from pycoze.reference.bot import ref_bot
@@ -100,7 +100,7 @@ async def agent_chat(bot_setting_file, history):
100
100
  assistant_message=prompt,
101
101
  tool_compatibility_mode=cfg["toolCompatibilityMode"],
102
102
  )
103
- params = utils.read_params_file()
103
+ params = utils.params
104
104
  if "interruptFile" in params:
105
105
  interrupt_file_path = params["interruptFile"]
106
106
  result = await run_with_interrupt_check(agent, history, cfg["toolCompatibilityMode"], interrupt_file_path)
pycoze/bot/bot.py CHANGED
@@ -1,5 +1,4 @@
1
1
  from langchain_core.messages import HumanMessage, AIMessage
2
- import threading
3
2
  import json
4
3
  from .agent import INPUT_MESSAGE, output, CHAT_DATA, clear_chat_data
5
4
  from .agent_chat import agent_chat
pycoze/ui/__init__.py CHANGED
@@ -25,3 +25,31 @@ from .ui_def import (
25
25
  seed,
26
26
  button
27
27
  )
28
+
29
+ __all__ = [
30
+ get_ui,
31
+ get_ui_text,
32
+ label,
33
+ number,
34
+ text,
35
+ textarea,
36
+ password,
37
+ tool,
38
+ color,
39
+ checkbox,
40
+ single_select,
41
+ multi_select,
42
+ single_file_select,
43
+ multi_file_select,
44
+ single_folder_select,
45
+ multi_folder_select,
46
+ folder_tree,
47
+ single_image_select,
48
+ multi_image_select,
49
+ single_audio_select,
50
+ multi_audio_select,
51
+ single_video_select,
52
+ multi_video_select,
53
+ seed,
54
+ button
55
+ ]
pycoze/utils/__init__.py CHANGED
@@ -1,3 +1,5 @@
1
1
  from .arg import read_arg
2
- from .env import read_params_file, read_json_file
2
+ from .env import read_params_file, params, read_json_file
3
3
  from .text_or_file import to_text
4
+
5
+ __all__ = [read_arg, read_params_file, params, read_json_file, to_text]
pycoze/utils/arg.py CHANGED
@@ -1,6 +1,4 @@
1
1
  import sys
2
- import json
3
- import os
4
2
 
5
3
 
6
4
  def read_arg(param, is_path=False, posix=True):
pycoze/utils/env.py CHANGED
@@ -13,9 +13,13 @@ def read_params_file():
13
13
  print(e)
14
14
  return params
15
15
 
16
+
17
+ params = read_params_file()
18
+
19
+
16
20
  def read_json_file(filename):
17
- params = read_params_file()
18
21
  json_file = os.path.join(params['appPath'], 'JsonStorage', filename)
19
22
  with open(json_file, encoding='utf-8') as f:
20
23
  return json.load(f)
21
-
24
+
25
+
pycoze/utils/socket.py ADDED
@@ -0,0 +1,72 @@
1
+ import socket
2
+ import json
3
+ import uuid
4
+
5
+
6
+ tcp_port = read_arg("tcp_port")
7
+
8
+
9
+
10
+ class TcpSocket:
11
+ def __init__(self):
12
+ self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
13
+ self.socket.connect(("localhost", int(tcp_port)))
14
+ self.is_connected = True
15
+
16
+ def post(self, subject, message):
17
+ subject = "python-event:" + subject
18
+ message = message.copy()
19
+ message["subject"] = subject
20
+ message = json.dumps(message)
21
+ message_bytes = message.encode()
22
+ message_length = len(message_bytes)
23
+ message_length_bytes = message_length.to_bytes(4, byteorder='big')
24
+
25
+ self.socket.sendall(message_length_bytes + message_bytes)
26
+
27
+ def recv(self):
28
+ # 接收消息长度
29
+ message_length_bytes = self.socket.recv(4)
30
+ message_length = int.from_bytes(message_length_bytes, byteorder='big')
31
+ # 初始化接收到的消息
32
+ message = b''
33
+ # 循环接收直到收到完整的消息
34
+ while len(message) < message_length:
35
+ # 接收剩余的消息
36
+ chunk = self.socket.recv(message_length - len(message))
37
+ if not chunk: # 如果没有接收到数据,则断开连接
38
+ raise RuntimeError("Socket connection broken")
39
+ message += chunk
40
+ message = json.loads(message.decode())
41
+ return message
42
+
43
+ def post_and_recv_result(self, subject, message):
44
+ message = message.copy()
45
+ message["uid"] = str(uuid.uuid4())
46
+ socket_subscribe(subject + ":" + message["uid"]) # 先订阅,再发送,防止消息丢失
47
+ self.post(subject, message)
48
+ ret_val = self.recv()
49
+ result = ret_val["result"] if "result" in ret_val else None # 传输时,可能会丢失result字段,因此需要判断
50
+ return result
51
+
52
+ def close(self):
53
+ if self.is_connected:
54
+ self.is_connected = False
55
+
56
+ def __del__(self):
57
+ # 垃圾回收时自动关闭socket
58
+ if self.is_connected:
59
+ self.close()
60
+
61
+ def __exit__(self, exc_type, exc_value, traceback):
62
+ # with 语句块结束时自动触发的
63
+ if self.is_connected:
64
+ self.close()
65
+
66
+
67
+ socket = TcpSocket()
68
+
69
+ def socket_subscribe(subject: str):
70
+ subject = "python-event:" + subject
71
+ socket.post(subject, {"subscribe": subject})
72
+ return socket
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pycoze
3
- Version: 0.1.252
3
+ Version: 0.1.254
4
4
  Summary: Package for pycoze only!
5
5
  Author: Yuan Jie Xiong
6
6
  Author-email: aiqqqqqqq@qq.com
@@ -1,36 +1,37 @@
1
1
  pycoze/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- pycoze/ai/__init__.py,sha256=NY6treq6PVA52c62RaP3S3v9Xsmj5xE1YOl169Fr0pg,168
3
- pycoze/ai/vram_reserve.py,sha256=brgXP42yj3yaZRgW8pfgc4Jg9EivAhcbp5W4igVHcow,4256
4
- pycoze/ai/llm/__init__.py,sha256=kAXcQ7SefJYysgKeVInlwYZoDk0BPuEnUuixy-quD_A,127
2
+ pycoze/ai/__init__.py,sha256=amfVImcuiRRnGbmOjIqjXKiuH1H3zZPHOrJue2dEB8U,355
3
+ pycoze/ai/vram_reserve.py,sha256=DRxKzqf89fLAts0DzU8e19z9kecIF8OdMkQnJlCKZV0,4244
4
+ pycoze/ai/llm/__init__.py,sha256=5_AnOrzXI2V6ZZsLUWW1v5ATRWmJy53JLN9jfSZQXCg,249
5
5
  pycoze/ai/llm/chat.py,sha256=izriC7nCp5qeJRqcUVQBVqTHiH6MJS77ROzGBJufdNI,5133
6
6
  pycoze/ai/llm/text_to_image_prompt.py,sha256=0bx2C_YRvjAo7iphHGp1-pmGKsKqwur7dM0t3SiA8kA,3398
7
7
  pycoze/ai/llm/think.py,sha256=sUgTBdGzcZtL3r-Wx8M3lDuVUmDVz8g3qC0VU8uiKAI,5143
8
- pycoze/bot/__init__.py,sha256=6HHMxDQVOyZM9dtSjQm9tjGnhj4h7CixD0JOvEwTi48,41
9
- pycoze/bot/agent_chat.py,sha256=ZQeuNHwFAKB8XO4_R1lytf_kE43hvtI7AzOK4NPysWE,4199
10
- pycoze/bot/bot.py,sha256=fmcgnWcYTFeOxDuAwqWhFhOJzv4mAyJGLqbod-nkhJE,862
8
+ pycoze/bot/__init__.py,sha256=JxnRoCCqx_LFyVb3pLu0qYCsH8ZLuAaMXAtvVUuCHuE,78
9
+ pycoze/bot/agent_chat.py,sha256=ARXXsIVCTpmBojz2C4BR69nB0QhM6gkEngL3iq34JPo,4178
10
+ pycoze/bot/bot.py,sha256=_qmUTZ09FmRLifHrW5stDZWGVK6yuMEMBC3fmeYJnqk,844
11
11
  pycoze/bot/agent/__init__.py,sha256=3wE8_FFQS8j2BY-g9Cr-onV0POEvDRZaw_NCzpqrNus,265
12
12
  pycoze/bot/agent/agent.py,sha256=chUgNZh6v6375L_Y2dBEAaLJyfmw4SygYjVVrDN8VIk,3548
13
- pycoze/bot/agent/assistant.py,sha256=3iLxnRvf_ia0cP-FHK5Fv4ylltlnzPq1KscRCFYqjkc,1147
13
+ pycoze/bot/agent/assistant.py,sha256=5LIgPIVVzx6uIOWT5S_XDDyPPjPHRBBNpIU3GiOkVHc,1186
14
14
  pycoze/bot/agent/chat.py,sha256=mubOCAHvA6VtyE6N40elI6KrP6A69uB_G6ihE3G_Vi4,860
15
15
  pycoze/bot/agent/agent_types/__init__.py,sha256=zmU2Kmrv5mCdfg-QlPn2H6pWxbGeq8s7YTqLhpzJC6k,179
16
16
  pycoze/bot/agent/agent_types/const.py,sha256=BfUKPrhAHREoMLHuFNG2bCIEkC1-f7K0LEqNg4RwiRE,70
17
- pycoze/bot/agent/agent_types/openai_func_call_agent.py,sha256=_UpdFkBNcPspqZ5CTcPyUX7HETpTEhEFU3dCY7-Bj1I,6727
17
+ pycoze/bot/agent/agent_types/openai_func_call_agent.py,sha256=6aKnUQDINyUaCW24oa9Qjkm5w3ctZ6lxAgcE4m9YHwE,6701
18
18
  pycoze/reference/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
19
  pycoze/reference/bot.py,sha256=BDflTV3zYoZqWnJpD5lMM_1vU_5b20M3XiFt1p-RHWM,2427
20
20
  pycoze/reference/lib.py,sha256=0xQJTLTHedGzQBsjuTFNBVqYc4-8Yl65gGCrAhWyOX8,2155
21
21
  pycoze/reference/tool.py,sha256=9OxHawxjkh6S8eAOlGNrbfhkk5oRlRc7LBpnV6RmhYI,1722
22
22
  pycoze/reference/workflow.py,sha256=xIxv4EAeIR663bRfXkLhgBC0OhfMs5RdfvdORI80CoQ,2068
23
- pycoze/ui/__init__.py,sha256=RTEUVXdMo7AYC1wsyS1yl5sLi5vf4bNFv4iggghGEgg,469
23
+ pycoze/ui/__init__.py,sha256=uaXet23wUk64TcZjpBX8qOx4aUhwA_ucrmcxy7Q4Qr4,929
24
24
  pycoze/ui/base.py,sha256=sbBZGMUtlosWHQJpxMULa1bGByeSlcldtE9QXNyiJmM,1093
25
25
  pycoze/ui/color.py,sha256=cT9Ib8uNzkOKxyW0IwVj46o4LwdB1xgNCj1_Rou9d_4,854
26
26
  pycoze/ui/typ.py,sha256=NpT0FrbHvByOszBZMFtroRp7I7pN-38tYz_zPOPejF4,1723
27
27
  pycoze/ui/ui_def.py,sha256=lGWZGpzRoegP34D562PvK0EJHrmVZrlHW1JjsIG9A9Q,4521
28
- pycoze/utils/__init__.py,sha256=Gi5EnrWZGMD2JRejgV4c_VLCXyvA2wwBFI_niDF5MUE,110
29
- pycoze/utils/arg.py,sha256=GtfGbMTMdaK75Fwh6MpUe1pCA5X6Ep4LFG7a72YrzjI,525
30
- pycoze/utils/env.py,sha256=W04lhvTHhAAC6EldP6kk2xrctqtu8K6kl1vDLZDNeh8,561
28
+ pycoze/utils/__init__.py,sha256=6bQ3erQHKVOUk4ylyC-6PCASbAV0pYFQfC_f1KqkbUw,191
29
+ pycoze/utils/arg.py,sha256=jop1tBfe5hYkHW1NSpCeaZBEznkgguBscj_7M2dWfrs,503
30
+ pycoze/utils/env.py,sha256=5pWlXfM1F5ZU9hhv1rHlDEanjEW5wf0nbyez9bNRqqA,559
31
+ pycoze/utils/socket.py,sha256=CpyyC-zgibi_GvTeHP14VlqIfC7QuRE6BNbQH3Hb45c,2370
31
32
  pycoze/utils/text_or_file.py,sha256=gpxZVWt2DW6YiEg_MnMuwg36VNf3TX383QD_1oZNB0Y,551
32
- pycoze-0.1.252.dist-info/LICENSE,sha256=QStd_Qsd0-kAam_-sOesCIp_uKrGWeoKwt9M49NVkNU,1090
33
- pycoze-0.1.252.dist-info/METADATA,sha256=gMM8ZJkoR1PumLQ-5GhmUnswWSGJuB9xgeo6HIESNvo,699
34
- pycoze-0.1.252.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
35
- pycoze-0.1.252.dist-info/top_level.txt,sha256=76dPeDhKvOCleL3ZC5gl1-y4vdS1tT_U1hxWVAn7sFo,7
36
- pycoze-0.1.252.dist-info/RECORD,,
33
+ pycoze-0.1.254.dist-info/LICENSE,sha256=QStd_Qsd0-kAam_-sOesCIp_uKrGWeoKwt9M49NVkNU,1090
34
+ pycoze-0.1.254.dist-info/METADATA,sha256=hD65Lc7e26JX0Th3OYDX8OFcJPZcQCR90fy9doVnkno,699
35
+ pycoze-0.1.254.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
36
+ pycoze-0.1.254.dist-info/top_level.txt,sha256=76dPeDhKvOCleL3ZC5gl1-y4vdS1tT_U1hxWVAn7sFo,7
37
+ pycoze-0.1.254.dist-info/RECORD,,