h-message-bus 0.0.19__py3-none-any.whl → 0.0.20__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.
@@ -14,22 +14,32 @@ class RequestMessageTopic(str, Enum):
14
14
 
15
15
  """
16
16
  # Telegram
17
- AI_TG_CHAT_SEND = "hai.ai.tg.chat.send"
18
- TG_AI_USER_CHAT_SEND = "hai.tg.ai.user.chat.send"
19
- AI_TG_CHAT_REPLY = "hai.ai.tg.chat.reply"
17
+ TG_CHAT_SEND = "hai.tg.chat.send"
18
+ TG_USER_CHAT_SEND = "hai.tg.user.chat.send"
19
+ TG_CHAT_REPLY = "hai.tg.chat.reply"
20
20
 
21
21
  # vector database
22
- AI_VECTORS_SAVE = "hai.ai.vectors.collection.save"
22
+ VECTORS_SAVE = "hai.vectors.save"
23
23
 
24
- AI_VECTORS_QUERY = "hai.ai.vectors.collection.query"
25
- AI_VECTORS_QUERY_RESPONSE = "hai.ai.vectors.collection.query.response"
24
+ VECTORS_QUERY = "hai.vectors.query"
25
+ VECTORS_QUERY_RESPONSE = "hai.vectors.query.response"
26
26
 
27
- AI_VECTORS_METADATA_READ = "hai.ai.vectors.metadata.read"
28
- AI_VECTORS_METADATA_READ_RESPONSE = "hai.ai.vectors.metadata.read.response"
27
+ VECTORS_METADATA_READ = "hai.vectors.metadata.read"
28
+ VECTORS_METADATA_READ_RESPONSE = "hai.vectors.metadata.read.response"
29
29
 
30
30
  # Twitter
31
- AI_TWITTER_GET_USER = "hai.ai.twitter.get.user"
32
- AI_TWITTER_GET_USER_RESPONSE = "hai.ai.twitter.get.user.response"
31
+ TWITTER_GET_USER = "hai.twitter.get.user"
32
+ TWITTER_GET_USER_RESPONSE = "hai.twitter.get.user.response"
33
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"
34
+ TWITTER_USER_SEND_AI_CHAT_SEND = "hai.twitter.user.chat.send"
35
+ TWITTER_USER_SEND_AI_CHAT_SEND_RESPONSE = "hai.twitter.user.chat.send.response"
36
+
37
+ # tools
38
+ WEB_SEARCH = "hai.tools.web.search"
39
+ WEB_SEARCH_RESPONSE = "hai.tools.web.search.response"
40
+
41
+ WEB_GET_DOCS = "hai.tools.web.get.docs"
42
+ WEB_GET_DOCS_RESPONSE = "hai.tools.web.get.docs.response"
43
+
44
+ WEB_FIND_RELATED = "hai.tools.web.find.related"
45
+ WEB_FIND_RELATED_RESPONSE = "hai.tools.web.find.related.response"
@@ -23,7 +23,7 @@ class TelegramMessageRequestMessage(HaiMessage):
23
23
  }
24
24
 
25
25
  return cls.create(
26
- topic=RequestMessageTopic.AI_TG_CHAT_SEND,
26
+ topic=RequestMessageTopic.TG_CHAT_SEND,
27
27
  payload=payload
28
28
  )
29
29
 
@@ -25,7 +25,7 @@ class TelegramUserMessageReplyRequestMessage(HaiMessage):
25
25
  }
26
26
 
27
27
  return cls.create(
28
- topic=RequestMessageTopic.AI_TG_CHAT_REPLY,
28
+ topic=RequestMessageTopic.TG_CHAT_REPLY,
29
29
  payload=payload
30
30
  )
31
31
 
@@ -16,16 +16,15 @@ class TelegramUserMessageRequestMessage(HaiMessage):
16
16
 
17
17
  @classmethod
18
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':
19
+ chat_id: str,
20
+ message_id: str,
21
+ replied_to_text: Optional[str] = None) -> 'TelegramUserMessageRequestMessage':
22
22
  """Create a message with user message data
