-
Notifications
You must be signed in to change notification settings - Fork 252
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Refactor types
module
#170
Conversation
Hi @sharifhsn , Thank you for this PR, you have organized the code really well! So much less clutter - appreciate your work. Adding comments for macros is nice touch! |
I think this is fine, otherwise it may get very fragmented. This can be revisited later if required.
I think flat namespace should be fine for now without over-modularizing.
Your judgement here is reasonable - going with the current APIs and future usage and not with deprecated ones. Looks good to me in this PR |
* Update to Assistants example (#146) * Update to Assistants example * Update examples/assistants/src/main.rs update api config for consistency and secutity Co-authored-by: Himanshu Neema <himanshun.iitkgp@gmail.com> * added assistant creation * exit, deconstruct assistant, improved readme --------- Co-authored-by: Himanshu Neema <himanshun.iitkgp@gmail.com> * Add examples tool-call and tool-call-stream (#153) * add names (#150) * Link to openai-func-enums (#152) * Link to openai-func-enums * Link to openai-func-enums * Update async-openai/README.md --------- Co-authored-by: Himanshu Neema <himanshun.iitkgp@gmail.com> * In memory files (#154) * Added ability to use in-memory files (Bytes, vec[u8]) * Removed unnecessary trait impls * Polished example * Spec, readme, and crate description updates (#156) * get latest spec * update description * add WASM * WASM support on experiments branch * chore: Release * Make tool choice lower case (#158) * Fix: post_form to be Sendable (#157) * changed to allow Send. * add simple tests for sendable * fix test name * chore: Release * Add support for rustls-webpki-roots (#168) * Refactor `types` module (#170) * Document `impl_from!` macro * Fix up `impl_from!` docs * Documents `impl_default!` macro * Document `impl_input!` macro * Factor out types from `assistants` module in `types` * Factor out `model` * Factor out `audio` * Factor out `image` * Factor out `file` * Factor out `fine_tune` * Factor out `moderation` * Factor out `edit` * Factor out `fine_tuning` * Factor out missed `DeleteModelResponse` into `model` * Factor out `embedding` * Factor out `chat` * Factor out `completion` and eliminate `types` * Satisfy clippy --------- Co-authored-by: Sharif Haason <sharif.haason@gmail.com> * Sync updates from Spec (#171) * updates to doc comments and types * deprecated * update ChatCompletionFunctions to FunctionObject * More type updates * add logprobs field * update from spec * updated spec * fixes suggested by cargo clippy * add query param to list files (#172) * chore: Release * Optional model in ModifyAssistantRequest (#174) All fields (including model) are optional in OpenAI API. * fix duplicate import due to merge * fix stream object * bring back feature gates lost due to merge * delete old types.rs --------- Co-authored-by: Gravel Hill <120497873+Strange-Knoll@users.noreply.github.com> Co-authored-by: Himanshu Neema <himanshun.iitkgp@gmail.com> Co-authored-by: Frank Fralick <frankfralick@gmail.com> Co-authored-by: Sam F <43347795+Prosammer@users.noreply.github.com> Co-authored-by: David Weis <dweis7@gmail.com> Co-authored-by: yykt <yuuya.yk.katoh@prism.ricoh> Co-authored-by: XTY <xutianyi1999@live.com> Co-authored-by: sharif <61516383+sharifhsn@users.noreply.github.com> Co-authored-by: Sharif Haason <sharif.haason@gmail.com> Co-authored-by: Sebastian Sosa <37946988+CakeCrusher@users.noreply.github.com>
* Update to Assistants example (#146) * Update to Assistants example * Update examples/assistants/src/main.rs update api config for consistency and secutity Co-authored-by: Himanshu Neema <himanshun.iitkgp@gmail.com> * added assistant creation * exit, deconstruct assistant, improved readme --------- Co-authored-by: Himanshu Neema <himanshun.iitkgp@gmail.com> * Add examples tool-call and tool-call-stream (#153) * add names (#150) * Link to openai-func-enums (#152) * Link to openai-func-enums * Link to openai-func-enums * Update async-openai/README.md --------- Co-authored-by: Himanshu Neema <himanshun.iitkgp@gmail.com> * In memory files (#154) * Added ability to use in-memory files (Bytes, vec[u8]) * Removed unnecessary trait impls * Polished example * Spec, readme, and crate description updates (#156) * get latest spec * update description * add WASM * WASM support on experiments branch * chore: Release * Make tool choice lower case (#158) * Fix: post_form to be Sendable (#157) * changed to allow Send. * add simple tests for sendable * fix test name * chore: Release * Add support for rustls-webpki-roots (#168) * Refactor `types` module (#170) * Document `impl_from!` macro * Fix up `impl_from!` docs * Documents `impl_default!` macro * Document `impl_input!` macro * Factor out types from `assistants` module in `types` * Factor out `model` * Factor out `audio` * Factor out `image` * Factor out `file` * Factor out `fine_tune` * Factor out `moderation` * Factor out `edit` * Factor out `fine_tuning` * Factor out missed `DeleteModelResponse` into `model` * Factor out `embedding` * Factor out `chat` * Factor out `completion` and eliminate `types` * Satisfy clippy --------- Co-authored-by: Sharif Haason <sharif.haason@gmail.com> * Sync updates from Spec (#171) * updates to doc comments and types * deprecated * update ChatCompletionFunctions to FunctionObject * More type updates * add logprobs field * update from spec * updated spec * fixes suggested by cargo clippy * add query param to list files (#172) * chore: Release * Optional model in ModifyAssistantRequest (#174) All fields (including model) are optional in OpenAI API. * update contribution guidelines (#182) * update contribution guidelines * fix link * update * consistency * Code of conduct * chore: Release * fix file test by providing query param * Added dimensions param to embedding request (#185) * chore: Release --------- Co-authored-by: Gravel Hill <120497873+Strange-Knoll@users.noreply.github.com> Co-authored-by: Himanshu Neema <himanshun.iitkgp@gmail.com> Co-authored-by: Frank Fralick <frankfralick@gmail.com> Co-authored-by: Sam F <43347795+Prosammer@users.noreply.github.com> Co-authored-by: David Weis <dweis7@gmail.com> Co-authored-by: yykt <yuuya.yk.katoh@prism.ricoh> Co-authored-by: XTY <xutianyi1999@live.com> Co-authored-by: sharif <61516383+sharifhsn@users.noreply.github.com> Co-authored-by: Sharif Haason <sharif.haason@gmail.com> Co-authored-by: Sebastian Sosa <37946988+CakeCrusher@users.noreply.github.com> Co-authored-by: vmg-dev <121135566+vmg-dev@users.noreply.github.com>
* Update to Assistants example (#146) * Update to Assistants example * Update examples/assistants/src/main.rs update api config for consistency and secutity Co-authored-by: Himanshu Neema <himanshun.iitkgp@gmail.com> * added assistant creation * exit, deconstruct assistant, improved readme --------- Co-authored-by: Himanshu Neema <himanshun.iitkgp@gmail.com> * Add examples tool-call and tool-call-stream (#153) * add names (#150) * Link to openai-func-enums (#152) * Link to openai-func-enums * Link to openai-func-enums * Update async-openai/README.md --------- Co-authored-by: Himanshu Neema <himanshun.iitkgp@gmail.com> * In memory files (#154) * Added ability to use in-memory files (Bytes, vec[u8]) * Removed unnecessary trait impls * Polished example * Spec, readme, and crate description updates (#156) * get latest spec * update description * add WASM * WASM support on experiments branch * chore: Release * Make tool choice lower case (#158) * Fix: post_form to be Sendable (#157) * changed to allow Send. * add simple tests for sendable * fix test name * chore: Release * Add support for rustls-webpki-roots (#168) * Refactor `types` module (#170) * Document `impl_from!` macro * Fix up `impl_from!` docs * Documents `impl_default!` macro * Document `impl_input!` macro * Factor out types from `assistants` module in `types` * Factor out `model` * Factor out `audio` * Factor out `image` * Factor out `file` * Factor out `fine_tune` * Factor out `moderation` * Factor out `edit` * Factor out `fine_tuning` * Factor out missed `DeleteModelResponse` into `model` * Factor out `embedding` * Factor out `chat` * Factor out `completion` and eliminate `types` * Satisfy clippy --------- Co-authored-by: Sharif Haason <sharif.haason@gmail.com> * Sync updates from Spec (#171) * updates to doc comments and types * deprecated * update ChatCompletionFunctions to FunctionObject * More type updates * add logprobs field * update from spec * updated spec * fixes suggested by cargo clippy * add query param to list files (#172) * chore: Release * Optional model in ModifyAssistantRequest (#174) All fields (including model) are optional in OpenAI API. * update contribution guidelines (#182) * update contribution guidelines * fix link * update * consistency * Code of conduct * chore: Release * fix file test by providing query param * Added dimensions param to embedding request (#185) * chore: Release * fix: CreateTranscriptionRequest language field not convert (#188) * chore: Release * Add usage information to the run object (#195) * Updates from Spec (#196) * updates from spec * remove Edits * remove Fine-Tunes (was deprecated) * update spec * cargo fix * cargo fmt * chore: Release * Add Client::build for full customizability during instantiation (#197) * Change std::sleep to tokio's sleep (#200) * chore: Release * add support for base64 embeddings (#190) * add support for base64 embeddings * Base64Embedding is an implementation detail * feat: separate Embeddings::create_base64 method * chore: use newtype for hosting base64 decoding instead * chore: remove unused error variant * Add vision-chat example (#203) Example matches quickstart from https://platform.openai.com/docs/guides/vision It showcases struct derived from ChatCompletionRequestMessageContent * Update Audio APIs from updated spec (#202) * Implement CreateTranscriptRequest::response_granularities This PR adds support for `AudioResponseFormat::VerboseJson` and `TimestampGranularity`, including updated example code. These were defined as types before, but not fully implemented. Implements #201. * Modify transcription API to be more like spec - Rename `CreateTranscriptionRespose` to `CreateTranscriptionResponseJson` (to match API spec) - Add `CreateTranscriptionResponseVerboseJson` and `transcribe_verbose_json` - Add `transcribe_raw` for SRT output - Add `post_form_raw` - Update example code * Upgrade dependencies: Rust crates in Cargo.toml (#204) * upgrade reqwest * update reqwest-eventsource * cargo test working (#207) * fix: cargo fmt and compiler warnings fixes (#208) * cargo fmt * fix imports * chore: Release * fixed problems due to code sync * update worker dependency to resolve build issue * update test to fix test compilation issue * add conditional imports * change default of InputSource and bring back builders of file-related structs * update doc --------- Co-authored-by: Gravel Hill <120497873+Strange-Knoll@users.noreply.github.com> Co-authored-by: Himanshu Neema <himanshun.iitkgp@gmail.com> Co-authored-by: Frank Fralick <frankfralick@gmail.com> Co-authored-by: Sam F <43347795+Prosammer@users.noreply.github.com> Co-authored-by: David Weis <dweis7@gmail.com> Co-authored-by: yykt <yuuya.yk.katoh@prism.ricoh> Co-authored-by: XTY <xutianyi1999@live.com> Co-authored-by: sharif <61516383+sharifhsn@users.noreply.github.com> Co-authored-by: Sharif Haason <sharif.haason@gmail.com> Co-authored-by: Sebastian Sosa <37946988+CakeCrusher@users.noreply.github.com> Co-authored-by: vmg-dev <121135566+vmg-dev@users.noreply.github.com> Co-authored-by: TAO <38341571+Taoaozw@users.noreply.github.com> Co-authored-by: turingbuilder <144046780+turingbuilder@users.noreply.github.com> Co-authored-by: Gabriel Bianconi <1275491+GabrielBianconi@users.noreply.github.com> Co-authored-by: Santhanagopalan Krishnamoorthy <santhanagopalan.krishnamoorthy@cuanschutz.edu> Co-authored-by: Adrien Wald <adrien@genei.io> Co-authored-by: Gabriel <Gabriel2409@users.noreply.github.com> Co-authored-by: Eric Kidd <git@randomhacks.net> Co-authored-by: Samuel Batissou Tiburcio <samuelbatissou@gmail.com>
Fixes #136
This PR organizes the types for each API endpoint into their own modules, matching the module structure in the base namespace.
Work that remains:
impls
Some open questions:
I maintained a flat namespace for the types using
pub use
to reduce churn. However, now that the types are properly modularized, I think it would be an improvement to removepub use
and access the types using module names instead. What do you think?A few data structures are shared between
chat
,edit
, andcompletion
. As the latter two are deprecated and unlikely to be updated, I moved those data structures intochat
to better express their future usage. Should they remain, or should they be moved into acommon
module?