You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-[`FileOnceLoader`](https://github.com/Shifta-Robel/SeedFrame/blob/main/core/src/loader/builtins/file_loaders/file_once_loader.rs) - Load files once using glob patterns
123
+
-[`FileUpdatingLoader`](https://github.com/Shifta-Robel/SeedFrame/blob/main/core/src/loader/builtins/file_loaders/file_updating_loader.rs) - Load files and watch for changes
-[`OpenAI`](https://github.com/Shifta-Robel/SeedFrame/blob/main/core/src/providers/completions/openai.rs) - [OpenAI](https://openai.com)) API integration
130
+
-[`Deepseek`](https://github.com/Shifta-Robel/SeedFrame/blob/main/core/src/providers/completions/deepseek.rs) - (Deepseek](https://deepseek.com) API integration
131
+
-[`Xai`](https://github.com/Shifta-Robel/SeedFrame/blob/main/core/src/providers/completions/xai.rs) - [Xai](https://x.ai)'s API integration
132
+
133
+
**Embeddings**
134
+
-[`OpenAI`](https://github.com/Shifta-Robel/SeedFrame/blob/main/core/src/providers/embeddings/openai.rs) - [OpenAI](https://openai.com) embeddings API integration
135
+
136
+
---
137
+
138
+
## Integrations
139
+
140
+
SeedFrame supports extending functionality through external crates. To create an integration all thats needed is to provide a type that implements the relevant trait from seedframe (`Loader`, `CompletionModel`, etc.). You can use the following crates as inspiration if you want to write an integration crate of your own.
141
+
142
+
**Completion Providers**
143
+
-[`seedframe_anthropic`](https://github.com/Shifta-Robel/SeedFrame/tree/main/integrations/completion_providers/seedframe_anthropic) - [Anthropic](https://anthropic.com) API integration
-[`seedframe_webscraper`](https://github.com/Shifta-Robel/SeedFrame/tree/main/integrations/seedframe_webscraper) - Web scraping using [scraper-rs](https://docs.rs/scraper)
153
+
154
+
---
155
+
156
+
If you wrote an integration crate, please update this list and [submit a PR](https://github.com/Shifta-Robel/SeedFrame/compare).
119
157
## Contributing
120
158
121
-
All contributions as welcome! Writing integrations for LLM providers and Embedders is some what trivial, use the implementations for the already supported providers as inspiration.
122
-
This library could use support for more loaders, vector stores... so don't shy away from helping!
159
+
All contributions as welcome! This library could use support for more loaders, vector stores, providers ... so don't shy away from helping!
//! client.prompt("Analyze this: 'I love Rust!' (en)")
92
+
//! .append_tool_response(true) // append result of tool execution to the message history
93
+
//! // more prompt modifiers if you want
91
94
//! .send()
92
95
//! .await?;
93
96
//!
@@ -102,7 +105,7 @@
102
105
//!
103
106
//! You can pass state to tools by adding arguments of type `State<_>` to them, the only catch is that there can only be one type of State\<T\> attached to the client.
104
107
//!
105
-
//! ```rust,no_run
108
+
//! ```rust,ignore
106
109
//! use seedframe::{providers::completions::OpenAI, prelude::*};
0 commit comments