beekeeper-core 1.0.11__py3-none-any.whl → 1.0.12.post1__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.
@@ -6,6 +6,7 @@ from typing import Callable
6
6
 
7
7
  from beekeeper.core.llms.types import ChatMessage
8
8
  from beekeeper.core.monitors.types import PayloadRecord
9
+ from beekeeper.core.prompts.utils import extract_template_vars
9
10
 
10
11
  logger = getLogger(__name__)
11
12
 
@@ -54,16 +55,29 @@ def llm_chat_monitor() -> Callable:
54
55
  system_messages[0].content if system_messages else None
55
56
  )
56
57
 
58
+ # Extract template variables values from the prompt template if available
59
+ template_var_values = (
60
+ extract_template_vars(
61
+ callback_manager_fns.prompt_template.template,
62
+ (system_message or ""),
63
+ )
64
+ if callback_manager_fns.prompt_template
65
+ else {}
66
+ )
67
+
57
68
  callback = callback_manager_fns(
58
69
  payload=PayloadRecord(
59
- input_text=(system_message or "") + last_user_message,
70
+ system_prompt=(system_message or ""),
71
+ input_text=last_user_message,
72
+ prompt_variables=list(template_var_values.keys()),
73
+ prompt_variable_values=template_var_values,
60
74
  generated_text=llm_return_val.message.content,
61
- generated_token_count=llm_return_val.raw["usage"][
62
- "completion_tokens"
63
- ],
64
75
  input_token_count=llm_return_val.raw["usage"][
65
76
  "prompt_tokens"
66
77
  ],
78
+ generated_token_count=llm_return_val.raw["usage"][
79
+ "completion_tokens"
80
+ ],
67
81
  response_time=response_time,
68
82
  )
69
83
  )
@@ -17,7 +17,7 @@ class PromptMonitor(BaseMonitor):
17
17
  """Abstract base class defining the interface for prompt observability."""
18
18
 
19
19
  def __init__(self, prompt_template: Optional[PromptTemplate] = None) -> None:
20
- self.prompt_template = prompt_template
20
+ self.prompt_template = PromptTemplate.from_value(prompt_template)
21
21
 
22
22
  @classmethod
23
23
  def class_name(cls) -> str:
@@ -4,8 +4,11 @@ from pydantic import BaseModel
4
4
  class PayloadRecord(BaseModel):
5
5
  """Payload record."""
6
6
 
7
+ system_prompt: str | None = None
7
8
  input_text: str
9
+ prompt_variables: list[str] | None = None
10
+ prompt_variable_values: dict[str, str] | None = None
8
11
  generated_text: str
9
- generated_token_count: int
10
12
  input_token_count: int
13
+ generated_token_count: int
11
14
  response_time: int
@@ -1,3 +1,4 @@
1
+ from typing import Optional
1
2
  from beekeeper.core.prompts.utils import SafeFormatter
2
3
  from pydantic import BaseModel
3
4
 
@@ -23,7 +24,12 @@ class PromptTemplate(BaseModel):
23
24
  super().__init__(template=template)
24
25
 
25
26
  @classmethod
26
- def from_value(cls, value: str) -> "PromptTemplate":
27
+ def from_value(
28
+ cls, value: Optional[str | "PromptTemplate"]
29
+ ) -> Optional["PromptTemplate"]:
30
+ if value is None:
31
+ return None
32
+
27
33
  if isinstance(value, cls):
28
34
  return value
29
35
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: beekeeper-core
3
- Version: 1.0.11
3
+ Version: 1.0.12.post1
4
4
  Summary: Load any data in one line of code and connect with AI applications
5
5
  Project-URL: Repository, https://github.com/beekeeper-ai/beekeeper
6
6
  Author-email: Leonardo Furnielis <leonardofurnielis@outlook.com>
@@ -13,16 +13,16 @@ beekeeper/core/guardrails/base.py,sha256=T-Ywr80iTL0EFYarCymFEEI3QkMsrw27JVh_040
13
13
  beekeeper/core/guardrails/types.py,sha256=7sgw1S5BZY0OqO-n04pHXPU7sG-NEZJlQyIeb2Fsq9Q,359
14
14
  beekeeper/core/llms/__init__.py,sha256=PN-5Y_Km_l2vO8v9d7iJ6_5xPCZJBh8UzwqRvQZlmTo,250
