Skip to content

Tags: devlooped/xAI

Tags

v2.1.0

Toggle v2.1.0's commit message
Add ISpeechToTextClient support via GrokSpeechToTextClient

Implements ISpeechToTextClient for xAI's Grok models, including:

- GrokSpeechToTextClient: unary transcription via POST /v1/stt and
  streaming transcription via wss://.../v1/stt WebSocket protocol.
  Handles session handshake, chunked audio upload, interim/final
  transcript events, word-level timing, and language detection.

- GrokSpeechToTextOptions: Grok-specific options for audio format,
  sample rate, multichannel, diarization, interim results, and
  endpointing timeout.

- AsISpeechToTextClient() extension on GrokClient wires up the
  client with the correct HTTP handler and WebSocket factory.

Fix: voice REST clients (TTS and STT) were accidentally reusing the
gRPC channel's BalancerHttpHandler, which throws for plain HTTP/1.1
requests. Added GrokClient.HttpHandler, backed by a separate
httpHandlers cache using the same Polly retry pipeline but independent
of the gRPC channel. AsITextToSpeechClient and AsISpeechToTextClient
now use client.HttpHandler instead of client.ChannelHandler.Handler.
The channels dictionary now holds ChannelBase directly rather than a
tuple, since the HttpMessageHandler is no longer needed from it.

Add TextToSpeech_SpeechToText integration test that streams TTS audio
to a temp file and transcribes it back with STT, asserting the
roundtrip text matches (punctuation-insensitive via NormalizeTranscription).

Update readme with ISpeechToTextClient usage examples alongside the
existing TTS documentation.

v2.0.6

Toggle v2.0.6's commit message
Add tool instruction following comparison tests across models

We noticed inconsistencies in how Grok models invoke (or not) tools depending on their description. Right now, the 4.20 model randomly fails whereas 4.1 passes every time (on not-calling scenario). This will serve to monitor future model behavior changes, as well as documenting behavior delta (if any).

v2.0.5

Toggle v2.0.5's commit message
Bump the system group with 1 update

Bumps System.ClientModel from 1.9.0 to 1.10.0

---
updated-dependencies:
- dependency-name: System.ClientModel
  dependency-version: 1.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: system
...

Signed-off-by: dependabot[bot] <support@github.com>

v2.0.4

Toggle v2.0.4's commit message
Bump Devlooped.Extensions.AI from 2.0.1 to 2.0.2

---
updated-dependencies:
- dependency-name: Devlooped.Extensions.AI
  dependency-version: 2.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

v2.0.3

Toggle v2.0.3's commit message
Add support for JSON schema in gRPC requests

We were previously just using generic JSON, which could cause mismatches when using the typed API

v2.0.2

Toggle v2.0.2's commit message
Improve sanity check test

v2.0.1

Toggle v2.0.1's commit message
Bump the tests group with 1 update

Bumps coverlet.collector from 6.0.4 to 8.0.0

---
updated-dependencies:
- dependency-name: coverlet.collector
  dependency-version: 8.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: tests
...

Signed-off-by: dependabot[bot] <support@github.com>

v2.0.0

Toggle v2.0.0's commit message
Close #cli section before sponsors in main readme

Co-authored-by: kzu <169707+kzu@users.noreply.github.com>

v1.0.2

Toggle v1.0.2's commit message
⬆️ Bump files with dotnet-file sync

v1.0.1

Toggle v1.0.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Improve search results by including xAI and Grok


In the description, but without the / since it seems nuget.org doesn't consider them two separate terms otherwise.