llumo 0.2.21__py3-none-any.whl → 0.2.23__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.
llumo/client.py CHANGED
@@ -397,7 +397,7 @@ class LlumoClient:
397
397
  outputColName=outputColName,
398
398
  ):
399
399
  print(
400
- "LLUMO’s intuitive UI is ready—start exploring and experimenting with your logs now. Visit https://llumo.ai/evallm to see the results.Please rerun the experiment to see the results on playground."
400
+ "LLUMO’s intuitive UI is ready—start exploring and experimenting with your logs now. Visit https://app.llumo.ai/evallm to see the results.Please rerun the experiment to see the results on playground."
401
401
  )
402
402
  else:
403
403
  return dataframe
@@ -720,6 +720,7 @@ class LlumoClient:
720
720
 
721
721
  inputDict = {key: row[key] for key in keys if key in row}
722
722
  output = row.get(outputColName, "")
723
+ intermediateSteps = row.get("intermediateSteps", "")
723
724
 
724
725
 
725
726
  rowID = f"{int(time.time() * 1000)}{uuid.uuid4()}".replace("-", "")
@@ -740,6 +741,7 @@ class LlumoClient:
740
741
  "tools": tools,
741
742
  "groundTruth": groundTruth,
742
743
  "messageHistory": messageHistory,
744
+ "intermediateSteps": intermediateSteps,
743
745
  },
744
746
  "definition": evalDefinition,
745
747
  "model": model,
@@ -869,8 +871,14 @@ class LlumoClient:
869
871
  activePlayground= activePlayground
870
872
  ):
871
873
  print(
872
- "LLUMO’s intuitive UI is ready—start exploring and experimenting with your logs now. Visit https://llumo.ai/evallm to see the results."
874
+ "LLUMO’s intuitive UI is ready—start exploring and experimenting with your logs now. Visit https://app.llumo.ai/evallm to see the results."
873
875
  )
876
+ if getDataFrame:
877
+ return LlumoDataFrameResults(dataframe,evals=self.evals,evalData=self.evalData,definationMapping=self.definationMapping)
878
+ else:
879
+ data=dataframe.to_dict(orient="records")
880
+ return LlumoDictResults(data,evals=self.evals,evalData=self.evalData,definationMapping=self.definationMapping)
881
+
874
882
  else:
875
883
  if getDataFrame:
876
884
  return LlumoDataFrameResults(dataframe,evals=self.evals,evalData=self.evalData,definationMapping=self.definationMapping)
@@ -934,7 +942,8 @@ class LlumoClient:
934
942
  evalOutputMap=outputEvalMapping
935
943
  ):
936
944
  print(
937
- "LLUMO’s intuitive UI is ready—start exploring and experimenting with your logs now. Visit https://llumo.ai/evallm to see the results.")
945
+ "LLUMO’s intuitive UI is ready—start exploring and experimenting with your logs now. Visit https://app.llumo.ai/evallm to see the results.")
946
+
938
947
  else:
939
948
  if getDataFrame == True and toEvaluate == True:
940
949
  return LlumoDataFrameResults(working_df, evals=self.evals, evalData=self.evalData,
@@ -1007,7 +1016,7 @@ class LlumoClient:
1007
1016
  # df = toolResponseDf.fillna("Some error occured")
1008
1017
  # if createPlayground(self.email, self.workspaceID, df,promptText=prompt_template,definationMapping=self.definationMapping):
1009
1018
  # print(
1010
- # "LLUMO’s intuitive UI is ready—start exploring and experimenting with your logs now. Visit https://llumo.ai/evallm to see the results."
1019
+ # "LLUMO’s intuitive UI is ready—start exploring and experimenting with your logs now. Visit https://app.llumo.ai/evallm to see the results."
1011
1020
  # )
1012
1021
  # else:
1013
1022
  # return toolResponseDf
@@ -1230,7 +1239,21 @@ class LlumoClient:
1230
1239
  evalOutputMap=outputEvalMapping
1231
1240
  ):