15
15
  beekeeper/core/llms/base.py,sha256=fxjOJJR3pNJxtvkICr0Nq9A9wnqf3SMM4cm4sAhA9-o,1308
16
- beekeeper/core/llms/decorators.py,sha256=5vrYwShFgdtkrKOeEjWNVW1CfkOnIJOYpEkDJx1xVLA,3276
16
+ beekeeper/core/llms/decorators.py,sha256=KzU5VrHrXpJBHWqDl0lUxeqrUHmaPiJovEeUTM_RNeU,4036
17
17
  beekeeper/core/llms/types.py,sha256=ttPCZ3VYtY6tx-E6VIOTicflYMJ3m0aw1znZeYAEVu8,1489
18
18
  beekeeper/core/monitors/__init__.py,sha256=TvoiIUJtWRO_4zqCICsFaGl_v4Tpvft1M542Bi13pOI,112
19
- beekeeper/core/monitors/base.py,sha256=3ooSfgVpWoRLe2TqizHMRK_bI5C-sla57aYJ47FmIXM,980
20
- beekeeper/core/monitors/types.py,sha256=s-4tB8OdeaCUIRvi6FLuib2u4Yl9evqQdCundNREXQY,217
19
+ beekeeper/core/monitors/base.py,sha256=_MY0AXCqlLpptwBEOpIfw-lCfRog4rXe_WALPvkHFNk,1007
20
+ beekeeper/core/monitors/types.py,sha256=kAA0g6YT_Menlc0HLPl87Rk9o4r2TybGfLlzuGlL40Y,357
21
21
  beekeeper/core/observers/__init__.py,sha256=Z5sDAajai4QLdGIrjq-vr5eJEBhriMMCw5u46j6xHvA,149
22
22
  beekeeper/core/observers/base.py,sha256=y1SE_0WQusKhVomFuZCkk42Jb7r93ZS6r_j8vs_Y_r4,1203
23
23
  beekeeper/core/observers/types.py,sha256=s-4tB8OdeaCUIRvi6FLuib2u4Yl9evqQdCundNREXQY,217
24
24
  beekeeper/core/prompts/__init__.py,sha256=kFp2N5giNEMA4hc3eZqstqaZu0c0BRAnP0NuF5aUaqI,85
25
- beekeeper/core/prompts/base.py,sha256=Edh77DuYm8lDhJvHazC5hgaiQEit-R4M-TWLX8-gIU0,1106
25
+ beekeeper/core/prompts/base.py,sha256=EZ_x52kDsR-7cMmu1qPoHyu0446yFpdVcfAIIY88EI8,1238
26
26
  beekeeper/core/prompts/utils.py,sha256=Cqpefzzxd6DxPbOKVyUCsIs-ibBGKhYU6ppYqhPT9vM,1378
27
27
  beekeeper/core/readers/__init__.py,sha256=vPCmWmK92LYL-R0LFcPqjOKFHqxW0xUP5r6M9GNxoqY,157
28
28
  beekeeper/core/readers/base.py,sha256=46VRNkCmKP2RWJT1-kRTSHG9SjY1xbhKUy1a7-OrgPg,418
@@ -38,6 +38,6 @@ beekeeper/core/tools/base.py,sha256=A6TXn7g3DAZMREYAobfVlyOBuJn_8mIeCByc5412L9Y,
38
38
  beekeeper/core/utils/pairwise.py,sha256=cpi8GItPFSYP4sjB5zgTFHi6JfBVWsMnNu8koA9VYQU,536
39
39
  beekeeper/core/vector_stores/__init__.py,sha256=R5SRG3YpOZqRwIfBLB8KVV6FALWqhIzIhCjRGj-bwPc,93
40
40
  beekeeper/core/vector_stores/base.py,sha256=YFW1ioZbFEcJovAh0ZCpHnj0eiXtZvqy_pj2lxPS92k,1652
41
- beekeeper_core-1.0.11.dist-info/METADATA,sha256=ZJcrMqUeLOri7mgulUQc8DXpxsxZLaSIC5DByjHwj5w,1331
42
- beekeeper_core-1.0.11.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
43
- beekeeper_core-1.0.11.dist-info/RECORD,,
41
+ beekeeper_core-1.0.12.post1.dist-info/METADATA,sha256=7AVnXsB891daoNzCr4jKefWltAIiYQNglQ4Mv8nBtW0,1337
42
+ beekeeper_core-1.0.12.post1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
43
+ beekeeper_core-1.0.12.post1.dist-info/RECORD,,