Skip to content

Commit 32de9df

Browse files
committed
[Thread] Support create thread
1 parent b094da4 commit 32de9df

14 files changed

Lines changed: 212 additions & 26 deletions

File tree

docs/docs/release/2023.12.1.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
---
2+
title: 2023.12.1
3+
---
4+
5+
| Release version | Release Time |
6+
|:---------------:|:------------:|
7+
| `2023.12.1` | `2023-12-23` |
8+
9+
## OpenAi
10+
11+
---
12+
13+
- Create fine-tuning job
14+
- List fine-tuning jobs
15+
- List fine-tuning events
16+
- Retrieve fine-tuning job
17+
- Cancel fine-tuning

docs/docs/release/2023.12.1.zh.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
---
2+
title: 2023.12.1
3+
---
4+
5+
| 发布版本 | 发布时间 |
6+
|:-----------:|:------------:|
7+
| `2023.12.1` | `2023-12-23` |
8+
9+
## OpenAi
10+
11+
---
12+
13+
- 创建微调作业
14+
- 列出微调作业
15+
- 列出微调事件
16+
- 检索微调作业
17+
- 取消微调作业

docs/docs/release/latest.md

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,21 @@
11
---
2-
title: 2023.12.1
2+
title: 2024.01.1
33
---
44

55
| Release version | Release Time |
66
|:---------------:|:------------:|
7-
| `2023.12.1` | `2023-12-23` |
7+
| `2024.01.1` | `2024-03-02` |
88

99
## OpenAi
1010

1111
---
1212

13-
- Create fine-tuning job
14-
- List fine-tuning jobs
15-
- List fine-tuning events
16-
- Retrieve fine-tuning job
17-
- Cancel fine-tuning
13+
- Create assistant
14+
- Create assistant file
15+
- List assistants
16+
- List assistant files
17+
- Retrieve assistant
18+
- Retrieve assistant file
19+
- Modify assistant
20+
- Delete assistant
21+
- Delete assistant file

docs/docs/release/latest.zh.md

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,21 @@
11
---
2-
title: 2023.12.1
2+
title: 2024.01.1
33
---
44

55
| 发布版本 | 发布时间 |
66
|:-----------:|:------------:|
7-
| `2023.12.1` | `2023-12-23` |
7+
| `2024.01.1` | `2024-03-02` |
88

99
## OpenAi
1010

1111
---
1212

13-
- 创建微调作业
14-
- 列出微调作业
15-
- 列出微调事件
16-
- 检索微调作业
17-
- 取消微调作业
13+
- 创建助手
14+
- 创建助手文件
15+
- 列出助手
16+
- 列出助手文件
17+
- 检索助手
18+
- 检索助手文件
19+
- 修改助手
20+
- 删除助手
21+
- 删除助手文件

docs/mkdocs.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ repo_url: https://github.com/devlive-community/openai-java-sdk
99
edit_uri: "https://github.com/devlive-community/openai-java-sdk/blob/master/docs/docs"
1010

1111
banners:
12-
- title: OpenAi Java SDK &nbsp; <em>2023.12.1</em> &nbsp; is released
12+
- title: OpenAi Java SDK &nbsp; <em>2024.01.1</em> &nbsp; is released
1313
link: /release-latest.html
1414
description: <a href="https://github.com/devlive-community/openai-java-sdk" class="text-white"> Do you ❤️ DataCap? Give us a 🌟 on GitHub </a>
1515

@@ -59,9 +59,6 @@ markdown_extensions:
5959
- admonition
6060
- pymdownx.details
6161
- pymdownx.superfences
62-
- pymdownx.emoji:
63-
emoji_index: !!python/name:materialx.emoji.twemoji
64-
emoji_generator: !!python/name:materialx.emoji.to_svg
6562
- pymdownx.snippets
6663
- abbr
6764

@@ -76,19 +73,21 @@ plugins:
7673
default: false
7774
nav_translations:
7875
NavReleaseNote: 更新日志
76+
NavDocument: 文档
7977
- locale: en
8078
name: English
8179
build: true
8280
default: true
8381
nav_translations:
8482
NavReleaseNote: Release Note
83+
NavDocument: Documentation
8584
- redirects:
8685
redirect_maps:
8786
release-latest.md: release/latest.md
8887

