Для интеграции ChatGPT в приложение Rails вам потребуются следующие шаги:
-
Получите API-ключ GPT, откройте сайт https://openai.com/ и зарегистрируйте аккаунт, елкгда будут инструкции по получению ключа.
-
Добавьте библиотеку 'httparty' в файл Gemfile вашего приложения и запустите
bundle install
- Создайте класс в папке 'lib' вашего приложения для обращения к сервису GPT:
class GPT
include HTTParty
base_uri 'https://api.openai.com/v1'
headers 'Content-Type' => 'application/json',
'Authorization' => "Bearer #{ENV['OPENAI_GPT_API_KEY']}"
def ask(question, model='text-davinci-002', max_tokens=100)
response = self.class.post('/engines/'+ model + '/completions',
body: JSON.dump({ prompt: question,
temperature: 0.5,
max_tokens: max_tokens
})
)
return response['choices'][0]['text']
end
end
- Добавьте переменную окружения OPENAI_GPT_API_KEY в файл '.env' вашего приложения:
OPENAI_GPT_API_KEY=<ваш_ключ_GPT>
- В вашем контроллере добавьте действие, которое будет обращаться к классу GPT и возвращать ответ на заданный вопрос:
class QuestionsController < ApplicationController
def chat
@question = params[:question]
@answer = GPT.new.ask(@question)
end
end
- Создайте представление для отображения ответа в чате:
<h2>GPT response:</h2>
<%= @answer %></p>
- Настройте маршруты в вашем файле 'config/routes.rb':
Rails.application.routes.draw do
get '/chat', to: 'questions#chat'
end
- В вашем файле 'app/views' добавьте форму для отправки вопроса:
<h2>Ask a question:</h2>
action="/chat" method="get">
<input type="text" name="question">
<input type="submit" value="Ask">
</form>