1232
1241
  print(
1233
- "LLUMO’s intuitive UI is ready—start exploring and experimenting with your logs now. Visit https://llumo.ai/evallm to see the results.")
1242
+ "LLUMO’s intuitive UI is ready—start exploring and experimenting with your logs now. Visit https://app.llumo.ai/evallm to see the results.")
1243
+ if getDataFrame == True and toEvaluate == True:
1244
+ return LlumoDataFrameResults(working_df, evals=self.evals, evalData=self.evalData,
1245
+ definationMapping=self.definationMapping)
1246
+
1247
+ elif getDataFrame == False and toEvaluate == True:
1248
+ data = working_df.to_dict(orient="records")
1249
+ return LlumoDictResults(data, evals=self.evals, evalData=self.evalData,
1250
+ definationMapping=self.definationMapping)
1251
+
1252
+ elif getDataFrame== True and toEvaluate == False:
1253
+ return working_df
1254
+
1255
+ elif getDataFrame == False and toEvaluate == False :
1256
+ return working_df.to_dict(orient = "records")
1234
1257
  else:
1235
1258
  if getDataFrame == True and toEvaluate == True:
1236
1259
  return LlumoDataFrameResults(working_df, evals=self.evals, evalData=self.evalData,
@@ -1467,7 +1490,13 @@ class LlumoClient:
1467
1490
  definationMapping=self.definationMapping,
1468
1491
  ):
1469
1492
  print(
1470
- "LLUMO’s intuitive UI is ready—start exploring and experimenting with your logs now. Visit https://llumo.ai/evallm to see the results.")
1493
+ "LLUMO’s intuitive UI is ready—start exploring and experimenting with your logs now. Visit https://app.llumo.ai/evallm to see the results.")
1494
+ if getDataFrame:
1495
+ return working_df
1496
+
1497
+ else:
1498
+ data = working_df.to_dict(orient="records")
1499
+ return data
1471
1500
  else:
1472
1501
  if getDataFrame:
1473
1502
  return working_df
@@ -1486,7 +1515,7 @@ class LlumoClient:
1486
1515
  flag = createPlayground(self.email, self.workspaceID, dataframe)
1487
1516
  if flag:
1488
1517
  print(
1489
- "LLUMO’s intuitive UI is ready—start exploring and experimenting with your logs now. Visit https://llumo.ai/evallm to see the results."
1518
+ "LLUMO’s intuitive UI is ready—start exploring and experimenting with your logs now. Visit https://app.llumo.ai/evallm to see the results."
1490
1519
  )
1491
1520
  except Exception as e:
1492
1521
  raise "Some error ocuured please check your API key"
@@ -1526,7 +1555,7 @@ class LlumoClient:
1526
1555
  if createPlayground(self.email, self.workspaceID, df):
1527
1556
 
1528
1557
  print(
1529
- "LLUMO’s intuitive UI is ready—start exploring and experimenting with your logs now. Visit https://llumo.ai/evallm to see the results."
1558
+ "LLUMO’s intuitive UI is ready—start exploring and experimenting with your logs now. Visit https://app.llumo.ai/evallm to see the results."
1530
1559
  )
1531
1560
 
1532
1561
  return True
@@ -1546,7 +1575,7 @@ class LlumoClient:
1546
1575
  self.validateApiKey()
1547
1576
  if createPlayground(self.email, self.workspaceID, dataframe):
1548
1577
  print(
1549
- "LLUMO’s intuitive UI is ready—start exploring and experimenting with your logs now. Visit https://llumo.ai/evallm to see the results."
1578
+ "LLUMO’s intuitive UI is ready—start exploring and experimenting with your logs now. Visit https://app.llumo.ai/evallm to see the results."
1550
1579
  )
1551
1580
  return True
1552
1581
 
@@ -1606,7 +1635,7 @@ class LlumoClient:
1606
1635
  activePlayground= activePlayground
1607
1636
  ):