8988
nav:
9089
- index.md
91-
- Reference:
90+
- NavDocument:
9291
- Stream (Not provider):
9392
- reference/stream/console.md
9493
- Open Ai:
@@ -114,5 +113,6 @@ nav:
114113
- reference/google_palm/chat.md
115114
- NavReleaseNote:
116115
- release/latest.md
116+
- release/2023.12.1.md
117117
- released.md
118118
- powered_by.md

pom.xml

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
<groupId>org.devlive.sdk</groupId>
77
<artifactId>openai-java-sdk</artifactId>
8-
<version>2024.01.1</version>
8+
<version>2024.01.2-SNAPSHOT</version>
99

1010
<name>openai-java-sdk</name>
1111
<description>
@@ -63,7 +63,7 @@
6363
<plugin.maven.findbugs.version>3.0.5</plugin.maven.findbugs.version>
6464
<plugin.maven.source.version>2.2.1</plugin.maven.source.version>
6565
<plugin.maven.javadoc.version>3.5.0</plugin.maven.javadoc.version>
66-
<plugin.maven.gpg.version>1.6</plugin.maven.gpg.version>
66+
<plugin.maven.gpg.version>3.1.0</plugin.maven.gpg.version>
6767
<plugin.maven.nexus.version>1.6</plugin.maven.nexus.version>
6868
</properties>
6969

@@ -149,6 +149,36 @@
149149
</dependency>
150150
</dependencies>
151151

152+
<profiles>
153+
<profile>
154+
<id>deploy</id>
155+
<build>
156+
<plugins>
157+
<plugin>
158+
<groupId>org.apache.maven.plugins</groupId>
159+
<artifactId>maven-gpg-plugin</artifactId>
160+
<version>${plugin.maven.gpg.version}</version>
161+
<executions>
162+
<execution>
163+
<phase>verify</phase>
164+
<goals>
165+
<goal>sign</goal>
166+
</goals>
167+
<configuration>
168+
<!-- Prevent `gpg` from using pinentry programs -->
169+
<gpgArguments>
170+
<arg>--pinentry-mode</arg>
171+
<arg>loopback</arg>
172+
</gpgArguments>
173+
</configuration>
174+
</execution>
175+
</executions>
176+
</plugin>
177+
</plugins>
178+
</build>
179+
</profile>
180+
</profiles>
181+
152182
<build>
153183
<plugins>
154184
<plugin>
@@ -268,4 +298,5 @@
268298
<url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url>
269299
</repository>
270300
</distributionManagement>
301+
271302
</project>

src/main/java/org/devlive/sdk/openai/DefaultApi.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import org.devlive.sdk.openai.entity.UserKeyEntity;
1616
import org.devlive.sdk.openai.entity.beta.AssistantsEntity;
1717
import org.devlive.sdk.openai.entity.beta.AssistantsFileEntity;
18+
import org.devlive.sdk.openai.entity.beta.ThreadEntity;
1819
import org.devlive.sdk.openai.response.AudioResponse;
1920
import org.devlive.sdk.openai.response.ChatResponse;
2021
import org.devlive.sdk.openai.response.CompleteResponse;
@@ -302,4 +303,12 @@ Single<AssistantsEntity> fetchUpdateAssistant(@Url String url,
302303
*/
303304
@DELETE
304305
Single<AssistantsFileResponse> fetchDeleteAssistantFile(@Url String url);
306+
307+
/**
308+
* Create a thread.
309+
* 创建线程。
310+
*/
311+
@POST
312+
Single<ThreadEntity> fetchCreateThread(@Url String url,
313+
@Body ThreadEntity configure);
305314
}

src/main/java/org/devlive/sdk/openai/DefaultClient.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import org.devlive.sdk.openai.entity.beta.AssistantsEntity;
2727
import org.devlive.sdk.openai.entity.beta.AssistantsFileEntity;
2828
import org.devlive.sdk.openai.entity.beta.QueryEntity;
29+
import org.devlive.sdk.openai.entity.beta.ThreadEntity;
2930
import org.devlive.sdk.openai.entity.google.MessageEntity;
3031
import org.devlive.sdk.openai.exception.RequestException;
3132
import org.devlive.sdk.openai.mixin.IgnoreUnknownMixin;
@@ -338,6 +339,13 @@ public AssistantsFileResponse deleteAssistantFile(String assistantId, String fil
338339
.blockingGet();
339340
}
340341

