ai-microcore 4.0.0.dev12__tar.gz → 4.0.0.dev14__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.
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/PKG-INFO +2 -1
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/microcore/__init__.py +1 -1
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/microcore/configuration.py +15 -1
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/microcore/interactive_setup.py +12 -6
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/pyproject.toml +2 -1
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/LICENSE +0 -0
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/README.md +0 -0
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/microcore/_env.py +0 -0
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/microcore/_llm_functions.py +0 -0
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/microcore/_prepare_llm_args.py +0 -0
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/microcore/ai_func/__init__.py +0 -0
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/microcore/ai_func/ai-func.json.j2 +0 -0
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/microcore/ai_func/ai-func.pythonic.j2 +0 -0
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/microcore/ai_modules.py +0 -0
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/microcore/embedding_db/__init__.py +0 -0
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/microcore/embedding_db/chromadb.py +0 -0
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/microcore/file_storage.py +0 -0
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/microcore/json_parsing.py +0 -0
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/microcore/llm/__init__.py +0 -0
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/microcore/llm/_openai_llm_v0.py +0 -0
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/microcore/llm/_openai_llm_v1.py +0 -0
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/microcore/llm/anthropic.py +0 -0
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/microcore/llm/google_genai.py +0 -0
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/microcore/llm/google_vertex_ai.py +0 -0
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/microcore/llm/local_llm.py +0 -0
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/microcore/llm/local_transformers.py +0 -0
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/microcore/llm/openai_llm.py +0 -0
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/microcore/llm/shared.py +0 -0
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/microcore/logging.py +0 -0
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/microcore/mcp.py +0 -0
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/microcore/message_types.py +0 -0
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/microcore/metrics.py +0 -0
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/microcore/python.py +0 -0
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/microcore/templating/__init__.py +0 -0
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/microcore/templating/jinja2.py +0 -0
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/microcore/text2speech/elevenlabs.py +0 -0
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/microcore/tokenizing.py +0 -0
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/microcore/types.py +0 -0
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/microcore/ui.py +0 -0
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/microcore/utils.py +0 -0
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/microcore/wrappers/__init__.py +0 -0
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/microcore/wrappers/llm_response_wrapper.py +0 -0
- {ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/microcore/wrappers/prompt_wrapper.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ai-microcore
|
|
3
|
-
Version: 4.0.0.
|
|
3
|
+
Version: 4.0.0.dev14
|
|
4
4
|
Summary: # Minimalistic Foundation for AI Applications
|
|
5
5
|
Keywords: llm,large language models,ai,similarity search,ai search,gpt,openai,framework,adapter
|
|
6
6
|
Author-email: Vitalii Stepanenko <mail@vitalii.in>
|
|
@@ -24,6 +24,7 @@ Requires-Dist: PyYAML~=6.0
|
|
|
24
24
|
Requires-Dist: chardet~=5.2.0
|
|
25
25
|
Requires-Dist: tiktoken>=0.7.0,<1.0
|
|
26
26
|
Requires-Dist: mcp~=1.9.1
|
|
27
|
+
Requires-Dist: docstring_parser~=0.16.0
|
|
27
28
|
Project-URL: Source Code, https://github.com/Nayjest/ai-microcore
|
|
28
29
|
|
|
29
30
|
<p align="right">
|
|
@@ -410,7 +410,21 @@ class Config(LLMConfig):
|
|
|
410
410
|
|
|
411
411
|
MCP_SERVERS: list = from_env(dtype=list)
|
|
412
412
|
|
|
413
|
+
INTERACTIVE_SETUP: bool = field(default=False)
|
|
414
|
+
|
|
413
415
|
def __post_init__(self):
|
|
414
|
-
|
|
416
|
+
try:
|
|
417
|
+
super().__post_init__()
|
|
418
|
+
except LLMConfigError as e:
|
|
419
|
+
if (
|
|
420
|
+
self.INTERACTIVE_SETUP
|
|
421
|
+
and self.DOT_ENV_FILE
|
|
422
|
+
and not os.path.exists(self.DOT_ENV_FILE)
|
|
423
|
+
):
|
|
424
|
+
from .interactive_setup import interactive_setup
|
|
425
|
+
config = interactive_setup(self.DOT_ENV_FILE)
|
|
426
|
+
self.__dict__.update(config.__dict__)
|
|
427
|
+
else:
|
|
428
|
+
raise e
|
|
415
429
|
if self.TEXT_TO_SPEECH_PATH is None:
|
|
416
430
|
self.TEXT_TO_SPEECH_PATH = Path(self.STORAGE_PATH) / "voicing"
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import os
|
|
2
|
+
|
|
3
|
+
from .configuration import EmbeddingDbType, ApiType, Config
|
|
2
4
|
from .ui import ask_choose, ask_non_empty, ask_yn, error, yellow
|
|
3
5
|
from ._env import configure
|
|
4
6
|
from ._llm_functions import llm
|
|
@@ -9,7 +11,7 @@ def interactive_setup(
|
|
|
9
11
|
file_path: str,
|
|
10
12
|
defaults: dict = None,
|
|
11
13
|
extras: dict | list = None,
|
|
12
|
-
):
|
|
14
|
+
) -> Config | None:
|
|
13
15
|
"""
|
|
14
16
|
Interactive setup for LLM API configuration.
|
|
15
17
|
Prompts user for configuration details such as API type, key, model name,
|
|
@@ -50,7 +52,7 @@ def interactive_setup(
|
|
|
50
52
|
if field not in raw_config:
|
|
51
53
|
raw_config[field] = ask_non_empty(f"{title}: ")
|
|
52
54
|
try:
|
|
53
|
-
configure(
|
|
55
|
+
config = configure(
|
|
54
56
|
**{
|
|
55
57
|
**dict(
|
|
56
58
|
USE_DOT_ENV=False,
|
|
@@ -66,12 +68,16 @@ def interactive_setup(
|
|
|
66
68
|
except Exception as e: # pylint: disable=W0718
|
|
67
69
|
error(f"Error testing LLM API: {e}")
|
|
68
70
|
if ask_yn("Restart configuring?"):
|
|
69
|
-
interactive_setup(file_path, defaults, extras)
|
|
70
|
-
return
|
|
71
|
+
return interactive_setup(file_path, defaults, extras)
|
|
72
|
+
return None
|
|
71
73
|
|
|
72
74
|
config_body = ''.join(f"{k}={v}\n" for k, v in raw_config.items())
|
|
73
75
|
print(f"Configuration:\n{yellow(config_body)}")
|
|
74
76
|
if ask_yn("Save configuration to file?"):
|
|
75
|
-
|
|
77
|
+
dir_path = os.path.dirname(file_path)
|
|
78
|
+
if dir_path:
|
|
79
|
+
os.makedirs(dir_path, exist_ok=True)
|
|
76
80
|
with open(file_path, "w", encoding="utf-8") as f:
|
|
77
81
|
f.write(config_body)
|
|
82
|
+
print(f"Saved to {file_link(file_path)}")
|
|
83
|
+
return config
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ai_microcore-4.0.0.dev12 → ai_microcore-4.0.0.dev14}/microcore/wrappers/llm_response_wrapper.py
RENAMED
|
File without changes
|
|
File without changes
|