Slide 1

Slide 1 text

ChatGPT Meetup Osaka #1 OpenAI APIͰ API ChangelogΛཁ໿ͯ͠Έͨ࿩

Slide 2

Slide 2 text

݁࿦ • OpenAI APIͰ೚ҙͷจষΛཁ໿͢Δ࢓૊Έ͕࡞ΕΔ • ೔ຊޠҎ֎ͷจষΛ࿨༁͢Δ͜ͱ΋Մೳ • ʮॻ͍ͯͳ͍͜ͱʯΛͲ͜·Ͱڐ༰͢Δ͔͕ॏཁ

Slide 3

Slide 3 text

• Stripe Developer Advocate • WordCamp Kyoto 2017 • @hidetaka_dev • https://hidetaka.dev Ԭຊ लߴ (Hide) HELLO! ✋

Slide 4

Slide 4 text

Changelog

Slide 5

Slide 5 text

• ߴස౓ͷ 
 ϚΠφʔΞοϓσʔτ • ࣗಈੜ੒ͳͷͰ 
 ΄΅ӳޠ • ࣾ಺޲͚ϦϦʔεϊʔτͰ 
 ৄࡉΛ೺Ѳ͢Δ͜ͱ͕ଟ͍

Slide 6

Slide 6 text

͍ͭɾԿ͕มΘ͔ͬͨ ͬ͘͟Γ೺Ѳ͍ͨ͠

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

Cloudflare Workers༻ͷAPIϥούʔ import { CreateChatCompletionRequest, CreateChatCompletionResponse } from "openai"; import { FetchClient } from "./abstractFetchClient"; export class OpenAI extends FetchClient { public constructor(apiKey: string) { super("https://api.openai.com/v1", apiKey) } public async createChatCompletion(body: CreateChatCompletionRequest): Promise { const result = await this._fetch(`${this.baseURL}/chat/completions`, { method: "POST", body: JSON.stringify(body) }) return result } }

Slide 9

Slide 9 text

Cloudflare KVͰཁ໿݁ՌΛอଘ if (!feed.id || !feed.title || !feed.description) return const itemId = feed.id const storeItem = await this.KV.get(itemId) const date = new Date(feed.title); const time = date.getTime() if (isNaN(time)) return if (storeItem) { const expireTargetDate = new Date() // ൒೥ΑΓલͳΒফ͢ if (calcMonthDiff(date, expireTargetDate) > -6) { return } // ExpireσʔλΛ࡟আ͢Δʢ͔̍Β൒೥͙Β͍ʁʣ await this.KV.delete(itemId) return } // Summarize text by openai API const summary = await this.summarizer.generateSummary(feed.description) // Save item to the KV await this.KV.put(itemId, summary || "No summary data.")

Slide 10

Slide 10 text

Discord WebhookͰ௨஌ await fetch(this.DISCORD_WEBHOOK_URL, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ content: [ `**${feed.title}ͷAPIΞοϓσʔτ৘ใ by ChatGPT**`, summary, feed.link ].filter(Boolean) .join('\n') }) })

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

ײ૝ • HTMLλά͸࢒͓ͯ͘͠ํ͕Αͦ͞͏ • APIύϥϝλ΍αϯϓϧίʔυ͸຋༁ͯ͠΄͘͠ͳ͍ • λά͕͋Δ͜ͱͰɺղऍ͕มΘΔ͔͸ཁݕূ

Slide 13

Slide 13 text

ײ૝ - 2 • ʮॻ͍ͯͳ͍͜ͱʯΛͲ͜·Ͱڐ༰͢Δ͔ • ࡌͬͯΔ͜ͱΛ೔ຊޠʹ͢Δ͚ͩͳΒ຋༁APIͰΑ͍ • ʮ࢖͍ॴʯ΍ʮϝϦοτʯͳͲʹߜΕΔͱGood

Slide 14

Slide 14 text

Next Step • ϓϩϯϓτͷௐ੔ʢϋϧγωʔγϣϯରࡦʣ • ؾʹͳΔSaaSͷChangelog΋ᷰΘͤͯΈΔ • GPT-4Ͱಈ͔ͯ͠ΈΔ • ࣾ಺ͰσϞɾσΟεΧογϣϯ