23
23
 
24
24
  Args:
25
25
  message: The cleaned message content
26
26
  user_id: The ID of the user
27
27
  username: The username of the user
28
- source: The source of the message
29
28
  replied_to_text: The text being replied to, if any
30
29
  chat_id: The Telegram chat ID
31
30
  message_id: The Telegram message ID
@@ -37,20 +36,15 @@ class TelegramUserMessageRequestMessage(HaiMessage):
37
36
  "message": message,
38
37
  "user_id": user_id,
39
38
  "username": username,
40
- "source": source
39
+ "chat_id" : chat_id,
40
+ "message_id" : message_id
41
41
  }
42
42
 
43
43
  if replied_to_text:
44
44
  payload["replied_to_text"] = replied_to_text
45
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
46
  return cls.create(
53
- topic=RequestMessageTopic.TG_AI_USER_CHAT_SEND,
47
+ topic=RequestMessageTopic.TG_USER_CHAT_SEND,
54
48
  payload=payload
55
49
  )
56
50
 
@@ -69,11 +63,6 @@ class TelegramUserMessageRequestMessage(HaiMessage):
69
63
  """Get the username from the payload"""
70
64
  return self.payload.get("username", "")
71
65
 
72
- @property
73
- def source(self) -> str:
74
- """Get the message source from the payload"""
75
- return self.payload.get("source", "")
76
-
77
66
  @property
78
67
  def replied_to_text(self) -> str:
79
68
  """Get the replied to text from the payload"""
@@ -97,7 +86,6 @@ class TelegramUserMessageRequestMessage(HaiMessage):
97
86
  message=payload.get("message", ""),
98
87
  user_id=payload.get("user_id", ""),
99
88
  username=payload.get("username", ""),
100
- source=payload.get("source", ""),
101
89
  replied_to_text=payload.get("replied_to_text", ""),
102
90
  chat_id=payload.get("chat_id"),
103
91
  message_id=payload.get("message_id")
@@ -17,7 +17,7 @@ class TwitterGetUserRequestMessage(HaiMessage):
17
17
  def create_message(cls, username: str) -> 'TwitterGetUserRequestMessage':
18
18
  """Create a message requesting Twitter user data"""
19
19
  return cls.create(
20
- topic=RequestMessageTopic.AI_TWITTER_GET_USER,
20
+ topic=RequestMessageTopic.TWITTER_GET_USER,
21
21
  payload={"username": username},
22
22
  )
23
23
 
@@ -17,7 +17,7 @@ class TwitterGetUserResponseMessage(HaiMessage):
17
17
  def create_message(cls, user_id: str, screen_name: str, description: str, followers_count: str, like_count: str, is_verified: str, url: str, bio_urls: [str]) -> 'TwitterGetUserResponseMessage':
18
18
  """Create a response message from Twitter user information"""
