Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
79a410b298 | ||
|
|
4a45ad337f | ||
|
|
2114916941 | ||
|
|
9bfbf2e9dc | ||
|
|
67aa5bbaef | ||
|
|
415fd98167 | ||
|
|
8e9f7a5386 | ||
|
|
3afeec1d58 |
16
CHANGELOG.md
16
CHANGELOG.md
@@ -1,3 +1,19 @@
|
||||
## [0.13.0](https://github.com/ivangabriele/mistralai-client-rs/compare/v0.12.0...v) (2024-08-21)
|
||||
|
||||
### ⚠ BREAKING CHANGES
|
||||
|
||||
* **client:** `v1::model_list::ModelListData` struct has been updated.
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **client:** remove the `Content-Type` from the headers of the reqwest builders. ([#14](https://github.com/ivangabriele/mistralai-client-rs/issues/14)) ([9bfbf2e](https://github.com/ivangabriele/mistralai-client-rs/commit/9bfbf2e9dc7b48103ac56923fb8b3ac9a5e2d9cf)), closes [#13](https://github.com/ivangabriele/mistralai-client-rs/issues/13)
|
||||
* **client:** update ModelListData struct following API changes ([2114916](https://github.com/ivangabriele/mistralai-client-rs/commit/2114916941e1ff5aa242290df5f092c0d4954afc))
|
||||
## [0.12.0](https://github.com/ivangabriele/mistralai-client-rs/compare/v0.11.0...v) (2024-07-24)
|
||||
|
||||
### Features
|
||||
|
||||
* implement the Debug trait for Client ([#11](https://github.com/ivangabriele/mistralai-client-rs/issues/11)) ([3afeec1](https://github.com/ivangabriele/mistralai-client-rs/commit/3afeec1d586022e43c7b10906acec5e65927ba7d))
|
||||
* mark Function trait as Send ([#12](https://github.com/ivangabriele/mistralai-client-rs/issues/12)) ([8e9f7a5](https://github.com/ivangabriele/mistralai-client-rs/commit/8e9f7a53863879b2ad618e9e5707b198e4f3b135))
|
||||
## [0.11.0](https://github.com/ivangabriele/mistralai-client-rs/compare/v0.10.0...v) (2024-06-22)
|
||||
|
||||
### Features
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
name = "mistralai-client"
|
||||
description = "Mistral AI API client library for Rust (unofficial)."
|
||||
license = "Apache-2.0"
|
||||
version = "0.11.0"
|
||||
version = "0.13.0"
|
||||
|
||||
edition = "2021"
|
||||
rust-version = "1.76.0"
|
||||
|
||||
@@ -10,6 +10,7 @@ use std::{
|
||||
|
||||
use crate::v1::{chat, chat_stream, constants, embedding, error, model_list, tool, utils};
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct Client {
|
||||
pub api_key: String,
|
||||
pub endpoint: String,
|
||||
@@ -383,7 +384,6 @@ impl Client {
|
||||
let request_builder = request
|
||||
.bearer_auth(&self.api_key)
|
||||
.header("Accept", "application/json")
|
||||
.header("Content-Type", "application/json")
|
||||
.header("User-Agent", user_agent);
|
||||
|
||||
request_builder
|
||||
@@ -398,7 +398,6 @@ impl Client {
|
||||
let request_builder = request
|
||||
.bearer_auth(&self.api_key)
|
||||
.header("Accept", "application/json")
|
||||
.header("Content-Type", "application/json")
|
||||
.header("User-Agent", user_agent);
|
||||
|
||||
request_builder
|
||||
@@ -413,7 +412,6 @@ impl Client {
|
||||
let request_builder = request
|
||||
.bearer_auth(&self.api_key)
|
||||
.header("Accept", "text/event-stream")
|
||||
.header("Content-Type", "application/json")
|
||||
.header("User-Agent", user_agent);
|
||||
|
||||
request_builder
|
||||
|
||||
@@ -9,6 +9,7 @@ pub struct ModelListResponse {
|
||||
pub data: Vec<ModelListData>,
|
||||
}
|
||||
|
||||
/// See: https://docs.mistral.ai/api/#tag/models
|
||||
#[derive(Clone, Debug, Deserialize, Serialize)]
|
||||
pub struct ModelListData {
|
||||
pub id: String,
|
||||
@@ -16,27 +17,21 @@ pub struct ModelListData {
|
||||
/// Unix timestamp (in seconds).
|
||||
pub created: u32,
|
||||
pub owned_by: String,
|
||||
pub permission: Vec<ModelListDataPermission>,
|
||||
// TODO Check this prop (seen in API responses but undocumented).
|
||||
// pub root: ???,
|
||||
// TODO Check this prop (seen in API responses but undocumented).
|
||||
// pub parent: ???,
|
||||
pub root: Option<String>,
|
||||
pub archived: bool,
|
||||
pub name: String,
|
||||
pub description: String,
|
||||
pub capabilities: ModelListDataCapabilies,
|
||||
pub max_context_length: u32,
|
||||
pub aliases: Vec<String>,
|
||||
/// ISO 8601 date (`YYYY-MM-DDTHH:MM:SSZ`).
|
||||
pub deprecation: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Deserialize, Serialize)]
|
||||
pub struct ModelListDataPermission {
|
||||
pub id: String,
|
||||
pub object: String,
|
||||
/// Unix timestamp (in seconds).
|
||||
pub created: u32,
|
||||
pub allow_create_engine: bool,
|
||||
pub allow_sampling: bool,
|
||||
pub allow_logprobs: bool,
|
||||
pub allow_search_indices: bool,
|
||||
pub allow_view: bool,
|
||||
pub allow_fine_tuning: bool,
|
||||
pub organization: String,
|
||||
pub is_blocking: bool,
|
||||
// TODO Check this prop (seen in API responses but undocumented).
|
||||
// pub group: ???,
|
||||
pub struct ModelListDataCapabilies {
|
||||
pub completion_chat: bool,
|
||||
pub completion_fim: bool,
|
||||
pub function_calling: bool,
|
||||
pub fine_tuning: bool,
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
use async_trait::async_trait;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use std::{any::Any, collections::HashMap};
|
||||
use std::{any::Any, collections::HashMap, fmt::Debug};
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Definitions
|
||||
@@ -133,6 +133,12 @@ pub enum ToolChoice {
|
||||
// Custom
|
||||
|
||||
#[async_trait]
|
||||
pub trait Function {
|
||||
pub trait Function: Send {
|
||||
async fn execute(&self, arguments: String) -> Box<dyn Any + Send>;
|
||||
}
|
||||
|
||||
impl Debug for dyn Function {
|
||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||
write!(f, "Function()")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
use jrest::expect;
|
||||
use mistralai_client::v1::{client::Client, error::ClientError};
|
||||
|
||||
#[derive(Debug)]
|
||||
struct _Foo {
|
||||
_client: Client,
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_client_new_with_none_params() {
|
||||
let maybe_original_mistral_api_key = std::env::var("MISTRAL_API_KEY").ok();
|
||||
|
||||
7
tests/v1_tool_test.rs
Normal file
7
tests/v1_tool_test.rs
Normal file
@@ -0,0 +1,7 @@
|
||||
use mistralai_client::v1::client::Client;
|
||||
|
||||
trait _Trait: Send {}
|
||||
struct _Foo {
|
||||
_dummy: Client,
|
||||
}
|
||||
impl _Trait for _Foo {}
|
||||
Reference in New Issue
Block a user