1608
1637
  print(
1609
- "LLUMO’s intuitive UI is ready—start exploring and experimenting with your logs now. Visit https://llumo.ai/evallm to see the results."
1638
+ "LLUMO’s intuitive UI is ready—start exploring and experimenting with your logs now. Visit https://app.llumo.ai/evallm to see the results."
1610
1639
  )
1611
1640
 
1612
1641
  else:
llumo/helpingFuntions.py CHANGED
@@ -227,7 +227,7 @@ def createColumn(workspaceID, dataframe, playgroundID, promptText=None,queryColN
227
227
  "playgroundID": playgroundID,
228
228
  "columnListToUpload": [],
229
229
  }
230
- allEvals = ['Response Completeness', 'Response Bias', 'Response Harmfulness', 'Input Toxicity', 'Input Harmfulness', 'Context Utilization', 'Relevance Retention', 'Semantic Cohesion', 'Final Task Alignment', 'Tool Reliability', 'Response Correctness', 'Response Toxicity', 'Input Bias', 'Input Relevancy', 'Redundancy Reduction', 'Response Sentiment', 'Tool Selection Accuracy', 'Stepwise Progression', 'Hallucination', 'Faithfulness', 'Answer Relevancy', 'Context Precision', 'Answer Similarity', 'Harmfulness', 'Maliciousness', 'Coherence', 'Answer Correctness', 'Context Recall', 'Context Entity Recall', 'Conciseness', 'customEvalColumn', 'Groundedness', 'Memory Utilization', 'Input Relevancy (Multi-turn)']
230
+ allEvals = ['Response Completeness', 'Response Bias', 'Response Harmfulness', 'Input Toxicity', 'Input Harmfulness', 'Context Utilization', 'Relevance Retention', 'Semantic Cohesion', 'Final Task Alignment', 'Tool Reliability', 'Response Correctness', 'Response Toxicity', 'Input Bias', 'Input Relevancy', 'Redundancy Reduction', 'Response Sentiment', 'Tool Selection Accuracy', 'Stepwise Progression', 'Hallucination', 'Faithfulness', 'Answer Relevancy', 'Context Precision', 'Answer Similarity', 'Harmfulness', 'Maliciousness', 'Coherence', 'Answer Correctness', 'Context Recall', 'Context Entity Recall', 'Conciseness', 'customEvalColumn', 'Groundedness', 'Memory Utilization', 'Input Relevancy (Multi-turn)','PII Check','Prompt Injection']
231
231
 
232
232
  evalDependencies = checkDependency(_returnDepMapping=True)
233
233
 
@@ -536,20 +536,22 @@ def checkDependency(selectedEval:list = [], columns:list = [],tocheck=True,_retu
536
536
  'Context Utilization': ['output', 'context'],
537
537
  'Relevance Retention': ['context', 'query'],
538
538
  'Semantic Cohesion': ['context'],
539
- 'Final Task Alignment': ['messageHistory'],
540
- 'Tool Reliability': ['messageHistory'],
539
+ 'Final Task Alignment': ['query','output'],
540
+ 'Tool Reliability': ['intermediateSteps'],
541
541
  'Response Correctness': ['output', 'query', 'context'],
542
542
  'Response Toxicity': ['output'],
543
543
  'Input Bias': ['query'],
544
544
  'Input Relevancy': ['context', 'query'],
545
545
  'Redundancy Reduction': ['context'],
546
546
  'Response Sentiment': ['output'],
547
- 'Tool Selection Accuracy': ['tools', 'messageHistory'],
548
- 'Stepwise Progression': ['tools', 'messageHistory'],
547
+ 'Tool Selection Accuracy': ['tools', 'intermediateSteps'],
548
+ 'Stepwise Progression': ['tools', 'intermediateSteps'],
549
549
  'Hallucination': ['query', 'context', 'output'],
550
550
  'Groundedness': ['groundTruth', 'output'],
551
551
  'Memory Utilization': ['context', 'messageHistory'],
552
- 'Input Relevancy (Multi-turn)': ['context', 'query']
552
+ 'Input Relevancy (Multi-turn)': ['context', 'query'],
553
+ 'PII Check':["query","output"],
554
+ 'Prompt Injection':["query"]
553
555
  }
