beekeeper-core 1.0.2__tar.gz → 1.0.4__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 (41) hide show
  1. {beekeeper_core-1.0.2 → beekeeper_core-1.0.4}/.gitignore +1 -1
  2. {beekeeper_core-1.0.2 → beekeeper_core-1.0.4}/PKG-INFO +1 -1
  3. {beekeeper_core-1.0.2 → beekeeper_core-1.0.4}/beekeeper/core/embeddings/base.py +23 -12
  4. {beekeeper_core-1.0.2 → beekeeper_core-1.0.4}/beekeeper/core/evaluation/context_similarity.py +2 -2
  5. {beekeeper_core-1.0.2 → beekeeper_core-1.0.4}/beekeeper/core/llms/__init__.py +1 -3
  6. {beekeeper_core-1.0.2 → beekeeper_core-1.0.4}/beekeeper/core/llms/base.py +3 -3
  7. beekeeper_core-1.0.4/beekeeper/core/monitors/__init__.py +3 -0
  8. {beekeeper_core-1.0.2/beekeeper/core/observers → beekeeper_core-1.0.4/beekeeper/core/monitors}/base.py +9 -9
  9. beekeeper_core-1.0.4/beekeeper/core/observers/__init__.py +3 -0
  10. beekeeper_core-1.0.4/beekeeper/core/observers/base.py +33 -0
  11. {beekeeper_core-1.0.2 → beekeeper_core-1.0.4}/beekeeper/core/prompts/__init__.py +1 -1
  12. {beekeeper_core-1.0.2 → beekeeper_core-1.0.4}/pyproject.toml +1 -1
  13. beekeeper_core-1.0.2/beekeeper/core/observers/__init__.py +0 -3
  14. {beekeeper_core-1.0.2 → beekeeper_core-1.0.4}/README.md +0 -0
  15. {beekeeper_core-1.0.2 → beekeeper_core-1.0.4}/beekeeper/core/__init__.py +0 -0
  16. {beekeeper_core-1.0.2 → beekeeper_core-1.0.4}/beekeeper/core/document/__init__.py +0 -0
  17. {beekeeper_core-1.0.2 → beekeeper_core-1.0.4}/beekeeper/core/document/base.py +0 -0
  18. {beekeeper_core-1.0.2 → beekeeper_core-1.0.4}/beekeeper/core/embeddings/__init__.py +0 -0
  19. {beekeeper_core-1.0.2 → beekeeper_core-1.0.4}/beekeeper/core/evaluation/__init__.py +0 -0
  20. {beekeeper_core-1.0.2 → beekeeper_core-1.0.4}/beekeeper/core/flows/__init__.py +0 -0
  21. {beekeeper_core-1.0.2 → beekeeper_core-1.0.4}/beekeeper/core/flows/ingestion_flow.py +0 -0
  22. {beekeeper_core-1.0.2 → beekeeper_core-1.0.4}/beekeeper/core/llms/decorators.py +0 -0
  23. {beekeeper_core-1.0.2 → beekeeper_core-1.0.4}/beekeeper/core/llms/types.py +0 -0
  24. {beekeeper_core-1.0.2/beekeeper/core/observers → beekeeper_core-1.0.4/beekeeper/core/monitors}/types.py +0 -0
  25. {beekeeper_core-1.0.2 → beekeeper_core-1.0.4}/beekeeper/core/prompts/base.py +0 -0
  26. {beekeeper_core-1.0.2 → beekeeper_core-1.0.4}/beekeeper/core/prompts/utils.py +0 -0
  27. {beekeeper_core-1.0.2 → beekeeper_core-1.0.4}/beekeeper/core/readers/__init__.py +0 -0
  28. {beekeeper_core-1.0.2 → beekeeper_core-1.0.4}/beekeeper/core/readers/base.py +0 -0
  29. {beekeeper_core-1.0.2 → beekeeper_core-1.0.4}/beekeeper/core/readers/directory.py +0 -0
  30. {beekeeper_core-1.0.2 → beekeeper_core-1.0.4}/beekeeper/core/schema.py +0 -0
  31. {beekeeper_core-1.0.2 → beekeeper_core-1.0.4}/beekeeper/core/text_chunkers/__init__.py +0 -0
  32. {beekeeper_core-1.0.2 → beekeeper_core-1.0.4}/beekeeper/core/text_chunkers/base.py +0 -0
  33. {beekeeper_core-1.0.2 → beekeeper_core-1.0.4}/beekeeper/core/text_chunkers/semantic.py +0 -0
  34. {beekeeper_core-1.0.2 → beekeeper_core-1.0.4}/beekeeper/core/text_chunkers/sentence.py +0 -0
  35. {beekeeper_core-1.0.2 → beekeeper_core-1.0.4}/beekeeper/core/text_chunkers/token.py +0 -0
  36. {beekeeper_core-1.0.2 → beekeeper_core-1.0.4}/beekeeper/core/text_chunkers/utils.py +0 -0
  37. {beekeeper_core-1.0.2 → beekeeper_core-1.0.4}/beekeeper/core/tools/__init__.py +0 -0
  38. {beekeeper_core-1.0.2 → beekeeper_core-1.0.4}/beekeeper/core/tools/base.py +0 -0
  39. {beekeeper_core-1.0.2 → beekeeper_core-1.0.4}/beekeeper/core/utils/pairwise.py +0 -0
  40. {beekeeper_core-1.0.2 → beekeeper_core-1.0.4}/beekeeper/core/vector_stores/__init__.py +0 -0
  41. {beekeeper_core-1.0.2 → beekeeper_core-1.0.4}/beekeeper/core/vector_stores/base.py +0 -0
