igbot-base 0.0.20__tar.gz → 0.0.22__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 (25) hide show
  1. {igbot_base-0.0.20 → igbot_base-0.0.22}/PKG-INFO +1 -1
  2. {igbot_base-0.0.20 → igbot_base-0.0.22}/igbot_base/llmmemory.py +1 -1
  3. {igbot_base-0.0.20 → igbot_base-0.0.22}/igbot_base/models.py +1 -1
  4. igbot_base-0.0.22/igbot_base/tokenizer.py +27 -0
  5. {igbot_base-0.0.20 → igbot_base-0.0.22}/igbot_base.egg-info/PKG-INFO +1 -1
  6. {igbot_base-0.0.20 → igbot_base-0.0.22}/pyproject.toml +1 -1
  7. igbot_base-0.0.20/igbot_base/tokenizer.py +0 -16
  8. {igbot_base-0.0.20 → igbot_base-0.0.22}/igbot_base/__init__.py +0 -0
  9. {igbot_base-0.0.20 → igbot_base-0.0.22}/igbot_base/agent.py +0 -0
  10. {igbot_base-0.0.20 → igbot_base-0.0.22}/igbot_base/agent_response.py +0 -0
  11. {igbot_base-0.0.20 → igbot_base-0.0.22}/igbot_base/base_exception.py +0 -0
  12. {igbot_base-0.0.20 → igbot_base-0.0.22}/igbot_base/exception_handler.py +0 -0
  13. {igbot_base-0.0.20 → igbot_base-0.0.22}/igbot_base/llm.py +0 -0
  14. {igbot_base-0.0.20 → igbot_base-0.0.22}/igbot_base/logging_adapter.py +0 -0
  15. {igbot_base-0.0.20 → igbot_base-0.0.22}/igbot_base/persistable_memory.py +0 -0
  16. {igbot_base-0.0.20 → igbot_base-0.0.22}/igbot_base/prompt_template.py +0 -0
  17. {igbot_base-0.0.20 → igbot_base-0.0.22}/igbot_base/response_formats.py +0 -0
  18. {igbot_base-0.0.20 → igbot_base-0.0.22}/igbot_base/retriever.py +0 -0
  19. {igbot_base-0.0.20 → igbot_base-0.0.22}/igbot_base/tool.py +0 -0
  20. {igbot_base-0.0.20 → igbot_base-0.0.22}/igbot_base/vectorstore.py +0 -0
  21. {igbot_base-0.0.20 → igbot_base-0.0.22}/igbot_base.egg-info/SOURCES.txt +0 -0
  22. {igbot_base-0.0.20 → igbot_base-0.0.22}/igbot_base.egg-info/dependency_links.txt +0 -0
  23. {igbot_base-0.0.20 → igbot_base-0.0.22}/igbot_base.egg-info/requires.txt +0 -0
  24. {igbot_base-0.0.20 → igbot_base-0.0.22}/igbot_base.egg-info/top_level.txt +0 -0
  25. {igbot_base-0.0.20 → igbot_base-0.0.22}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: igbot_base
3
- Version: 0.0.20
3
+ Version: 0.0.22
4
4
  Summary: Base classes for igbot
5
5
  Author-email: Igor Kopeć <igor.kopec95@gmail.com>
6
6
  License: LGPL-3.0-or-later
@@ -24,7 +24,7 @@ class LlmMemory(ABC):
24
24
  pass
25
25
 
26
26
  @abstractmethod
27
- def append_tool(self, tool_call_id: str, content: str):
27
+ def append_tool_response(self, tool_call_id: str, content: str):
28
28
  pass
29
29
 
30
30
  @abstractmethod
@@ -1,7 +1,7 @@
1
1
  from enum import Enum
2
2
  from openai import OpenAI
3
3
 
4
- from tokenizer import BaseTokenizer, OpenAiTokenizer
4
+ from igbot_base.tokenizer import BaseTokenizer, OpenAiTokenizer
5
5
 
6
6
 
7
7
  class ModelInfo:
@@ -0,0 +1,27 @@
1
+ from abc import ABC, abstractmethod
2
+ from typing import Union, Dict
3
+ import json
4
+ import tiktoken
5
+
6
+
7
+ class BaseTokenizer(ABC):
8
+ @abstractmethod
9
+ def count_tokens(self, data: Union[str, Dict, None]) -> int:
10
+ pass
11
+
12
+
13
+ class OpenAiTokenizer(BaseTokenizer):
14
+
15
+ def __init__(self, model_name):
16
+ self.__tokenizer = tiktoken.encoding_for_model(model_name)
17
+
18
+ def count_tokens(self, data: Union[str: Dict, None]) -> int:
19
+ if data is None:
20
+ return 0
21
+ elif isinstance(data, str):
22
+ return len(self.__tokenizer.encode(data))
23
+ elif isinstance(data, dict):
24
+ dict_as_str = json.dumps(data, separators=(",", ":"))
25
+ return len(self.__tokenizer.encode(dict_as_str))
26
+ else:
27
+ raise TypeError("Expected either a string, a dictionary, or None.")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: igbot_base
3
- Version: 0.0.20
3
+ Version: 0.0.22
4
4
  Summary: Base classes for igbot
5
5
  Author-email: Igor Kopeć <igor.kopec95@gmail.com>
6
6
  License: LGPL-3.0-or-later
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "igbot_base"
7
- version = "0.0.20"
7
+ version = "0.0.22"
8
8
  description = "Base classes for igbot"
9
9
  authors = [{name = "Igor Kopeć", email = "igor.kopec95@gmail.com"}]
10
10
  license={text="LGPL-3.0-or-later"}
@@ -1,16 +0,0 @@
1
- from abc import ABC, abstractmethod
2
- import tiktoken
3
-
4
-
5
- class BaseTokenizer(ABC):
6
- @abstractmethod
7
- def count_tokens(self, text: str):
8
- pass
9
-
10
-
11
- class OpenAiTokenizer(BaseTokenizer):
12
- def __init__(self, model_name):
13
- self.__tokenizer = tiktoken.encoding_for_model(model_name)
14
-
15
- def count_tokens(self, text: str):
16
- return len(self.__tokenizer.encode(text))
File without changes