Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

llms/googleai: batch embedding calls #825

Merged
merged 2 commits into from
May 13, 2024

Conversation

johanbrandhorst
Copy link
Contributor

The new Batch API significantly speeds up embedding

PR Checklist

  • Read the Contributing documentation.
  • Read the Code of conduct documentation.
  • Name your Pull Request title clearly, concisely, and prefixed with the name of the primarily affected package you changed according to Good commit messages (such as memory: add interfaces for X, Y or util: add whizzbang helpers).
  • Check that there isn't already a PR that solves the problem the same way to avoid creating a duplicate.
  • Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. Fixes #123).
  • Describes the source of new concepts.
  • References existing implementations as appropriate.
  • Contains test coverage for new functions.
  • Passes all golangci-lint checks.

@tmc
Copy link
Owner

tmc commented May 9, 2024

So good to see you contributing! can't wait to get this in!.

@johanbrandhorst
Copy link
Contributor Author

Long time no see Travis :). Well done on this project. I'm wondering how you would prefer I test this, the only way I can see is to spin up a custom HTTP server to fake the requests but it doesn't provide much in the way of confidence - I have tested this personally against the Gemini API and it works great.

This update allows the use of Gemini 1.5 Pro and batching of embeddings
@johanbrandhorst johanbrandhorst force-pushed the better-googleai-embedding-batching branch from bb298b8 to 1b86160 Compare May 9, 2024 17:18
The new Batch API significantly speeds up embedding
@johanbrandhorst johanbrandhorst force-pushed the better-googleai-embedding-batching branch from 1b86160 to 7bb7ac0 Compare May 9, 2024 18:20
@johanbrandhorst johanbrandhorst marked this pull request as ready for review May 10, 2024 16:23
Copy link
Owner

@tmc tmc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Certainly open to ideas on improving the testing strategy for this, putting this in now but do consider a test as you see fit.

@tmc tmc merged commit 151ba20 into tmc:main May 13, 2024
3 checks passed
@eliben
Copy link
Collaborator

eliben commented May 22, 2024

Also happy to see you contribute here, @johanbrandhorst :-)

