使用Ruby+Net HTTP方法 架構OpenAI message API串接

Andy Kuan's Blog
3 min readAug 18, 2024

--

近年來,OpenAI 的 API 掀起了一股 AI 應用開發的熱潮。身為 Ruby 開發者,我們可以善用 Ruby 強大的網路請求能力和豐富的生態系,輕鬆地將 OpenAI 的 API 整合到我們的應用程式中。

在這篇文章中,我們將深入探討:

  • 為什麼選擇 Ruby 和 OpenAI API: 剖析兩者的優勢與結合點。
  • HTTP Services 的角色: 解釋 HTTP Services 如何作為橋樑,連接 Ruby 應用程式與 OpenAI API。
  • 實作範例: 提供一個簡單易懂的 Ruby 程式碼範例,演示如何使用 HTTP Services 發送請求並處理回應。
  • 進階應用: 探索更多可能的應用場景,例如打造聊天機器人、文本生成工具等。

透過這篇文章,你將學會如何:

  • 快速上手 OpenAI API: 掌握 API 的基本概念和使用方法。
  • 利用 Ruby 建構 AI 應用: 將 AI 功能無縫整合到你的 Ruby 應用程式中。
  • 探索更多可能性: 開啟 AI 開發的大門,創造出更多創新的應用。

讓我們一起來揭開 Ruby 和 OpenAI API 的神秘面紗吧!

以下是Ruby管理OpenAI的services的應用:


class OpenAiService

def initialize
@api_key = "your of api-key?"
@model = "gpt-4o or gpt-4-mini"
@temperature = "0.7"

#自定義設計
@system_message = ""
@history_message = ""
end

def push_message(text)
_push_message(text)
end

private

def _push_message(message)
uri = URI.parse('https://api.openai.com/v1/chat/completions')
request = Net::HTTP::Post.new(uri)
request.content_type = 'application/json'
request['Authorization'] = "Bearer #{@api_key}"

messages = [
{ role: 'user', content: 'hello' }
]

body = {
model: @model,
messages: messages,
temperature: @temperature.to_f,
}

request.body = body.to_json

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end

r = response.body
response_hash = JSON.parse(r)
message_content = response_hash["choices"][0]["message"]["content"]

#這裏拿到response可以自己定義其他變數或取得的參數設計
r = {
gpt_message: message_content
}
end

end

--

--

Andy Kuan's Blog
Andy Kuan's Blog

Written by Andy Kuan's Blog

我是一個不斷喜歡學習科技的軟體工程師.

No responses yet