Skip to content

Commit 960d4a2

Browse files
authored
Released for 1.5.0 (#20)
2 parents f72bce5 + 170d5a9 commit 960d4a2

File tree

18 files changed

+402
-7
lines changed

18 files changed

+402
-7
lines changed

docs/docs/powered_by.zh.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: 客户
2+
title: 用户案例
33

44
hide:
55
- navigation

docs/docs/reference/moderations.md

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
---
2+
title: Moderations
3+
---
4+
5+
!!! Note
6+
7+
Please build the client before calling, the build code is as follows:
8+
9+
```java
10+
OpenAiClient client = OpenAiClient.builder()
11+
.apiHost("https://api.openai.com")
12+
.apiKey(System.getProperty("openai.token"))
13+
.build();
14+
```
15+
16+
`System.getProperty("openai.token")` is the key to access the API authorization.
17+
18+
### Create moderation
19+
20+
---
21+
22+
Classifies if text violates OpenAI's Content Policy
23+
24+
```java
25+
ModerationEntity configure = ModerationEntity.builder()
26+
.inputs(Lists.newArrayList("Hello OpenAi Java SDK"))
27+
.build();
28+
client.moderations(configure);
29+
```
30+
31+
Returns
32+
33+
```json
34+
{
35+
"id": "modr-XXXXX",
36+
"model": "text-moderation-005",
37+
"results": [
38+
{
39+
"flagged": true,
40+
"categories": {
41+
"sexual": false,
42+
"hate": false,
43+
"harassment": false,
44+
"self-harm": false,
45+
"sexual/minors": false,
46+
"hate/threatening": false,
47+
"violence/graphic": false,
48+
"self-harm/intent": false,
49+
"self-harm/instructions": false,
50+
"harassment/threatening": true,
51+
"violence": true
52+
},
53+
"category_scores": {
54+
"sexual": 1.2282071e-06,
55+
"hate": 0.010696256,
56+
"harassment": 0.29842457,
57+
"self-harm": 1.5236925e-08,
58+
"sexual/minors": 5.7246268e-08,
59+
"hate/threatening": 0.0060676364,
60+
"violence/graphic": 4.435014e-06,
61+
"self-harm/intent": 8.098441e-10,
62+
"self-harm/instructions": 2.8498655e-11,
63+
"harassment/threatening": 0.63055265,
64+
"violence": 0.99011886
65+
}
66+
}
67+
]
68+
}
69+
```
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
---
2+
title: Moderations
3+
---
4+
5+
!!! Note
6+
7+
调用前请先构建客户端,构建代码如下:
8+
9+
```java
10+
OpenAiClient client = OpenAiClient.builder()
11+
.apiHost("https://api.openai.com")
12+
.apiKey(System.getProperty("openai.token"))
13+
.build();
14+
```
15+
16+
`System.getProperty("openai.token")` 是访问 API 授权的关键。
17+
18+
### Create moderation
19+
20+
---
21+
22+
对文本是否违反 OpenAI 的内容政策进行分类
23+
24+
```java
25+
ModerationEntity configure = ModerationEntity.builder()
26+
.inputs(Lists.newArrayList("Hello OpenAi Java SDK"))
27+
.build();
28+
client.moderations(configure);
29+
```
30+
31+
Returns
32+
33+
```json
34+
{
35+
"id": "modr-XXXXX",
36+
"model": "text-moderation-005",
37+
"results": [
38+
{
39+
"flagged": true,
40+
"categories": {
41+
"sexual": false,
42+
"hate": false,
43+
"harassment": false,
44+
"self-harm": false,
45+
"sexual/minors": false,
46+
"hate/threatening": false,
47+
"violence/graphic": false,
48+
"self-harm/intent": false,
49+
"self-harm/instructions": false,
50+
"harassment/threatening": true,
51+
"violence": true
52+
},
53+
"category_scores": {
54+
"sexual": 1.2282071e-06,
55+
"hate": 0.010696256,
56+
"harassment": 0.29842457,
57+
"self-harm": 1.5236925e-08,
58+
"sexual/minors": 5.7246268e-08,
59+
"hate/threatening": 0.0060676364,
60+
"violence/graphic": 4.435014e-06,
61+
"self-harm/intent": 8.098441e-10,
62+
"self-harm/instructions": 2.8498655e-11,
63+
"harassment/threatening": 0.63055265,
64+
"violence": 0.99011886
65+
}
66+
}
67+
]
68+
}
69+
```

docs/docs/released.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,14 @@ hide:
55
- navigation
66
---
77

8+
### 1.5.0
9+
10+
---
11+
12+
- Supports chinese documents
13+
- Support create translation
14+
- Support create moderation
15+
816
### 1.4.0
917

1018
---

docs/docs/released.zh.md

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,24 @@ hide:
55
- navigation
66
---
77

8+
### 1.5.0
9+
10+
---
11+
12+
- 支持中文文档
13+
- 支持创建翻译
14+
- 支持创建审核
15+
816
### 1.4.0
917

1018
---
1119

1220
- 支持图像 API
13-
- 创建图像
14-
- 创建图像编辑
15-
- 创建图像变化
21+
- 创建图像
22+
- 创建图像编辑
23+
- 创建图像变化
1624
- 支持 embeddings API
17-
- 创建 embeddings
25+
- 创建 embeddings
1826

1927
### 1.3.0
2028

docs/mkdocs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ nav:
6565
- reference/images.md
6666
- reference/embeddings.md
6767
- reference/audio.md
68+
- reference/moderations.md
6869
- Provider:
6970
- reference/provider/azure.md
7071
- released.md

pom.xml

Lines changed: 1 addition & 1 deletion
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>1.5.0-SNAPSHOT</version>
8+
<version>1.5.0</version>
99

1010
<name>openai-java-sdk</name>
1111
<description>

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,15 @@
88
import org.devlive.sdk.openai.entity.EmbeddingEntity;
99
import org.devlive.sdk.openai.entity.ImageEntity;
1010
import org.devlive.sdk.openai.entity.ModelEntity;
11+
import org.devlive.sdk.openai.entity.ModerationEntity;
1112
import org.devlive.sdk.openai.entity.UserKeyEntity;
1213
import org.devlive.sdk.openai.response.AudioResponse;
1314
import org.devlive.sdk.openai.response.CompleteChatResponse;
1415
import org.devlive.sdk.openai.response.CompleteResponse;
1516
import org.devlive.sdk.openai.response.EmbeddingResponse;
1617
import org.devlive.sdk.openai.response.ImageResponse;
1718
import org.devlive.sdk.openai.response.ModelResponse;
19+
import org.devlive.sdk.openai.response.ModerationResponse;
1820
import org.devlive.sdk.openai.response.UserKeyResponse;
1921
import retrofit2.http.Body;
2022
import retrofit2.http.GET;
@@ -111,4 +113,12 @@ Single<EmbeddingResponse> fetchEmbeddings(@Url String url,
111113
Single<AudioResponse> fetchAudioTranscriptions(@Url String url,
112114
@Part() MultipartBody.Part audio,
113115
@PartMap Map<String, RequestBody> configure);
116+
117+
/**
118+
* Classifies if text violates OpenAI's Content Policy
119+
* 对文本是否违反 OpenAI 的内容政策进行分类
120+
*/
121+
@POST
122+
Single<ModerationResponse> fetchModerations(@Url String url,
123+
@Body ModerationEntity configure);
114124
}

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import org.devlive.sdk.openai.entity.EmbeddingEntity;
1111
import org.devlive.sdk.openai.entity.ImageEntity;
1212
import org.devlive.sdk.openai.entity.ModelEntity;
13+
import org.devlive.sdk.openai.entity.ModerationEntity;
1314
import org.devlive.sdk.openai.entity.UserKeyEntity;
1415
import org.devlive.sdk.openai.model.ProviderModel;
1516
import org.devlive.sdk.openai.model.UrlModel;
@@ -19,6 +20,7 @@
1920
import org.devlive.sdk.openai.response.EmbeddingResponse;
2021
import org.devlive.sdk.openai.response.ImageResponse;
2122
import org.devlive.sdk.openai.response.ModelResponse;
23+
import org.devlive.sdk.openai.response.ModerationResponse;
2224
import org.devlive.sdk.openai.response.UserKeyResponse;
2325
import org.devlive.sdk.openai.utils.MultipartBodyUtils;
2426
import org.devlive.sdk.openai.utils.ProviderUtils;
@@ -113,6 +115,12 @@ public AudioResponse audioTranscriptions(AudioEntity configure)
113115
.blockingGet();
114116
}
115117

118+
public ModerationResponse moderations(ModerationEntity configure)
119+
{
120+
return this.api.fetchModerations(ProviderUtils.getUrl(provider, UrlModel.FETCH_MODERATIONS), configure)
121+
.blockingGet();
122+
}
123+
116124
public void close()
117125
{
118126
if (ObjectUtils.isNotEmpty(this.client)) {
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package org.devlive.sdk.openai.entity;
2+
3+
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4+
import com.fasterxml.jackson.annotation.JsonProperty;
5+
import lombok.Data;
6+
7+
@Data
8+
@JsonIgnoreProperties(ignoreUnknown = true)
9+
public class CategoryEntity
10+
{
11+
@JsonProperty(value = "sexual")
12+
private Object sexual;
13+
14+
@JsonProperty(value = "hate")
15+
private Object hate;
16+
17+
@JsonProperty(value = "harassment")
18+
private Object harassment;
19+
20+
@JsonProperty(value = "self-harm")
21+
private Object selfHarm;
22+
23+
@JsonProperty(value = "sexual/minors")
24+
private Object sexualMinors;
25+
26+
@JsonProperty(value = "hate/threatening")
27+
private Object hateThreatening;
28+
29+
@JsonProperty(value = "violence/graphic")
30+
private Object violenceGraphic;
31+
32+
@JsonProperty(value = "self-harm/intent")
33+
private Object selfHarmIntent;
34+
35+
@JsonProperty(value = "self-harm/instructions")
36+
private Object selfHarmInstructions;
37+
38+
@JsonProperty(value = "harassment/threatening")
39+
private Object harassmentThreatening;
40+
41+
@JsonProperty(value = "violence")
42+
private Object violence;
43+
}

0 commit comments

Comments
 (0)