Re tests, the googleai provider is relatively well-tested with live tests vs. the Gemini API (https://github.com/tmc/langchaingo/blob/main/llms/googleai/shared_test/shared_test.go)

For this test specifically, testing batching vs. no batching is a bit tricky and we don't really do mock testing with fake HTTP backends for now. That said, if the shared live tests pass and you observe the performance improvement, I believe this is good enough.

renovate bot added a commit to TBD54566975/ftl that referenced this pull request Jun 17, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change | Age | Adoption | Passing |
Confidence |
|---|---|---|---|---|---|---|---|
| [buf](https://github.com/bufbuild/buf) | | minor | `1.32.2` ->
`1.33.0` |
[![age](https://developer.mend.io/api/mc/badges/age/hermit/buf/1.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/hermit/buf/1.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/hermit/buf/1.32.2/1.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/buf/1.32.2/1.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[github.com/TBD54566975/golang-tools](https://github.com/TBD54566975/golang-tools)
| require | minor | `v0.1.8` -> `v0.2.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fTBD54566975%2fgolang-tools/v0.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fTBD54566975%2fgolang-tools/v0.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fTBD54566975%2fgolang-tools/v0.1.8/v0.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fTBD54566975%2fgolang-tools/v0.1.8/v0.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[github.com/aws/aws-sdk-go-v2/service/secretsmanager](https://github.com/aws/aws-sdk-go-v2)
| require | minor | `v1.29.3` -> `v1.30.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2faws%2faws-sdk-go-v2%2fservice%2fsecretsmanager/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2faws%2faws-sdk-go-v2%2fservice%2fsecretsmanager/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2faws%2faws-sdk-go-v2%2fservice%2fsecretsmanager/v1.29.3/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2faws%2faws-sdk-go-v2%2fservice%2fsecretsmanager/v1.29.3/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [github.com/reugn/go-quartz](https://github.com/reugn/go-quartz) |
require | minor | `v0.11.2` -> `v0.12.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2freugn%2fgo-quartz/v0.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2freugn%2fgo-quartz/v0.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2freugn%2fgo-quartz/v0.11.2/v0.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2freugn%2fgo-quartz/v0.11.2/v0.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [github.com/tmc/langchaingo](https://github.com/tmc/langchaingo) |
require | patch | `v0.1.10` -> `v0.1.11` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2ftmc%2flangchaingo/v0.1.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2ftmc%2flangchaingo/v0.1.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2ftmc%2flangchaingo/v0.1.10/v0.1.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2ftmc%2flangchaingo/v0.1.10/v0.1.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [helm](https://github.com/helm/helm) | | patch | `3.15.1` ->
`3.15.2` |
[![age](https://developer.mend.io/api/mc/badges/age/hermit/helm/3.15.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/hermit/helm/3.15.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/hermit/helm/3.15.1/3.15.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/helm/3.15.1/3.15.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [just](https://github.com/casey/just) | | minor | `1.28.0` ->
`1.29.1` |
[![age](https://developer.mend.io/api/mc/badges/age/hermit/just/1.29.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/hermit/just/1.29.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/hermit/just/1.28.0/1.29.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/just/1.28.0/1.29.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [kubectl](https://github.com/kubernetes/kubectl) | | patch |
`1.29.5` -> `1.29.6` |
[![age](https://developer.mend.io/api/mc/badges/age/hermit/kubectl/1.29.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/hermit/kubectl/1.29.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/hermit/kubectl/1.29.5/1.29.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/kubectl/1.29.5/1.29.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [lefthook](https://github.com/evilmartians/lefthook) | | patch |
`1.6.14` -> `1.6.16` |
[![age](https://developer.mend.io/api/mc/badges/age/hermit/lefthook/1.6.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/hermit/lefthook/1.6.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/hermit/lefthook/1.6.14/1.6.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/lefthook/1.6.14/1.6.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [lint-staged](https://github.com/okonet/lint-staged) |
devDependencies | patch | [`15.2.6` ->
`15.2.7`](https://renovatebot.com/diffs/npm/lint-staged/15.2.6/15.2.7) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/lint-staged/15.2.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/lint-staged/15.2.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/lint-staged/15.2.6/15.2.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/lint-staged/15.2.6/15.2.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [protoc-gen-go](https://github.com/protocolbuffers/protobuf-go) | |
patch | `1.34.1` -> `1.34.2` |
[![age](https://developer.mend.io/api/mc/badges/age/hermit/protoc-gen-go/1.34.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/hermit/protoc-gen-go/1.34.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/hermit/protoc-gen-go/1.34.1/1.34.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/protoc-gen-go/1.34.1/1.34.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [type-fest](https://github.com/sindresorhus/type-fest) |
dependencies | patch | [`4.20.0` ->
`4.20.1`](https://renovatebot.com/diffs/npm/type-fest/4.20.0/4.20.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/type-fest/4.20.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/type-fest/4.20.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/type-fest/4.20.0/4.20.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/type-fest/4.20.0/4.20.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [yq](https://github.com/mikefarah/yq) | | patch | `4.44.1` ->
`4.44.2` |
[![age](https://developer.mend.io/api/mc/badges/age/hermit/yq/4.44.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/hermit/yq/4.44.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/hermit/yq/4.44.1/4.44.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/yq/4.44.1/4.44.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[org.apache.maven.plugins:maven-dependency-plugin](https://maven.apache.org/plugins/)
| build | minor | `3.6.1` -> `3.7.0` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/org.apache.maven.plugins:maven-dependency-plugin/3.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.apache.maven.plugins:maven-dependency-plugin/3.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.apache.maven.plugins:maven-dependency-plugin/3.6.1/3.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.apache.maven.plugins:maven-dependency-plugin/3.6.1/3.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[org.apache.maven.plugins:maven-surefire-plugin](https://maven.apache.org/surefire/)
| build | minor | `3.2.5` -> `3.3.0` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/org.apache.maven.plugins:maven-surefire-plugin/3.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.apache.maven.plugins:maven-surefire-plugin/3.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.apache.maven.plugins:maven-surefire-plugin/3.2.5/3.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.apache.maven.plugins:maven-surefire-plugin/3.2.5/3.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>bufbuild/buf (buf)</summary>

###
[`v1.33.0`](https://github.com/bufbuild/buf/blob/HEAD/CHANGELOG.md#v1330---2024-06-13)

- Allow user to override `--source-control-url` and
`--create-default-label` when using
    `--git-metadata` with `buf push`.
- Fix `buf push --git-metadata` when local tags point to different
objects than
    the remote tags.
- Fix issue where comment ignores were not respected for `PROTOVALIDATE`
lint rule violations.
- Add `buf beta registry label {create,get,list}` to replace `buf beta
registry {draft, tag}`
    commands.
- Update `buf beta commit {get,list}` command outputs to display create
time and stop
    displaying associated tags.
- Change the behavior of `buf beta commit list
<buf.build/owner/repository>` when the
reference is empty. It now lists commits in the repository instead of
listing commits
    of the default label.
- Update output of `buf format` to canonicalize the punctuation used in
message literals
in option values. The output now always uses `{` and `}` instead of `<`
and `>`; it
adds `:` separators between field names and message values if the source
omitted them,
and it removes unnecessary separators between fields (`,` and `;` are
allowed, but
    neither is needed).
- Update `buf format -w` so that it does not touch files whose contents
don't actually
change. This eliminates noisy notifications to file-system-watcher tools
that are
    watching the directory that contains proto sources.
- Update `buf generate` to work with plugins provided by protoc for
versions v24.0
to v25.3. Editions support was experimental in these releases, and the
plugins
advertise incomplete support for editions, which triggers `buf` to
report an error.
With this fix, these plugins can be used again as long as none of the
input files use
    editions syntax.
- Add `buf push --exclude-unnamed` flag to exclude unnamed modules when
pushing to the BSR.

</details>

<details>
<summary>TBD54566975/golang-tools
(github.com/TBD54566975/golang-tools)</summary>

###
[`v0.2.0`](https://github.com/TBD54566975/golang-tools/compare/v0.1.9...v0.2.0)

[Compare
Source](https://github.com/TBD54566975/golang-tools/compare/v0.1.9...v0.2.0)

###
[`v0.1.9`](https://github.com/TBD54566975/golang-tools/compare/v0.1.8...v0.1.9)

[Compare
Source](https://github.com/TBD54566975/golang-tools/compare/v0.1.8...v0.1.9)

</details>

<details>
<summary>reugn/go-quartz (github.com/reugn/go-quartz)</summary>

###
[`v0.12.0`](https://github.com/reugn/go-quartz/releases/tag/v0.12.0)

[Compare
Source](https://github.com/reugn/go-quartz/compare/v0.11.2...v0.12.0)

#### Features

- feat(scheduler)!: handle errors in the GetJobKeys method by
[@&#8203;reugn](https://github.com/reugn) in
[reugn/go-quartz#126
- feat(scheduler): add a channel to handle misfired jobs by
[@&#8203;reugn](https://github.com/reugn) in
[reugn/go-quartz#129
- feat(scheduler): export the reset method by
[@&#8203;reugn](https://github.com/reugn) in
[reugn/go-quartz#131
- feat(scheduler)!: support custom mutex for job queue operations by
[@&#8203;reugn](https://github.com/reugn) in
[reugn/go-quartz#133
- feat(queue): handle errors in ScheduledJobs and Size methods by
[@&#8203;reugn](https://github.com/reugn) in
[reugn/go-quartz#125
- feat(queue): export the job queue constructor by
[@&#8203;reugn](https://github.com/reugn) in
[reugn/go-quartz#134

#### Fixes

- fix(scheduler): recover from unhandled job panics by
[@&#8203;reugn](https://github.com/reugn) in
[reugn/go-quartz#130

#### Improvements

- refactor: remove excessive queue empty check by
[@&#8203;reugn](https://github.com/reugn) in
[reugn/go-quartz#124

**Full Changelog**:
reugn/go-quartz@v0.11.2...v0.12.0

</details>

<details>
<summary>tmc/langchaingo (github.com/tmc/langchaingo)</summary>

###
[`v0.1.11`](https://github.com/tmc/langchaingo/releases/tag/v0.1.11)

[Compare
Source](https://github.com/tmc/langchaingo/compare/v0.1.10...v0.1.11)

#### What's Changed

- llms: add watsonx by [@&#8203;h0rv](https://github.com/h0rv) in
[tmc/langchaingo#577
- pgvector restore WithConnectionURL option by
[@&#8203;tmc](https://github.com/tmc) in
[tmc/langchaingo#832
- examples: Update to v0.1.10 by [@&#8203;tmc](https://github.com/tmc)
in
[tmc/langchaingo#833
- agents: `GetTools` added to `Agent` interface by
[@&#8203;AugustDev](https://github.com/AugustDev) in
[tmc/langchaingo#831
- examples: add redis vectorstore example by
[@&#8203;CrazyWr](https://github.com/CrazyWr) in
[tmc/langchaingo#834
- llms/googleai: batch embedding calls by
[@&#8203;johanbrandhorst](https://github.com/johanbrandhorst) in
[tmc/langchaingo#825
- fix: better handling of errors in openai-like streaming messages by
[@&#8203;douglarek](https://github.com/douglarek) in
[tmc/langchaingo#839
- llms/googleai: upgrade genai SDKs and fix build issue vs. new version
by [@&#8203;eliben](https://github.com/eliben) in
[tmc/langchaingo#854
- fix: handle nil pointer exception in chat_prompt_template by
[@&#8203;ankitraj2330](https://github.com/ankitraj2330) in
[tmc/langchaingo#879
- httputil: debug transport layer by
[@&#8203;AugustDev](https://github.com/AugustDev) in
[tmc/langchaingo#845
- llms: Add improved yaml and json marshaling by
[@&#8203;tmc](https://github.com/tmc) in
[tmc/langchaingo#880
- tools: Improve tool choice population and parsing by
[@&#8203;tmc](https://github.com/tmc) in
[tmc/langchaingo#883
- memory: move mongo chat history into the separate module by
[@&#8203;CrazyWr](https://github.com/CrazyWr) in
[tmc/langchaingo#843
- llms: Tidy up marshaling by [@&#8203;tmc](https://github.com/tmc) in
[tmc/langchaingo#884
- anthropic: Add tool/function calling support by
[@&#8203;lwlee2608](https://github.com/lwlee2608) in
[tmc/langchaingo#882
- milvus_vectorstore: store metadata with JSON data type & support
search with filter by [@&#8203;CrazyWr](https://github.com/CrazyWr) in
[tmc/langchaingo#844
- readme: add scheme to vectorstores/chroma URL by
[@&#8203;codefromthecrypt](https://github.com/codefromthecrypt) in
[tmc/langchaingo#846
- llms: Fix ErrIncompleteEmbeddings Message Typos by
[@&#8203;wgeorgecook](https://github.com/wgeorgecook) in
[tmc/langchaingo#872
- googleai: add support for array type in convertToolSchemaType by
[@&#8203;johnknott](https://github.com/johnknott) in
[tmc/langchaingo#865
- marita: update Authorization by
[@&#8203;devalexandre](https://github.com/devalexandre) in
[tmc/langchaingo#864
- Fix typos map key value of the modelToContextSize by
[@&#8203;zhanluxianshen](https://github.com/zhanluxianshen) in
[tmc/langchaingo#874
- memory: Add Zep Cloud integration by
[@&#8203;paul-paliychuk](https://github.com/paul-paliychuk) in
[tmc/langchaingo#746
- openai: add the field `detail` in ImageURLContent struct by
[@&#8203;douglarek](https://github.com/douglarek) in
[tmc/langchaingo#853
- weaviate: Fix up weaviate tests by
[@&#8203;tmc](https://github.com/tmc) in
[tmc/langchaingo#885
- deps: clean up direct dep on zerolog by
[@&#8203;tmc](https://github.com/tmc) in
[tmc/langchaingo#886
- googleai: Fix: Resolve Type Error in googleai convertTools by
[@&#8203;wangjiancn](https://github.com/wangjiancn) in
[tmc/langchaingo#888
- openai: enable optional return of usage data while streaming by
[@&#8203;wangjiancn](https://github.com/wangjiancn) in
[tmc/langchaingo#887
- llms/googleai: Support more `option.ClientOption` and update google ai
sdk by [@&#8203;wangjiancn](https://github.com/wangjiancn) in
[tmc/langchaingo#841
- googleai: Remove unused err, fix typo by
[@&#8203;tmc](https://github.com/tmc) in
[tmc/langchaingo#891
- examples: Correct API key usage for Groq integration by
[@&#8203;Ashad001](https://github.com/Ashad001) in
[tmc/langchaingo#893
- ollama: Fix JSON format bug issue when not streaming by
[@&#8203;doslindos](https://github.com/doslindos) in
[tmc/langchaingo#892

#### New Contributors

- [@&#8203;h0rv](https://github.com/h0rv) made their first
contribution in
[tmc/langchaingo#577
- [@&#8203;johanbrandhorst](https://github.com/johanbrandhorst) made
their first contribution in
[tmc/langchaingo#825
- [@&#8203;ankitraj2330](https://github.com/ankitraj2330) made their
first contribution in
[tmc/langchaingo#879
- [@&#8203;lwlee2608](https://github.com/lwlee2608) made their first
contribution in
[tmc/langchaingo#882
- [@&#8203;codefromthecrypt](https://github.com/codefromthecrypt) made
their first contribution in
[tmc/langchaingo#846
- [@&#8203;wgeorgecook](https://github.com/wgeorgecook) made their
first contribution in
[tmc/langchaingo#872
- [@&#8203;johnknott](https://github.com/johnknott) made their first
contribution in
[tmc/langchaingo#865
- [@&#8203;zhanluxianshen](https://github.com/zhanluxianshen) made
their first contribution in
[tmc/langchaingo#874
- [@&#8203;paul-paliychuk](https://github.com/paul-paliychuk) made
their first contribution in
[tmc/langchaingo#746
- [@&#8203;wangjiancn](https://github.com/wangjiancn) made their first
contribution in
[tmc/langchaingo#888
- [@&#8203;Ashad001](https://github.com/Ashad001) made their first
contribution in
[tmc/langchaingo#893
- [@&#8203;doslindos](https://github.com/doslindos) made their first
contribution in
[tmc/langchaingo#892

**Full Changelog**:
tmc/langchaingo@v0.1.10...v0.1.11-pre.0

</details>

<details>
<summary>helm/helm (helm)</summary>

### [`v3.15.2`](https://github.com/helm/helm/releases/tag/v3.15.2):
Helm v3.15.2

Helm v3.15.2 is a security (patch) release. Users are strongly
recommended to update to this release.

The community keeps growing, and we'd love to see you there!

- Join the discussion in [Kubernetes
Slack](https://kubernetes.slack.com):
    -   for questions and just to hang out
    -   for discussing PRs, code, and bugs
- Hang out at the Public Developer Call: Thursday, 9:30 Pacific via
[Zoom](https://zoom.us/j/696660622)
- Test, debug, and contribute charts:
[ArtifactHub/packages](https://artifacthub.io/packages/search?kind=0)

#### Installation and Upgrading

Download Helm v3.15.2. The common platform binaries are here:

- [MacOS amd64](https://get.helm.sh/helm-v3.15.2-darwin-amd64.tar.gz)
([checksum](https://get.helm.sh/helm-v3.15.2-darwin-amd64.tar.gz.sha256sum)
/ e99a9266a5328cb575d81ef10247911f42d9e90c76ef6eef154c5c535565658b)
- [MacOS arm64](https://get.helm.sh/helm-v3.15.2-darwin-arm64.tar.gz)
([checksum](https://get.helm.sh/helm-v3.15.2-darwin-arm64.tar.gz.sha256sum)
/ 30143dabc1da9d32c7d6c589fad04b1f1ecc73841393d5823fa21c5d7f5bf8f6)
- [Linux amd64](https://get.helm.sh/helm-v3.15.2-linux-amd64.tar.gz)
([checksum](https://get.helm.sh/helm-v3.15.2-linux-amd64.tar.gz.sha256sum)
/ 2694b91c3e501cff57caf650e639604a274645f61af2ea4d601677b746b44fe2)
- [Linux arm](https://get.helm.sh/helm-v3.15.2-linux-arm.tar.gz)
([checksum](https://get.helm.sh/helm-v3.15.2-linux-arm.tar.gz.sha256sum)
/ 2b28fda1d8c6f087011bc7ec820051a13409dadce8385529f306476632e24e85)
- [Linux arm64](https://get.helm.sh/helm-v3.15.2-linux-arm64.tar.gz)
([checksum](https://get.helm.sh/helm-v3.15.2-linux-arm64.tar.gz.sha256sum)
/ adcf07b08484b52508e5cbc8b5f4b0b0db50342f7bc487ecd88b8948b680e6a7)
- [Linux i386](https://get.helm.sh/helm-v3.15.2-linux-386.tar.gz)
([checksum](https://get.helm.sh/helm-v3.15.2-linux-386.tar.gz.sha256sum)
/ 8e0bb5a08c7c227a8e285026b6283726ddc0e1f406e2af4d4d600fa1dd85c21e)
- [Linux ppc64le](https://get.helm.sh/helm-v3.15.2-linux-ppc64le.tar.gz)
([checksum](https://get.helm.sh/helm-v3.15.2-linux-ppc64le.tar.gz.sha256sum)
/ 9d95528fb797f6429f7f9b6dee0cf87bf8c71f6470e1db4a51e844c169c285a3)
- [Linux s390x](https://get.helm.sh/helm-v3.15.2-linux-s390x.tar.gz)
([checksum](https://get.helm.sh/helm-v3.15.2-linux-s390x.tar.gz.sha256sum)
/ 5b42bc3d08fd0ffaf4f9ed810f28464f52ec4ea431b809c7179071d76f3d6f16)
- [Linux riscv64](https://get.helm.sh/helm-v3.15.2-linux-riscv64.tar.gz)
([checksum](https://get.helm.sh/helm-v3.15.2-linux-riscv64.tar.gz.sha256sum)
/ 2998bae9971a55f862c21bff337c325cb6a44f28ef76e11bffc93d16989e11e6)
- [Windows amd64](https://get.helm.sh/helm-v3.15.2-windows-amd64.zip)
([checksum](https://get.helm.sh/helm-v3.15.2-windows-amd64.zip.sha256sum)
/ cbf40b79fa2a7dbd6e24201f8660b56261d10d6e7b5cadc3ff78100fb45b3c69)

This release was signed with ` 672C 657B E06B 4B30 969C 4A57 4614 49C2
5E36 B98E ` and can be found at
[@&#8203;mattfarina](https://github.com/mattfarina) [keybase
account](https://keybase.io/mattfarina). Please use the attached
signatures for verifying this release using `gpg`.

The [Quickstart Guide](https://helm.sh/docs/intro/quickstart/) will get
you going from there. For **upgrade instructions** or detailed
installation notes, check the [install
guide](https://helm.sh/docs/intro/install/). You can also use a [script
to
install](https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3)
on any system with `bash`.

#### What's Next

-   3.15.3 will contain only bug fixes and be released on July 10, 2024.
- 3.16.0 is the next feature release and will be on September 11, 2024.

#### Changelog

- fix: wrong cli description
[`1a500d5`](https://github.com/helm/helm/commit/1a500d5625419a524fdae4b33de351cc4f58ec35)
(yyzxw)
- fix typo in load_plugins.go
[`70b225c`](https://github.com/helm/helm/commit/70b225c9abc014cfeb73f7c9f506b0e73e912b61)
(yxxhero)
- fix docs of DeployedAll
[`b3640f1`](https://github.com/helm/helm/commit/b3640f196a2cf77136ab01295bffe76fa184991d)
(Daniel Strobusch)
- Bump github.com/docker/docker
[`46e2ba0`](https://github.com/helm/helm/commit/46e2ba0341d43e19493b2f90c86126da8ad8a64e)
(dependabot\[bot])
- bump oras minor version
[`fb311d3`](https://github.com/helm/helm/commit/fb311d331f66f7f9153b5d0c7aa07a77bc9528ca)
(Austin Abro)
- feat(load.go): add warning on requirements.lock
[`23552a7`](https://github.com/helm/helm/commit/23552a7de6f45aacec47bc2bfe70de02b9d7ab70)
(Aaron U'Ren)

</details>

<details>
<summary>casey/just (just)</summary>

###
[`v1.29.1`](https://github.com/casey/just/blob/HEAD/CHANGELOG.md#1291---2024-06-14)

[Compare
Source](https://github.com/casey/just/compare/1.28.0...1.29.1)

##### Fixed

- Fix unexport syntax conflicts
([#&#8203;2158](https://github.com/casey/just/pull/2158) by
[casey](https://github.com/casey))

</details>

<details>
<summary>evilmartians/lefthook (lefthook)</summary>

###
[`v1.6.16`](https://github.com/evilmartians/lefthook/blob/HEAD/CHANGELOG.md#1616-2024-06-13)

[Compare
Source](https://github.com/evilmartians/lefthook/compare/v1.6.15...v1.6.16)

- fix: skip overwriting hooks when fetching data from remotes
([#&#8203;745](https://github.com/evilmartians/lefthook/pull/745)) by
[@&#8203;mrexox](https://github.com/mrexox)
- fix: fetch remotes only for non ghost hooks
([#&#8203;744](https://github.com/evilmartians/lefthook/pull/744)) by
[@&#8203;mrexox](https://github.com/mrexox)

###
[`v1.6.15`](https://github.com/evilmartians/lefthook/blob/HEAD/CHANGELOG.md#1615-2024-06-03)

[Compare
Source](https://github.com/evilmartians/lefthook/compare/v1.6.14...v1.6.15)

- feat: add refetch option to remotes config
([#&#8203;739](https://github.com/evilmartians/lefthook/pull/739)) by
[@&#8203;mrexox](https://github.com/mrexox)
- deps: June, 3, lipgloss (0.11.0) and viper (1.19.0)
([#&#8203;742](https://github.com/evilmartians/lefthook/pull/742)) by
[@&#8203;mrexox](https://github.com/mrexox)
- chore: enable copyloopvar, intrange, and prealloc
([#&#8203;740](https://github.com/evilmartians/lefthook/pull/740)) by
[@&#8203;scop](https://github.com/scop)
- perf: delay git and uname commands in hook scripts until needed
([#&#8203;737](https://github.com/evilmartians/lefthook/pull/737)) by
[@&#8203;scop](https://github.com/scop)
- chore: refactor commands interfaces
([#&#8203;735](https://github.com/evilmartians/lefthook/pull/735)) by
[@&#8203;mrexox](https://github.com/mrexox)
- chore: upgrade to 1.59.0
([#&#8203;738](https://github.com/evilmartians/lefthook/pull/738)) by
[@&#8203;scop](https://github.com/scop)

</details>

<details>
<summary>okonet/lint-staged (lint-staged)</summary>

###
[`v15.2.7`](https://github.com/okonet/lint-staged/blob/HEAD/CHANGELOG.md#1527)

[Compare
Source](https://github.com/okonet/lint-staged/compare/v15.2.6...v15.2.7)

##### Patch Changes

- [#&#8203;1440](https://github.com/lint-staged/lint-staged/pull/1440)
[`a51be80`](https://github.com/lint-staged/lint-staged/commit/a51be804b63307ac7af3c82f4cb2d43dbe92daac)
Thanks [@&#8203;iiroj](https://github.com/iiroj)! - In the previous
version the native `git rev-parse --show-toplevel` command was taken
into use for resolving the current git repo root. This version drops the
`--path-format=absolute` option to support earlier git versions since
it's also the default behavior. If you are still having trouble, please
try upgrading `git` to the latest version.

</details>

<details>
<summary>protocolbuffers/protobuf-go (protoc-gen-go)</summary>

###
[`v1.34.2`](https://github.com/protocolbuffers/protobuf-go/releases/tag/v1.34.2)

Minor feature:

- [CL/589336](https://go.dev/cl/589336): gofeatures: allow setting
legacy_unmarshal_json_enum feature at file level

Minor bug fixes:

- [CL/588875](https://go.dev/cl/588875): types/descriptorpb: regenerate
using latest protobuf v27.0 release
- [CL/586396](https://go.dev/cl/586396): internal/impl: fix size cache
semantics with lazy decoding
- [CL/585736](https://go.dev/cl/585736): reflect/protodesc: remove
obsolete JSON name check from desc validator
- [CL/588976](https://go.dev/cl/588976): reflect/protoreflect:
FieldDescriptor.Kind should never be GroupKind for maps or fields of map
entry

</details>

<details>
<summary>sindresorhus/type-fest (type-fest)</summary>

###
[`v4.20.1`](https://github.com/sindresorhus/type-fest/releases/tag/v4.20.1)

[Compare
Source](https://github.com/sindresorhus/type-fest/compare/v4.20.0...v4.20.1)

- `Schema`: Fix handling of arrays
([#&#8203;887](https://github.com/sindresorhus/type-fest/issues/887))
[`c570ec2`](https://github.com/sindresorhus/type-fest/commit/c570ec2)
- `Paths`: Prevent infinite recursion
([#&#8203;891](https://github.com/sindresorhus/type-fest/issues/891))
[`7d4e875`](https://github.com/sindresorhus/type-fest/commit/7d4e875)

</details>

<details>
<summary>mikefarah/yq (yq)</summary>

### [`v4.44.2`](https://github.com/mikefarah/yq/releases/tag/v4.44.2)

- Handle numbers with underscores
[#&#8203;2039](https://github.com/mikefarah/yq/issues/2039)
- Unique now works on maps and arrays
[#&#8203;2068](https://github.com/mikefarah/yq/issues/2068)
- Added support for short hand splat with env\[] expression
[#&#8203;2071](https://github.com/mikefarah/yq/issues/2071), as well
as many other operators (split,select,eval,pick..)
    -   Bumped dependencies

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday" (UTC),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/TBD54566975/ftl).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zOTMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjQxMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Wes <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants