Add Cerebras adapter integration with custom streaming support#1
Merged
AlexMikhalev merged 10 commits intomainfrom Oct 15, 2025
Merged
Add Cerebras adapter integration with custom streaming support#1AlexMikhalev merged 10 commits intomainfrom
AlexMikhalev merged 10 commits intomainfrom
Conversation
…mmit; ensure dispatcher wiring and default auth/endpoint; skip provider runs in CI
…re-commit/CI pass locally
- Create CerebrasStreamer to handle Cerebras's streaming format - Fix stream termination that ends with StreamEnded error instead of [DONE] - Implement proper usage capture for Cerebras responses - Ensure graceful stream ending with proper StreamEnd events - All streaming tests now pass for Cerebras adapter
- Create dedicated Cerebras tests workflow that runs when API key is available - Add conditional execution based on CEREBRAS_API_KEY repository variable - Include Cerebras example execution in CI tests - Update main CI to compile Cerebras tests even without API key - Workflow triggers on changes to Cerebras-related files
- Create workflow_dispatch workflow for manual testing - Support both compile-only and live testing modes - Provide clear messaging when API key is not configured - Useful for debugging Cerebras integration issues
- Remove redundant else block in CerebrasStreamer - Ensure all clippy checks pass with project standards - Maintain code quality and consistency
- Add wiremock-based mock server tests for Anthropic and OpenRouter - Create detailed test specification document - Add test dependencies (wiremock, uuid) to Cargo.toml - Implement 8 mock test scenarios covering basic chat, tools, streaming, auth errors, and JSON mode - All tests pass and satisfy CI requirements (fmt, clippy, build, package)
Signed-off-by: Alex Mikhalev <alex@metacortex.engineer>
AlexMikhalev
pushed a commit
that referenced
this pull request
Feb 2, 2026
* feat: parts thought signature * feat: gemini adapter thought signature support - Add ContentPart::ThoughtSignature with accessors and helpers. - Introduce InterStreamEvent::ThoughtSignatureChunk and ChatStreamEvent::ThoughtSignatureChunk. - Capture thought signatures into StreamEnd.captured_content when enabled. - Update printer to display ThoughtSignatureChunk events (non-captured). - Gemini adapter: parse thoughtSignature (fallback: thought) and include in outgoing messages. - Gemini streamer: surface thought as ThoughtSignatureChunk and record in captured_thought_signatures. - Preserve thoughtSignature in assistant history before tool calls when looping tools. - Example c10-tooluse-streaming.rs: switch to gemini-3-pro-preview, log thoughtSignature chunks, and prepend captured thoughts to assistant message. * chore: impl thought signature * chore: no API change
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds complete Cerebras Inference API integration to rust-genai with custom streaming support.
What's Included
StreamEndedinstead of[DONE]cerebras::model_nameformat supportKey Features
cerebras::llama-3.1-8b,cerebras::llama-3.3-70b, and othersCEREBRAS_API_KEYenvironment variablehttps://api.cerebras.ai/v1/Files Added/Modified
src/adapter/adapters/cerebras/streamer.rs- New custom streamersrc/adapter/adapters/cerebras/adapter_impl.rs- Updated to use custom streamersrc/adapter/adapters/cerebras/mod.rs- Added streamer module.github/workflows/cerebras-tests.yml- Dedicated CI workflow.github/workflows/ci.yml- Updated to compile Cerebras testsexamples/c11-cerebras.rs- Usage example (already added)tests/tests_p_cerebras.rs- Live tests (already added)Testing
All tests pass when run with API key:
CI/CD
CEREBRAS_API_KEYis configuredUsage
The integration is production-ready and follows all existing patterns in the codebase.