blue-assistant 4.9.1__tar.gz → 4.21.1__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. {blue_assistant-4.9.1/blue_assistant.egg-info → blue_assistant-4.21.1}/PKG-INFO +3 -2
  2. {blue_assistant-4.9.1 → blue_assistant-4.21.1}/README.md +1 -1
  3. {blue_assistant-4.9.1 → blue_assistant-4.21.1}/blue_assistant/.abcli/chat.sh +1 -1
  4. {blue_assistant-4.9.1 → blue_assistant-4.21.1}/blue_assistant/__init__.py +1 -1
  5. blue_assistant-4.21.1/blue_assistant/chat/context.py +109 -0
  6. {blue_assistant-4.9.1 → blue_assistant-4.21.1}/blue_assistant/chat/functions.py +13 -2
  7. {blue_assistant-4.9.1 → blue_assistant-4.21.1/blue_assistant.egg-info}/PKG-INFO +3 -2
  8. {blue_assistant-4.9.1 → blue_assistant-4.21.1}/blue_assistant.egg-info/SOURCES.txt +1 -0
  9. {blue_assistant-4.9.1 → blue_assistant-4.21.1}/blue_assistant.egg-info/requires.txt +1 -0
  10. {blue_assistant-4.9.1 → blue_assistant-4.21.1}/requirements.txt +1 -0
  11. {blue_assistant-4.9.1 → blue_assistant-4.21.1}/LICENSE +0 -0
  12. {blue_assistant-4.9.1 → blue_assistant-4.21.1}/MANIFEST.in +0 -0
  13. {blue_assistant-4.9.1 → blue_assistant-4.21.1}/blue_assistant/.abcli/abcli.sh +0 -0
  14. {blue_assistant-4.9.1 → blue_assistant-4.21.1}/blue_assistant/.abcli/actions.sh +0 -0
  15. {blue_assistant-4.9.1 → blue_assistant-4.21.1}/blue_assistant/.abcli/alias.sh +0 -0
  16. {blue_assistant-4.9.1 → blue_assistant-4.21.1}/blue_assistant/.abcli/blue_assistant.sh +0 -0
  17. {blue_assistant-4.9.1 → blue_assistant-4.21.1}/blue_assistant/.abcli/browse.sh +0 -0
  18. {blue_assistant-4.9.1 → blue_assistant-4.21.1}/blue_assistant/.abcli/tests/README.sh +0 -0
  19. {blue_assistant-4.9.1 → blue_assistant-4.21.1}/blue_assistant/.abcli/tests/chat.sh +0 -0
  20. {blue_assistant-4.9.1 → blue_assistant-4.21.1}/blue_assistant/.abcli/tests/help.sh +0 -0
  21. {blue_assistant-4.9.1 → blue_assistant-4.21.1}/blue_assistant/.abcli/tests/version.sh +0 -0
  22. {blue_assistant-4.9.1 → blue_assistant-4.21.1}/blue_assistant/README.py +0 -0
  23. {blue_assistant-4.9.1 → blue_assistant-4.21.1}/blue_assistant/__main__.py +0 -0
  24. {blue_assistant-4.9.1 → blue_assistant-4.21.1}/blue_assistant/chat/__init__.py +0 -0
  25. {blue_assistant-4.9.1 → blue_assistant-4.21.1}/blue_assistant/chat/__main__.py +0 -0
  26. {blue_assistant-4.9.1 → blue_assistant-4.21.1}/blue_assistant/config.env +0 -0
  27. {blue_assistant-4.9.1 → blue_assistant-4.21.1}/blue_assistant/env.py +0 -0
  28. {blue_assistant-4.9.1 → blue_assistant-4.21.1}/blue_assistant/functions.py +0 -0
  29. {blue_assistant-4.9.1 → blue_assistant-4.21.1}/blue_assistant/help/__init__.py +0 -0
  30. {blue_assistant-4.9.1 → blue_assistant-4.21.1}/blue_assistant/help/__main__.py +0 -0
  31. {blue_assistant-4.9.1 → blue_assistant-4.21.1}/blue_assistant/help/chat.py +0 -0
  32. {blue_assistant-4.9.1 → blue_assistant-4.21.1}/blue_assistant/help/functions.py +0 -0
  33. {blue_assistant-4.9.1 → blue_assistant-4.21.1}/blue_assistant/host.py +0 -0
  34. {blue_assistant-4.9.1 → blue_assistant-4.21.1}/blue_assistant/logger.py +0 -0
  35. {blue_assistant-4.9.1 → blue_assistant-4.21.1}/blue_assistant/sample.env +0 -0
  36. {blue_assistant-4.9.1 → blue_assistant-4.21.1}/blue_assistant/urls.py +0 -0
  37. {blue_assistant-4.9.1 → blue_assistant-4.21.1}/blue_assistant.egg-info/dependency_links.txt +0 -0
  38. {blue_assistant-4.9.1 → blue_assistant-4.21.1}/blue_assistant.egg-info/top_level.txt +0 -0
  39. {blue_assistant-4.9.1 → blue_assistant-4.21.1}/pyproject.toml +0 -0
  40. {blue_assistant-4.9.1 → blue_assistant-4.21.1}/setup.cfg +0 -0
  41. {blue_assistant-4.9.1 → blue_assistant-4.21.1}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: blue_assistant
