Commit Graph

448 Commits

Author SHA1 Message Date
Marc Bowes 33e8fc7a65
feat: support custom clients for bedrock (#403)
The current ClientBuilder is limited. Instead of adding more options, we
now provide a way to externally configure and inject a client.
2025-04-17 15:34:00 -07:00
Skylar Ray 522d3f6ba1
Update agent_with_huggingface.rs (#401) 2025-04-16 14:34:51 +01:00
github-actions[bot] f4214540a5
chore: release (#375)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-04-15 10:23:05 -04:00
Joshua Mo 56288fa722
feat: trait for embedding images (#396)
* feat: trait for embedding images

* refactor: cleanup

* refactor: docstrings
2025-04-12 21:21:44 +01:00
Collin c7d4851e32
feat: Add `rig_tool` macro (#353)
* feat: rig-macros crates providing a rig_tool proc macro

* Support non-async functions as tools

* Add static instance of generated tool

* Make descriptions optional, add static instance of tool, support sync functions.

* Add examples

* Fixing Cargo.toml merge issues

* Fix examples, replace use of schemars

* Remove excessive comments and fix broken test

* Move rig-macros contents into rig-core-derive

* Doc comment + examples

* Make doc linter happy

* Simplify usage of serde_json, remove re-export
2025-04-10 13:05:25 -04:00
Joshua Mo d10d1cc73b
fix: gemini embeddings does not work for multiple documents (#386)
* fix: gemini embeddings does not work for multiple documents

* refactor: remove unnecessary printlns
2025-04-09 23:25:13 +01:00
Joshua Mo bc11decc0b
feat: impl From<mcp_core::types::Tool> for ToolDefinition (#385)
* feat: impl From<mcp_core::types::Tool> for ToolDefinition

* feat(core): impl &mcp_core::types::Tool for ToolDefinition
2025-04-09 23:07:55 +01:00
Joshua Mo b7ba9bbd93
refactor(lancedb): docs, make examples idempotent (#387)
* refactor(lancedb): docs, make examples idempotent

refactor: clippy

* fix: README typo
2025-04-09 22:22:40 +01:00
Cypher Pepe e9c50241da
Updated broken link xaiAPI in `completion.rs` (#384) 2025-04-09 17:31:46 +01:00
Marko Kranjac 92c91d23c3
feat: AWS Bedrock provider (#318)
* feat: aws-bedrock-provider

Added new model provider

* feat: AWS Bedrock provider

- changes as requested in PR comments

* feat: image generation
2025-04-07 08:21:05 -07:00
strmfos 88edab96b5
Fix Clippy warnings for doc indentation and Error::other usage (#364) 2025-04-03 12:57:54 +01:00
Joshua Mo 3fa0c89939
fix: deserialization error due to serde rename of tool result (#374) 2025-04-02 21:09:42 +01:00
github-actions[bot] dd997693c4
chore: release (#356)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-03-31 17:27:41 -04:00
piotrostr 31fec6b9cd
fix: no params tools definition for Gemini (#363)
* fix no params case

* ensure compat with other providers
2025-03-31 09:08:26 -07:00
Affaan Mustafa 07008dd021
New model provider: Anthropic Claude 3.7 Addition (#341)
* Update completion.rs

* Update mod.rs

* style: cargo fmt

---------

Co-authored-by: 0xMochan <mochanbot@gmail.com>
2025-03-31 08:57:23 -07:00
futreall b6f73ee238
fix: contributing.md link 2025-03-28 16:53:32 +00:00
stevo 53b6a5f542
added mcp_tool + Example (#335)
* added mcp_tool + Example

* updated mcp-core version to allow for wasm compilation

* updated mcp_tool example

* updated mcp-core dep + fixed wasm target comp

* added mcp as a feature

* converted McpError via discussion

* forgot to mark impl of McpToolError under feature mcp

* update deps + example

* cleaned up cargo lock

* updated deps and example

* chore: adjust lock file for `deranged` to `0.4.0`

* chore: adjust lock file for `deranged` to `0.4.0`

* chore: adjust lock file for fast-embed

* chore: fix depr meth on lancedb (consequence of updating)

---------

Co-authored-by: 0xMochan <mochanbot@gmail.com>
2025-03-25 13:31:42 -07:00
yavens d3e31df263
feat: Add audio generation to all providers (#359)
* feat: add transcription to all providers that support it

* feat: gemini streaming

* chore: fix clippy warnings

* feat: together streaming

* refactor: move transcription preable to constant

* chore: fix clippy

* fix: enable blob by default

* fix: lock methods and imports behind feature flag

* chore: fmt

* feat: add huggingface transcription, remove feature flag

* feat: streaming for most openai type providers

* feat: add streaming to remaining providers

* chore: formatting

* fix: gemini streaming wasn't added to mod

* chore: unused imports in example

* chore: unused import

* chore: run fmt

* feat: openai & azure image generation

* chore: reorganize a bit

* refactor: simplify oai-compatible streaming

* feat: huggingface image generation

* chore: run fmt & clippy

* feat: hyperbolic image generation

* refactor: break up openai

* fix: lock changes behind feature flag

* chore: remove unused import

* refactor: change size to width/height, update examples

* fix: error with examples

* chore: remove unused imports

* fix: feature in lib not gated behind flag

* fix: used wrong flag

* fix: import not behind flag

* fix: more flag issues

* feat: add audio generation

* fix: various changes

* fix: clippy

* chore: tweak azure & hyperbolic organization

---------

Co-authored-by: yavens <179155341+yavens@users.github.noreply.github.com>
2025-03-20 23:27:16 +00:00
yavens 70855257c4
feat: Add image generation to all providers that support it (#357)
* feat: add transcription to all providers that support it

* feat: gemini streaming

* chore: fix clippy warnings

* feat: together streaming

* refactor: move transcription preable to constant

* chore: fix clippy

* fix: enable blob by default

* fix: lock methods and imports behind feature flag

* chore: fmt

* feat: add huggingface transcription, remove feature flag

* feat: streaming for most openai type providers

* feat: add streaming to remaining providers

* chore: formatting

* fix: gemini streaming wasn't added to mod

* chore: unused imports in example

* chore: unused import

* chore: run fmt

* feat: openai & azure image generation

* chore: reorganize a bit

* refactor: simplify oai-compatible streaming

* feat: huggingface image generation

* chore: run fmt & clippy

* feat: hyperbolic image generation

* refactor: break up openai

* fix: lock changes behind feature flag

* chore: remove unused import

* refactor: change size to width/height, update examples

* fix: error with examples

* chore: remove unused imports

* fix: feature in lib not gated behind flag

* fix: used wrong flag

* fix: import not behind flag

* fix: more flag issues

---------

Co-authored-by: yavens <179155341+yavens@users.github.noreply.github.com>
2025-03-19 20:32:17 +00:00
zhongjing ab8cb89948
feat(rig-fastembed): support loading model files from custom path (#337)
* load model from custom path.

* update: fmt.

* update.
2025-03-18 01:20:24 +00:00
Joshua Mo fc0d354283
fix(openai): serde rename for image_url UserContent (#355)
* fix(openai): serde rename for image_url UserContent

* fix: amend deserialization test
2025-03-18 00:16:01 +00:00
Mochan 599f8b46c3
feat(provider): cohere-v2 (#350)
* fix(cohere): partial v2

* feat(cohere): partial

* feat: cohere v2 impl

* fix(cohere): working cohere impl
2025-03-18 00:13:54 +00:00
github-actions[bot] 19c095122f
chore: release (#334)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-03-17 16:03:22 -04:00
Wang 1beced42e2
fix: unnecessary `unwrap`, skip serializing empty vec (#343) 2025-03-17 10:35:58 +00:00
qhliang 9e2060994e
fix error handling for Qwen's responses when using tools (#351) 2025-03-17 01:16:23 +00:00
yavens 6807e6c2b7
feat: Add streaming to all model providers (#347)
* feat: add transcription to all providers that support it

* feat: gemini streaming

* chore: fix clippy warnings

* feat: together streaming

* refactor: move transcription preable to constant

* chore: fix clippy

* fix: enable blob by default

* fix: lock methods and imports behind feature flag

* chore: fmt

* feat: add huggingface transcription, remove feature flag

* feat: streaming for most openai type providers

* feat: add streaming to remaining providers

* chore: formatting

* fix: gemini streaming wasn't added to mod

* chore: unused imports in example

* chore: unused import

* chore: run fmt

* chore: reorganize a bit

* refactor: simplify oai-compatible streaming

---------

Co-authored-by: yavens <179155341+yavens@users.github.noreply.github.com>
2025-03-17 00:26:36 +00:00
Joshua Mo 2e4d61c859
feat: OpenRouter support (#344)
* feat: openrouter support

* refactor: add some model consts

* chore: satisfy ci
2025-03-13 17:11:50 -04:00
Jerry 85d6c1cad5
feat: add reqwest/rustls-tls support (#339)
* feat: add reqwest/rustls-tls support

* feat: update reqwest-rustls dependencies for enhanced functionality

* fix ci check by update rig-core reqwest to version 0.12.12

* fix ci check by update rig-eternalai reqwest to version 0.12.12
2025-03-13 12:02:52 -04:00
yavens 92803c3467
feat: add transcription to all providers that support it (#336)
* feat: add transcription to all providers that support it

* chore: fix clippy warnings

* refactor: move transcription preable to constant

* chore: fix clippy

* fix: enable blob by default

* fix: lock methods and imports behind feature flag

* chore: fmt

* feat: add huggingface transcription, remove feature flag

---------

Co-authored-by: yavens <179155341+yavens@users.github.noreply.github.com>
2025-03-12 17:59:22 +00:00
Daniel Findell c841855b5a
feat: Azure OpenAI Token Authentication (#329)
* Update azure.rs

Add authentication via token for Azure OpenAI.

* Update azure.rs

* Update azure.rs

* Updating docs

* Revise new(), add from_api_key and from_token

* Update docs

* missed one doc update
2025-03-11 18:49:47 +00:00
piotrostr 0dc9b1bdc3
feat: SSE/JSONL decoders ported from Anthropic TS SDK (#332)
* try fix content block parse with whitespace

* stash

* rust port the anthropic sdk implementation

* try incorporate, debug

* match more closely

* carry over sse decoder

* nit

* clippy

* Update mod.rs

* stream_completion to match the prompt as impl into message to pass Message directly
2025-03-11 17:26:41 +00:00
Vaibhav Satija e2d140e7fa
feat: mira integration (#282)
* feat: Add Mira AI provider integration

* example: Add Mira AI provider example
- generation request
- available model list
- user credits balance

* refactor: Improve Mira provider with agent and completion model support

* refactor: Mira Integration
- Addressed reviewer comments
- updated tests

* refactor: Remove redundant timeout setting in Mira client

* refactor: Improve Mira provider message handling, serialization and resolve comments
2025-03-11 17:03:27 +00:00
nihao a103f61956
fix: reqwest can not use SOCKS proxy (#311)
* bugfix

https://github.com/0xPlaygrounds/rig/issues/310

* enable feature of reqwest to support socks proxy

* fix reqwest feature conflict

* fix
add socks as an option feature
2025-03-11 16:50:24 +00:00
yavens 9b6966cc8e
feat: Huggingface provider integration (#321)
* feat: huggingface integration

* chore: run cargo fmt

* chore: fix clippy linting errors

* fix: missing serde derive on function args

* fix: implement Mochan's suggestions

* chore: fix clippy warnings

* fix: further clean up SubProvider implementation

* fix: tool calling broken by inconsistent API responses

* chore: run cargo fmt

* fix: unused variable warnings

---------

Co-authored-by: yavens <179155341+yavens@users.github.noreply.github.com>
2025-03-11 16:43:11 +00:00
Wang d3d0221e15
fix wrong debug message (#342) 2025-03-11 14:56:50 +00:00
Affaan Mustafa b9f0ca7161
Update openai.rs (#340) 2025-03-11 10:54:41 +00:00
King 7dd1eb1944
support svg (#333) 2025-03-04 12:39:22 +00:00
github-actions[bot] 3719c8cf6e
chore: release (#309)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-03-03 10:31:05 -05:00
Gustavo Widman 230bba0c58
fix(openai): skip serializing empty tool_calls vector (#327) 2025-03-03 10:12:27 -05:00
yavens 8abcdce5fb
feat: Transcription Model support (#322)
* feat: transcription model support

* chore: run cargo fmt

* fix: update doc strings and Transcription trait

* fix: &Vec<u8> -> &[u8]

* fix: implement Mochan's suggestions

* chore(transcription): add example tts to project

---------

Co-authored-by: yavens <179155341+yavens@users.github.noreply.github.com>
Co-authored-by: 0xMochan <mochanbot@gmail.com>
2025-02-27 10:17:04 -07:00
Daniil Trotsenko 8a42469e44
feat: Add EpubFileLoader for EPUB file processing (#192)
* feat: add loaders for epub files

* style: Remove redundant closure

* refactor: Add an ability to strip xml with XmlProcessor

* chore: Fix lifetime clippy warning

* fix(loaders): move `epub.rs` -> `epub/mod.rs`

---------

Co-authored-by: 0xMochan <mochanbot@gmail.com>
Co-authored-by: Joshua Mo <102877324+joshua-mo-143@users.noreply.github.com>
2025-02-26 10:26:19 -08:00
Lin 0ff042cd43
feat: add ollama client (#285)
* add ollama client

* update ollama client completion params

* fix rag and chat

* cargo fmt

* cargo fmt

* add test & fix tools call

* fmt code

* fix cargo check

* remove Infallible From

* use ollama client

* add ollama examples

* add ollama examples

* cargo fmt image_ollama

* style(ollama): typos / formatting

* rename image

---------

Co-authored-by: 0xMochan <mochanbot@gmail.com>
2025-02-24 15:32:42 -08:00
Joshua Mo 0ad8defb44
fix(surrealdb-rig): Cargo.toml info (#319) 2025-02-24 23:00:18 +00:00
Joshua Mo 8229c0890d
feat: surrealdb integration (#280)
* feat: surrealdb integration

* docs: update README

* refactor: simplify integration

* readme(rig-surrealdb): add link

* refactor: enable using mem as db

* refactor: only use mem db from local

* fix(rig-surrealdb): crate info

* chore: satisfy ci

* chore: ci

* refactor: amendments

* refactor: amendments

* chore: satisfy ci
2025-02-24 22:24:55 +00:00
Mochan 44c3971b33
style: rename DeepSeek_R1.pdf to deepseek_r1.pdf (#316)
* style: rename DeepSeek_R1.pdf to deepseek_r1.pdf

* fix: update pdf_agent.rs
2025-02-24 09:40:54 -08:00
Searoc 67dfae9a66
fix(openai): correct some fields for tools (#286)
* fix(openai): wrong tag name for tool message
* fix(openai): wrong id field in ToolCall conversion
* fix(openai): missing type field in ToolResultContent
* style: cargo fmt
2025-02-24 08:17:03 -08:00
Affaan Mustafa 3c606382c7
feat(openai): add updated OpenAI model constants (#314)
* feat(openai): add OpenAI model constants  Add constants for OpenAI's latest models to the OpenAI provider: - O3_MINI: OpenAI's most efficient high-context model - O3_MINI_2025_01_31: Date-specific version of O3-mini - O1: OpenAI's flagship model - O1_2024_12_17: Date-specific version of O1  These models are compatible with OpenAI's API and can be used as drop-in replacements in applications using the RIG framework.

* added missing semicolons to completion model endings
2025-02-23 21:18:30 -08:00
King 6f12c974b2
fix(loaders): bump lodpf to allow more PDFs to parse correctly (#307)
fix: Resolved the issue of failed PDF loading. The error message was: Error reading PDF content: IO error: ToUnicode CMap error: Could not parse ToUnicodeCMap: Error
2025-02-21 18:33:47 -08:00
Afanti f3529acc14
feat: support together AI (#230)
* feat: support together ai

* feat: support mistral ai

* feat: support together ai

* chore: format codes

* chore: refactor together ai support

* chore: format codes

* feat: fine tune together ai's embedding model

* feat: add more chat models and embedding models of together AI

* chore: format codes

* chore: add tool example

---------

Co-authored-by: Joshua Mo <102877324+joshua-mo-143@users.noreply.github.com>
2025-02-20 22:12:15 +00:00
Joshua Mo 91281883b8
feat: upsert documents into qdrant (#301)
* feat: upsert documents into qdrant

* refactor: rename method to get inner client
2025-02-19 00:15:45 +00:00