342+
public ThreadEntity createThread(ThreadEntity configure)
343+
{
344+
String url = ProviderUtils.getUrl(provider, UrlModel.FETCH_THREADS);
345+
return this.api.fetchCreateThread(url, configure)
346+
.blockingGet();
347+
}
348+
341349
private ObjectMapper createObjectMapper()
342350
{
343351
ObjectMapper objectMapper = new ObjectMapper();

src/main/java/org/devlive/sdk/openai/entity/MessageEntity.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@
1313
import org.devlive.sdk.openai.model.MessageModel;
1414
import org.devlive.sdk.openai.utils.EnumsUtils;
1515

16+
import java.util.Map;
17+
import java.util.Set;
18+
1619
@Data
1720
@Builder
1821
@ToString
@@ -30,6 +33,20 @@ public class MessageEntity
3033
@JsonProperty(value = "name")
3134
private String name;
3235

36+
/**
37+
* A list of File IDs that the message should use. There can be a maximum of 10 files attached to a message. Useful for tools like retrieval and code_interpreter that can access and use files.
38+
* 邮件应使用的文件 ID 列表。一封邮件最多可以附加 10 个文件。对于可以访问和使用文件的检索和code_interpreter等工具很有用。
39+
*/
40+
@JsonProperty(value = "file_ids")
41+
private Set<String> fileIds;
42+
43+
/**
44+
* Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format. Keys can be a maximum of 64 characters long and values can be a maxium of 512 characters long.
45+
* 可附加到对象的 16 个键值对的集合。这对于以结构化格式存储有关对象的其他信息非常有用。键的最大长度为 64 个字符,值的最大长度为 512 个字符。
46+
*/
47+
@JsonProperty(value = "metadata")
48+
private Map<Object, Object> metadata;
49+
3350
private MessageEntity(MessageEntityBuilder builder)
3451
{
3552
if (StringUtils.isEmpty(builder.role)) {
@@ -46,6 +63,8 @@ private MessageEntity(MessageEntityBuilder builder)
4663
builder.name("openai-java-sdk");
4764
}
4865
this.name = builder.name;
66+
this.fileIds = builder.fileIds;
67+
this.metadata = builder.metadata;
4968
}
5069

5170
public static class MessageEntityBuilder
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package org.devlive.sdk.openai.entity.beta;
2+
3+
import com.fasterxml.jackson.annotation.JsonFormat;
4+
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
5+
import com.fasterxml.jackson.annotation.JsonProperty;
6+
import lombok.AllArgsConstructor;
7+
import lombok.Builder;
8+
import lombok.Data;
9+
import lombok.NoArgsConstructor;
10+
import lombok.ToString;
11+
12+
import java.util.Map;
13+
14+
@Data
15+
@Builder
16+
@ToString
17+
@NoArgsConstructor
18+
@AllArgsConstructor
19+
@JsonIgnoreProperties(ignoreUnknown = true)
20+
public class ThreadEntity
21+
{
22+
/**
23+
* The identifier, which can be referenced in API endpoints.
24+
* 标识符,可在 API 终结点中引用。
25+
*/
26+
@JsonProperty(value = "id")
27+
private String id;
28+
29+
/**
30+
* The object type, which is always thread.
31+
* 对象类型,始终为 thread。
32+
*/
33+
@JsonProperty(value = "object")
34+
private String object;
35+
36+
/**
37+
* The Unix timestamp (in seconds) for when the thread was created.
38+
* 创建线程时的 Unix 时间戳(以秒为单位)。
39+
*/
40+
@JsonProperty(value = "created_at")
41+
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
42+
private String createdTime;
43+
44+
/**
45+
* Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format. Keys can be a maximum of 64 characters long and values can be a maxium of 512 characters long.
46+
* 可附加到对象的 16 个键值对的集合。这对于以结构化格式存储有关对象的其他信息非常有用。键的最大长度为 64 个字符,值的最大长度为 512 个字符。
47+
*/
48+
@JsonProperty(value = "metadata")
49+
private Map<Object, Object> metadata;
50+
}

0 commit comments

Comments
 (0)