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. Подпишитесь на меня, чтобы узнать больше, потому что я намерен публиковать сообщения почти каждый день ;)