最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Spring + OpenAI 生成圖像

2023-03-23 11:52 作者:要寵你上天  | 我要投稿

ChatGPT 是由 OpenAI 開發(fā)的強大語言模型,可以用于生成類似人類的文本。OpenAI API 允許開發(fā)人員訪問該模型并在其自己的應(yīng)用程序中使用。在本文中,我們將討論如何使用 Java Spring Framework 與 OpenAI API 生成圖像。


在開始之前,您需要在 OpenAI 網(wǎng)站 "https://beta.openai.com/account/api-keys" 上注冊 API 密鑰。一旦擁有了 API 密鑰,就可以開始向 API 發(fā)送請求。


要使用 Java Spring Framework 與 OpenAI API,請使用可以處理 HTTP 請求的庫。這方面比較常用的庫是 Spring RestTemplate 庫。RestTemplate 是一種強大而靈活的庫,可以輕松地發(fā)送 HTTP 請求并處理響應(yīng)。


首先,需要將 Spring RestTemplate 庫添加到項目中。可以將以下依賴項添加到 build.gradle 文件:
























plugins { id 'java' id 'org.springframework.boot' version '3.0.1' id 'io.spring.dependency-management' version '1.1.0'}
group = 'com.openai'version = '0.0.1-SNAPSHOT'sourceCompatibility = '17'
repositories { mavenCentral()}
dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test'}
tasks.named('test') { useJUnitPlatform()}

接下來,創(chuàng)建一個處理 API 調(diào)用的類??梢允褂孟旅娴氖纠?/p>


















@Componentpublic class OpenAi { ? ?private static final String OPENAI_URL = "https://api.openai.com/v1/images/generations"; ? ?private final String apiKey = "<your-api-key"; ? ?private final RestTemplate restTemplate = new RestTemplate(); ? ?public String generateImages(String prompt, float temperature, int maxTokens, String stop, final int logprobs, final boolean echo) { ? ? ? ?HttpHeaders headers = new HttpHeaders(); ? ? ? ?headers.setContentType(MediaType.APPLICATION_JSON); ? ? ? ?headers.set("Authorization", "Bearer " + apiKey); ? ? ? ?// We are including only some of the parameters to the json request ? ? ? ?String requestJson = "{\"prompt\":\"" + prompt + "\",\"n\":" + n + "}"; ? ? ? ?HttpEntity < String > request = new HttpEntity < > (requestJson, headers); ? ? ? ?ResponseEntity < String > response = restTemplate.postForEntity(OPENAI_URL, request, String.class); ? ? ? ?return response.getBody(); ? ?}}

這個類使用 Spring RestTemplate 庫向?OpenAI API 的生成圖像端點發(fā)送 POST 請求,包含給定的提示詞和想要接收的圖像數(shù)量。如果需要,還可以增加一些其他可選參數(shù),可以在下面的鏈接中檢查:https://beta.openai.com/docs/api-reference/images/create。


API 密鑰已添加到請求頭中,并以 JSON 的形式發(fā)送請求。然后解析響應(yīng)以返回生成的圖像 URL。


現(xiàn)在,可以在代碼中使用此類來使用 ChatGPT 生成圖像。以下是如何在 Spring 控制器中使用?*generateImages*?方法的示例。















@RestControllerpublic class OpenAiController { ? ?@Autowired ? ?private final OpenAi openAi; ? ?public OpenAiController(OpenAi openAi) { ? ? ? ?this.openAi = openAi; ? ?} ? ?@PostMapping("/generateImages") ? ?public String generateImages(@RequestBody GenerateImagesRequest request) { ? ? ? ?return openAi.generateImages(request.getPrompt(), request.getTemperature(), request.getMaxTokens(), request.getStop(), ? ? ? ? ? ?request.getLogprobs(), request.isEcho(), request.getN()); ? ?}}

上面的代碼是 Spring REST 控制器的示例,它使用請求正文中傳遞的參數(shù)調(diào)用 OpenAi 類中的 generateImages 方法。它將 POST 請求映射到?/generateImages 終點,并將生成的圖像作為響應(yīng)返回。


還可以為請求正文定義一個 POJO 類,例如:












public class GenerateImagesRequest { ? ?private String prompt; ? ?private float temperature; ? ?private int maxTokens; ? ?private String stop; ? ?private int logprobs; ? ?private boolean echo; ? ?private int n; ? ?// getters and setters}

值得注意的是,生成的圖像可能不完美,可能需要進一步審查和調(diào)整。我們已向模型添加了許多參數(shù),但在向服務(wù)器發(fā)送 post 請求時,OpenAI 實用程序類中并未使用它們。這是因為這些參數(shù)大多是可選的,有些甚至對于生成圖像的端點(endpoint)無效。但是,對于其他端點,如“文本完成”等,這些是有效的。


測試 API 的時間到了


現(xiàn)在,我們已經(jīng)準(zhǔn)備好端點,可以啟動服務(wù)器并使用以下 URL 從 Postman 或任何其他 API 測試工具發(fā)出 POST 請求。


http://localhost:8080/generateImages


這是我的 API 測試截圖和響應(yīng):



可以看到具有 prompt 和 n 值的 Json 請求正文。n=3 表示我們將收到 5 張生成的圖像作為響應(yīng)。我們確實收到與剛剛發(fā)送的提示文本相關(guān)的 3 個圖像 URL。


現(xiàn)在可以復(fù)制這些 URL 并將它們粘貼到瀏覽器中以查看實際圖像。


圖像生成使用 DALL·E 模型。有許多其他模型可供使用,根據(jù)要求進行選擇。不僅可以生成圖像,還可以操縱它們??梢远紘L試一下,看看哪個最合心意。使用下面的鏈接獲取所有可用模型:https://api.openai.com/v1/models(將你的 API 密鑰作為 Bearer 令牌添加)。


Spring + OpenAI 生成圖像的評論 (共 條)

分享到微博請遵守國家法律
泾阳县| 盐亭县| 磐安县| 类乌齐县| 藁城市| 安仁县| 鄯善县| 容城县| 清水河县| 神农架林区| 穆棱市| 互助| 大英县| 巴林左旗| 浦城县| 龙里县| 新郑市| 荆门市| 凤台县| 乐昌市| 黎平县| 清水河县| 顺义区| 长治县| 穆棱市| 临夏市| 安国市| 怀来县| 正宁县| 芦山县| 外汇| 酒泉市| 弥勒县| 民县| 罗田县| 仙居县| 陈巴尔虎旗| 会宁县| 甘孜| 梅州市| 富裕县|