ai-microcore 4.0.0.dev7__tar.gz → 4.0.0.dev9__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.dev7 → ai_microcore-4.0.0.dev9}/PKG-INFO +1 -1
- {ai_microcore-4.0.0.dev7 → ai_microcore-4.0.0.dev9}/microcore/__init__.py +3 -1
- ai_microcore-4.0.0.dev9/microcore/interactive_setup.py +38 -0
- {ai_microcore-4.0.0.dev7 → ai_microcore-4.0.0.dev9}/microcore/tokenizing.py +1 -1
- {ai_microcore-4.0.0.dev7 → ai_microcore-4.0.0.dev9}/LICENSE +0 -0
- {ai_microcore-4.0.0.dev7 → ai_microcore-4.0.0.dev9}/README.md +0 -0
- {ai_microcore-4.0.0.dev7 → ai_microcore-4.0.0.dev9}/microcore/_env.py +0 -0
- {ai_microcore-4.0.0.dev7 → ai_microcore-4.0.0.dev9}/microcore/_llm_functions.py +0 -0
- {ai_microcore-4.0.0.dev7 → ai_microcore-4.0.0.dev9}/microcore/_prepare_llm_args.py +0 -0
- {ai_microcore-4.0.0.dev7 → ai_microcore-4.0.0.dev9}/microcore/ai_func/__init__.py +0 -0
- {ai_microcore-4.0.0.dev7 → ai_microcore-4.0.0.dev9}/microcore/ai_func/ai-func.json.j2 +0 -0
- {ai_microcore-4.0.0.dev7 → ai_microcore-4.0.0.dev9}/microcore/ai_func/ai-func.pythonic.j2 +0 -0
- {ai_microcore-4.0.0.dev7 → ai_microcore-4.0.0.dev9}/microcore/ai_modules.py +0 -0
- {ai_microcore-4.0.0.dev7 → ai_microcore-4.0.0.dev9}/microcore/configuration.py +0 -0
- {ai_microcore-4.0.0.dev7 → ai_microcore-4.0.0.dev9}/microcore/embedding_db/__init__.py +0 -0
- {ai_microcore-4.0.0.dev7 → ai_microcore-4.0.0.dev9}/microcore/embedding_db/chromadb.py +0 -0
- {ai_microcore-4.0.0.dev7 → ai_microcore-4.0.0.dev9}/microcore/file_storage.py +0 -0
- {ai_microcore-4.0.0.dev7 → ai_microcore-4.0.0.dev9}/microcore/json_parsing.py +0 -0
- {ai_microcore-4.0.0.dev7 → ai_microcore-4.0.0.dev9}/microcore/llm/__init__.py +0 -0
- {ai_microcore-4.0.0.dev7 → ai_microcore-4.0.0.dev9}/microcore/llm/_openai_llm_v0.py +0 -0
- {ai_microcore-4.0.0.dev7 → ai_microcore-4.0.0.dev9}/microcore/llm/_openai_llm_v1.py +0 -0
- {ai_microcore-4.0.0.dev7 → ai_microcore-4.0.0.dev9}/microcore/llm/anthropic.py +0 -0
- {ai_microcore-4.0.0.dev7 → ai_microcore-4.0.0.dev9}/microcore/llm/google_genai.py +0 -0
- {ai_microcore-4.0.0.dev7 → ai_microcore-4.0.0.dev9}/microcore/llm/google_vertex_ai.py +0 -0
- {ai_microcore-4.0.0.dev7 → ai_microcore-4.0.0.dev9}/microcore/llm/local_llm.py +0 -0
- {ai_microcore-4.0.0.dev7 → ai_microcore-4.0.0.dev9}/microcore/llm/local_transformers.py +0 -0
- {ai_microcore-4.0.0.dev7 → ai_microcore-4.0.0.dev9}/microcore/llm/openai_llm.py +0 -0
- {ai_microcore-4.0.0.dev7 → ai_microcore-4.0.0.dev9}/microcore/llm/shared.py +0 -0
- {ai_microcore-4.0.0.dev7 → ai_microcore-4.0.0.dev9}/microcore/logging.py +0 -0
- {ai_microcore-4.0.0.dev7 → ai_microcore-4.0.0.dev9}/microcore/message_types.py +0 -0
- {ai_microcore-4.0.0.dev7 → ai_microcore-4.0.0.dev9}/microcore/metrics.py +0 -0
- {ai_microcore-4.0.0.dev7 → ai_microcore-4.0.0.dev9}/microcore/python.py +0 -0
- {ai_microcore-4.0.0.dev7 → ai_microcore-4.0.0.dev9}/microcore/templating/__init__.py +0 -0
- {ai_microcore-4.0.0.dev7 → ai_microcore-4.0.0.dev9}/microcore/templating/jinja2.py +0 -0
- {ai_microcore-4.0.0.dev7 → ai_microcore-4.0.0.dev9}/microcore/text2speech/elevenlabs.py +0 -0
- {ai_microcore-4.0.0.dev7 → ai_microcore-4.0.0.dev9}/microcore/types.py +0 -0
- {ai_microcore-4.0.0.dev7 → ai_microcore-4.0.0.dev9}/microcore/ui.py +0 -0
- {ai_microcore-4.0.0.dev7 → ai_microcore-4.0.0.dev9}/microcore/utils.py +0 -0
- {ai_microcore-4.0.0.dev7 → ai_microcore-4.0.0.dev9}/microcore/wrappers/__init__.py +0 -0
- {ai_microcore-4.0.0.dev7 → ai_microcore-4.0.0.dev9}/microcore/wrappers/llm_response_wrapper.py +0 -0
- {ai_microcore-4.0.0.dev7 → ai_microcore-4.0.0.dev9}/microcore/wrappers/prompt_wrapper.py +0 -0
- {ai_microcore-4.0.0.dev7 → ai_microcore-4.0.0.dev9}/pyproject.toml +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.dev9
|
|
4
4
|
Summary: # Minimalistic Foundation for AI Applications
|
|
5
5
|
Keywords: llm,large language models,ai,similarity search,ai search,gpt,openai
|
|
6
6
|
Author-email: Vitalii Stepanenko <mail@vitalii.in>
|
|
@@ -22,6 +22,7 @@ from .wrappers.llm_response_wrapper import LLMResponse
|
|
|
22
22
|
from ._llm_functions import llm, allm, llm_parallel
|
|
23
23
|
from .utils import parse, dedent
|
|
24
24
|
from .metrics import Metrics
|
|
25
|
+
from .interactive_setup import interactive_setup
|
|
25
26
|
|
|
26
27
|
|
|
27
28
|
def tpl(file: os.PathLike[str] | str, **kwargs) -> str | PromptWrapper:
|
|
@@ -159,7 +160,8 @@ __all__ = [
|
|
|
159
160
|
"types",
|
|
160
161
|
"ui",
|
|
161
162
|
"Metrics",
|
|
163
|
+
"interactive_setup"
|
|
162
164
|
# "wrappers",
|
|
163
165
|
]
|
|
164
166
|
|
|
165
|
-
__version__ = "4.0.0-
|
|
167
|
+
__version__ = "4.0.0-dev9"
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
from .configuration import EmbeddingDbType, ApiType
|
|
2
|
+
from .ui import ask_choose, ask_non_empty, ask_yn, error, yellow
|
|
3
|
+
from ._env import configure
|
|
4
|
+
from ._llm_functions import llm
|
|
5
|
+
from .utils import file_link
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def interactive_setup(file_path: str):
|
|
9
|
+
raw_config = dict()
|
|
10
|
+
raw_config["LLM_API_TYPE"] = ask_choose(
|
|
11
|
+
"Choose LLM API Type:",
|
|
12
|
+
list(i.value for i in ApiType if not ApiType.is_local(i)),
|
|
13
|
+
)
|
|
14
|
+
raw_config["LLM_API_KEY"] = ask_non_empty("API Key: ")
|
|
15
|
+
raw_config["MODEL"] = ask_non_empty("Model Name: ")
|
|
16
|
+
raw_config["LLM_API_BASE"] = input("API Base URL (may be empty for some API types): ")
|
|
17
|
+
try:
|
|
18
|
+
configure(
|
|
19
|
+
USE_DOT_ENV=False,
|
|
20
|
+
EMBEDDING_DB_TYPE=EmbeddingDbType.NONE,
|
|
21
|
+
USE_LOGGING=True,
|
|
22
|
+
**raw_config
|
|
23
|
+
)
|
|
24
|
+
print("Testing LLM...")
|
|
25
|
+
q = "What is capital of France?\n(!) IMPORTANT: Answer only with one word"
|
|
26
|
+
assert "pari" in llm(q).lower()
|
|
27
|
+
except Exception as e: # pylint: disable=W0718
|
|
28
|
+
error(f"Error testing LLM API: {e}")
|
|
29
|
+
if ask_yn("Restart configuring?"):
|
|
30
|
+
interactive_setup(file_path)
|
|
31
|
+
return
|
|
32
|
+
|
|
33
|
+
config_body = ''.join(f"{k}={v}\n" for k, v in raw_config.items())
|
|
34
|
+
print(f"Configuration:\n{yellow(config_body)}")
|
|
35
|
+
if ask_yn("Save configuration to file?"):
|
|
36
|
+
print(f"Saved to {file_link(file_path)}")
|
|
37
|
+
with open(file_path, "w", encoding="utf-8") as f:
|
|
38
|
+
f.write(config_body)
|
|
@@ -68,7 +68,7 @@ def fit_to_token_size(
|
|
|
68
68
|
encoding = _resolve_tiktoken_encoding(for_model, encoding)
|
|
69
69
|
tot_size = 0
|
|
70
70
|
for i, doc in enumerate(docs):
|
|
71
|
-
tot_size += num_tokens_from_string(doc, encoding=encoding)
|
|
71
|
+
tot_size += num_tokens_from_string(str(doc), encoding=encoding)
|
|
72
72
|
if min_documents and i < min_documents:
|
|
73
73
|
continue
|
|
74
74
|
if tot_size > max_tokens:
|
|
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.dev7 → ai_microcore-4.0.0.dev9}/microcore/wrappers/llm_response_wrapper.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|