554
556
  if _returnDepMapping == True:
555
557
  return metricDependencies
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: llumo
3
- Version: 0.2.21
3
+ Version: 0.2.23
4
4
  Summary: Python SDK for interacting with the Llumo ai API.
5
5
  Home-page: https://www.llumo.ai/
6
6
  Author: Llumo
@@ -1,16 +1,16 @@
1
1
  llumo/__init__.py,sha256=YVBkF1fiXFBd_zzySi9BDWgX8MJuLBJ-oF8538MrnDU,256
2
2
  llumo/chains.py,sha256=6lCgLseh04RUgc6SahhmvQj82quay2Mi1j8gPUlx8Es,2923
3
- llumo/client.py,sha256=oLFlVRUh6GIL9pcSuFE93P0uiUzpIvKEhXtYgGmzu24,63289
3
+ llumo/client.py,sha256=iVcdoGncHNrABl3qImBzwwQ_mf48M1Nte3nUEoSbQ2Y,64867
4
4
  llumo/exceptions.py,sha256=Vp_MnanHbnd1Yjuoi6WLrKiwwZbJL3znCox2URMmGU4,2032
5
5
  llumo/execution.py,sha256=nWbJ7AvWuUPcOb6i-JzKRna_PvF-ewZTiK8skS-5n3w,1380
6
6
  llumo/functionCalling.py,sha256=D5jYapu1rIvdIJNUYPYMTyhQ1H-6nkwoOLMi6eekfUE,7241
7
7
  llumo/google.py,sha256=3S_aRtbtlctCXPGR0u4baLlkyFrsjd02vlUCkoRPA5U,2147
8
- llumo/helpingFuntions.py,sha256=pv9LrwClQlh8GHyBgRjpbPIFZaPjcqXQBkrvlAo0xyg,25523
8
+ llumo/helpingFuntions.py,sha256=SmQvE3_9aOzKJa1wAmp6UhOfW1eWwkWcNn_Jwhw4TG8,25641
9
9
  llumo/models.py,sha256=aVEZsOOoQx5LeNtwSyBxqvrINq0izH3QWu_YjsMPE6o,2910
10
10
  llumo/openai.py,sha256=DGhEwQIJIIycGpw3hYQnyxdj6RFVpZ-gay-fZGqtkhU,3013
11
11
  llumo/sockets.py,sha256=pBDo-U65hMIMwKMwZQl3iBkEjISEt-9BkXxZTWfSHF4,6116
12
- llumo-0.2.21.dist-info/licenses/LICENSE,sha256=tF9yAcfPV9xGT3ViWmC8hPvOo8BEk4ZICbUfcEo8Dlk,182
13
- llumo-0.2.21.dist-info/METADATA,sha256=CeHNLHxPgCwExHm3Rh_LI7cVL3ZGC0Hj64pb35VL6iM,1558
14
- llumo-0.2.21.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
15
- llumo-0.2.21.dist-info/top_level.txt,sha256=d5zUTMI99llPtLRB8rtSrqELm_bOqX-bNC5IcwlDk88,6
16
- llumo-0.2.21.dist-info/RECORD,,
12
+ llumo-0.2.23.dist-info/licenses/LICENSE,sha256=tF9yAcfPV9xGT3ViWmC8hPvOo8BEk4ZICbUfcEo8Dlk,182
13
+ llumo-0.2.23.dist-info/METADATA,sha256=6FgzHIZZ7ZEWk1q7DDZIBantpqkk5SH-8EuPtNOPoyc,1558
14
+ llumo-0.2.23.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
15
+ llumo-0.2.23.dist-info/top_level.txt,sha256=d5zUTMI99llPtLRB8rtSrqELm_bOqX-bNC5IcwlDk88,6
16
+ llumo-0.2.23.dist-info/RECORD,,
File without changes