monocle-apptrace 0.3.0b7__tar.gz → 0.3.1b1__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.
Potentially problematic release.
This version of monocle-apptrace might be problematic. Click here for more details.
- monocle_apptrace-0.3.1b1/CHANGELOG.md +83 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/PKG-INFO +2 -1
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/pyproject.toml +3 -2
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/instrumentation/common/constants.py +3 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/instrumentation/common/wrapper_method.py +3 -1
- monocle_apptrace-0.3.1b1/src/monocle_apptrace/instrumentation/metamodel/anthropic/_helper.py +64 -0
- monocle_apptrace-0.3.1b1/src/monocle_apptrace/instrumentation/metamodel/anthropic/entities/inference.py +72 -0
- monocle_apptrace-0.3.1b1/src/monocle_apptrace/instrumentation/metamodel/anthropic/methods.py +22 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/instrumentation/metamodel/botocore/entities/inference.py +2 -2
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/instrumentation/metamodel/botocore/handlers/botocore_span_handler.py +1 -1
- monocle_apptrace-0.3.1b1/src/monocle_apptrace/instrumentation/metamodel/openai/__init__.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/instrumentation/metamodel/openai/_helper.py +9 -4
- monocle_apptrace-0.3.1b1/src/monocle_apptrace/instrumentation/metamodel/openai/entities/__init__.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/instrumentation/metamodel/openai/methods.py +16 -0
- monocle_apptrace-0.3.1b1/src/monocle_apptrace/instrumentation/metamodel/teamsai/__init__.py +0 -0
- monocle_apptrace-0.3.1b1/src/monocle_apptrace/instrumentation/metamodel/teamsai/_helper.py +58 -0
- monocle_apptrace-0.3.1b1/src/monocle_apptrace/instrumentation/metamodel/teamsai/entities/__init__.py +0 -0
- monocle_apptrace-0.3.1b1/src/monocle_apptrace/instrumentation/metamodel/teamsai/entities/inference/__init__.py +0 -0
- monocle_apptrace-0.3.1b1/src/monocle_apptrace/instrumentation/metamodel/teamsai/entities/inference/actionplanner_output_processor.py +80 -0
- monocle_apptrace-0.3.1b1/src/monocle_apptrace/instrumentation/metamodel/teamsai/entities/inference/teamsai_output_processor.py +70 -0
- monocle_apptrace-0.3.1b1/src/monocle_apptrace/instrumentation/metamodel/teamsai/methods.py +26 -0
- monocle_apptrace-0.3.0b7/CHANGELOG.md +0 -49
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/.gitignore +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/CODEOWNERS.md +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/CODE_OF_CONDUCT.md +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/CONTRIBUTING.md +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/COPYRIGHT.template +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/LICENSE +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/MAINTAINER.md +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/Monocle_User_Guide.md +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/Monocle_committer_guide.md +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/Monocle_contributor_guide.md +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/NOTICE +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/README.md +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/SECURITY.md +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/README.md +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/__init__.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/__main__.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/exporters/aws/s3_exporter.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/exporters/aws/s3_exporter_opendal.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/exporters/azure/blob_exporter.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/exporters/azure/blob_exporter_opendal.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/exporters/base_exporter.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/exporters/exporter_processor.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/exporters/file_exporter.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/exporters/monocle_exporters.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/exporters/okahu/okahu_exporter.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/instrumentation/__init__.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/instrumentation/common/__init__.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/instrumentation/common/instrumentor.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/instrumentation/common/span_handler.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/instrumentation/common/utils.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/instrumentation/common/wrapper.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/instrumentation/metamodel/__init__.py +0 -0
- {monocle_apptrace-0.3.0b7/src/monocle_apptrace/instrumentation/metamodel/botocore → monocle_apptrace-0.3.1b1/src/monocle_apptrace/instrumentation/metamodel/anthropic}/__init__.py +0 -0
- {monocle_apptrace-0.3.0b7/src/monocle_apptrace/instrumentation/metamodel/botocore → monocle_apptrace-0.3.1b1/src/monocle_apptrace/instrumentation/metamodel/anthropic}/entities/__init__.py +0 -0
- {monocle_apptrace-0.3.0b7/src/monocle_apptrace/instrumentation/metamodel/flask → monocle_apptrace-0.3.1b1/src/monocle_apptrace/instrumentation/metamodel/botocore}/__init__.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/instrumentation/metamodel/botocore/_helper.py +0 -0
- {monocle_apptrace-0.3.0b7/src/monocle_apptrace/instrumentation/metamodel/haystack → monocle_apptrace-0.3.1b1/src/monocle_apptrace/instrumentation/metamodel/botocore/entities}/__init__.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/instrumentation/metamodel/botocore/methods.py +0 -0
- {monocle_apptrace-0.3.0b7/src/monocle_apptrace/instrumentation/metamodel/haystack/entities → monocle_apptrace-0.3.1b1/src/monocle_apptrace/instrumentation/metamodel/flask}/__init__.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/instrumentation/metamodel/flask/_helper.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/instrumentation/metamodel/flask/methods.py +0 -0
- {monocle_apptrace-0.3.0b7/src/monocle_apptrace/instrumentation/metamodel/langchain → monocle_apptrace-0.3.1b1/src/monocle_apptrace/instrumentation/metamodel/haystack}/__init__.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/instrumentation/metamodel/haystack/_helper.py +0 -0
- {monocle_apptrace-0.3.0b7/src/monocle_apptrace/instrumentation/metamodel/langchain → monocle_apptrace-0.3.1b1/src/monocle_apptrace/instrumentation/metamodel/haystack}/entities/__init__.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/instrumentation/metamodel/haystack/entities/inference.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/instrumentation/metamodel/haystack/entities/retrieval.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/instrumentation/metamodel/haystack/methods.py +0 -0
- {monocle_apptrace-0.3.0b7/src/monocle_apptrace/instrumentation/metamodel/langgraph → monocle_apptrace-0.3.1b1/src/monocle_apptrace/instrumentation/metamodel/langchain}/__init__.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/instrumentation/metamodel/langchain/_helper.py +0 -0
- {monocle_apptrace-0.3.0b7/src/monocle_apptrace/instrumentation/metamodel/langgraph → monocle_apptrace-0.3.1b1/src/monocle_apptrace/instrumentation/metamodel/langchain}/entities/__init__.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/instrumentation/metamodel/langchain/entities/inference.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/instrumentation/metamodel/langchain/entities/retrieval.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/instrumentation/metamodel/langchain/methods.py +0 -0
- {monocle_apptrace-0.3.0b7/src/monocle_apptrace/instrumentation/metamodel/llamaindex → monocle_apptrace-0.3.1b1/src/monocle_apptrace/instrumentation/metamodel/langgraph}/__init__.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/instrumentation/metamodel/langgraph/_helper.py +0 -0
- {monocle_apptrace-0.3.0b7/src/monocle_apptrace/instrumentation/metamodel/llamaindex → monocle_apptrace-0.3.1b1/src/monocle_apptrace/instrumentation/metamodel/langgraph}/entities/__init__.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/instrumentation/metamodel/langgraph/entities/inference.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/instrumentation/metamodel/langgraph/methods.py +0 -0
- {monocle_apptrace-0.3.0b7/src/monocle_apptrace/instrumentation/metamodel/openai → monocle_apptrace-0.3.1b1/src/monocle_apptrace/instrumentation/metamodel/llamaindex}/__init__.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/instrumentation/metamodel/llamaindex/_helper.py +0 -0
- {monocle_apptrace-0.3.0b7/src/monocle_apptrace/instrumentation/metamodel/openai → monocle_apptrace-0.3.1b1/src/monocle_apptrace/instrumentation/metamodel/llamaindex}/entities/__init__.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/instrumentation/metamodel/llamaindex/entities/agent.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/instrumentation/metamodel/llamaindex/entities/inference.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/instrumentation/metamodel/llamaindex/entities/retrieval.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/instrumentation/metamodel/llamaindex/methods.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/instrumentation/metamodel/openai/entities/inference.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/instrumentation/metamodel/openai/entities/retrieval.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/instrumentation/metamodel/requests/__init__.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/instrumentation/metamodel/requests/_helper.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/src/monocle_apptrace/instrumentation/metamodel/requests/methods.py +0 -0
- {monocle_apptrace-0.3.0b7 → monocle_apptrace-0.3.1b1}/tox.ini +0 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
## Version 0.3.1b1 (2024-04-14)
|
|
2
|
+
|
|
3
|
+
- Add MetaModel for Anthropic SDK ([#159](https://github.com/monocle2ai/monocle/pull/159))
|
|
4
|
+
- Add openAI response for openAI and AzureOpenAI ([#158](https://github.com/monocle2ai/monocle/pull/158))
|
|
5
|
+
- Update retrieval span for Boto Client ([#157](https://github.com/monocle2ai/monocle/pull/157))
|
|
6
|
+
- Resolve token threshold error ([#156](https://github.com/monocle2ai/monocle/pull/156))
|
|
7
|
+
- Update Inference Span ([#155](https://github.com/monocle2ai/monocle/pull/155))
|
|
8
|
+
|
|
9
|
+
## Version 0.3.0 (2024-12-10)
|
|
10
|
+
|
|
11
|
+
- Fixed issue with passing context in async case ([#150](https://github.com/monocle2ai/monocle/pull/150))
|
|
12
|
+
- Added lambda processor ([#148](https://github.com/monocle2ai/monocle/pull/148))
|
|
13
|
+
- Setup package level init scripts to make the monocle import simpler ([#147](https://github.com/monocle2ai/monocle/pull/147))
|
|
14
|
+
- Boto attributes and test cleanup ([#146](https://github.com/monocle2ai/monocle/pull/146))
|
|
15
|
+
- Openai workflow ([#142](https://github.com/monocle2ai/monocle/pull/142))
|
|
16
|
+
- Add input/output for openai embedding ([#141](https://github.com/monocle2ai/monocle/pull/141))
|
|
17
|
+
- Async method and scope fix ([#140](https://github.com/monocle2ai/monocle/pull/140))
|
|
18
|
+
- Bug fix for helper langchain and langgraph ([#137](https://github.com/monocle2ai/monocle/pull/137))
|
|
19
|
+
- Package main script to run any app with monocle instrumentation ([#132](https://github.com/monocle2ai/monocle/pull/132))
|
|
20
|
+
- Add openai api metamodel ([#131](https://github.com/monocle2ai/monocle/pull/131))
|
|
21
|
+
- Support notion of scopes to group traces/snaps into logical constructs ([#130](https://github.com/monocle2ai/monocle/pull/130))
|
|
22
|
+
- Add Llamaindex ReAct agent ([#127](https://github.com/monocle2ai/monocle/pull/127))
|
|
23
|
+
- Langhcain input fix and s3 exporter prefix support ([#126](https://github.com/monocle2ai/monocle/pull/126))
|
|
24
|
+
- Use standard AWS credential envs ([#123](https://github.com/monocle2ai/monocle/pull/123))
|
|
25
|
+
- Check additional attributes for Azure OpenAI model and consolidate common method in utils ([#122](https://github.com/monocle2ai/monocle/pull/122))
|
|
26
|
+
- Bug fix for accessor ([#121](https://github.com/monocle2ai/monocle/pull/121))
|
|
27
|
+
- Bug fix for empty response ([#120](https://github.com/monocle2ai/monocle/pull/120))
|
|
28
|
+
- Bug fix for inference endpoint ([#119](https://github.com/monocle2ai/monocle/pull/119))
|
|
29
|
+
- Opendal exporter for S3 and Blob ([#117](https://github.com/monocle2ai/monocle/pull/117))
|
|
30
|
+
- Handle specific ModuleNotFoundError exceptions gracefully ([#115](https://github.com/monocle2ai/monocle/pull/115))
|
|
31
|
+
- Adding support for console and memory exporter to list of monocle exporters ([#113](https://github.com/monocle2ai/monocle/pull/113))
|
|
32
|
+
- Add trace id propogation for constant trace id and from request ([#111](https://github.com/monocle2ai/monocle/pull/111))
|
|
33
|
+
- Restructure of monoocle code for easy extensibility ([#109](https://github.com/monocle2ai/monocle/pull/109))
|
|
34
|
+
- S3 update filename prefix ([#98](https://github.com/monocle2ai/monocle/pull/98))
|
|
35
|
+
- Update inference span for botocore sagemaker ([#93](https://github.com/monocle2ai/monocle/pull/93))
|
|
36
|
+
- Capturing inference output and token metadata for bedrock ([#82](https://github.com/monocle2ai/monocle/pull/82))
|
|
37
|
+
- Add dev dependency for Mistral AI integration ([#81](https://github.com/monocle2ai/monocle/pull/81))
|
|
38
|
+
- Add VectorStore deployment URL capture support ([#80](https://github.com/monocle2ai/monocle/pull/80))
|
|
39
|
+
- Clean up cloud exporter implementation ([#79](https://github.com/monocle2ai/monocle/pull/79))
|
|
40
|
+
- Capture inference span input/output events attributes ([#77](https://github.com/monocle2ai/monocle/pull/77))
|
|
41
|
+
- Add release automation workflows ([#76](https://github.com/monocle2ai/monocle/pull/76))
|
|
42
|
+
- Fix gaps in Monocle SDK implementation ([#72](https://github.com/monocle2ai/monocle/pull/72))
|
|
43
|
+
- Add kwargs and return value handling in Accessor ([#71](https://github.com/monocle2ai/monocle/pull/71))
|
|
44
|
+
- Update workflow name formatting ([#69](https://github.com/monocle2ai/monocle/pull/69))
|
|
45
|
+
- Implement Haystack metamodel support ([#68](https://github.com/monocle2ai/monocle/pull/68))
|
|
46
|
+
|
|
47
|
+
## Version 0.2.0 (2024-12-05)
|
|
48
|
+
|
|
49
|
+
## 0.2.0 (Oct 22, 2024)
|
|
50
|
+
|
|
51
|
+
- Ndjson format for S3 and Blob exporters ([#61](https://github.com/monocle2ai/monocle/pull/61))
|
|
52
|
+
- Set monocle exporter from env setting ([#60](https://github.com/monocle2ai/monocle/pull/60))
|
|
53
|
+
- Update workflow name and type with new format ([#59](https://github.com/monocle2ai/monocle/pull/59))
|
|
54
|
+
- Updated async and custom output processor testcase for metamodel([#58](https://github.com/monocle2ai/monocle/pull/58))
|
|
55
|
+
- Build okahu exporter and added test cases for okahu exporte ([#56](https://github.com/monocle2ai/monocle/pull/56))
|
|
56
|
+
- Handle exception in span wrappers([#52](https://github.com/monocle2ai/monocle/pull/52))
|
|
57
|
+
- Metamodel entity changes ([#51](https://github.com/monocle2ai/monocle/pull/51)), ([#54](https://github.com/monocle2ai/monocle/pull/54))
|
|
58
|
+
- Error handling for llm_endpoint and tags ([#50](https://github.com/monocle2ai/monocle/pull/50))
|
|
59
|
+
- Context_output for vector store retriever ([#48](https://github.com/monocle2ai/monocle/pull/48))
|
|
60
|
+
- Direct exporter - AWS S3 ([#42](https://github.com/monocle2ai/monocle/pull/42))
|
|
61
|
+
- Direct Exporter - Blob store ([#41](https://github.com/monocle2ai/monocle/pull/41))
|
|
62
|
+
- Initial metamodel definition ([#39](https://github.com/monocle2ai/monocle/pull/39))
|
|
63
|
+
- Improvement in vectorstore traces ([#38](https://github.com/monocle2ai/monocle/pull/38))
|
|
64
|
+
- Update key for session context field in attributes ([#34](https://github.com/monocle2ai/monocle/pull/34))
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
## 0.1.0 (Aug 27, 2024)
|
|
68
|
+
|
|
69
|
+
- Fixed LlamaIndex tracing bugs ([#32](https://github.com/monocle2ai/monocle/pull/32))
|
|
70
|
+
- Added support to add AWS cloud infra attributes ([#29](https://github.com/monocle2ai/monocle/pull/29))
|
|
71
|
+
- Added support to add Azure cloud infra attributes ([#23](https://github.com/monocle2ai/monocle/pull/23))
|
|
72
|
+
- Added support for adding provider name in LLM span in traces ([#22](https://github.com/monocle2ai/monocle/pull/22))
|
|
73
|
+
- Added a default file span exporter ([#21](https://github.com/monocle2ai/monocle/pull/21))
|
|
74
|
+
- Moved input and output context and prompts from attributes to events ([#15](https://github.com/monocle2ai/monocle/pull/15))
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
## 0.0.1 (Jul 17, 2024)
|
|
82
|
+
|
|
83
|
+
- First monocle release
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: monocle_apptrace
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.1b1
|
|
4
4
|
Summary: package with monocle genAI tracing
|
|
5
5
|
Project-URL: Homepage, https://github.com/monocle2ai/monocle
|
|
6
6
|
Project-URL: Issues, https://github.com/monocle2ai/monocle/issues
|
|
@@ -20,6 +20,7 @@ Requires-Dist: boto3==1.35.19; extra == 'aws'
|
|
|
20
20
|
Provides-Extra: azure
|
|
21
21
|
Requires-Dist: azure-storage-blob==12.22.0; extra == 'azure'
|
|
22
22
|
Provides-Extra: dev
|
|
23
|
+
Requires-Dist: anthropic==0.49.0; extra == 'dev'
|
|
23
24
|
Requires-Dist: azure-storage-blob==12.22.0; extra == 'dev'
|
|
24
25
|
Requires-Dist: boto3==1.34.131; extra == 'dev'
|
|
25
26
|
Requires-Dist: chromadb==0.4.22; extra == 'dev'
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "monocle_apptrace"
|
|
7
|
-
version = "0.3.
|
|
7
|
+
version = "0.3.1b1"
|
|
8
8
|
authors = []
|
|
9
9
|
description = "package with monocle genAI tracing"
|
|
10
10
|
readme = "README.md"
|
|
@@ -72,7 +72,8 @@ dev = [
|
|
|
72
72
|
'flask',
|
|
73
73
|
'opentelemetry-instrumentation-flask',
|
|
74
74
|
'langgraph==0.2.68',
|
|
75
|
-
'opendal==0.45.14'
|
|
75
|
+
'opendal==0.45.14',
|
|
76
|
+
'anthropic==0.49.0',
|
|
76
77
|
]
|
|
77
78
|
|
|
78
79
|
azure = [
|
|
@@ -13,6 +13,7 @@ GITHUB_CODESPACE_IDENTIFIER_ENV_NAME = "GITHUB_REPOSITORY"
|
|
|
13
13
|
|
|
14
14
|
# Azure naming reference can be found here
|
|
15
15
|
# https://learn.microsoft.com/en-us/azure/cloud-adoption-framework/ready/azure-best-practices/resource-abbreviations
|
|
16
|
+
# https://docs.aws.amazon.com/resource-explorer/latest/userguide/supported-resource-types.html#services-lookoutmetrics
|
|
16
17
|
AZURE_FUNCTION_NAME = "azure.func"
|
|
17
18
|
AZURE_APP_SERVICE_NAME = "azure.asp"
|
|
18
19
|
AZURE_ML_SERVICE_NAME = "azure.mlw"
|
|
@@ -48,6 +49,8 @@ llm_type_map = {
|
|
|
48
49
|
"sagemakerllm": "aws_sagemaker",
|
|
49
50
|
"chatbedrock": "aws_bedrock",
|
|
50
51
|
"openaigenerator": "openai",
|
|
52
|
+
"bedrockruntime":"aws_bedrock",
|
|
53
|
+
"sagemakerruntime":"aws_sagemaker",
|
|
51
54
|
}
|
|
52
55
|
|
|
53
56
|
MONOCLE_INSTRUMENTOR = "monocle_apptrace"
|
|
@@ -15,6 +15,8 @@ from monocle_apptrace.instrumentation.metamodel.flask.methods import (FLASK_METH
|
|
|
15
15
|
from monocle_apptrace.instrumentation.metamodel.flask._helper import FlaskSpanHandler
|
|
16
16
|
from monocle_apptrace.instrumentation.metamodel.requests.methods import (REQUESTS_METHODS, )
|
|
17
17
|
from monocle_apptrace.instrumentation.metamodel.requests._helper import RequestSpanHandler
|
|
18
|
+
from monocle_apptrace.instrumentation.metamodel.teamsai.methods import (TEAMAI_METHODS, )
|
|
19
|
+
from monocle_apptrace.instrumentation.metamodel.anthropic.methods import (ANTHROPIC_METHODS, )
|
|
18
20
|
|
|
19
21
|
class WrapperMethod:
|
|
20
22
|
def __init__(
|
|
@@ -61,7 +63,7 @@ class WrapperMethod:
|
|
|
61
63
|
def get_span_handler(self) -> SpanHandler:
|
|
62
64
|
return self.span_handler()
|
|
63
65
|
|
|
64
|
-
DEFAULT_METHODS_LIST = LANGCHAIN_METHODS + LLAMAINDEX_METHODS + HAYSTACK_METHODS + BOTOCORE_METHODS + FLASK_METHODS + REQUESTS_METHODS + LANGGRAPH_METHODS + OPENAI_METHODS
|
|
66
|
+
DEFAULT_METHODS_LIST = LANGCHAIN_METHODS + LLAMAINDEX_METHODS + HAYSTACK_METHODS + BOTOCORE_METHODS + FLASK_METHODS + REQUESTS_METHODS + LANGGRAPH_METHODS + OPENAI_METHODS + TEAMAI_METHODS + ANTHROPIC_METHODS
|
|
65
67
|
|
|
66
68
|
MONOCLE_SPAN_HANDLERS: Dict[str, SpanHandler] = {
|
|
67
69
|
"default": SpanHandler(),
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"""
|
|
2
|
+
This module provides utility functions for extracting system, user,
|
|
3
|
+
and assistant messages from various input formats.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
import logging
|
|
7
|
+
from monocle_apptrace.instrumentation.common.utils import (
|
|
8
|
+
Option,
|
|
9
|
+
get_keys_as_tuple,
|
|
10
|
+
get_nested_value,
|
|
11
|
+
try_option,
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
logger = logging.getLogger(__name__)
|
|
16
|
+
|
|
17
|
+
def extract_provider_name(instance):
|
|
18
|
+
provider_url: Option[str] = try_option(getattr, instance._client.base_url, 'host')
|
|
19
|
+
return provider_url.unwrap_or(None)
|
|
20
|
+
|
|
21
|
+
def extract_inference_endpoint(instance):
|
|
22
|
+
inference_endpoint: Option[str] = try_option(getattr, instance._client, 'base_url').map(str)
|
|
23
|
+
if inference_endpoint.is_none() and "meta" in instance.client.__dict__:
|
|
24
|
+
inference_endpoint = try_option(getattr, instance.client.meta, 'endpoint_url').map(str)
|
|
25
|
+
|
|
26
|
+
return inference_endpoint.unwrap_or(extract_provider_name(instance))
|
|
27
|
+
|
|
28
|
+
def extract_messages(kwargs):
|
|
29
|
+
"""Extract system and user messages"""
|
|
30
|
+
try:
|
|
31
|
+
messages = []
|
|
32
|
+
if 'messages' in kwargs and len(kwargs['messages']) >0:
|
|
33
|
+
for msg in kwargs['messages']:
|
|
34
|
+
if msg.get('content') and msg.get('role'):
|
|
35
|
+
messages.append({msg['role']: msg['content']})
|
|
36
|
+
|
|
37
|
+
return [str(message) for message in messages]
|
|
38
|
+
except Exception as e:
|
|
39
|
+
logger.warning("Warning: Error occurred in extract_messages: %s", str(e))
|
|
40
|
+
return []
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
def extract_assistant_message(response):
|
|
44
|
+
try:
|
|
45
|
+
if response is not None and hasattr(response,"content") and len(response.content) >0:
|
|
46
|
+
if hasattr(response.content[0],"text"):
|
|
47
|
+
return response.content[0].text
|
|
48
|
+
except (IndexError, AttributeError) as e:
|
|
49
|
+
logger.warning("Warning: Error occurred in extract_assistant_message: %s", str(e))
|
|
50
|
+
return None
|
|
51
|
+
|
|
52
|
+
def update_span_from_llm_response(response):
|
|
53
|
+
meta_dict = {}
|
|
54
|
+
if response is not None and hasattr(response, "usage"):
|
|
55
|
+
if hasattr(response, "usage") and response.usage is not None:
|
|
56
|
+
token_usage = response.usage
|
|
57
|
+
else:
|
|
58
|
+
response_metadata = response.response_metadata
|
|
59
|
+
token_usage = response_metadata.get("token_usage")
|
|
60
|
+
if token_usage is not None:
|
|
61
|
+
meta_dict.update({"completion_tokens": getattr(response.usage, "output_tokens", 0)})
|
|
62
|
+
meta_dict.update({"prompt_tokens": getattr(response.usage, "input_tokens", 0)})
|
|
63
|
+
meta_dict.update({"total_tokens": getattr(response.usage, "input_tokens", 0)+getattr(response.usage, "output_tokens", 0)})
|
|
64
|
+
return meta_dict
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
from monocle_apptrace.instrumentation.metamodel.anthropic import (
|
|
2
|
+
_helper,
|
|
3
|
+
)
|
|
4
|
+
from monocle_apptrace.instrumentation.common.utils import resolve_from_alias, get_llm_type
|
|
5
|
+
|
|
6
|
+
INFERENCE = {
|
|
7
|
+
"type": "inference",
|
|
8
|
+
"attributes": [
|
|
9
|
+
[
|
|
10
|
+
{
|
|
11
|
+
"_comment": "provider type ,name , deployment , inference_endpoint",
|
|
12
|
+
"attribute": "type",
|
|
13
|
+
"accessor": lambda arguments: 'inference.' + (get_llm_type(arguments['instance']) or 'generic')
|
|
14
|
+
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"attribute": "provider_name",
|
|
18
|
+
"accessor": lambda arguments: _helper.extract_provider_name(arguments['instance'])
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"attribute": "deployment",
|
|
22
|
+
"accessor": lambda arguments: resolve_from_alias(arguments['instance'].__dict__, ['engine', 'azure_deployment', 'deployment_name', 'deployment_id', 'deployment'])
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"attribute": "inference_endpoint",
|
|
26
|
+
"accessor": lambda arguments: resolve_from_alias(arguments['instance'].__dict__, ['azure_endpoint', 'api_base', 'endpoint']) or _helper.extract_inference_endpoint(arguments['instance'])
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
[
|
|
30
|
+
{
|
|
31
|
+
"_comment": "LLM Model",
|
|
32
|
+
"attribute": "name",
|
|
33
|
+
"accessor": lambda arguments: resolve_from_alias(arguments['kwargs'], ['model', 'model_name', 'endpoint_name', 'deployment_name'])
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"attribute": "type",
|
|
37
|
+
"accessor": lambda arguments: 'model.llm.' + resolve_from_alias(arguments['kwargs'], ['model', 'model_name', 'endpoint_name', 'deployment_name'])
|
|
38
|
+
}
|
|
39
|
+
]
|
|
40
|
+
],
|
|
41
|
+
"events": [
|
|
42
|
+
{"name": "data.input",
|
|
43
|
+
"attributes": [
|
|
44
|
+
|
|
45
|
+
{
|
|
46
|
+
"_comment": "this is instruction and user query to LLM",
|
|
47
|
+
"attribute": "input",
|
|
48
|
+
"accessor": lambda arguments: _helper.extract_messages(arguments['kwargs'])
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"name": "data.output",
|
|
54
|
+
"attributes": [
|
|
55
|
+
{
|
|
56
|
+
"_comment": "this is result from LLM",
|
|
57
|
+
"attribute": "response",
|
|
58
|
+
"accessor": lambda arguments: _helper.extract_assistant_message(arguments['result'])
|
|
59
|
+
}
|
|
60
|
+
]
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"name": "metadata",
|
|
64
|
+
"attributes": [
|
|
65
|
+
{
|
|
66
|
+
"_comment": "this is metadata usage from LLM",
|
|
67
|
+
"accessor": lambda arguments: _helper.update_span_from_llm_response(arguments['result'])
|
|
68
|
+
}
|
|
69
|
+
]
|
|
70
|
+
}
|
|
71
|
+
]
|
|
72
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
from monocle_apptrace.instrumentation.common.wrapper import atask_wrapper, task_wrapper
|
|
2
|
+
from monocle_apptrace.instrumentation.metamodel.anthropic.entities.inference import (
|
|
3
|
+
INFERENCE,
|
|
4
|
+
)
|
|
5
|
+
|
|
6
|
+
ANTHROPIC_METHODS = [
|
|
7
|
+
{
|
|
8
|
+
"package": "anthropic.resources.messages.messages",
|
|
9
|
+
"object": "Messages",
|
|
10
|
+
"method": "create",
|
|
11
|
+
"wrapper_method": task_wrapper,
|
|
12
|
+
"output_processor": INFERENCE
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"package": "anthropic.resources.messages.messages",
|
|
16
|
+
"object": "AsyncMessages",
|
|
17
|
+
"method": "create",
|
|
18
|
+
"wrapper_method": atask_wrapper,
|
|
19
|
+
"output_processor": INFERENCE
|
|
20
|
+
},
|
|
21
|
+
|
|
22
|
+
]
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from monocle_apptrace.instrumentation.metamodel.botocore import (
|
|
2
2
|
_helper,
|
|
3
3
|
)
|
|
4
|
-
|
|
4
|
+
from monocle_apptrace.instrumentation.common.utils import get_llm_type
|
|
5
5
|
INFERENCE = {
|
|
6
6
|
"type": "inference",
|
|
7
7
|
"attributes": [
|
|
@@ -9,7 +9,7 @@ INFERENCE = {
|
|
|
9
9
|
{
|
|
10
10
|
"_comment": "provider type , inference_endpoint",
|
|
11
11
|
"attribute": "type",
|
|
12
|
-
"accessor": lambda arguments: 'inference.
|
|
12
|
+
"accessor": lambda arguments: 'inference.'+(get_llm_type(arguments['instance']) or 'generic')
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
15
|
"attribute": "inference_endpoint",
|
|
@@ -23,4 +23,4 @@ class BotoCoreSpanHandler(SpanHandler):
|
|
|
23
23
|
def post_tracing(self, to_wrap, wrapped, instance, args, kwargs, return_value):
|
|
24
24
|
self._botocore_processor(to_wrap=to_wrap, wrapped=wrapped, instance=instance, return_value=return_value, args=args,
|
|
25
25
|
kwargs=kwargs)
|
|
26
|
-
return super().
|
|
26
|
+
return super().post_tracing(to_wrap, wrapped, instance, args, kwargs,return_value)
|
|
File without changes
|
|
@@ -19,6 +19,10 @@ def extract_messages(kwargs):
|
|
|
19
19
|
"""Extract system and user messages"""
|
|
20
20
|
try:
|
|
21
21
|
messages = []
|
|
22
|
+
if 'instructions' in kwargs:
|
|
23
|
+
messages.append({'instructions': kwargs.get('instructions', {})})
|
|
24
|
+
if 'input' in kwargs:
|
|
25
|
+
messages.append({'input': kwargs.get('input', {})})
|
|
22
26
|
if 'messages' in kwargs and len(kwargs['messages']) >0:
|
|
23
27
|
for msg in kwargs['messages']:
|
|
24
28
|
if msg.get('content') and msg.get('role'):
|
|
@@ -32,6 +36,8 @@ def extract_messages(kwargs):
|
|
|
32
36
|
|
|
33
37
|
def extract_assistant_message(response):
|
|
34
38
|
try:
|
|
39
|
+
if hasattr(response,"output_text") and len(response.output_text):
|
|
40
|
+
return response.output_text
|
|
35
41
|
if response is not None and hasattr(response,"choices") and len(response.choices) >0:
|
|
36
42
|
if hasattr(response.choices[0],"message"):
|
|
37
43
|
return response.choices[0].message.content
|
|
@@ -85,10 +91,9 @@ def update_span_from_llm_response(response):
|
|
|
85
91
|
response_metadata = response.response_metadata
|
|
86
92
|
token_usage = response_metadata.get("token_usage")
|
|
87
93
|
if token_usage is not None:
|
|
88
|
-
meta_dict.update(
|
|
89
|
-
|
|
90
|
-
meta_dict.update({"
|
|
91
|
-
meta_dict.update({"total_tokens": getattr(response.usage, "total_tokens", None)})
|
|
94
|
+
meta_dict.update({"completion_tokens": getattr(token_usage,"completion_tokens",None) or getattr(token_usage,"output_tokens",None)})
|
|
95
|
+
meta_dict.update({"prompt_tokens": getattr(token_usage, "prompt_tokens", None) or getattr(token_usage, "input_tokens", None)})
|
|
96
|
+
meta_dict.update({"total_tokens": getattr(token_usage,"total_tokens")})
|
|
92
97
|
return meta_dict
|
|
93
98
|
|
|
94
99
|
def extract_vector_input(vector_input: dict):
|
monocle_apptrace-0.3.1b1/src/monocle_apptrace/instrumentation/metamodel/openai/entities/__init__.py
ADDED
|
File without changes
|
|
@@ -40,6 +40,22 @@ OPENAI_METHODS = [
|
|
|
40
40
|
"span_name": "openai_embeddings",
|
|
41
41
|
"span_handler": "non_framework_handler",
|
|
42
42
|
"output_processor": RETRIEVAL
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"package": "openai.resources.responses",
|
|
46
|
+
"object": "Responses",
|
|
47
|
+
"method": "create",
|
|
48
|
+
"wrapper_method": task_wrapper,
|
|
49
|
+
"span_handler": "non_framework_handler",
|
|
50
|
+
"output_processor": INFERENCE
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"package": "openai.resources.responses",
|
|
54
|
+
"object": "AsyncResponses",
|
|
55
|
+
"method": "create",
|
|
56
|
+
"wrapper_method": atask_wrapper,
|
|
57
|
+
"span_handler": "non_framework_handler",
|
|
58
|
+
"output_processor": INFERENCE
|
|
43
59
|
}
|
|
44
60
|
|
|
45
61
|
]
|
|
File without changes
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
from monocle_apptrace.instrumentation.common.utils import MonocleSpanException
|
|
2
|
+
def capture_input(arguments):
|
|
3
|
+
"""
|
|
4
|
+
Captures the input from Teams AI state.
|
|
5
|
+
Args:
|
|
6
|
+
arguments (dict): Arguments containing state and context information
|
|
7
|
+
Returns:
|
|
8
|
+
str: The input message or error message
|
|
9
|
+
"""
|
|
10
|
+
try:
|
|
11
|
+
# Get the memory object from kwargs
|
|
12
|
+
kwargs = arguments.get("kwargs", {})
|
|
13
|
+
|
|
14
|
+
# If memory exists, try to get the input from temp
|
|
15
|
+
if "memory" in kwargs:
|
|
16
|
+
memory = kwargs["memory"]
|
|
17
|
+
# Check if it's a TurnState object
|
|
18
|
+
if hasattr(memory, "get"):
|
|
19
|
+
# Use proper TurnState.get() method
|
|
20
|
+
temp = memory.get("temp")
|
|
21
|
+
if temp and hasattr(temp, "get"):
|
|
22
|
+
input_value = temp.get("input")
|
|
23
|
+
if input_value:
|
|
24
|
+
return str(input_value)
|
|
25
|
+
|
|
26
|
+
# Try alternative path through context if memory path fails
|
|
27
|
+
context = kwargs.get("context")
|
|
28
|
+
if hasattr(context, "activity") and hasattr(context.activity, "text"):
|
|
29
|
+
return str(context.activity.text)
|
|
30
|
+
|
|
31
|
+
return "No input found in memory or context"
|
|
32
|
+
except Exception as e:
|
|
33
|
+
print(f"Debug - Arguments structure: {str(arguments)}")
|
|
34
|
+
print(f"Debug - kwargs: {str(kwargs)}")
|
|
35
|
+
if "memory" in kwargs:
|
|
36
|
+
print(f"Debug - memory type: {type(kwargs['memory'])}")
|
|
37
|
+
return f"Error capturing input: {str(e)}"
|
|
38
|
+
|
|
39
|
+
def capture_prompt_info(arguments):
|
|
40
|
+
"""Captures prompt information from ActionPlanner state"""
|
|
41
|
+
try:
|
|
42
|
+
kwargs = arguments.get("kwargs", {})
|
|
43
|
+
prompt = kwargs.get("prompt")
|
|
44
|
+
|
|
45
|
+
if isinstance(prompt, str):
|
|
46
|
+
return prompt
|
|
47
|
+
elif hasattr(prompt, "name"):
|
|
48
|
+
return prompt.name
|
|
49
|
+
|
|
50
|
+
return "No prompt information found"
|
|
51
|
+
except Exception as e:
|
|
52
|
+
return f"Error capturing prompt: {str(e)}"
|
|
53
|
+
|
|
54
|
+
def status_check(arguments):
|
|
55
|
+
if hasattr(arguments["result"], "error") and arguments["result"].error is not None:
|
|
56
|
+
error_msg:str = arguments["result"].error
|
|
57
|
+
error_code:str = arguments["result"].status if hasattr(arguments["result"], "status") else "unknown"
|
|
58
|
+
raise MonocleSpanException(f"Error: {error_code} - {error_msg}")
|
monocle_apptrace-0.3.1b1/src/monocle_apptrace/instrumentation/metamodel/teamsai/entities/__init__.py
ADDED
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
from monocle_apptrace.instrumentation.metamodel.teamsai import (
|
|
2
|
+
_helper,
|
|
3
|
+
)
|
|
4
|
+
ACTIONPLANNER_OUTPUT_PROCESSOR = {
|
|
5
|
+
"type": "inference",
|
|
6
|
+
"attributes": [
|
|
7
|
+
[
|
|
8
|
+
{
|
|
9
|
+
"_comment": "planner type and configuration",
|
|
10
|
+
"attribute": "type",
|
|
11
|
+
"accessor": lambda arguments: "teams.planner"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"attribute": "planner_type",
|
|
15
|
+
"accessor": lambda arguments: "ActionPlanner"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"attribute": "max_repair_attempts",
|
|
19
|
+
"accessor": lambda arguments: arguments["instance"]._options.max_repair_attempts if hasattr(arguments["instance"], "_options") else 3
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
[
|
|
23
|
+
{
|
|
24
|
+
"_comment": "model configuration",
|
|
25
|
+
"attribute": "model",
|
|
26
|
+
"accessor": lambda arguments: arguments["instance"]._options.model.__class__.__name__ if hasattr(arguments["instance"], "_options") else "unknown"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"attribute": "tokenizer",
|
|
30
|
+
"accessor": lambda arguments: arguments["instance"]._options.tokenizer.__class__.__name__ if hasattr(arguments["instance"], "_options") else "GPTTokenizer"
|
|
31
|
+
}
|
|
32
|
+
]
|
|
33
|
+
],
|
|
34
|
+
"events": [
|
|
35
|
+
{
|
|
36
|
+
"name": "data.input",
|
|
37
|
+
"_comment": "input configuration to ActionPlanner",
|
|
38
|
+
"attributes": [
|
|
39
|
+
{
|
|
40
|
+
"attribute": "prompt_name",
|
|
41
|
+
"accessor": _helper.capture_prompt_info
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"attribute": "validator",
|
|
45
|
+
"accessor": lambda arguments: arguments["kwargs"].get("validator").__class__.__name__ if arguments.get("kwargs", {}).get("validator") else "DefaultResponseValidator"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"attribute": "memory_type",
|
|
49
|
+
"accessor": lambda arguments: arguments["kwargs"].get("memory").__class__.__name__ if arguments.get("kwargs", {}).get("memory") else "unknown"
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"name": "data.output",
|
|
55
|
+
"_comment": "output from ActionPlanner",
|
|
56
|
+
"attributes": [
|
|
57
|
+
{
|
|
58
|
+
"attribute": "status",
|
|
59
|
+
"accessor": lambda arguments: _helper.status_check(arguments)
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"attribute": "response",
|
|
63
|
+
"accessor": lambda arguments: arguments["result"].message.content if hasattr(arguments["result"], "message") else str(arguments["result"])
|
|
64
|
+
}
|
|
65
|
+
]
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"name": "metadata",
|
|
69
|
+
"attributes": [
|
|
70
|
+
{
|
|
71
|
+
"_comment": "execution metadata",
|
|
72
|
+
"accessor": lambda arguments: {
|
|
73
|
+
"latency_ms": arguments.get("latency_ms"),
|
|
74
|
+
"feedback_enabled": arguments["instance"]._enable_feedback_loop if hasattr(arguments["instance"], "_enable_feedback_loop") else False
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
]
|
|
78
|
+
}
|
|
79
|
+
]
|
|
80
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
from monocle_apptrace.instrumentation.metamodel.teamsai import (
|
|
2
|
+
_helper,
|
|
3
|
+
)
|
|
4
|
+
TEAMAI_OUTPUT_PROCESSOR = {
|
|
5
|
+
"type": "inference",
|
|
6
|
+
"attributes": [
|
|
7
|
+
[
|
|
8
|
+
{
|
|
9
|
+
"_comment": "provider type, name, deployment",
|
|
10
|
+
"attribute": "type",
|
|
11
|
+
"accessor": lambda arguments: "teams.openai"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"attribute": "provider_name",
|
|
15
|
+
"accessor": lambda arguments: "Microsoft Teams AI"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"attribute": "deployment",
|
|
19
|
+
"accessor": lambda arguments: arguments["instance"]._options.default_model if hasattr(arguments["instance"], "_options") else "unknown"
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
[
|
|
23
|
+
{
|
|
24
|
+
"_comment": "LLM Model",
|
|
25
|
+
"attribute": "name",
|
|
26
|
+
"accessor": lambda arguments: arguments["instance"]._options.default_model if hasattr(arguments["instance"], "_options") else "unknown"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"attribute": "is_streaming",
|
|
30
|
+
"accessor": lambda arguments: arguments["instance"]._options.stream if hasattr(arguments["instance"], "_options") else False
|
|
31
|
+
}
|
|
32
|
+
]
|
|
33
|
+
],
|
|
34
|
+
"events": [
|
|
35
|
+
{
|
|
36
|
+
"name": "data.input",
|
|
37
|
+
"_comment": "input to Teams AI",
|
|
38
|
+
"attributes": [
|
|
39
|
+
{
|
|
40
|
+
"attribute": "input",
|
|
41
|
+
"accessor": _helper.capture_input
|
|
42
|
+
}
|
|
43
|
+
]
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"name": "data.output",
|
|
47
|
+
"_comment": "output from Teams AI",
|
|
48
|
+
"attributes": [
|
|
49
|
+
{
|
|
50
|
+
"attribute": "response",
|
|
51
|
+
"accessor": lambda arguments: arguments["result"].message.content if hasattr(arguments["result"], "message") else str(arguments["result"])
|
|
52
|
+
}
|
|
53
|
+
]
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"name": "metadata",
|
|
57
|
+
"attributes": [
|
|
58
|
+
{
|
|
59
|
+
"_comment": "metadata from Teams AI response",
|
|
60
|
+
"accessor": lambda arguments: {
|
|
61
|
+
"prompt_tokens": arguments["result"].get("usage", {}).get("prompt_tokens", 0),
|
|
62
|
+
"completion_tokens": arguments["result"].get("usage", {}).get("completion_tokens", 0),
|
|
63
|
+
"total_tokens": arguments["result"].get("usage", {}).get("total_tokens", 0),
|
|
64
|
+
"latency_ms": arguments.get("latency_ms")
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
]
|
|
68
|
+
}
|
|
69
|
+
]
|
|
70
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
from monocle_apptrace.instrumentation.common.wrapper import atask_wrapper, task_wrapper
|
|
2
|
+
from monocle_apptrace.instrumentation.metamodel.teamsai.entities.inference.teamsai_output_processor import (
|
|
3
|
+
TEAMAI_OUTPUT_PROCESSOR,
|
|
4
|
+
)
|
|
5
|
+
from monocle_apptrace.instrumentation.metamodel.teamsai.entities.inference.actionplanner_output_processor import (
|
|
6
|
+
ACTIONPLANNER_OUTPUT_PROCESSOR,
|
|
7
|
+
)
|
|
8
|
+
|
|
9
|
+
TEAMAI_METHODS =[
|
|
10
|
+
{
|
|
11
|
+
"package": "teams.ai.models.openai_model",
|
|
12
|
+
"object": "OpenAIModel",
|
|
13
|
+
"method": "complete_prompt",
|
|
14
|
+
"span_name": "teamsai.workflow",
|
|
15
|
+
"wrapper_method": atask_wrapper,
|
|
16
|
+
"output_processor": TEAMAI_OUTPUT_PROCESSOR
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"package": "teams.ai.planners.action_planner",
|
|
20
|
+
"object": "ActionPlanner",
|
|
21
|
+
"method": "complete_prompt",
|
|
22
|
+
"span_name": "teamsai.workflow",
|
|
23
|
+
"wrapper_method": atask_wrapper,
|
|
24
|
+
"output_processor": ACTIONPLANNER_OUTPUT_PROCESSOR
|
|
25
|
+
}
|
|
26
|
+
]
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
## Version 0.3.0b7 (2024-12-10)
|
|
2
|
-
|
|
3
|
-
- Add dev dependency for Mistral AI integration ([#81](https://github.com/monocle2ai/monocle/pull/81))
|
|
4
|
-
- Add VectorStore deployment URL capture support ([#80](https://github.com/monocle2ai/monocle/pull/80))
|
|
5
|
-
- Clean up cloud exporter implementation ([#79](https://github.com/monocle2ai/monocle/pull/79))
|
|
6
|
-
- Capture inference span input/output events attributes ([#77](https://github.com/monocle2ai/monocle/pull/77))
|
|
7
|
-
- Add release automation workflows ([#76](https://github.com/monocle2ai/monocle/pull/76))
|
|
8
|
-
- Fix gaps in Monocle SDK implementation ([#72](https://github.com/monocle2ai/monocle/pull/72))
|
|
9
|
-
- Add kwargs and return value handling in Accessor ([#71](https://github.com/monocle2ai/monocle/pull/71))
|
|
10
|
-
- Update workflow name formatting ([#69](https://github.com/monocle2ai/monocle/pull/69))
|
|
11
|
-
- Implement Haystack metamodel support ([#68](https://github.com/monocle2ai/monocle/pull/68))
|
|
12
|
-
|
|
13
|
-
## Version 0.2.0 (2024-12-05)
|
|
14
|
-
|
|
15
|
-
## 0.2.0 (Oct 22, 2024)
|
|
16
|
-
|
|
17
|
-
- Ndjson format for S3 and Blob exporters ([#61](https://github.com/monocle2ai/monocle/pull/61))
|
|
18
|
-
- Set monocle exporter from env setting ([#60](https://github.com/monocle2ai/monocle/pull/60))
|
|
19
|
-
- Update workflow name and type with new format ([#59](https://github.com/monocle2ai/monocle/pull/59))
|
|
20
|
-
- Updated async and custom output processor testcase for metamodel([#58](https://github.com/monocle2ai/monocle/pull/58))
|
|
21
|
-
- Build okahu exporter and added test cases for okahu exporte ([#56](https://github.com/monocle2ai/monocle/pull/56))
|
|
22
|
-
- Handle exception in span wrappers([#52](https://github.com/monocle2ai/monocle/pull/52))
|
|
23
|
-
- Metamodel entity changes ([#51](https://github.com/monocle2ai/monocle/pull/51)), ([#54](https://github.com/monocle2ai/monocle/pull/54))
|
|
24
|
-
- Error handling for llm_endpoint and tags ([#50](https://github.com/monocle2ai/monocle/pull/50))
|
|
25
|
-
- Context_output for vector store retriever ([#48](https://github.com/monocle2ai/monocle/pull/48))
|
|
26
|
-
- Direct exporter - AWS S3 ([#42](https://github.com/monocle2ai/monocle/pull/42))
|
|
27
|
-
- Direct Exporter - Blob store ([#41](https://github.com/monocle2ai/monocle/pull/41))
|
|
28
|
-
- Initial metamodel definition ([#39](https://github.com/monocle2ai/monocle/pull/39))
|
|
29
|
-
- Improvement in vectorstore traces ([#38](https://github.com/monocle2ai/monocle/pull/38))
|
|
30
|
-
- Update key for session context field in attributes ([#34](https://github.com/monocle2ai/monocle/pull/34))
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
## 0.1.0 (Aug 27, 2024)
|
|
34
|
-
|
|
35
|
-
- Fixed LlamaIndex tracing bugs ([#32](https://github.com/monocle2ai/monocle/pull/32))
|
|
36
|
-
- Added support to add AWS cloud infra attributes ([#29](https://github.com/monocle2ai/monocle/pull/29))
|
|
37
|
-
- Added support to add Azure cloud infra attributes ([#23](https://github.com/monocle2ai/monocle/pull/23))
|
|
38
|
-
- Added support for adding provider name in LLM span in traces ([#22](https://github.com/monocle2ai/monocle/pull/22))
|
|
39
|
-
- Added a default file span exporter ([#21](https://github.com/monocle2ai/monocle/pull/21))
|
|
40
|
-
- Moved input and output context and prompts from attributes to events ([#15](https://github.com/monocle2ai/monocle/pull/15))
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
## 0.0.1 (Jul 17, 2024)
|
|
48
|
-
|
|
49
|
-
- First monocle release
|
|
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
|
|
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
|