beekeeper-core 1.0.11__tar.gz → 1.0.12.post1__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.
Files changed (44) hide show
  1. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/PKG-INFO +1 -1
  2. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/beekeeper/core/llms/decorators.py +18 -4
  3. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/beekeeper/core/monitors/base.py +1 -1
  4. {beekeeper_core-1.0.11/beekeeper/core/observers → beekeeper_core-1.0.12.post1/beekeeper/core/monitors}/types.py +4 -1
  5. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/beekeeper/core/prompts/base.py +7 -1
  6. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/pyproject.toml +1 -1
  7. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/.gitignore +0 -0
  8. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/README.md +0 -0
  9. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/beekeeper/core/__init__.py +0 -0
  10. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/beekeeper/core/document/__init__.py +0 -0
  11. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/beekeeper/core/document/base.py +0 -0
  12. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/beekeeper/core/embeddings/__init__.py +0 -0
  13. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/beekeeper/core/embeddings/base.py +0 -0
  14. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/beekeeper/core/evaluation/__init__.py +0 -0
  15. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/beekeeper/core/evaluation/context_similarity.py +0 -0
  16. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/beekeeper/core/flows/__init__.py +0 -0
  17. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/beekeeper/core/flows/ingestion_flow.py +0 -0
  18. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/beekeeper/core/guardrails/__init__.py +0 -0
  19. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/beekeeper/core/guardrails/base.py +0 -0
  20. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/beekeeper/core/guardrails/types.py +0 -0
  21. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/beekeeper/core/llms/__init__.py +0 -0
  22. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/beekeeper/core/llms/base.py +0 -0
  23. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/beekeeper/core/llms/types.py +0 -0
  24. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/beekeeper/core/monitors/__init__.py +0 -0
  25. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/beekeeper/core/observers/__init__.py +0 -0
  26. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/beekeeper/core/observers/base.py +0 -0
  27. {beekeeper_core-1.0.11/beekeeper/core/monitors → beekeeper_core-1.0.12.post1/beekeeper/core/observers}/types.py +0 -0
  28. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/beekeeper/core/prompts/__init__.py +0 -0
  29. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/beekeeper/core/prompts/utils.py +0 -0
  30. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/beekeeper/core/readers/__init__.py +0 -0
  31. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/beekeeper/core/readers/base.py +0 -0
  32. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/beekeeper/core/readers/directory.py +0 -0
  33. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/beekeeper/core/schema.py +0 -0
  34. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/beekeeper/core/text_chunkers/__init__.py +0 -0
  35. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/beekeeper/core/text_chunkers/base.py +0 -0
  36. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/beekeeper/core/text_chunkers/semantic.py +0 -0
  37. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/beekeeper/core/text_chunkers/sentence.py +0 -0
  38. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/beekeeper/core/text_chunkers/token.py +0 -0
  39. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/beekeeper/core/text_chunkers/utils.py +0 -0
  40. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/beekeeper/core/tools/__init__.py +0 -0
  41. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/beekeeper/core/tools/base.py +0 -0
  42. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/beekeeper/core/utils/pairwise.py +0 -0
  43. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/beekeeper/core/vector_stores/__init__.py +0 -0
  44. {beekeeper_core-1.0.11 → beekeeper_core-1.0.12.post1}/beekeeper/core/vector_stores/base.py +0 -0
@@ -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>
@@ -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
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "beekeeper-core"
7
- version = "1.0.11"
7
+ version = "1.0.12.post1"
8
8
  description = "Load any data in one line of code and connect with AI applications"
9
9
  authors = [{ name = "Leonardo Furnielis", email = "leonardofurnielis@outlook.com" }]
10
10
  license = { text = "Apache-2.0" }