olca 0.2.66__py3-none-any.whl → 0.2.72__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.
- olca/olcacli.py +18 -5
- olca/olcahelper.py +8 -2
- olca/tracing.py +2 -2
- olca/utils.py +1 -1
- {olca-0.2.66.dist-info → olca-0.2.72.dist-info}/METADATA +7 -2
- olca-0.2.72.dist-info/RECORD +15 -0
- olca-0.2.66.dist-info/RECORD +0 -15
- {olca-0.2.66.dist-info → olca-0.2.72.dist-info}/LICENSE +0 -0
- {olca-0.2.66.dist-info → olca-0.2.72.dist-info}/WHEEL +0 -0
- {olca-0.2.66.dist-info → olca-0.2.72.dist-info}/entry_points.txt +0 -0
- {olca-0.2.66.dist-info → olca-0.2.72.dist-info}/top_level.txt +0 -0
olca/olcacli.py
CHANGED
@@ -161,9 +161,6 @@ def main():
|
|
161
161
|
# Load environment variables first
|
162
162
|
load_environment()
|
163
163
|
|
164
|
-
# Initialize Langfuse if needed
|
165
|
-
langfuse = initialize_langfuse(debug=True if args.debug else False)
|
166
|
-
|
167
164
|
if args.init:
|
168
165
|
if os.path.exists(olca_config_file):
|
169
166
|
print("Error: Configuration file already exists. Cannot run 'olca init'.")
|
@@ -179,6 +176,12 @@ def main():
|
|
179
176
|
return
|
180
177
|
|
181
178
|
config = load_config(olca_config_file)
|
179
|
+
|
180
|
+
tracing_providers = config.get('tracing_providers', [])
|
181
|
+
if 'langfuse' in tracing_providers:
|
182
|
+
langfuse = initialize_langfuse(debug=True if args.debug else False)
|
183
|
+
else:
|
184
|
+
langfuse = None
|
182
185
|
|
183
186
|
# Initialize tracing
|
184
187
|
tracing_manager = TracingManager(config)
|
@@ -225,8 +228,18 @@ def main():
|
|
225
228
|
provider, base_model, host = parse_model_uri(model_name)
|
226
229
|
|
227
230
|
if provider == "ollama":
|
228
|
-
|
229
|
-
|
231
|
+
import ollama
|
232
|
+
from langchain_ollama import ChatOllama
|
233
|
+
try:
|
234
|
+
ollama.Client(host=host if host else None).show(base_model)
|
235
|
+
except:
|
236
|
+
print(f"Model {base_model} not found, pulling it...")
|
237
|
+
pull_stream = ollama.Client(host=host if host else None).pull(base_model, stream=True)
|
238
|
+
for chunk in pull_stream:
|
239
|
+
pass
|
240
|
+
print(f"\nPulled {base_model}")
|
241
|
+
|
242
|
+
model = ChatOllama(model=base_model, host=host if host else None)
|
230
243
|
|
231
244
|
elif provider == "openai":
|
232
245
|
from langchain_openai import ChatOpenAI
|
olca/olcahelper.py
CHANGED
@@ -43,9 +43,15 @@ def initialize_config_file():
|
|
43
43
|
"temperature": float(input("temperature [0]: ") or default_temperature),
|
44
44
|
"human": input("human [true]: ").lower() in ["true", "yes", "y", "1", ""] or use_default_human_input,
|
45
45
|
"tracing": input("tracing [true]: ").lower() in ["true", "yes", "y", "1", ""] or use_default_tracing,
|
46
|
-
"tracing_providers": ["langsmith", "langfuse"]
|
47
46
|
}
|
48
|
-
|
47
|
+
|
48
|
+
tracing_providers = []
|
49
|
+
if input("Use langsmith for tracing? [Y/n]: ").lower() in ["y", "yes", ""]:
|
50
|
+
tracing_providers.append("langsmith")
|
51
|
+
if input("Use langfuse for tracing? [Y/n]: ").lower() in ["y", "yes", ""]:
|
52
|
+
tracing_providers.append("langfuse")
|
53
|
+
config["tracing_providers"] = tracing_providers
|
54
|
+
|
49
55
|
user_system_instructions = input(f"system_instructions [{default_system_instructions}]: ")
|
50
56
|
user_system_instructions = user_system_instructions or default_system_instructions
|
51
57
|
user_system_instructions = user_system_instructions.replace("\n", " ").replace("\r", " ").replace("\t", " ")
|
olca/tracing.py
CHANGED
@@ -1,6 +1,4 @@
|
|
1
1
|
import os
|
2
|
-
from langfuse.callback import CallbackHandler as LangfuseCallbackHandler
|
3
|
-
from langfuse import Langfuse
|
4
2
|
from olca.utils import initialize_langfuse
|
5
3
|
import warnings
|
6
4
|
|
@@ -35,6 +33,8 @@ class TracingManager:
|
|
35
33
|
os.environ["LANGCHAIN_TRACING_V2"] = "true"
|
36
34
|
|
37
35
|
def _setup_langfuse(self):
|
36
|
+
from langfuse.callback import CallbackHandler as LangfuseCallbackHandler
|
37
|
+
from langfuse import Langfuse
|
38
38
|
self.langfuse = initialize_langfuse()
|
39
39
|
if not self.langfuse:
|
40
40
|
print("Warning: Missing Langfuse environment variables")
|
olca/utils.py
CHANGED
@@ -2,7 +2,6 @@ import os
|
|
2
2
|
import sys
|
3
3
|
import dotenv
|
4
4
|
import webbrowser
|
5
|
-
from langfuse import Langfuse
|
6
5
|
|
7
6
|
def load_environment():
|
8
7
|
dotenv.load_dotenv(dotenv_path=os.path.join(os.getcwd(), ".env"))
|
@@ -13,6 +12,7 @@ def load_environment():
|
|
13
12
|
dotenv.load_dotenv(dotenv_path=os.path.expanduser("~/.env"))
|
14
13
|
|
15
14
|
def initialize_langfuse( debug=False):
|
15
|
+
from langfuse import Langfuse
|
16
16
|
required_vars = ["LANGFUSE_PUBLIC_KEY", "LANGFUSE_SECRET_KEY", "LANGFUSE_HOST"]
|
17
17
|
if not all(os.getenv(var) for var in required_vars):
|
18
18
|
return None
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: olca
|
3
|
-
Version: 0.2.
|
3
|
+
Version: 0.2.72
|
4
4
|
Summary: A Python package for experimental usage of Langchain and Human-in-the-Loop
|
5
5
|
Home-page: https://github.com/jgwill/olca
|
6
6
|
Author: Jean GUillaume ISabelle
|
@@ -444,11 +444,16 @@ To initialize `olca`, you need to create a configuration file named `olca.yml`.
|
|
444
444
|
```yaml
|
445
445
|
api_keyname: OPENAI_API_KEY__o450olca241128
|
446
446
|
human: true
|
447
|
-
model_name: gpt-4o-mini
|
447
|
+
model_name: gpt-4o-mini #or bellow:
|
448
|
+
model_name: ollama://llama3.1:latest #or with host
|
449
|
+
model_name: ollama://llama3.1:latest@mymachine.mydomain.com:11434
|
448
450
|
recursion_limit: 300
|
449
451
|
system_instructions: You focus on interacting with human and do what they ask. Make sure you dont quit the program.
|
450
452
|
temperature: 0.0
|
451
453
|
tracing: true
|
454
|
+
tracing_providers:
|
455
|
+
- langsmith
|
456
|
+
- langfuse
|
452
457
|
user_input: Look in the file 3act.md and in ./story, we have created a story point by point and we need you to generate the next iteration of the book in the folder ./book. You use what you find in ./story to start the work. Give me your plan to correct or accept.
|
453
458
|
```
|
454
459
|
|
@@ -0,0 +1,15 @@
|
|
1
|
+
olca/__init__.py,sha256=3QyLLAys_KiiDIe-cfO_7QyY7di_qCaCS-sVziW2BOw,23
|
2
|
+
olca/fusewill_cli.py,sha256=7etgdpM64-jXGLlALG7PtwICAzoLKYGMBRvHf5nMLic,17119
|
3
|
+
olca/fusewill_utils.py,sha256=sNCe4LhpSaEOY5olMxW1nTv7CKiT__dc2lGomelE6mY,18207
|
4
|
+
olca/oiv.py,sha256=TyhbgjzE9B5woacln8AtITLv1X7iv9ZivJBdk0MyP4U,4610
|
5
|
+
olca/olcacli.py,sha256=wwn4mL1kGonigI9w6UEsnFJDWQ6yONxqvogjrCj-Og4,11246
|
6
|
+
olca/olcahelper.py,sha256=v16ETPboJFdJdkL1iAJ86_oAhkFo5jMFfx5oivOG8kA,4115
|
7
|
+
olca/prompts.py,sha256=q7lvDZ8n_K6ea2nu3K5R2fgBgQYrCIEjh0cA9fUlMFI,3697
|
8
|
+
olca/tracing.py,sha256=cEfPNZoI-PbMHFpX8bvY7OajeW4yvZBMycqwj6sRpDE,1637
|
9
|
+
olca/utils.py,sha256=kDxKwD51234OvA6PIW9IfAND8DHwd8lSyOvSf4abvPE,916
|
10
|
+
olca-0.2.72.dist-info/LICENSE,sha256=gXf5dRMhNSbfLPYYTY_5hsZ1r7UU1OaKQEAQUhuIBkM,18092
|
11
|
+
olca-0.2.72.dist-info/METADATA,sha256=3oGuW1QeUrWq9daaXGv5q_P_njlflX8dRaFff8CH0yE,25979
|
12
|
+
olca-0.2.72.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
|
13
|
+
olca-0.2.72.dist-info/entry_points.txt,sha256=W2UkinpMZYsCLH54must9ahwbzCRl-rekcZ7rL5u3wA,123
|
14
|
+
olca-0.2.72.dist-info/top_level.txt,sha256=bGDtAReS-xlS0F6MM-DyD0IQUqjNdWmgemnM3vNtrpI,5
|
15
|
+
olca-0.2.72.dist-info/RECORD,,
|
olca-0.2.66.dist-info/RECORD
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
olca/__init__.py,sha256=3QyLLAys_KiiDIe-cfO_7QyY7di_qCaCS-sVziW2BOw,23
|
2
|
-
olca/fusewill_cli.py,sha256=7etgdpM64-jXGLlALG7PtwICAzoLKYGMBRvHf5nMLic,17119
|
3
|
-
olca/fusewill_utils.py,sha256=sNCe4LhpSaEOY5olMxW1nTv7CKiT__dc2lGomelE6mY,18207
|
4
|
-
olca/oiv.py,sha256=TyhbgjzE9B5woacln8AtITLv1X7iv9ZivJBdk0MyP4U,4610
|
5
|
-
olca/olcacli.py,sha256=oftilrp9v0QOV5tJeb6o8nwO54gjjlwWVfDU5JpoXJc,10758
|
6
|
-
olca/olcahelper.py,sha256=s9KwEYAJCbnKSXIsj5HCL-OHxkSsmL08ZBgoluxmP1s,3828
|
7
|
-
olca/prompts.py,sha256=q7lvDZ8n_K6ea2nu3K5R2fgBgQYrCIEjh0cA9fUlMFI,3697
|
8
|
-
olca/tracing.py,sha256=GSuXIKmIMQ9V2gLkKcin142Z2QpyS6obsnj8Tf-1zHc,1621
|
9
|
-
olca/utils.py,sha256=zM94HDMDYF95Yd9ubeOK6vuepbQN4kDFh0rTvaVFagI,912
|
10
|
-
olca-0.2.66.dist-info/LICENSE,sha256=gXf5dRMhNSbfLPYYTY_5hsZ1r7UU1OaKQEAQUhuIBkM,18092
|
11
|
-
olca-0.2.66.dist-info/METADATA,sha256=rnjt54tCa8STAp7ZbD8VKHsW5AJtAh2NGQ9Dyjym2mQ,25808
|
12
|
-
olca-0.2.66.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
|
13
|
-
olca-0.2.66.dist-info/entry_points.txt,sha256=W2UkinpMZYsCLH54must9ahwbzCRl-rekcZ7rL5u3wA,123
|
14
|
-
olca-0.2.66.dist-info/top_level.txt,sha256=bGDtAReS-xlS0F6MM-DyD0IQUqjNdWmgemnM3vNtrpI,5
|
15
|
-
olca-0.2.66.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|