- Регистрация
- 13 Июн 2022
- Сообщения
- 100
- Автор темы
- #1
В этом гайде я наглядно покажу, как использовать нейросети в своём коде.
>> Для начала работы нам требуется получить токен OpenAI.
1. Покупка в интернете.
2. Получение на официальном сайте.
2. Получение на официальном сайте.
1. Посмотреть гайд в интернете =)
1.Включить ВПН
2. Купить номер(желательно Индонезия) ( https://5sim.biz/ )
3. Зайти на сайт ( https://platform.openai.com/login?launch )
4. Пройти регистрацию и получить токен OpenAI в разделе "API Keys"
1.Включить ВПН
2. Купить номер(желательно Индонезия) ( https://5sim.biz/ )
3. Зайти на сайт ( https://platform.openai.com/login?launch )
4. Пройти регистрацию и получить токен OpenAI в разделе "API Keys"
>> После получения токена - скачивание библиотеки и выбор модели.
В Python существует библиотека для работы с OpenAI. Как не странно, называется она - OpenAI.
Для установки библиотеки , введём в консоль однострочный код. Обязательно скачиваем библиотеку версии 0.28!
pip install openai==0.28
Теперь определяемся с моделью для генерации. На выбор есть два GPT - Instruct и Chat.ADA: $0.0004 / 1K tokens
>> InstructGPT:
Рекомендуемая - Davinci.
ADA - самая быстрая модель и самая низкая стоимость. Дата обучения: Октябрь 2019 года
Babbage - Быстрое выполнение задач, дешевый. Дата обучения: Октябрь 2019 года
Curie - мощный и дешевле чем Davinci. Дата обучения: Октябрь 2019 года
Davinci - самая дорогая и самый мощная модель. Дата обучения: Июнь 2021 года
Цена за 1.000 токенов:
Babbage: $0.0005 / 1K tokens
Curie: $0.0020 / 1K tokens
Davinci: $0.0200 / 1K tokens
>> ChatGPT:
gpt-3.5-turbo - $0.002 / 1K tokens - Медленнее, чем InstructGPT. Очень хорошо анализирует текст и даёт плодотворный ответ.
>> Теперь перейдём к самому интересному - кодинг!
Почему важно определяться с моделью генерации до кодинга? - Ответ прост. При написании кода код будет напрямую зависеть от выбранной модели.
InstructGPT:
Python:
import openai
def send_openai(prompt):
response = openai.Completion.create( # Делаем запрос в InstructGPT
engine="text-davinci-003", # Наша выбранная модель
prompt=f"Q: {prompt}\nA:", # Делаем правильный запрос
temperature=0.5, # Используется для контроля случайности и креативности сгенерированного текста
max_tokens=419, # Максимальное количество токенов за один запрос.
top_p=1,
frequency_penalty=0, # Контролирует предпочтение модели использовать более распространенные слова или фразы.
presence_penalty=0 # Влияет на вероятность того, что модель повторит слова или фразы в своем ответе.
)
answer = response.choices[0].text.strip() # Получаем наши данные. strip() - убирает лишние пробелы
return answer
print(send_openai("Hello!")) # Пример вызова функции
ChatGPT:
Python:
import openai
def send_openai(prompt):
responce = openai.ChatCompletion.create( # Делаем запрос
model="gpt-3.5-turbo", # Модель ChatGPT-3
messages=[{"role": "user", "content": prompt}], # Запросы нужно делать именно передавая класс List.
temperature=0.5,
max_tokens=419,
top_p=1,
frequency_penalty=0,
presence_penalty=0,
)
answer = responce.choices[0].message.content.strip() # Получаем ответ
return answer
print(send_openai("hello")) # Пример вызова функции
>> В чём основное отличие InstructGPT и ChatGPT?
1. При запросе в InstructGPT вы передаёте только 1 сообщение с запросом. В ChatGPT - передаётся роль, а также сообщение. В ChatGPT можно передавать сразу несколько сообщений, для поддержания целого диалога.
2. ChatGPT можно настроить, передавая ему определенный текст при запросе.
3. ChatGPT даёт более плодотворный ответ, нежели InstructGPT. А также он намного дешевле.
>> Как создавать чат с ChatGPT?
1. Каждый запрос и ответ должны сохраняться в List. Пример:
Python:
prompts = []
def send_openai(prompts):
responce = openai.ChatCompletion.create( # Делаем запрос
model="gpt-3.5-turbo", # Модель ChatGPT-3
messages=prompts, # Запросы нужно делать именно передавая класс List.
temperature=0.5,
max_tokens=419,
top_p=1,
frequency_penalty=0,
presence_penalty=0,
)
answer = responce.choices[0].message.content.strip() # Получаем ответ
prompts.append({
"role": "system",
"content": answer
}) # В List prompts мы должны сохранять абсолютно все запросы и ответы
return answer
prompts.append({
"role": "user",
"content": "Hello!" # Вместо "Hello!" - своё текст
})
print(send_openai(prompts))
Пример массива prompts:
Python:# [{"role": "user", "content":"Hello"}, {"role": "system", "content":"Hello, User!"}]