olca 0.2.36__tar.gz → 0.2.38__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: olca
3
- Version: 0.2.36
3
+ Version: 0.2.38
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
@@ -5,6 +5,7 @@ import dotenv
5
5
  from langchain import hub
6
6
  import argparse
7
7
  import yaml
8
+ import fusewill_utils as fu
8
9
 
9
10
  #jgwill/olca1
10
11
  #olca1_prompt = hub.pull("jgwill/olca1") #Future use
@@ -135,11 +136,19 @@ def extract_extra_directories_from_olca_config_system_and_user_input(system_inst
135
136
 
136
137
  def print_stream(stream):
137
138
  for s in stream:
138
- message = s["messages"][-1]
139
- if isinstance(message, tuple):
140
- print(message)
141
- else:
142
- message.pretty_print()
139
+ try:
140
+ # Handle different response formats
141
+ if isinstance(s, dict) and "messages" in s:
142
+ message = s["messages"][-1]
143
+ else:
144
+ message = s
145
+
146
+ if isinstance(message, tuple):
147
+ print(message)
148
+ else:
149
+ print(message.content)
150
+ except Exception as e:
151
+ print(s)
143
152
 
144
153
  def prepare_input(user_input, system_instructions,append_prompt=True, human=False):
145
154
  appended_prompt = system_instructions + SYSTEM_PROMPT_APPEND if append_prompt else system_instructions
@@ -168,10 +177,22 @@ def _parse_args():
168
177
 
169
178
  from olca.tracing import TracingManager
170
179
 
180
+ def load_environment():
181
+ # Load .env from current directory
182
+ dotenv.load_dotenv(dotenv_path=os.path.join(os.getcwd(), ".env"))
183
+
184
+ # Try loading from home directory if keys are missing
185
+ if not all([os.getenv(key) for key in ["LANGFUSE_PUBLIC_KEY", "LANGFUSE_SECRET_KEY", "LANGFUSE_HOST",
186
+ "LANGCHAIN_API_KEY", "OPENAI_API_KEY"]]):
187
+ dotenv.load_dotenv(dotenv_path=os.path.expanduser("~/.env"))
188
+
171
189
  def main():
172
190
  args = _parse_args()
173
191
  olca_config_file = 'olca.yml'
174
192
 
193
+ # Load environment variables first
194
+ load_environment()
195
+
175
196
  if args.init:
176
197
  if os.path.exists(olca_config_file):
177
198
  print("Error: Configuration file already exists. Cannot run 'olca init'.")
@@ -197,6 +218,14 @@ def main():
197
218
  if tracing_enabled and not callbacks:
198
219
  print("Warning: Tracing enabled but no handlers configured")
199
220
 
221
+ if tracing_enabled:
222
+ # Verify Langfuse configuration
223
+ if not all([os.getenv(key) for key in ["LANGFUSE_PUBLIC_KEY", "LANGFUSE_SECRET_KEY", "LANGFUSE_HOST"]]):
224
+ print("Warning: Langfuse environment variables missing")
225
+ # Verify LangSmith configuration
226
+ if not os.getenv("LANGCHAIN_API_KEY"):
227
+ print("Warning: LANGCHAIN_API_KEY not set")
228
+
200
229
  try:
201
230
 
202
231
  api_key_variable = "OPENAI_API_KEY"
@@ -1,5 +1,6 @@
1
1
  import os
2
2
  from langfuse.callback import CallbackHandler as LangfuseCallbackHandler
3
+ from langfuse import Langfuse
3
4
 
4
5
  class TracingManager:
5
6
  def __init__(self, config):
@@ -28,10 +29,16 @@ class TracingManager:
28
29
  os.environ["LANGCHAIN_TRACING_V2"] = "true"
29
30
 
30
31
  def _setup_langfuse(self):
31
- if not (os.getenv("LANGFUSE_PUBLIC_KEY") and os.getenv("LANGFUSE_SECRET_KEY")):
32
- print("Warning: LANGFUSE_PUBLIC_KEY/LANGFUSE_SECRET_KEY not set for Langfuse tracing")
32
+ required_vars = ["LANGFUSE_PUBLIC_KEY", "LANGFUSE_SECRET_KEY", "LANGFUSE_HOST"]
33
+ if not all(os.getenv(var) for var in required_vars):
34
+ print("Warning: Missing Langfuse environment variables")
33
35
  return None
34
36
 
37
+ Langfuse(
38
+ public_key=os.getenv("LANGFUSE_PUBLIC_KEY"),
39
+ secret_key=os.getenv("LANGFUSE_SECRET_KEY"),
40
+ host=os.getenv("LANGFUSE_HOST")
41
+ )
35
42
  return LangfuseCallbackHandler()
36
43
 
37
44
  def get_callbacks(self):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: olca
3
- Version: 0.2.36
3
+ Version: 0.2.38
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
@@ -7,7 +7,7 @@ build-backend = "setuptools.build_meta"
7
7
 
8
8
  [project]
9
9
  name = "olca"
10
- version = "0.2.36"
10
+ version = "0.2.38"
11
11
 
12
12
  description = "A Python package for experimental usage of Langchain and Human-in-the-Loop"
13
13
  readme = "README.md"
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name='olca',
5
- version = "0.2.36",
5
+ version = "0.2.38",
6
6
  author='Jean GUillaume ISabelle',
7
7
  author_email='jgi@jgwill.com',
8
8
  description='A Python package for experimenting with Langchain agent and interactivity in Terminal modalities.',
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