From f0ae2812a787d012d3c848727c60d272735b68d7 Mon Sep 17 00:00:00 2001 From: Dongri Jin Date: Tue, 11 Apr 2023 06:34:12 +0900 Subject: [PATCH 1/2] Add docs and examples --- README.md | 81 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 43 insertions(+), 38 deletions(-) diff --git a/README.md b/README.md index 6aaa9d5..cb09ce2 100644 --- a/README.md +++ b/README.md @@ -7,12 +7,40 @@ Cargo.toml openai-api-rs = "0.1.5" ``` -## Example: +## Usage +The library needs to be configured with your account's secret key, which is available on the website. We recommend setting it as an environment variable. Here's an example of initializing the library with the API key loaded from an environment variable and creating a completion: + +### Set OPENAI_API_KEY to environment variable ```bash -export OPENAI_API_KEY={YOUR_API_KEY} +$ export OPENAI_API_KEY=sk-xxxxxxx ``` -### Chat +### Create client +```rust +use openai_api_rs::v1::api::Client; +use std::env; +let client = Client::new(env::var("OPENAI_API_KEY").unwrap().to_string()); +``` + +### Create request +```rust +use openai_api_rs::v1::chat_completion::{self, ChatCompletionRequest}; +let req = ChatCompletionRequest { + model: chat_completion::GPT4.to_string(), + messages: vec![chat_completion::ChatCompletionMessage { + role: chat_completion::MessageRole::user, + content: String::from("Hello OpenAI!"), + }], +}; +``` + +### Send request +```rust +let result = client.completion(req).await?; +println!("{:?}", result.choices[0].text); +``` + +## Example of chat completion ```rust use openai_api_rs::v1::api::Client; use openai_api_rs::v1::chat_completion::{self, ChatCompletionRequest}; @@ -25,46 +53,23 @@ async fn main() -> Result<(), Box> { model: chat_completion::GPT4.to_string(), messages: vec![chat_completion::ChatCompletionMessage { role: chat_completion::MessageRole::user, - content: String::from("NFTとは?"), + content: String::from("Hello OpenAI!"), }], }; let result = client.chat_completion(req).await?; println!("{:?}", result.choices[0].message.content); - Ok(()) } ``` +Check out the [full API documentation](https://platform.openai.com/docs/api-reference/completions) for examples of all the available functions. -### Completion -```rust -use openai_api_rs::v1::completion::{self, CompletionRequest}; -use openai_api_rs::v1::api::Client; -use std::env; - -#[tokio::main] -async fn main() -> Result<(), Box> { - let client = Client::new(env::var("OPENAI_API_KEY").unwrap().to_string()); - let req = CompletionRequest { - model: completion::GPT3_TEXT_DAVINCI_003.to_string(), - prompt: Some(String::from("NFTとは?")), - suffix: None, - max_tokens: Some(3000), - temperature: Some(0.9), - top_p: Some(1.0), - n: None, - stream: None, - logprobs: None, - echo: None, - stop: None, - presence_penalty: Some(0.6), - frequency_penalty: Some(0.0), - best_of: None, - logit_bias: None, - user: None, - }; - let result = client.completion(req).await?; - println!("{:?}", result.choices[0].text); - - Ok(()) -} -``` +## Supported APIs +- [x] [completions](https://platform.openai.com/docs/api-reference/completions) +- [x] [Chat](https://platform.openai.com/docs/api-reference/chat) +- [x] [Edits](https://platform.openai.com/docs/api-reference/edits) +- [x] [Images](https://platform.openai.com/docs/api-reference/images) +- [x] [Embeddings](https://platform.openai.com/docs/api-reference/embeddings) +- [ ] [Audio](https://platform.openai.com/docs/api-reference/audio) +- [x] [Files](https://platform.openai.com/docs/api-reference/files) +- [ ] [Fine-tunes](https://platform.openai.com/docs/api-reference/fine-tunes) +- [ ] [Moderations](https://platform.openai.com/docs/api-reference/moderations) From 24f7c82d6964dac8bfaf44a44b9be692703187af Mon Sep 17 00:00:00 2001 From: Dongri Jin Date: Tue, 11 Apr 2023 06:35:37 +0900 Subject: [PATCH 2/2] Update readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cb09ce2..1b8e372 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ openai-api-rs = "0.1.5" ``` ## Usage -The library needs to be configured with your account's secret key, which is available on the website. We recommend setting it as an environment variable. Here's an example of initializing the library with the API key loaded from an environment variable and creating a completion: +The library needs to be configured with your account's secret key, which is available on the [website](https://platform.openai.com/account/api-keys). We recommend setting it as an environment variable. Here's an example of initializing the library with the API key loaded from an environment variable and creating a completion: ### Set OPENAI_API_KEY to environment variable ```bash