Skip to content

Commit 23d8e5d

Browse files
authored
Merge branch 'main' into add-rstcheck
2 parents 6c145a5 + 17aba81 commit 23d8e5d

File tree

15 files changed

+195
-176
lines changed

15 files changed

+195
-176
lines changed

.github/workflows/package-prepare-patch-release.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ on:
1111
- opentelemetry-instrumentation-openai-v2
1212
- opentelemetry-instrumentation-vertexai
1313
- opentelemetry-instrumentation-google-genai
14+
- opentelemetry-util-genai
1415
description: 'Package to be released'
1516
required: true
1617
permissions:
@@ -48,7 +49,7 @@ jobs:
4849
4950
version=$(./scripts/eachdist.py version --package ${{ inputs.package }})
5051
51-
version_file=$(find $path -type f -path "*version*.py")
52+
version_file=$(find $path -type f -path "**/version.py")
5253
file_count=$(echo "$version_file" | wc -l)
5354
5455
if [ "$file_count" -ne 1 ]; then

.github/workflows/package-prepare-release.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ on:
1111
- opentelemetry-instrumentation-openai-v2
1212
- opentelemetry-instrumentation-vertexai
1313
- opentelemetry-instrumentation-google-genai
14+
- opentelemetry-util-genai
1415
description: 'Package to be released'
1516
required: true
1617

@@ -60,7 +61,7 @@ jobs:
6061
6162
version=${version_dev%.dev}
6263
63-
version_file=$(find $path -type f -path "*version*.py")
64+
version_file=$(find $path -type f -path "**/version.py")
6465
file_count=$(echo "$version_file" | wc -l)
6566
6667
if [ "$file_count" -ne 1 ]; then

.github/workflows/package-release.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ on:
1111
- opentelemetry-instrumentation-openai-v2
1212
- opentelemetry-instrumentation-vertexai
1313
- opentelemetry-instrumentation-google-genai
14+
- opentelemetry-util-genai
1415
description: 'Package to be released'
1516
required: true
1617
permissions:

docs/instrumentation-genai/util.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ OpenTelemetry Python - GenAI Util
2121
:undoc-members:
2222
:show-inheritance:
2323

24-
.. automodule:: opentelemetry.util.genai.upload_hook
24+
.. automodule:: opentelemetry.util.genai.completion_hook
2525
:members:
2626
:undoc-members:
2727
:show-inheritance:

instrumentation-genai/opentelemetry-instrumentation-vertexai/pyproject.toml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,9 @@ classifiers = [
2626
dependencies = [
2727
"opentelemetry-api ~= 1.28",
2828
"opentelemetry-instrumentation ~= 0.58b0",
29-
"opentelemetry-util-genai == 0.1b0.dev",
29+
# TODO https://github.com/open-telemetry/opentelemetry-python-contrib/issues/3786: restrict
30+
# version after the first release
31+
"opentelemetry-util-genai",
3032
"opentelemetry-semantic-conventions ~= 0.58b0",
3133
]
3234

instrumentation/opentelemetry-instrumentation-botocore/src/opentelemetry/instrumentation/botocore/extensions/bedrock_utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ def _process_event(self, event):
117117
self._content_block["toolUse"]["input"] = json.loads(
118118
self._tool_json_input_buf
119119
)
120-
except json.DecodeError:
120+
except json.JSONDecodeError:
121121
self._content_block["toolUse"]["input"] = (
122122
self._tool_json_input_buf
123123
)

util/opentelemetry-util-genai/CHANGELOG.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## Unreleased
99

10-
- Add upload hook to genai utils to implement semconv v1.37.
10+
- Add completion hook to genai utils to implement semconv v1.37.
1111

12-
The hook uses [`fsspec`](https://filesystem-spec.readthedocs.io/en/latest/) to support
13-
various pluggable backends.
12+
Includes a hook implementation using
13+
[`fsspec`](https://filesystem-spec.readthedocs.io/en/latest/) to support uploading to various
14+
pluggable backends.
15+
16+
([#3780](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3780))
1417
([#3752](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3752))
15-
([#3759](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3752))
18+
([#3759](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3759))
1619
([#3763](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3763))
1720
- Add a utility to parse the `OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT` environment variable.
1821
Add `gen_ai_latest_experimental` as a new value to the Sem Conv stability flag ([#3716](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3716)).

util/opentelemetry-util-genai/pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ dependencies = [
3030
"opentelemetry-api>=1.31.0",
3131
]
3232

33-
[project.entry-points.opentelemetry_genai_upload_hook]
34-
fsspec = "opentelemetry.util.genai._fsspec_upload:fsspec_upload_hook"
33+
[project.entry-points.opentelemetry_genai_completion_hook]
34+
fsspec_upload = "opentelemetry.util.genai._fsspec_upload:fsspec_completion_upload_hook"
3535

3636
[project.optional-dependencies]
3737
test = ["pytest>=7.0.0"]

util/opentelemetry-util-genai/src/opentelemetry/util/genai/_fsspec_upload/__init__.py

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,24 +16,27 @@
1616

1717
from os import environ
1818

19+
from opentelemetry.util.genai.completion_hook import (
20+
CompletionHook,
21+
_NoOpCompletionHook,
22+
)
1923
from opentelemetry.util.genai.environment_variables import (
2024
OTEL_INSTRUMENTATION_GENAI_UPLOAD_BASE_PATH,
2125
)
22-
from opentelemetry.util.genai.upload_hook import UploadHook, _NoOpUploadHook
2326

2427

25-
def fsspec_upload_hook() -> UploadHook:
28+
def fsspec_completion_upload_hook() -> CompletionHook:
2629
# If fsspec is not installed the hook will be a no-op.
2730
try:
2831
# pylint: disable=import-outside-toplevel
29-
from opentelemetry.util.genai._fsspec_upload.fsspec_hook import (
30-
FsspecUploadHook,
32+
from opentelemetry.util.genai._fsspec_upload.completion_hook import (
33+
FsspecUploadCompletionHook,
3134
)
3235
except ImportError:
33-
return _NoOpUploadHook()
36+
return _NoOpCompletionHook()
3437

3538
base_path = environ.get(OTEL_INSTRUMENTATION_GENAI_UPLOAD_BASE_PATH)
3639
if not base_path:
37-
return _NoOpUploadHook()
40+
return _NoOpCompletionHook()
3841

39-
return FsspecUploadHook(base_path=base_path)
42+
return FsspecUploadCompletionHook(base_path=base_path)

util/opentelemetry-util-genai/src/opentelemetry/util/genai/_fsspec_upload/fsspec_hook.py renamed to util/opentelemetry-util-genai/src/opentelemetry/util/genai/_fsspec_upload/completion_hook.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
from opentelemetry.semconv._incubating.attributes import gen_ai_attributes
3535
from opentelemetry.trace import Span
3636
from opentelemetry.util.genai import types
37-
from opentelemetry.util.genai.upload_hook import UploadHook
37+
from opentelemetry.util.genai.completion_hook import CompletionHook
3838

3939
GEN_AI_INPUT_MESSAGES_REF: Final = (
4040
gen_ai_attributes.GEN_AI_INPUT_MESSAGES + "_ref"
@@ -75,12 +75,12 @@ def fsspec_open(urlpath: str, mode: Literal["w"]) -> TextIO:
7575
return cast(TextIO, fsspec.open(urlpath, mode)) # pyright: ignore[reportUnknownMemberType]
7676

7777

78-
class FsspecUploadHook(UploadHook):
79-
"""An upload hook using ``fsspec`` to upload to external storage
78+
class FsspecUploadCompletionHook(CompletionHook):
79+
"""An completion hook using ``fsspec`` to upload to external storage
8080
8181
This function can be used as the
82-
:func:`~opentelemetry.util.genai.upload_hook.load_upload_hook` implementation by
83-
setting :envvar:`OTEL_INSTRUMENTATION_GENAI_UPLOAD_HOOK` to ``fsspec``.
82+
:func:`~opentelemetry.util.genai.completion_hook.load_completion_hook` implementation by
83+
setting :envvar:`OTEL_INSTRUMENTATION_GENAI_COMPLETION_HOOK` to ``fsspec_upload``.
8484
:envvar:`OTEL_INSTRUMENTATION_GENAI_UPLOAD_BASE_PATH` must be configured to specify the
8585
base path for uploads.
8686
@@ -128,7 +128,7 @@ def done(future: Future[None]) -> None:
128128
fut.add_done_callback(done)
129129
except RuntimeError:
130130
_logger.info(
131-
"attempting to upload file after FsspecUploadHook.shutdown() was already called"
131+
"attempting to upload file after FsspecUploadCompletionHook.shutdown() was already called"
132132
)
133133
self._semaphore.release()
134134

@@ -161,7 +161,7 @@ def _do_upload(
161161
cls=Base64JsonEncoder,
162162
)
163163

164-
def upload(
164+
def on_completion(
165165
self,
166166
*,
167167
inputs: list[types.InputMessage],

0 commit comments

Comments
 (0)