Commit Graph

83 Commits

Author SHA1 Message Date
79bc40bb15 Update to latest Mistral AI API (v1.0.0)
Some checks failed
Test / Test Documentation (push) Has been cancelled
Test / Test Examples (push) Has been cancelled
Test / Test (push) Has been cancelled
- Replace closed Model enum with flexible string-based Model type
  with constructor methods for all current models (Mistral Large 3,
  Small 4, Magistral, Codestral, Devstral, Pixtral, Voxtral, etc.)
- Add new API endpoints: FIM completions, Files, Fine-tuning, Batch
  jobs, OCR, Audio transcription, Moderations/Classifications, and
  Agent completions (sync + async for all)
- Add new chat fields: frequency_penalty, presence_penalty, stop,
  n, parallel_tool_calls, reasoning_effort, min_tokens, json_schema
  response format
- Add embedding fields: output_dimension, output_dtype
- Tool parameters now accept raw JSON Schema (serde_json::Value)
  instead of limited enum types
- Add tool call IDs and Required tool choice variant
- Add DELETE HTTP method support and multipart file upload
- Bump thiserror to v2, add reqwest multipart feature
- Remove strum dependency (no longer needed)
- Update all tests and examples for new API
2026-03-20 17:16:26 +00:00
Ivan Gabriele
9ad6a1dc84 ci(release): v0.14.0 v0.14.0 2024-08-27 09:28:58 +02:00
Ivan Gabriele
7c464830ee docs(changelog): update 2024-08-27 09:28:50 +02:00
francois-caddet
161b33c725 feat(constants): update model constants (#17)
* feat(Model)!: Update model constants

- Add new models Mistral Nemo and Codestral Mamba
- Add aliases to models constant to be deserialized seemlessly from the versioned forme (e.g.: "mistral-large-2407")
- The commonly named Mistral Large 2 is now `constants::Model::MistralLargeLatest` when the old one is `Model::MistralLarge`

* tests(Model): Update the tests to check the new model variants.
2024-08-27 09:25:59 +02:00
Ivan Gabriele
79a410b298 ci(release): v0.13.0 v0.13.0 2024-08-22 01:15:08 +02:00
Ivan Gabriele
4a45ad337f docs(changelog): update 2024-08-22 01:15:00 +02:00
Ivan Gabriele
2114916941 fix(client)!: update ModelListData struct following API changes
BREAKING CHANGE: `v1::model_list::ModelListData` struct has been updated.
2024-08-22 01:09:27 +02:00
francois-caddet
9bfbf2e9dc fix(client): remove the Content-Type from the headers of the reqwest builders. (#14)
They apparently are conflicting with reqwest internal stufs.

fix #13
2024-08-22 00:45:06 +02:00
Ivan Gabriele
67aa5bbaef ci(release): v0.12.0 v0.12.0 2024-07-24 20:23:22 +02:00
Ivan Gabriele
415fd98167 docs(changelog): update 2024-07-24 20:23:01 +02:00
Federico G. Schwindt
8e9f7a5386 feat: mark Function trait as Send (#12)
Allow to use Client in places that are also Send.
2024-07-24 20:16:11 +02:00
Federico G. Schwindt
3afeec1d58 feat: implement the Debug trait for Client (#11)
This is useful if you want to include client::Client in your own
implementation and derive Debug.
2024-07-24 20:08:25 +02:00
Ivan Gabriele
0c097aa56d ci(release): v0.11.0 v0.11.0 2024-06-22 14:05:11 +02:00
Ivan Gabriele
e6539c0ccf docs(changelog): update 2024-06-22 14:05:04 +02:00
Ivan Gabriele
30156c5273 test: remove useless setup in constants test 2024-06-22 14:02:52 +02:00
Ivan Gabriele
ecd0c3028f feat(constants): add OpenMixtral8x22b, MistralTiny & CodestralLatest to Model enum 2024-06-22 13:22:57 +02:00
Ivan Gabriele
0df67b1b25 fix(chat): implement Clone trait for ChatParams & ResponseFormat 2024-06-22 13:09:15 +02:00
Ivan Gabriele
f7d012b280 ci(release): v0.10.0 v0.10.0 2024-06-07 16:55:50 +02:00
Ivan Gabriele
5b5bd2d68e docs(changelog): update 2024-06-07 16:55:39 +02:00
Xavier Gillard
2fc0642a5e feat(chat): add the 'system' and 'tool' message roles (#10)
* add the 'system' and 'tool' message roles (see: https://docs.mistral.ai/capabilities/completion/ )

* docs(chat): add offical doc link in ChatMessageRole

* ci(github): listen to pull_request event in Test workflow

---------

Co-authored-by: Ivan Gabriele <ivan.gabriele@protonmail.com>
2024-06-07 16:49:55 +02:00
Ivan Gabriele
cf68a77320 feat(chat)!: change safe_prompt, temperature & top_p to non-Option types
BREAKING CHANGE:
- `Chat::ChatParams.safe_prompt` & `Chat::ChatRequest.safe_prompt` are now `bool` instead of `Option<bool>`. Default is `false`.
- `Chat::ChatParams.temperature` & `Chat::ChatRequest.temperature` are now `f32` instead of `Option<f32>`. Default is `0.7`.
- `Chat::ChatParams.top_p` & `Chat::ChatRequest.top_p` are now `f32` instead of `Option<f32>`. Default is `1.0`.
2024-06-07 16:00:10 +02:00
Ivan Gabriele
e61ace9a18 test(chat): simplify chat response message content check to cover variations 2024-06-07 14:36:49 +02:00
Ivan Gabriele
64034402ca build(makefile): fix env file loading 2024-06-07 14:36:48 +02:00
Nick Anderson
85c3611afb feat(chat): add response_format for JSON return values 2024-06-07 14:36:37 +02:00
seurimas
da5fe54115 fix(chat): skip serializing tool_calls if null, to avoid 422 error 2024-06-07 14:12:22 +02:00
Ivan Gabriele
7a5e0679c1 ci(release): v0.9.0 v0.9.0 2024-04-13 14:06:55 +02:00
Ivan Gabriele
99d9d099e2 docs(changelog): update 2024-04-13 13:56:20 +02:00
Ivan Gabriele
91fb775132 ci(makefile): fix conventional-changelog-cli suffix 2024-04-13 13:55:22 +02:00
Ivan Gabriele
7474aa6730 ci(makefile): prefix conventional-changelog with npx 2024-04-13 13:54:05 +02:00
Ivan Gabriele
6a99eca49c fix!: fix typo in OpenMixtral8x7b model name (#8)
BREAKING CHANGE: `Model.OpenMistral8x7b` has been renamed to `Model.OpenMixtral8x7b`.
2024-04-13 13:49:54 +02:00
renovate[bot]
fccd59c0cc fix(deps): update rust crate reqwest to 0.12.0 (#6)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-13 13:38:35 +02:00
Ivan Gabriele
a463cb3106 docs(github): update issue templates 2024-03-10 04:36:08 +01:00
Ivan Gabriele
8bee874bd4 ci(release): v0.8.0 v0.8.0 2024-03-09 11:45:06 +01:00
Ivan Gabriele
16464a4c3d docs(changelog): update 2024-03-09 11:44:57 +01:00
Ivan Gabriele
a4c2d4623d ci(github): fix examples test 2024-03-09 11:43:06 +01:00
Ivan Gabriele
ab91154d35 docs(readme): update examples 2024-03-09 11:41:39 +01:00
Ivan Gabriele
74bf8a96ee feat!: add function calling support to client.chat() & client.chat_async()
BREAKING CHANGE: Too many to count in this version. Check the README examples.
2024-03-09 11:40:07 +01:00
Ivan Gabriele
9430d42382 ci(release): v0.7.0 v0.7.0 2024-03-05 02:49:59 +01:00
Ivan Gabriele
e7d844dce9 docs(changelog): update 2024-03-05 02:49:52 +01:00
Ivan Gabriele
29566f7948 ci(github): split documentation tests into a separate job 2024-03-05 02:48:24 +01:00
Ivan Gabriele
72bae8817a docs: add client.chat*() documentation 2024-03-05 02:40:49 +01:00
Ivan Gabriele
08b042506d test(coverage): migrate from tarpaulin to llvm-cov 2024-03-05 02:34:50 +01:00
Ivan Gabriele
efcd93953a build(makefile): add --skip-clean option to test-cover command 2024-03-05 01:36:02 +01:00
Ivan Gabriele
ea99a075ef build(makefile): remove wrong --nocapture option from test-doc command 2024-03-05 00:59:13 +01:00
Ivan Gabriele
ccf3d1431a build(makefile): add doc command 2024-03-05 00:55:07 +01:00
Ivan Gabriele
a8bfb5333f ci(github): add documentation tests 2024-03-05 00:50:21 +01:00
Ivan Gabriele
ef5d475e2d fix!: fix failure when api key as param and not env
BREAKING CHANGE:

- Rename `ClientError.ApiKeyError` to `MissingApiKey`.
- Rename `ClientError.ReadResponseTextError` to `ClientError.UnreadableResponseText`.
2024-03-04 21:12:08 +01:00
Ivan Gabriele
5217fcfb94 ci(release): v0.6.0 v0.6.0 2024-03-04 08:20:46 +01:00
Ivan Gabriele
6b1cc5c058 docs(changelog): update 2024-03-04 08:20:38 +01:00
Ivan Gabriele
4a4219d3ea feat!: add client.chat_stream() method
BREAKING CHANGE: You can't set the `stream` option for `client.chat*()`.

Either use `client.chat_stream()` if you want to use streams
or use `client.chat()` / `client.chat_async()` otherwise.
2024-03-04 08:16:10 +01:00