@@ -73,7 +73,7 @@ target/
73
73
  # pyenv
74
74
  # For a library or package, you might want to ignore these files since the code is
75
75
  # intended to run in multiple environments; otherwise, check them in:
76
- # .python-version
76
+ .python-version
77
77
 
78
78
  # Environments
79
79
  .env
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: beekeeper-core
3
- Version: 1.0.2
3
+ Version: 1.0.4
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>
@@ -1,6 +1,6 @@
1
1
  from abc import ABC, abstractmethod
2
2
  from enum import Enum
3
- from typing import List
3
+ from typing import List, Union
4
4
 
5
5
  import numpy as np
6
6
  from beekeeper.core.document import Document
@@ -43,17 +43,20 @@ class BaseEmbedding(TransformerComponent, ABC):
43
43
  return "BaseEmbedding"
44
44
 
45
45
  @abstractmethod
46
- def embed_texts(self, texts: List[str]) -> List[Embedding]:
47
- """Embed a list of text strings."""
48
-
49
- def embed_text(self, query: str) -> Embedding:
50
- """Embed a single text string."""
51
- return self.embed_texts([query])[0]
46
+ def embed_text(
47
+ self, input: Union[str, List[str]]
48
+ ) -> Union[Embedding, List[Embedding]]:
49
+ """Embed one or more text strings."""
52
50
 
53
51
  def embed_documents(self, documents: List[Document]) -> List[Document]:
54
- """Embed a list of documents and set them in the 'embedding' attribute."""
52
+ """
53
+ Embed a list of documents and assign the computed embeddings to the 'embedding' attribute.
54
+
55
+ Args:
56
+ documents (List[Document]): List of documents to compute embeddings.
57
+ """
55
58
  texts = [document.get_content() for document in documents]
56
- embeddings = self.embed_texts(texts)
59
+ embeddings = self.embed_text(texts)
57
60
 
58
61
  for document, embedding in zip(documents, embeddings):
59
62
  document.embedding = embedding
@@ -61,7 +64,15 @@ class BaseEmbedding(TransformerComponent, ABC):
61
64
  return documents
62
65
 