19
19
  return cls.create(
20
- topic=RequestMessageTopic.AI_TWITTER_GET_USER_RESPONSE,
20
+ topic=RequestMessageTopic.TWITTER_GET_USER_RESPONSE,
21
21
  payload={
22
22
  'id': user_id,
23
23
  'screen_name': screen_name,
@@ -17,7 +17,7 @@ class VectorQueryCollectionRequestMessage(HaiMessage):
17
17
  def create_message(cls, collection_name: str, query: str, top_n: str) -> 'VectorQueryCollectionRequestMessage':
18
18
  """Create a message requesting Twitter user data"""
19
19
  return cls.create(
20
- topic=RequestMessageTopic.AI_VECTORS_QUERY,
20
+ topic=RequestMessageTopic.VECTORS_QUERY,
21
21
  payload={
22
22
  "collection_name": collection_name,
23
23
  "query": query,
@@ -20,7 +20,7 @@ class VectorQueryCollectionResponseMessage(HaiMessage):
20
20
  """Create a message requesting Twitter user data"""
21
21
  result_list = json.dumps(result)
22
22
  return cls.create(
23
- topic=RequestMessageTopic.AI_VECTORS_QUERY_RESPONSE,
23
+ topic=RequestMessageTopic.VECTORS_QUERY_RESPONSE,
24
24
  payload={
25
25
  "result": result_list,
26
26
  },
@@ -16,7 +16,7 @@ class VectorReadMetaDataRequestMessage(HaiMessage):
16
16
  def create_message(cls) -> 'VectorReadMetaDataRequestMessage':
17
17
  """Create a message requesting Twitter user data"""
18
18
  return cls.create(
19
- topic=RequestMessageTopic.AI_VECTORS_METADATA_READ,
19
+ topic=RequestMessageTopic.VECTORS_METADATA_READ,
20
20
  payload={},
21
21
  )
22
22
 
@@ -19,7 +19,7 @@ class VectorReadMetaDataResponseMessage(HaiMessage):
19
19
  def create_message(cls, metadata: List[dict[str, str]]) -> 'VectorReadMetaDataResponseMessage':
20
20
  metadata_result = json.dumps(metadata)
21
21
  return cls.create(
22
- topic=RequestMessageTopic.AI_VECTORS_METADATA_READ_RESPONSE,
22
+ topic=RequestMessageTopic.VECTORS_METADATA_READ_RESPONSE,
23
23
  payload={
24
24
  "metadata": metadata_result,
25
25
  },
@@ -17,7 +17,7 @@ class VectorSaveRequestMessage(HaiMessage):
17
17
  def create_message(cls, collection_name: str, document_id: str, content: str, metadata: dict[str,str]) -> 'VectorSaveRequestMessage':
18
18
  """Create a message requesting Twitter user data"""
19
19
  return cls.create(
20
- topic=RequestMessageTopic.AI_VECTORS_SAVE,
20
+ topic=RequestMessageTopic.VECTORS_SAVE,
21
21
  payload={
22
22
  "collection_name": collection_name,
23
23
  "document_id": document_id,
@@ -28,27 +28,27 @@ class VectorSaveRequestMessage(HaiMessage):
28
28
 
29
29
  @property
30
30
  def collection_name(self) -> str:
31
- """Get the collection name from payload"""
31
+ """Get the collection name from the payload"""
32
32
  return self.payload.get("collection_name")
33
33
 
34
34
  @property
35
35
  def document_id(self) -> str:
36
- """Get the document ID from payload"""
36
+ """Get the document ID from the payload"""
37
37
  return self.payload.get("document_id")
38
38
 
39
39
  @property
40
40
  def content(self) -> str:
41
- """Get the content from payload"""
41
+ """Get the content from the payload"""
42
42
  return self.payload.get("content")
43
43
 
44
44
  @property
45
45
  def metadata(self) -> dict[str, str]:
46
- """Get the metadata from payload"""
46
+ """Get the metadata from the payload"""
47
47
  return self.payload.get("metadata")
48
48
 
49
49
  @classmethod
50
50
  def from_hai_message(cls, message: HaiMessage) -> 'VectorSaveRequestMessage':
51
- # Extract necessary fields from the message payload
51
+ # Extract the necessary fields from the message payload
52
52
  payload = message.payload
53
53
 
54
54
  return cls.create_message(
@@ -0,0 +1,40 @@
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
+ class WebGetDocsRequestMessage(HaiMessage):
9
+
10
+ @classmethod
11
+ def create(cls: Type[T], topic: str, payload: Dict[Any, Any]) -> T:
12
+ """Create a message - inherited from HaiMessage"""
13
+ return super().create(topic=topic, payload=payload)
14
+
15
+ @classmethod
16
+ def create_message(cls, twitter_user: Optional[str], root_url: Optional[str]) -> 'WebGetDocsRequestMessage':
17
+ return cls.create(
18
+ topic=RequestMessageTopic.WEB_GET_DOCS,
19
+ payload={
20
+ "twitter_user": twitter_user,
21
+ "root_url": root_url,
22
+ },
23
+ )
24
+
25
+ @property
26
+ def twitter_user(self) -> str:
27
+ return self.payload.get("twitter_user", "")
28
+
29
+ @property
30
+ def root_url(self) -> str:
31
+ return self.payload.get("root_url", "")
32
+
33
+ @classmethod
34
+ def from_hai_message(cls, message: HaiMessage) -> 'WebGetDocsRequestMessage':
35
+ payload = message.payload
36
+
37
+ return cls.create_message(
38
+ twitter_user=payload.get("twitter_user", ""),
39
+ root_url=payload.get("root_url", "")
40
+ )
@@ -0,0 +1,32 @@
1
+ from typing import Type, TypeVar, Dict, Any
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
+ class WebSearchRequestMessage(HaiMessage):
9
+
10
+ @classmethod
11
+ def create(cls: Type[T], topic: str, payload: Dict[Any, Any]) -> T:
12
+ """Create a message - inherited from HaiMessage"""
13
+ return super().create(topic=topic, payload=payload)
14
+
15
+ @classmethod
16
+ def create_message(cls, query: str) -> 'WebSearchRequestMessage':
17
+ return cls.create(
18
+ topic=RequestMessageTopic.WEB_SEARCH,
19
+ payload={"query": query},
20
+ )
21
+
22
+ @property
23
+ def query(self) -> str:
24
+ return self.payload.get("query", "")
25
+
26
+ @classmethod
27
+ def from_hai_message(cls, message: HaiMessage) -> 'WebSearchRequestMessage':
28
+ payload = message.payload
29
+
30
+ return cls.create_message(
31
+ query=payload.get("query", "")
32
+ )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: h_message_bus
3
- Version: 0.0.19
3
+ Version: 0.0.20
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,24 +13,26 @@ 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=bg1frk2_X3SHQoTFK-9qzfTgXMh1Tv5U-tqpdqzcdjk,1339
16
+ h_message_bus/domain/models/request_message_topic.py,sha256=u83SNRAi0yEuCP4yx9a0rlINjrZtgakzO3jyM3qH9Tk,1591
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_message_request_message.py,sha256=J0q0u5kWWXuEeKx3dptDfO53rXczZYn-52_BPwwjOtg,1460
21
- h_message_bus/domain/request_messages/tg_user_message_reply_request_message.py,sha256=UQRByX4tDEJSoYfVLzbG0vnaVvzx3-_hLjG1eBq9wpg,1780
22
- h_message_bus/domain/request_messages/tg_user_message_request_message.py,sha256=xg6GBjMYw6FfPC08UBaLulQMxmoqJj6UNjdtFS1Dqtk,3539
23
- h_message_bus/domain/request_messages/twitter_get_user_request_message.py,sha256=BX-ytvnEzL9u1Yks5iXIx60Hmv3UP7asOG2uYA0mfgE,1212
24
- h_message_bus/domain/request_messages/twitter_get_user_response_message.py,sha256=qO1cLtEmZyddv5pXHNgpnpO5t3Oex8cOG0hjGhOfru8,3302
25
- h_message_bus/domain/request_messages/vector_query_collection_request_message.py,sha256=6zne_IFs4aHZ_hJqbXGAaNU8PMilSVKSAg5G_jzane0,1803
26
- h_message_bus/domain/request_messages/vector_query_collection_response_message.py,sha256=j-7RaiZb9i8WI0VIeoAnhzxP0iXaxGUisucaHTcIVtE,1770
27
- h_message_bus/domain/request_messages/vector_read_metadata_request_message.py,sha256=uDC6ANcGRvLzGYzEGGoGA6OLDJuHGnxCwvvCUEk4mUs,876
28
- h_message_bus/domain/request_messages/vector_read_metadata_response_message.py,sha256=ecsSiE-0Uar3tqDtwvPGyu352nuW9FDIqwAjQvnPHDI,1651
29
- h_message_bus/domain/request_messages/vector_save_request_message.py,sha256=Jd52Kc0OLsPLphfZtTesK6J1KqctC7Vm_0lmVxd99Ss,2098
20
+ h_message_bus/domain/request_messages/tg_message_request_message.py,sha256=0J_PUA9wr0wZEjVBwgAA5YN-RiNEE54bnzyCvheLkmc,1457
21
+ h_message_bus/domain/request_messages/tg_user_message_reply_request_message.py,sha256=XQ4IfaPVaKoagCASxuDHvsqH4nIWE0mAKan_Z6_kba8,1777
22
+ h_message_bus/domain/request_messages/tg_user_message_request_message.py,sha256=pHmmGJpMEnwzbTVVvoD6UOMflQOuQKgErZA9MyRwWt8,3121
23
+ h_message_bus/domain/request_messages/twitter_get_user_request_message.py,sha256=OfC93X1M0vgMU26BBrpA7AdlY32IFdVG_vRT8BdhQOc,1209
24
+ h_message_bus/domain/request_messages/twitter_get_user_response_message.py,sha256=dXhK_JN3Sz6hN8EpDcj7gq6htJ8Yu5G-Cal73XXcEng,3299
25
+ h_message_bus/domain/request_messages/vector_query_collection_request_message.py,sha256=x1J8SLVBlNS4TFzVJY9UG7mo94l9i4azndwzAlyktZw,1800
26
+ h_message_bus/domain/request_messages/vector_query_collection_response_message.py,sha256=Q589JT_QE-oVsTh1GEmK__3Hct7ijfM1UTcPi0YTGn8,1767
27
+ h_message_bus/domain/request_messages/vector_read_metadata_request_message.py,sha256=P9t6pcynS112F9_Jmbvw8wlfXhs5NOnV48SUVq92xt8,873
28
+ h_message_bus/domain/request_messages/vector_read_metadata_response_message.py,sha256=G2TDV_lbUM7RVrvEaYQAP-3I36J0pqLXqxnqwVBMWhk,1648
29
+ h_message_bus/domain/request_messages/vector_save_request_message.py,sha256=NvRdSUtE-X3sQTfJg7_QLic3PtbpgYUH2lQrNSC1ggg,2115
30
+ h_message_bus/domain/request_messages/web_get_docs_request_message.py,sha256=9Pw-szMBVF7yuJGSZO3tFoiGk9Kf_sz5Uv5JDVbPEVA,1324
31
+ h_message_bus/domain/request_messages/web_search_request_message.py,sha256=ZoB4idrFEs7HQ6IRxmwKrrfHWe3GlGF4LuOK68K5NEM,1000
30
32
  h_message_bus/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
33
  h_message_bus/infrastructure/nats_client_repository.py,sha256=lAapNaL0rqBr-9KaHcexuo5XLmSWRWspkJWXS9dMqPU,3371
32
34
  h_message_bus/infrastructure/nats_config.py,sha256=Yzqqd1bCfmUv_4FOnA1dvqIpakzV0BUL2_nXQcndWvo,1304
33
- h_message_bus-0.0.19.dist-info/METADATA,sha256=PlyIETAeGDKQrTjz9ie2h76YJ8bV7RoIIpP9O9wcfeM,8834
34
- h_message_bus-0.0.19.dist-info/WHEEL,sha256=pxyMxgL8-pra_rKaQ4drOZAegBVuX-G_4nRHjjgWbmo,91
35
- h_message_bus-0.0.19.dist-info/top_level.txt,sha256=BArjhm_lwFR9yJJEIf-LT_X64psuLkXFdbpQRJUreFE,23
36
- h_message_bus-0.0.19.dist-info/RECORD,,
35
+ h_message_bus-0.0.20.dist-info/METADATA,sha256=N09DwBVYf3hV1AjK_A9iS6q7FsAz-CvDDcojyKzEigk,8834
36
+ h_message_bus-0.0.20.dist-info/WHEEL,sha256=SmOxYU7pzNKBqASvQJ7DjX3XGUF92lrGhMb3R6_iiqI,91
37
+ h_message_bus-0.0.20.dist-info/top_level.txt,sha256=BArjhm_lwFR9yJJEIf-LT_X64psuLkXFdbpQRJUreFE,23
38
+ h_message_bus-0.0.20.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (79.0.0)
2
+ Generator: setuptools (79.0.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5