owlmind 0.1.5.1__py3-none-any.whl → 0.1.7__py3-none-any.whl
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.
- owlmind/__init__.py +1 -1
- owlmind/models/ollama.py +1 -2
- {owlmind-0.1.5.1.dist-info → owlmind-0.1.7.dist-info}/METADATA +24 -2
- owlmind-0.1.7.dist-info/RECORD +14 -0
- owlmind/graphk/pipeline.py +0 -94
- owlmind-0.1.5.1.dist-info/RECORD +0 -15
- {owlmind-0.1.5.1.dist-info → owlmind-0.1.7.dist-info}/WHEEL +0 -0
- {owlmind-0.1.5.1.dist-info → owlmind-0.1.7.dist-info}/entry_points.txt +0 -0
- {owlmind-0.1.5.1.dist-info → owlmind-0.1.7.dist-info}/licenses/LICENSE.txt +0 -0
- {owlmind-0.1.5.1.dist-info → owlmind-0.1.7.dist-info}/top_level.txt +0 -0
owlmind/__init__.py
CHANGED
owlmind/models/ollama.py
CHANGED
|
@@ -25,7 +25,6 @@ class Ollama(Component):
|
|
|
25
25
|
|
|
26
26
|
DEFAULT_SERVER = "http://localhost:11434"
|
|
27
27
|
DEFAULT_MODEL = "llama3"
|
|
28
|
-
DEFAULT_TIMEOUT = 10
|
|
29
28
|
DEFAULT_LOG_LEVEL = logging.INFO
|
|
30
29
|
|
|
31
30
|
OLLAMA_PARAMS = {
|
|
@@ -54,7 +53,7 @@ class Ollama(Component):
|
|
|
54
53
|
if not hasattr(self, param): setattr(self, param, default_value)
|
|
55
54
|
|
|
56
55
|
# Initialize the client using the framework internal
|
|
57
|
-
self._client_ = ollama.Client(host=self.url
|
|
56
|
+
self._client_ = ollama.Client(host=self.url)
|
|
58
57
|
|
|
59
58
|
# Obfuscate the client-related keys just in case
|
|
60
59
|
self.obfuscate(['_client_', '_models_cache_'])
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: owlmind
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.7
|
|
4
4
|
Summary: Experimentation environment and pedagogical sandbox for studying generative intelligence systems.
|
|
5
5
|
Author-email: Fernando Koch <your-email@example.com>
|
|
6
6
|
License: MIT
|
|
@@ -73,6 +73,10 @@ Verify if your model provider is online.
|
|
|
73
73
|
owlmind ping
|
|
74
74
|
```
|
|
75
75
|
|
|
76
|
+
It should return:
|
|
77
|
+
```bash
|
|
78
|
+
Status: ONLINE (Host: http://localhost:11434)
|
|
79
|
+
```
|
|
76
80
|
|
|
77
81
|
#### Information
|
|
78
82
|
View your environment information.
|
|
@@ -81,11 +85,29 @@ View your environment information.
|
|
|
81
85
|
owlmind info
|
|
82
86
|
```
|
|
83
87
|
|
|
88
|
+
It should return something like:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
$ owlmind info
|
|
92
|
+
----------------------------------------
|
|
93
|
+
Status : online
|
|
94
|
+
Host : http://localhost:11434
|
|
95
|
+
Model : llama3
|
|
96
|
+
----------------------------------------
|
|
97
|
+
Available Models: 5
|
|
98
|
+
- gpt-oss:latest
|
|
99
|
+
- gemma:latest
|
|
100
|
+
- tinyllama:latest
|
|
101
|
+
- llama3:latest
|
|
102
|
+
- llama3.2:latest
|
|
103
|
+
----------------------------------------
|
|
104
|
+
```
|
|
105
|
+
|
|
84
106
|
#### Generation with Parameters
|
|
85
107
|
Run inference with full control over sampling parameters.
|
|
86
108
|
|
|
87
109
|
```bash
|
|
88
|
-
owlmind query "How do AI-driven organizations scale?"
|
|
110
|
+
owlmind query "How do AI-driven organizations scale?" -p temperature=1.2, ctx-size=4096
|
|
89
111
|
```
|
|
90
112
|
|
|
91
113
|
Other parameters:
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
owlmind/__init__.py,sha256=LfcX8YpcsWpNM_QAR4n8Ve2RSX2G9997Ibr1Aw7AMHM,115
|
|
2
|
+
owlmind/cli.py,sha256=UCU7YVyi3hnjmkMp-QmFvaRIo4hBQd9y9VhREag0bj0,7523
|
|
3
|
+
owlmind/core/__init__.py,sha256=FdHsekm-vN68W1lxoqgVGhDGNW8r5VUbvHcWYT8MafQ,158
|
|
4
|
+
owlmind/core/component.py,sha256=FxXcki2I986vgpHQj3iUR8Ocb6zjKPwPvcE59MYjbX8,2452
|
|
5
|
+
owlmind/graphk/__init__.py,sha256=Sm9S-qmlxvgxJB6ZyZ8MEJhWGsDmD-2ctsc9Vmi5ivQ,181
|
|
6
|
+
owlmind/graphk/node.py,sha256=GUPvd0XMzflPKgOzbJBV7igrGVHQOn31JkPlzffTR_Y,5138
|
|
7
|
+
owlmind/models/__init__.py,sha256=oDwcewvCenSr3PMpoZPOkq8sSj0MkXlruIAw-Dj8uI4,149
|
|
8
|
+
owlmind/models/ollama.py,sha256=aVkQFYA5JWfLCyZczv2nLepS8htD1LP_F5KpKd4ANlM,4459
|
|
9
|
+
owlmind-0.1.7.dist-info/licenses/LICENSE.txt,sha256=N3XP8HnV0oou2kX_RhIixOcH-_3R2EU9t3JZ5a1Xq-4,1084
|
|
10
|
+
owlmind-0.1.7.dist-info/METADATA,sha256=vHYrGucbfZtlLKTFl-jRzX128T-wx59N9A5D4UK9lHE,3822
|
|
11
|
+
owlmind-0.1.7.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
12
|
+
owlmind-0.1.7.dist-info/entry_points.txt,sha256=dtbjpXwYC8Nbe3CJ02gflnKOOhpQWk9u5gALeDHOWGk,45
|
|
13
|
+
owlmind-0.1.7.dist-info/top_level.txt,sha256=hZkLOzK2jV0_OPvcTpeIwlEQi869uqittXNzXF8AajE,8
|
|
14
|
+
owlmind-0.1.7.dist-info/RECORD,,
|
owlmind/graphk/pipeline.py
DELETED
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
##
|
|
2
|
-
## GraphK - Framework for Graph programming.
|
|
3
|
-
## pipeline.py — data structure for Processing Lines.
|
|
4
|
-
##
|
|
5
|
-
# Copyright (c) 2025, Dr. Fernando Koch
|
|
6
|
-
# http://github.com/kochf1/graphk
|
|
7
|
-
#
|
|
8
|
-
# Disclosure:
|
|
9
|
-
# This code was developed through 'vibe coding'. Certain components
|
|
10
|
-
# required manual implementation, and human-in-the-loop review and refinement
|
|
11
|
-
# were applied throughout the project.
|
|
12
|
-
#
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
from abc import ABC, abstractmethod
|
|
16
|
-
from typing import Union, Callable, List, Any, Iterator, Iterable
|
|
17
|
-
from .node import Node
|
|
18
|
-
|
|
19
|
-
class Pipeline(Node):
|
|
20
|
-
"""
|
|
21
|
-
Orchestrator for a sequence of Nodes.
|
|
22
|
-
Compatible with GraphK Node and Gate structures.
|
|
23
|
-
"""
|
|
24
|
-
# Execution Policies
|
|
25
|
-
SKIP_ON_FAIL = 0
|
|
26
|
-
STOP_ON_FAIL = 1
|
|
27
|
-
|
|
28
|
-
def __init__(self,
|
|
29
|
-
nodes: Iterable[Node] = None,
|
|
30
|
-
_session: dict = None,
|
|
31
|
-
fail_policy: int = STOP_ON_FAIL,
|
|
32
|
-
**kwargs):
|
|
33
|
-
"""
|
|
34
|
-
Initialize the pipeline as a Node containing other Nodes.
|
|
35
|
-
"""
|
|
36
|
-
super().__init__(_session=_session, **kwargs)
|
|
37
|
-
self.nodes = list(nodes) if nodes else []
|
|
38
|
-
self.fail_policy = fail_policy
|
|
39
|
-
self.obfuscate(['nodes', 'fail_policy'])
|
|
40
|
-
|
|
41
|
-
# --- Node Access (Pythonic Interface) ---
|
|
42
|
-
|
|
43
|
-
def __len__(self) -> int: return len(self.nodes)
|
|
44
|
-
|
|
45
|
-
def __getitem__(self, index): return self.nodes[index]
|
|
46
|
-
|
|
47
|
-
def add(self, node: Node):
|
|
48
|
-
self.nodes.append(node)
|
|
49
|
-
return self
|
|
50
|
-
|
|
51
|
-
# --- Execution Logic ---
|
|
52
|
-
|
|
53
|
-
def ping(self) -> bool:
|
|
54
|
-
"""Pipeline is healthy if all internal nodes are healthy."""
|
|
55
|
-
return all(n.ping() for n in self.nodes)
|
|
56
|
-
|
|
57
|
-
def info(self) -> dict:
|
|
58
|
-
return {
|
|
59
|
-
"type": "Pipeline",
|
|
60
|
-
"node_count": len(self.nodes),
|
|
61
|
-
"nodes": [type(n).__name__ for n in self.nodes]
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
def step(self) -> Iterator[Any]:
|
|
65
|
-
"""
|
|
66
|
-
Executes the pipeline sequence.
|
|
67
|
-
Passes output of one node as input to the next.
|
|
68
|
-
"""
|
|
69
|
-
current_input = getattr(self, 'input', None)
|
|
70
|
-
|
|
71
|
-
for node in self.nodes:
|
|
72
|
-
# 1. Check Condition Gate (if assigned to the node)
|
|
73
|
-
if hasattr(node, 'can_proceed') and not node.can_proceed(current_input):
|
|
74
|
-
if self.fail_policy == self.STOP_ON_FAIL: break
|
|
75
|
-
continue
|
|
76
|
-
|
|
77
|
-
# 2. Set input and execute
|
|
78
|
-
node.input = current_input
|
|
79
|
-
|
|
80
|
-
# 3. Collect output (assuming step() returns an iterator)
|
|
81
|
-
node_output = None
|
|
82
|
-
for chunk in node.step():
|
|
83
|
-
node_output = chunk # Capture last chunk as the state
|
|
84
|
-
yield chunk
|
|
85
|
-
|
|
86
|
-
# 4. Check Validation Gate
|
|
87
|
-
if hasattr(node, 'is_valid') and not node.is_valid(node_output):
|
|
88
|
-
if self.fail_policy == self.STOP_ON_FAIL: break
|
|
89
|
-
|
|
90
|
-
# 5. Chain output to next input
|
|
91
|
-
current_input = node_output
|
|
92
|
-
|
|
93
|
-
self._output = current_input
|
|
94
|
-
|
owlmind-0.1.5.1.dist-info/RECORD
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
owlmind/__init__.py,sha256=wAxUbwGlZzPg7sXjwCFXPvtojWrhkfCpNgNfMwe482A,117
|
|
2
|
-
owlmind/cli.py,sha256=UCU7YVyi3hnjmkMp-QmFvaRIo4hBQd9y9VhREag0bj0,7523
|
|
3
|
-
owlmind/core/__init__.py,sha256=FdHsekm-vN68W1lxoqgVGhDGNW8r5VUbvHcWYT8MafQ,158
|
|
4
|
-
owlmind/core/component.py,sha256=FxXcki2I986vgpHQj3iUR8Ocb6zjKPwPvcE59MYjbX8,2452
|
|
5
|
-
owlmind/graphk/__init__.py,sha256=Sm9S-qmlxvgxJB6ZyZ8MEJhWGsDmD-2ctsc9Vmi5ivQ,181
|
|
6
|
-
owlmind/graphk/node.py,sha256=GUPvd0XMzflPKgOzbJBV7igrGVHQOn31JkPlzffTR_Y,5138
|
|
7
|
-
owlmind/graphk/pipeline.py,sha256=TYwli8808VD3l7mXWmWOKNTM4f8gcXFFok7uWUoXDn4,2946
|
|
8
|
-
owlmind/models/__init__.py,sha256=oDwcewvCenSr3PMpoZPOkq8sSj0MkXlruIAw-Dj8uI4,149
|
|
9
|
-
owlmind/models/ollama.py,sha256=Y-9J5C5ztRgricOJ4Co3AE_QGQbr99bKreJwGJUoZTQ,4514
|
|
10
|
-
owlmind-0.1.5.1.dist-info/licenses/LICENSE.txt,sha256=N3XP8HnV0oou2kX_RhIixOcH-_3R2EU9t3JZ5a1Xq-4,1084
|
|
11
|
-
owlmind-0.1.5.1.dist-info/METADATA,sha256=lXm2ZECRCYAma5bVDlFUrBRToI1KkoXavowf5nEzz3Q,3373
|
|
12
|
-
owlmind-0.1.5.1.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
13
|
-
owlmind-0.1.5.1.dist-info/entry_points.txt,sha256=dtbjpXwYC8Nbe3CJ02gflnKOOhpQWk9u5gALeDHOWGk,45
|
|
14
|
-
owlmind-0.1.5.1.dist-info/top_level.txt,sha256=hZkLOzK2jV0_OPvcTpeIwlEQi869uqittXNzXF8AajE,8
|
|
15
|
-
owlmind-0.1.5.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|