63
66
  @deprecated(
64
- reason="'get_text_embedding()' is deprecated and will be removed in a future version. Use 'embed_text' instead.",
67
+ reason="'embed_texts()' is deprecated and will be removed in a future version. Use 'embed_text()' instead.",
68
+ version="1.0.3",
69
+ action="always",
70
+ )
71
+ def embed_texts(self, texts: List[str]) -> List[Embedding]:
72
+ return self.embed_text(texts)
73
+
74
+ @deprecated(
75
+ reason="'get_text_embedding()' is deprecated and will be removed in a future version. Use 'embed_text()' instead.",
65
76
  version="1.0.2",
66
77
  action="always",
67
78
  )
@@ -69,7 +80,7 @@ class BaseEmbedding(TransformerComponent, ABC):
69
80
  return self.embed_text(query)
70
81
 
71
82
  @deprecated(
72
- reason="'get_texts_embedding()' is deprecated and will be removed in a future version. Use 'embed_texts' instead.",
83
+ reason="'get_texts_embedding()' is deprecated and will be removed in a future version. Use 'embed_texts()' instead.",
73
84
  version="1.0.2",
74
85
  action="always",
75
86
  )
@@ -77,7 +88,7 @@ class BaseEmbedding(TransformerComponent, ABC):
77
88
  return self.embed_texts(texts)
78
89
 
79
90
  @deprecated(
80
- reason="'get_documents_embedding()' is deprecated and will be removed in a future version. Use 'embed_documents' instead.",
91
+ reason="'get_documents_embedding()' is deprecated and will be removed in a future version. Use 'embed_documents()' instead.",
81
92
  version="1.0.2",
82
93
  action="always",
83
94
  )
@@ -53,10 +53,10 @@ class ContextSimilarityEvaluator(BaseModel):
53
53
  )
54
54
 
55
55
  evaluation_result = {"contexts_score": [], "score": 0}
56
- candidate_embedding = self.embed_model.get_text_embedding(generated_text)
56
+ candidate_embedding = self.embed_model.embed_text(generated_text)
57
57
 
58
58
  for context in contexts:
59
- context_embedding = self.embed_model.get_text_embedding(context)
59
+ context_embedding = self.embed_model.embed_text(context)
60
60
  evaluation_result["contexts_score"].append(
61
61
  self.embed_model.similarity(
62
62
  candidate_embedding,
@@ -6,6 +6,4 @@ from beekeeper.core.llms.types import (
6
6
  MessageRole,
7
7
  )
8
8
 
9
- __all__ = (
10
- ["BaseLLM", "ChatMessage", "ChatResponse", "GenerateResponse", "MessageRole"],
11
- )
9
+ __all__ = ["BaseLLM", "ChatMessage", "ChatResponse", "GenerateResponse", "MessageRole"]
@@ -2,7 +2,7 @@ from abc import ABC, abstractmethod
2
2
  from typing import Any, List, Optional
3
3
 
4
4
  from beekeeper.core.llms.types import ChatMessage, ChatResponse, GenerateResponse
5
- from beekeeper.core.observers import BaseObserver
5
+ from beekeeper.core.monitors import BaseMonitor
6
6
  from pydantic import BaseModel
7
7
 
8
8
 
@@ -10,14 +10,14 @@ class BaseLLM(ABC, BaseModel):
10
10
  """Abstract base class defining the interface for LLMs."""
11
11
 
12
12
  model_config = {"arbitrary_types_allowed": True}
13
- callback_manager: Optional[BaseObserver] = None
13
+ callback_manager: Optional[BaseMonitor] = None
14
14
 
15
15
  @classmethod
16
16
  def class_name(cls) -> str:
17
17
  return "BaseLLM"
18
18
 
19
19
  def convert_chat_messages(self, messages: List[ChatMessage]) -> List[dict]:
20
- """Convert chat messages to LLM message format."""
20
+ """Convert ChatMessage to LLM message dict format."""
21
21
  return [message.model_dump() for message in messages]
22
22
 
23
23
  @abstractmethod
@@ -0,0 +1,3 @@
1
+ from beekeeper.core.monitors.base import BaseMonitor, PromptMonitor
2
+
3
+ __all__ = ["BaseMonitor", "PromptMonitor"]
@@ -1,19 +1,19 @@
1
1
  from abc import ABC, abstractmethod
2
2
  from typing import Optional
3
3
 
4
- from beekeeper.core.observers.types import PayloadRecord
4
+ from beekeeper.core.monitors.types import PayloadRecord
5
5
  from beekeeper.core.prompts import PromptTemplate
6
6
 
7
7
 
8
- class BaseObserver(ABC):
9
- """An interface for observability."""
8
+ class BaseMonitor(ABC):
9
+ """Abstract base class defining the interface for monitors."""
10
10
 
11
11
  @classmethod
12
12
  def class_name(cls) -> str:
13
- return "BaseObserver"
13
+ return "BaseMonitor"
14
14
 
15
15
 
16
- class ModelObserver(BaseObserver):
16
+ 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:
@@ -21,16 +21,16 @@ class ModelObserver(BaseObserver):
21
21
 
22
22
  @classmethod
23
23
  def class_name(cls) -> str:
24
- return "ModelObserver"
24
+ return "PromptMonitor"
25
25
 
26
26
  @abstractmethod
27
27
  def __call__(self, payload: PayloadRecord) -> None:
28
- """ModelObserver."""
28
+ """PromptMonitor."""
29
29
 
30
30
 
31
- class TelemetryObserver(BaseObserver):
31
+ class TelemetryMonitor(BaseMonitor):
32
32
  """Abstract base class defining the interface for telemetry observability."""
33
33
 
34
34
  @classmethod
35
35
  def class_name(cls) -> str:
36
- return "TelemetryObserver"
36
+ return "TelemetryMonitor"
@@ -0,0 +1,3 @@
1
+ from beekeeper.core.observers.base import BaseObserver, ModelObserver, PromptObserver
2
+
3
+ __all__ = ["BaseObserver", "ModelObserver", "PromptObserver"]
@@ -0,0 +1,33 @@
1
+ from beekeeper.core.monitors import BaseMonitor, PromptMonitor
2
+ from deprecated import deprecated
3
+
4
+
5
+ class BaseObserver(BaseMonitor):
6
+ """DEPRECATED: An interface for observability."""
7
+
8
+
9
+ @deprecated(
10
+ reason="'PromptObserver()' is deprecated and will be removed in a future version. Use 'PromptMonitor()' from 'beekeeper.core.monitors' instead.",
11
+ version="1.0.4",
12
+ action="always",
13
+ )
14
+ class PromptObserver(PromptMonitor):
15
+ """DEPRECATED: Abstract base class defining the interface for prompt observability."""
16
+
17
+
18
+ @deprecated(
19
+ reason="'ModelObserver()' is deprecated and will be removed in a future version. Use 'PromptMonitor()' from 'beekeeper.core.monitors' instead.",
20
+ version="1.0.3",
21
+ action="always",
22
+ )
23
+ class ModelObserver(PromptMonitor):
24
+ """DEPRECATED: This class is deprecated and kept only for backward compatibility."""
25
+
26
+
27
+ @deprecated(
28
+ reason="'TelemetryObserver()' is deprecated and will be removed in a future version. Use 'TelemetryMonitor()' from 'beekeeper.core.monitors' instead.",
29
+ version="1.0.4",
30
+ action="always",
31
+ )
32
+ class TelemetryObserver(BaseMonitor):
33
+ """DEPRECATED: Abstract base class defining the interface for telemetry observability."""
@@ -1,3 +1,3 @@
1
1
  from beekeeper.core.prompts.base import PromptTemplate
2
2
 
3
- __all__ = (["PromptTemplate"],)
3
+ __all__ = ["PromptTemplate"]
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "beekeeper-core"
7
- version = "1.0.2"
7
+ version = "1.0.4"
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" }
@@ -1,3 +0,0 @@
1
- from beekeeper.core.observers.base import BaseObserver, ModelObserver
2
-
3
- __all__ = (["BaseObserver", "ModelObserver"],)
File without changes