AI21 — израильский стартап, создавший модели искусственного интеллекта, доступные через API. Я использовал их на хакатоне по искусственному интеллекту несколько месяцев назад, и они довольно хороши.

Самое приятное то, что любой, даже не имеющий каких-либо знаний в программировании искусственного интеллекта, может использовать пользовательский интерфейс своей веб-страницы для загрузки набора данных предопределенного формата и дальнейшего обучения предоставленных ими моделей для наших сценариев использования.

Основные модели, которые они предлагают:

Jurrasic 2 — ультра (самый большой и мощный из них)

Jurrasic 2 — средний (меньше, экономичнее)

Jurrasic 2 — легкий (быстрый и самый экономичный)

Они также предоставляют множество API-интерфейсов для конкретных задач, например:

коррекция грамматики, улучшение текста, перефразирование, обобщение, сегментация текста и т. д.

Сейчас мое внимание привлекает API исправления грамматики, давайте попробуем его использовать.

сначала войдите на AI21.com и получите ключ API из значка профиля в левом верхнем углу:

Затем давайте создадим файл Python, чтобы опробовать его, пусть имя файла будет main.py.

и не забудьте pip install AI21

вы можете использовать для этой цели виртуальную среду, если вы создаете большой проект и не хотите конфликтов зависимостей с другими приложениями или системой.

Если вы хотите знать, как создавать и использовать виртуальную среду в Python, прочтите другой мой пост об акциях, показывающих использование Python —



После установки зависимости AI21 приступим к написанию кода в файле main.py.

Код:

import ai21 ai21.api_key = 'YOUR_API_KEY'
#example text to test
 text = "jazzz is a great stile of music" 
#sending api request with the example text
response = ai21.GEC.execute(text=text) 
# Getting the text corrections list using the 'corrections' key from the response dict
corrected_text = text corrections = response["corrections"] 
#now lets iterate through the corrections list and replace the mistakes with #the corrections at the correct places in the sentences.
#don't forget to apply the tab for the for loop bock
for curr_correction in reversed(corrections): 
corrected_text = corrected_text[:curr_correction["startIndex"]] + curr_correction['suggestion'] + corrected_text[curr_correction["endIndex"]:]

Позвольте мне объяснить блок цикла for: здесь он перебирает список исправлений в обратном порядке, используя обратный(исправления), а затем внутри цикла новый исправленный текст создается как сумма

исходный текст до начального индекса корректирующего слова + корректирующее слово + исходный текст после конечного индекса корректирующего слова

начальный индекс и конечный индекс предоставляются в каждом элементе списка исправлений вместе с исправлением.

Таким образом, переменная исправленного текста сохраняет обновленный текст, замененный исправлением, для каждого исправления и, таким образом, обновляет весь исходный текст исправлениями к концу итераций.

Опять же, как я уже говорил, вы можете использовать виртуальную среду для реального проекта, вы также можете использовать файл .env для хранения ключа API и игнорировать его в git push to удаленный репозиторий (онлайн-репозиторий, который другие могут увидеть, если общественность)

это позволяет избежать проблем с безопасностью, когда кто-то может найти ключ и израсходовать ваши кредиты.

вы можете добавить имя файла .env в файл gitignore

При добавлении ключа apikey в файл .env избегайте пробелов между ними.

нравиться:

AI21_KEY=‹ваш ключ><

и чтобы получить доступ к ключу в main.py, установите dotenv, используя

pip install python-dotenv

и использовать

import dotenv 
dotenv.load_dotenv()

также

import os

тогда вы можете получить сохраненный ключ как

ai21.api_key = os.environ.get("AI21_KEY")
where AI21_KEY is the keyname stored in .env
then in the main.py the code looks like this:
from http.client import responses
import ai21
import dotenv
import os
dotenv.load_dotenv()
ai21.api_key = os.environ.get("AI21_KEY")
text = "jazzz is a great stile of music"
response = ai21.GEC.execute(text=text)
#Use the corrections to fix the sentence
corrected_text = text
corrections = response["corrections"]
for curr_correction in reversed(corrections):
corrected_text = corrected_text[:curr_correction["startIndex"]] + curr_correction['suggestion'] + corrected_text[curr_correction["endIndex"]:]
print("corrected text",corrected_text )
print("corrections list:", corrections)
print("response: ", response)

Исправленный текст выглядит так:

исправленный текст Джаз – великолепный стиль музыки

Список исправлений из ответа dict выглядит так:

Список исправлений: [{'suggestion': 'Jazz', 'startIndex': 0, 'endIndex': 5, 'originalText': 'jazz', 'correctionType': 'Orfession'}, {'suggestion': 'style', 'startIndex': 17, 'endIndex': 22, 'originalText': 'stile', 'correctionType': 'Правописание'}]

Ответный запрос выглядит так:

ответ: {'id': '17c512de-c16a-57b2–8936–7edc7eb43026', 'исправления': [{'suggestion': 'Jazz', 'startIndex': 0, 'endIndex': 5, 'originalText ': 'джазз', 'correctionType': 'Правописание'}, {'suggestion': 'style', 'startIndex': 17, 'endIndex': 22, 'originalText': 'stile', 'correctionType': 'Правописание '}]

вы можете, в свою очередь, заменить

text = "jazzz is a great stile of music"

с

text = input("please enter the text")

для предоставления динамических входных данных и получения исправленного текста на выходе.

Так!

И на этом я дал вам скрипт Python для исправления грамматики с использованием ИИ, да, спасибо! хаха

Спасибо, что дочитали до конца, я Сангит Джозеф, полнофункциональный веб-разработчик-фрилансер на upwork. Подпишитесь на меня, чтобы узнать больше, потому что я намерен публиковать сообщения почти каждый день ;)