Skip to content

Commit 62a8055

Browse files
committed
Add ability to specify query params for post requests with chat completions
1 parent 74045bb commit 62a8055

18 files changed

+81
-21
lines changed

openai_dive/src/v1/api.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,9 +172,11 @@ impl Client {
172172
&self,
173173
path: &str,
174174
parameters: &T,
175+
query_params: impl Into<Option<&HashMap<String, String>>>,
175176
) -> Result<ResponseWrapper<String>, APIError> {
176177
let result = self
177178
.build_request(Method::POST, path, "application/json")
179+
.query(&query_params.into())
178180
.json(&parameters)
179181
.send()
180182
.await;
@@ -268,6 +270,7 @@ impl Client {
268270
&self,
269271
path: &str,
270272
parameters: &I,
273+
query_params: impl Into<Option<&HashMap<String, String>>>,
271274
) -> Pin<Box<dyn Stream<Item = Result<O, APIError>> + Send>>
272275
where
273276
I: Serialize,
@@ -276,6 +279,7 @@ impl Client {
276279
let event_source = self
277280
.build_request(Method::POST, path, "application/json")
278281
.json(&parameters)
282+
.query(&query_params.into())
279283
.eventsource()
280284
.unwrap();
281285

openai_dive/src/v1/endpoints/administration/invites.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ impl Invites<'_> {
5555
let response = self
5656
.administration
5757
.client
58-
.post("/organization/invites", &parameters)
58+
.post("/organization/invites", &parameters, None)
5959
.await?;
6060

6161
let response: Invite = format_response(response.data)?;

openai_dive/src/v1/endpoints/administration/project_rate_limits.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ impl ProjectRateLimits<'_> {
5555
.post(
5656
&format!("/organization/projects/{project_id}/rate_limits/{rate_limit_id}"),
5757
&parameters,
58+
None,
5859
)
5960
.await?;
6061

openai_dive/src/v1/endpoints/administration/project_service_accounts.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ impl ProjectServiceAccounts<'_> {
7272
.post(
7373
&format!("/organization/projects/{project_id}/service_accounts"),
7474
&parameters,
75+
None,
7576
)
7677
.await?;
7778

openai_dive/src/v1/endpoints/administration/project_users.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ impl ProjectUsers<'_> {
6969
.post(
7070
&format!("/organization/projects/{project_id}/users"),
7171
&parameters,
72+
None,
7273
)
7374
.await?;
7475

@@ -90,6 +91,7 @@ impl ProjectUsers<'_> {
9091
.post(
9192
&format!("/organization/projects/{project_id}/users/{user_id}"),
9293
&parameters,
94+
None,
9395
)
9496
.await?;
9597

openai_dive/src/v1/endpoints/administration/projects.rs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ impl Projects<'_> {
5555
let response = self
5656
.administration
5757
.client
58-
.post("/organization/projects", &parameters)
58+
.post("/organization/projects", &parameters, None)
5959
.await?;
6060

6161
let response: Project = format_response(response.data)?;
@@ -72,7 +72,11 @@ impl Projects<'_> {
7272
let response = self
7373
.administration
7474
.client
75-
.post(&format!("/organization/projects/{project_id}"), &parameters)
75+
.post(
76+
&format!("/organization/projects/{}", project_id),
77+
&parameters,
78+
None,
79+
)
7680
.await?;
7781

7882
let response: Project = format_response(response.data)?;
@@ -85,7 +89,11 @@ impl Projects<'_> {
8589
let response = self
8690
.administration
8791
.client
88-
.post(&format!("/organization/projects/{project_id}/archive"), &())
92+
.post(
93+
&format!("/organization/projects/{}/archive", project_id),
94+
&(),
95+
None,
96+
)
8997
.await?;
9098

9199
let response: Project = format_response(response.data)?;

openai_dive/src/v1/endpoints/administration/users.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,11 @@ impl Users<'_> {
5959
let response = self
6060
.administration
6161
.client
62-
.post(&format!("/organization/users/{user_id}"), &parameters)
62+
.post(
63+
&format!("/organization/users/{}", user_id),
64+
&parameters,
65+
None,
66+
)
6367
.await?;
6468

6569
let response: User = format_response(response.data)?;

openai_dive/src/v1/endpoints/batch.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ impl Client {
2222
impl Batches<'_> {
2323
/// Creates and executes a batch from an uploaded file of requests
2424
pub async fn create(&self, parameters: CreateBatchParameters) -> Result<Batch, APIError> {
25-
let response = self.client.post("/batches", &parameters).await?;
25+
let response = self.client.post("/batches", &parameters, None).await?;
2626

2727
let response: Batch = format_response(response.data)?;
2828

@@ -42,7 +42,7 @@ impl Batches<'_> {
4242
pub async fn cancel(&self, id: &str) -> Result<Batch, APIError> {
4343
let response = self
4444
.client
45-
.post(&format!("/batches/{id}/cancel"), &())
45+
.post(&format!("/batches/{id}/cancel"), &(), None)
4646
.await?;
4747

4848
let response: Batch = format_response(response.data)?;

openai_dive/src/v1/endpoints/chat.rs

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,17 @@ impl Chat<'_> {
4040
&self,
4141
parameters: ChatCompletionParameters,
4242
) -> Result<ResponseWrapper<ChatCompletionResponse>, APIError> {
43-
let response = self.client.post("/chat/completions", &parameters).await?;
43+
let response = self
44+
.client
45+
.post(
46+
"/chat/completions",
47+
&ChatCompletionParameters {
48+
query_params: None,
49+
..parameters
50+
},
51+
parameters.query_params.as_ref(),
52+
)
53+
.await?;
4454

4555
let data: ChatCompletionResponse = format_response(response.data)?;
4656

@@ -59,12 +69,19 @@ impl Chat<'_> {
5969
Pin<Box<dyn Stream<Item = Result<ChatCompletionChunkResponse, APIError>> + Send>>,
6070
APIError,
6171
> {
62-
let mut stream_parameters = parameters;
72+
let mut stream_parameters = ChatCompletionParameters {
73+
query_params: None,
74+
..parameters
75+
};
6376
stream_parameters.stream = Some(true);
6477

6578
Ok(self
6679
.client
67-
.post_stream("/chat/completions", &stream_parameters)
80+
.post_stream(
81+
"/chat/completions",
82+
&stream_parameters,
83+
stream_parameters.query_params.as_ref(),
84+
)
6885
.await)
6986
}
7087
}

openai_dive/src/v1/endpoints/embeddings.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ impl Embeddings<'_> {
3131
&self,
3232
parameters: EmbeddingParameters,
3333
) -> Result<ResponseWrapper<EmbeddingResponse>, APIError> {
34-
let response = self.client.post("/embeddings", &parameters).await?;
34+
let response = self.client.post("/embeddings", &parameters, None).await?;
3535

3636
let data: EmbeddingResponse = format_response(response.data)?;
3737

0 commit comments

Comments
 (0)