ai-microcore 4.0.0.dev15__tar.gz → 4.0.0.dev17__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.dev15 → ai_microcore-4.0.0.dev17}/PKG-INFO +1 -1
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/microcore/__init__.py +1 -1
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/microcore/configuration.py +1 -1
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/microcore/mcp.py +22 -1
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/LICENSE +0 -0
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/README.md +0 -0
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/microcore/_env.py +0 -0
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/microcore/_llm_functions.py +0 -0
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/microcore/_prepare_llm_args.py +0 -0
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/microcore/ai_func/__init__.py +0 -0
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/microcore/ai_func/ai-func.json.j2 +0 -0
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/microcore/ai_func/ai-func.pythonic.j2 +0 -0
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/microcore/ai_modules.py +0 -0
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/microcore/embedding_db/__init__.py +0 -0
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/microcore/embedding_db/chromadb.py +0 -0
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/microcore/file_storage.py +0 -0
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/microcore/interactive_setup.py +0 -0
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/microcore/json_parsing.py +0 -0
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/microcore/llm/__init__.py +0 -0
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/microcore/llm/_openai_llm_v0.py +0 -0
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/microcore/llm/_openai_llm_v1.py +0 -0
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/microcore/llm/anthropic.py +0 -0
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/microcore/llm/google_genai.py +0 -0
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/microcore/llm/google_vertex_ai.py +0 -0
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/microcore/llm/local_llm.py +0 -0
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/microcore/llm/local_transformers.py +0 -0
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/microcore/llm/openai_llm.py +0 -0
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/microcore/llm/shared.py +0 -0
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/microcore/logging.py +0 -0
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/microcore/message_types.py +0 -0
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/microcore/metrics.py +0 -0
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/microcore/python.py +0 -0
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/microcore/templating/__init__.py +0 -0
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/microcore/templating/jinja2.py +0 -0
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/microcore/text2speech/elevenlabs.py +0 -0
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/microcore/tokenizing.py +0 -0
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/microcore/types.py +0 -0
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/microcore/ui.py +0 -0
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/microcore/utils.py +0 -0
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/microcore/wrappers/__init__.py +0 -0
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/microcore/wrappers/llm_response_wrapper.py +0 -0
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/microcore/wrappers/prompt_wrapper.py +0 -0
- {ai_microcore-4.0.0.dev15 → ai_microcore-4.0.0.dev17}/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.dev17
|
|
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>
|
|
@@ -113,7 +113,7 @@ class BaseConfig:
|
|
|
113
113
|
if self.USE_DOT_ENV:
|
|
114
114
|
if self.DOT_ENV_FILE or not _default_dotenv_loaded:
|
|
115
115
|
fp = self.DOT_ENV_FILE
|
|
116
|
-
if fp and "~" in fp:
|
|
116
|
+
if fp and "~" in str(fp):
|
|
117
117
|
fp = Path(fp).expanduser()
|
|
118
118
|
dotenv.load_dotenv(
|
|
119
119
|
override=True,
|
|
@@ -138,9 +138,14 @@ class MCPConnection:
|
|
|
138
138
|
mcp_tools = await self.session.list_tools()
|
|
139
139
|
self.tools = Tools.from_list([Tool.from_mcp(tool) for tool in mcp_tools.tools])
|
|
140
140
|
if use_cache:
|
|
141
|
-
|
|
141
|
+
self.update_tools_cache()
|
|
142
142
|
return self.tools
|
|
143
143
|
|
|
144
|
+
def update_tools_cache(self):
|
|
145
|
+
if self.tools is None:
|
|
146
|
+
raise RuntimeError("Tools are not fetched yet. Call fetch_tools() first.")
|
|
147
|
+
ToolsCache.write(self.url, self.tools)
|
|
148
|
+
|
|
144
149
|
def __del__(self):
|
|
145
150
|
self._del_event.set()
|
|
146
151
|
|
|
@@ -264,6 +269,9 @@ class MCPServer:
|
|
|
264
269
|
) -> MCPConnection:
|
|
265
270
|
return await MCPConnection.init(self.url, fetch_tools=fetch_tools, use_cache=use_cache)
|
|
266
271
|
|
|
272
|
+
def get_tools_cache(self) -> Tools | None:
|
|
273
|
+
return ToolsCache.read(self.url)
|
|
274
|
+
|
|
267
275
|
|
|
268
276
|
class MCPRegistry(dict[str, MCPServer]):
|
|
269
277
|
def __init__(self, server_configs: list[dict | str]):
|
|
@@ -281,6 +289,19 @@ class MCPRegistry(dict[str, MCPServer]):
|
|
|
281
289
|
raise ValueError(f"MCP server '{server_name}' not found in registry")
|
|
282
290
|
return self[server_name]
|
|
283
291
|
|
|
292
|
+
async def precache_tools(self):
|
|
293
|
+
async def precache_server_tools(server_name):
|
|
294
|
+
conn = await self.get(server_name).connect(
|
|
295
|
+
fetch_tools=True,
|
|
296
|
+
use_cache=False
|
|
297
|
+
)
|
|
298
|
+
try:
|
|
299
|
+
conn.update_tools_cache()
|
|
300
|
+
finally:
|
|
301
|
+
await conn.close()
|
|
302
|
+
|
|
303
|
+
await asyncio.gather(*[precache_server_tools(srv) for srv in self.keys()])
|
|
304
|
+
|
|
284
305
|
async def connect_to(
|
|
285
306
|
self,
|
|
286
307
|
server_name: str,
|
|
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.dev15 → ai_microcore-4.0.0.dev17}/microcore/wrappers/llm_response_wrapper.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|