h-message-bus 0.0.14__py3-none-any.whl → 0.0.16__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.
@@ -15,7 +15,8 @@ class RequestMessageTopic(str, Enum):
15
15
  """
16
16
  # Telegram
17
17
  AI_SEND_TG_CHAT_SEND = "hai.ai.tg.chat.send"
18
- TG_SEND_AI_CHAT_SEND = "hai.tg.ai.chat.send"
18
+ TG_USER_SEND_AI_CHAT_SEND = "hai.tg.user.ai.chat.send"
19
+ TG_USER_SEND_AI_CHAT_SEND_RESPONSE = "hai.tg.user.ai.chat.send.response"
19
20
 
20
21
  # vector database
21
22
  AI_VECTORS_SAVE = "hai.ai.vectors.collection.save"
@@ -28,4 +29,7 @@ class RequestMessageTopic(str, Enum):
28
29
 
29
30
  # Twitter
30
31
  AI_TWITTER_GET_USER = "hai.ai.twitter.get.user"
31
- AI_TWITTER_GET_USER_RESPONSE = "hai.ai.twitter.get.user.response"
32
+ AI_TWITTER_GET_USER_RESPONSE = "hai.ai.twitter.get.user.response"
33
+
34
+ TWITTER_USER_SEND_AI_CHAT_SEND = "hai.twitter.user.ai.chat.send"
35
+ TWITTER_USER_SEND_AI_CHAT_SEND_RESPONSE = "hai.twitter.user.ai.chat.send.response"
@@ -0,0 +1,106 @@
1
+ from typing import Type, TypeVar, Dict, Any, Optional
2
+
3
+ from ..models.request_message_topic import RequestMessageTopic
4
+ from ...domain.models.hai_message import HaiMessage
5
+
6
+ T = TypeVar('T', bound='HaiMessage')
7
+
8
+
9
+ class TelegramUserMessageRequestMessage(HaiMessage):
10
+ """Message containing user message data"""
11
+
12
+ @classmethod
13
+ def create(cls: Type[T], topic: str, payload: Dict[Any, Any]) -> T:
14
+ """Create a message - inherited from HaiMessage"""
15
+ return super().create(topic=topic, payload=payload)
16
+
17
+ @classmethod
18
+ def create_message(cls, message: str, user_id: str, username: str,
19
+ source: str = "", replied_to_text: Optional[str] = None,
20
+ chat_id: Optional[int] = None,
21
+ message_id: Optional[int] = None) -> 'TelegramUserMessageRequestMessage':
22
+ """Create a message with user message data
23
+
24
+ Args:
25
+ message: The cleaned message content
26
+ user_id: The ID of the user
27
+ username: The username of the user
28
+ source: The source of the message
29
+ replied_to_text: The text being replied to, if any
30
+ chat_id: The Telegram chat ID
31
+ message_id: The Telegram message ID
32
+
33
+ Returns:
34
+ A new TelegramUserMessageRequestMessage instance
35
+ """
36
+ payload = {
37
+ "message": message,
38
+ "user_id": user_id,
39
+ "username": username,
40
+ "source": source
41
+ }
42
+
43
+ if replied_to_text:
44
+ payload["replied_to_text"] = replied_to_text
45
+
46
+ if chat_id is not None:
47
+ payload["chat_id"] = chat_id
48
+
49
+ if message_id is not None:
50
+ payload["message_id"] = message_id
51
+
52
+ return cls.create(
53
+ topic=RequestMessageTopic.TG_USER_SEND_AI_CHAT_SEND,
54
+ payload=payload
55
+ )
56
+
57
+ @property
58
+ def message(self) -> str:
59
+ """Get the message content from the payload"""
60
+ return self.payload.get("message", "")
61
+
62
+ @property
63
+ def user_id(self) -> str:
64
+ """Get the user ID from the payload"""
65
+ return self.payload.get("user_id", "")
66
+
67
+ @property
68
+ def username(self) -> str:
69
+ """Get the username from the payload"""
70
+ return self.payload.get("username", "")
71
+
72
+ @property
73
+ def source(self) -> str:
74
+ """Get the message source from the payload"""
75
+ return self.payload.get("source", "")
76
+
77
+ @property
78
+ def replied_to_text(self) -> str:
79
+ """Get the replied to text from the payload"""
80
+ return self.payload.get("replied_to_text", "")
81
+
82
+ @property
83
+ def chat_id(self) -> int:
84
+ """Get the Telegram chat ID from the payload"""
85
+ return self.payload.get("chat_id", 0)
86
+
87
+ @property
88
+ def message_id(self) -> int:
89
+ """Get the Telegram message ID from the payload"""
90
+ return self.payload.get("message_id", 0)
91
+
92
+ @classmethod
93
+ def from_hai_message(cls, message: HaiMessage) -> 'TelegramUserMessageRequestMessage':
94
+ """Create a TelegramUserMessageRequestMessage from a generic HaiMessage"""
95
+ payload = message.payload
96
+
97
+ return cls.create_message(
98
+ message=payload.get("message", ""),
99
+ user_id=payload.get("user_id", ""),
100
+ username=payload.get("username", ""),
101
+ source=payload.get("source", ""),
102
+ replied_to_text=payload.get("replied_to_text", ""),
103
+ chat_id=payload.get("chat_id"),
104
+ message_id=payload.get("message_id")
105
+ )
106
+
@@ -16,7 +16,7 @@ class VectorQueryCollectionResponseMessage(HaiMessage):
16
16
  return super().create(topic=topic, payload=payload)
17
17
 
18
18
  @classmethod
19
- def create_message(cls, result: List[dict[str, str]]) -> 'VectorQueryCollectionResponseMessage':
19
+ def create_message(cls, result: dict[int, dict[str, str]]) -> 'VectorQueryCollectionResponseMessage':
20
20
  """Create a message requesting Twitter user data"""
21
21
  result_list = json.dumps(result)
22
22
  return cls.create(
@@ -21,5 +21,5 @@ class VectorReadMetaDataRequestMessage(HaiMessage):
21
21
  )
22
22
 
23
23
  @classmethod
24
- def from_hai_message(cls, message: HaiMessage) -> 'VectorReadMetaDataRequestMessage':
24
+ def from_hai_message(cls) -> 'VectorReadMetaDataRequestMessage':
25
25
  return cls.create_message()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: h_message_bus
3
- Version: 0.0.14
3
+ Version: 0.0.16
4
4
  Summary: Message bus integration for HAI
5
5
  Author-email: shoebill <shoebill.hai@gmail.com>
6
6
  Classifier: Programming Language :: Python :: 3
@@ -13,21 +13,22 @@ h_message_bus/domain/event_messages/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQ
13
13
  h_message_bus/domain/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
14
  h_message_bus/domain/models/event_message_topic.py,sha256=fSjRMBwMD2RE9GBUud38XMrgLZcngURERrbuoAhQ0Hk,717
15
15
  h_message_bus/domain/models/hai_message.py,sha256=b5CfX7hi5uNq77IVnZzEi9iotc4b_U2MNYwV6JY7JcU,2146
16
- h_message_bus/domain/models/request_message_topic.py,sha256=5wCJzOFQjHG5bwlNbQzmMAFpVLZYPdPcKTXQMsAjC5M,1132
16
+ h_message_bus/domain/models/request_message_topic.py,sha256=bnq2TH9h8dVwGVN6VgeF_9m9hHHzYS8NSRgA7s5BbRI,1380
17
17
  h_message_bus/domain/models/vector_collection_metadata.py,sha256=fSy3ZQ-zkYISTpc-_M6XWf1JkufVAlzlS2ZT60TzA2s,891
18
18
  h_message_bus/domain/models/vector_query_answer.py,sha256=V1JR5Di7kIVbRF_eq2uPOhDnkZpQvo9pxD41V7MNV7Q,551
19
19
  h_message_bus/domain/request_messages/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
+ h_message_bus/domain/request_messages/tg_user_message_request_message.py,sha256=2ZQarcQEBWk2miDhgGx-p7htJ4vrqbsWtxuU6RRyf6U,3628
20
21
  h_message_bus/domain/request_messages/twitter_get_user_request_message.py,sha256=BX-ytvnEzL9u1Yks5iXIx60Hmv3UP7asOG2uYA0mfgE,1212
21
22
  h_message_bus/domain/request_messages/twitter_get_user_response_message.py,sha256=qO1cLtEmZyddv5pXHNgpnpO5t3Oex8cOG0hjGhOfru8,3302
22
23
  h_message_bus/domain/request_messages/vector_query_collection_request_message.py,sha256=6zne_IFs4aHZ_hJqbXGAaNU8PMilSVKSAg5G_jzane0,1803
23
- h_message_bus/domain/request_messages/vector_query_collection_response_message.py,sha256=8TtLrgxnQj3w7OqEzegykCfk2aobGVJySxiWRgbIfeQ,1771
24
- h_message_bus/domain/request_messages/vector_read_metadata_request_message.py,sha256=l321y6ffLOvGESRDalBXtzcOG4qq_iy3a_j4uZ_R5KY,897
24
+ h_message_bus/domain/request_messages/vector_query_collection_response_message.py,sha256=CzPweQBwSOrdn0I3qwdmsq7ryZJ07oqYUUVZMS3k798,1776
25
+ h_message_bus/domain/request_messages/vector_read_metadata_request_message.py,sha256=uDC6ANcGRvLzGYzEGGoGA6OLDJuHGnxCwvvCUEk4mUs,876
25
26
  h_message_bus/domain/request_messages/vector_read_metadata_response_message.py,sha256=ecsSiE-0Uar3tqDtwvPGyu352nuW9FDIqwAjQvnPHDI,1651
26
27
  h_message_bus/domain/request_messages/vector_save_request_message.py,sha256=Jd52Kc0OLsPLphfZtTesK6J1KqctC7Vm_0lmVxd99Ss,2098
27
28
  h_message_bus/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
29
  h_message_bus/infrastructure/nats_client_repository.py,sha256=lAapNaL0rqBr-9KaHcexuo5XLmSWRWspkJWXS9dMqPU,3371
29
30
  h_message_bus/infrastructure/nats_config.py,sha256=Yzqqd1bCfmUv_4FOnA1dvqIpakzV0BUL2_nXQcndWvo,1304
30
- h_message_bus-0.0.14.dist-info/METADATA,sha256=JZp3eFWrSFtJ7GVTvRQPKjEFw6WV5b5cWgkIuucwjsE,8834
31
- h_message_bus-0.0.14.dist-info/WHEEL,sha256=pxyMxgL8-pra_rKaQ4drOZAegBVuX-G_4nRHjjgWbmo,91
32
- h_message_bus-0.0.14.dist-info/top_level.txt,sha256=BArjhm_lwFR9yJJEIf-LT_X64psuLkXFdbpQRJUreFE,23
33
- h_message_bus-0.0.14.dist-info/RECORD,,
31
+ h_message_bus-0.0.16.dist-info/METADATA,sha256=yAyZcq0lCykyUwLOiGhi1l5zDDo7X_A7RAnMZbknUfg,8834
32
+ h_message_bus-0.0.16.dist-info/WHEEL,sha256=pxyMxgL8-pra_rKaQ4drOZAegBVuX-G_4nRHjjgWbmo,91
33
+ h_message_bus-0.0.16.dist-info/top_level.txt,sha256=BArjhm_lwFR9yJJEIf-LT_X64psuLkXFdbpQRJUreFE,23
34
+ h_message_bus-0.0.16.dist-info/RECORD,,