3
- Version: 4.9.1
3
+ Version: 4.21.1
4
4
  Summary: 🌀 An AI Assistant.
5
5
  Home-page: https://github.com/kamangir/blue-assistant
6
6
  Author: Arash Abadpour (Kamangir)
@@ -15,6 +15,7 @@ License-File: LICENSE
15
15
  Requires-Dist: blueness
16
16
  Requires-Dist: blue-options
17
17
  Requires-Dist: abcli
18
+ Requires-Dist: openai_commands
18
19
  Requires-Dist: boto3
19
20
  Requires-Dist: geojson
20
21
  Requires-Dist: geopandas
@@ -62,4 +63,4 @@ graph LR
62
63
 
63
64
  [![pylint](https://github.com/kamangir/blue-assistant/actions/workflows/pylint.yml/badge.svg)](https://github.com/kamangir/blue-assistant/actions/workflows/pylint.yml) [![pytest](https://github.com/kamangir/blue-assistant/actions/workflows/pytest.yml/badge.svg)](https://github.com/kamangir/blue-assistant/actions/workflows/pytest.yml) [![bashtest](https://github.com/kamangir/blue-assistant/actions/workflows/bashtest.yml/badge.svg)](https://github.com/kamangir/blue-assistant/actions/workflows/bashtest.yml) [![PyPI version](https://img.shields.io/pypi/v/blue-assistant.svg)](https://pypi.org/project/blue-assistant/) [![PyPI - Downloads](https://img.shields.io/pypi/dd/blue-assistant)](https://pypistats.org/packages/blue-assistant)
64
65
 
65
- built by 🌀 [`blue_options-4.205.1`](https://github.com/kamangir/awesome-bash-cli), based on 🌀 [`blue_assistant-4.9.1`](https://github.com/kamangir/blue-assistant).
66
+ built by 🌀 [`blue_options-4.207.1`](https://github.com/kamangir/awesome-bash-cli), based on 🌀 [`blue_assistant-4.21.1`](https://github.com/kamangir/blue-assistant).
@@ -23,4 +23,4 @@ graph LR
23
23
 
24
24
  [![pylint](https://github.com/kamangir/blue-assistant/actions/workflows/pylint.yml/badge.svg)](https://github.com/kamangir/blue-assistant/actions/workflows/pylint.yml) [![pytest](https://github.com/kamangir/blue-assistant/actions/workflows/pytest.yml/badge.svg)](https://github.com/kamangir/blue-assistant/actions/workflows/pytest.yml) [![bashtest](https://github.com/kamangir/blue-assistant/actions/workflows/bashtest.yml/badge.svg)](https://github.com/kamangir/blue-assistant/actions/workflows/bashtest.yml) [![PyPI version](https://img.shields.io/pypi/v/blue-assistant.svg)](https://pypi.org/project/blue-assistant/) [![PyPI - Downloads](https://img.shields.io/pypi/dd/blue-assistant)](https://pypistats.org/packages/blue-assistant)
25
25
 
26
- built by 🌀 [`blue_options-4.205.1`](https://github.com/kamangir/awesome-bash-cli), based on 🌀 [`blue_assistant-4.9.1`](https://github.com/kamangir/blue-assistant).
26
+ built by 🌀 [`blue_options-4.207.1`](https://github.com/kamangir/awesome-bash-cli), based on 🌀 [`blue_assistant-4.21.1`](https://github.com/kamangir/blue-assistant).
@@ -7,7 +7,7 @@ function blue_assistant_chat() {
7
7
  local do_upload=$(abcli_option_int "$options" upload $(abcli_not $do_dryrun))
8
8
 
9
9
  local chat_options=$2
10
- local interactive=$(abcli_option_int "$options" interact 1)
10
+ local interactive=$(abcli_option_int "$chat_options" interact 1)
11
11
 
12
12
  local object_name=$(abcli_clarify_object $3 chat-$(abcli_string_timestamp))
13
13
  [[ "$do_download" == 1 ]] &&
@@ -4,7 +4,7 @@ ICON = "🌀"
4
4
 
5
5
  DESCRIPTION = f"{ICON} An AI Assistant."
6
6
 
7
- VERSION = "4.9.1"
7
+ VERSION = "4.21.1"
8
8
 
9
9
  REPO_NAME = "blue-assistant"
10
10
 
@@ -0,0 +1,109 @@
1
+ from blue_objects import file, objects
2
+ from blue_options import string
3
+ from blue_objects.metadata import post_to_object, get_from_object
4
+ from blue_options.terminal.functions import hr
5
+ from openai_commands.prompt_completion.api import complete_prompt
6
+
7
+ from blue_assistant import ICON
8
+ from blue_assistant.logger import logger
9
+
10
+
11
+ class ChatContext:
12
+ def __init__(
13
+ self,
14
+ object_name: str,
15
+ load_history: bool = True,
16
+ verbose: bool = False,
17
+ ):
18
+ self.verbose = verbose
19
+
20
+ self.ended: bool = False
21
+
22
+ self.object_name = object_name
23
+
24
+ self.history = (
25
+ get_from_object(
26
+ self.object_name,
27
+ "history",
28
+ [],
29
+ )
30
+ if load_history
31
+ else []
32
+ )
33
+
34
+ def chat(
35
+ self,
36
+ interactive: bool = True,
37
+ ) -> bool:
38
+ logger.info('Type in "help" for help.')
39
+
40
+ while True:
41
+ prompt = input(f"{ICON} > ") if interactive else ""
42
+
43
+ if not self.process_prompt(prompt):
44
+ return False
45
+
46
+ if self.ended or not interactive:
47
+ break
48
+
49
+ print(hr(width=21))
50
+
51
+ return True
52
+
53
+ def process_prompt(
54
+ self,
55
+ prompt: str,
56
+ max_tokens: int = 2000,
57
+ ) -> bool:
58
+ if prompt in ["help", "?", ""]:
59
+ return self.show_help()
60
+
61
+ if prompt in ["quit", "exit", "q"]:
62
+ self.ended = True
63
+ return True
64
+
65
+ success, response, metadata = complete_prompt(
66
+ prompt=prompt,
67
+ max_tokens=max_tokens,
68
+ verbose=self.verbose,
69
+ )
70
+ if not success:
71
+ return success
72
+ logger.info(response)
73
+
74
+ logger.info(f"🪄 {prompt}")
75
+
76
+ id_ = string.pretty_date(
77
+ as_filename=True,
78
+ unique=True,
79
+ )
80
+ self.history.append(
81
+ {
82
+ "id": id_,
83
+ "prompt": prompt,
84
+ "response": response,
85
+ }
86
+ )
87
+
88
+ return file.save_yaml(
89
+ objects.path_of(
90
+ object_name=self.object_name,
91
+ filename=f"{id_}.yaml",
92
+ ),
93
+ metadata,
94
+ )
95
+
96
+ def save(self) -> bool:
97
+ return post_to_object(
98
+ self.object_name,
99
+ "history",
100
+ self.history,
101
+ )
102
+
103
+ def show_help(self) -> bool:
104
+ for command, description in {
105
+ "help": "show this help.",
106
+ "quit": "quit the chat.",
107
+ }.items():
108
+ logger.info(f"{command}: {description}")
109
+ return True
@@ -1,6 +1,7 @@
1
1
  from blueness import module
2
2
 
3
3
  from blue_assistant import NAME
4
+ from blue_assistant.chat.context import ChatContext
4
5
  from blue_assistant.logger import logger
5
6
 
6
7
 
@@ -11,6 +12,7 @@ def chat(
11
12
  object_name: str,
12
13
  interactive: bool = True,
13
14
  verbose: bool = False,
15
+ load_history: bool = True,
14
16
  ) -> bool:
15
17
  logger.info(
16
18
  "{}.chat -{}> {}".format(
@@ -20,6 +22,15 @@ def chat(
20
22
  )
21
23
  )
22
24
 
23
- logger.info("🪄")
25
+ context = ChatContext(
26
+ object_name,
27
+ load_history=load_history,
28
+ verbose=verbose,
29
+ )
30
+
31
+ if not context.chat(
32
+ interactive=interactive,
33
+ ):
34
+ return False
24
35
 
25
- return True
36
+ return context.save()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: blue_assistant
3
- Version: 4.9.1
3
+ Version: 4.21.1
4
4
  Summary: 🌀 An AI Assistant.
5
5
  Home-page: https://github.com/kamangir/blue-assistant
6
6
  Author: Arash Abadpour (Kamangir)
@@ -15,6 +15,7 @@ License-File: LICENSE
15
15
  Requires-Dist: blueness
16
16
  Requires-Dist: blue-options
17
17
  Requires-Dist: abcli
18
+ Requires-Dist: openai_commands
18
19
  Requires-Dist: boto3
19
20
  Requires-Dist: geojson
20
21
  Requires-Dist: geopandas
@@ -62,4 +63,4 @@ graph LR
62
63
 
63
64
  [![pylint](https://github.com/kamangir/blue-assistant/actions/workflows/pylint.yml/badge.svg)](https://github.com/kamangir/blue-assistant/actions/workflows/pylint.yml) [![pytest](https://github.com/kamangir/blue-assistant/actions/workflows/pytest.yml/badge.svg)](https://github.com/kamangir/blue-assistant/actions/workflows/pytest.yml) [![bashtest](https://github.com/kamangir/blue-assistant/actions/workflows/bashtest.yml/badge.svg)](https://github.com/kamangir/blue-assistant/actions/workflows/bashtest.yml) [![PyPI version](https://img.shields.io/pypi/v/blue-assistant.svg)](https://pypi.org/project/blue-assistant/) [![PyPI - Downloads](https://img.shields.io/pypi/dd/blue-assistant)](https://pypistats.org/packages/blue-assistant)
64
65
 
65
- built by 🌀 [`blue_options-4.205.1`](https://github.com/kamangir/awesome-bash-cli), based on 🌀 [`blue_assistant-4.9.1`](https://github.com/kamangir/blue-assistant).
66
+ built by 🌀 [`blue_options-4.207.1`](https://github.com/kamangir/awesome-bash-cli), based on 🌀 [`blue_assistant-4.21.1`](https://github.com/kamangir/blue-assistant).
@@ -31,6 +31,7 @@ blue_assistant/.abcli/tests/help.sh
31
31
  blue_assistant/.abcli/tests/version.sh
32
32
  blue_assistant/chat/__init__.py
33
33
  blue_assistant/chat/__main__.py
34
+ blue_assistant/chat/context.py
34
35
  blue_assistant/chat/functions.py
35
36
  blue_assistant/help/__init__.py
36
37
  blue_assistant/help/__main__.py
@@ -1,6 +1,7 @@
1
1
  blueness
2
2
  blue-options
3
3
  abcli
4
+ openai_commands
4
5
  boto3
5
6
  geojson
6
7
  geopandas
@@ -1,6 +1,7 @@
1
1
  blueness
2
2
  blue-options
3
3
  abcli
4
+ openai_commands
4
5
  boto3
5
6
  geojson
6
7
  geopandas
File without changes
File without changes