2.1.0 • Published 2 years ago

opex-ai v2.1.0

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

opex-ai

generateText

Example

const { generateText } = require("opex-ai")
await generateText(`Рассказ на тему: Мои летние каникулы. на 4000 символов, 9 класс
`)
//или await generateText("Жил был Великий Белый Гриб") :)

Usage

await generateText(text)

text

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

summarize

Usage

await summarize(text, num_beams,  num_return_sequences, length_penalty,genstrategy,no_repeat_ngram_size) 

text

  • оригинальный текст для переписывания

num_beams

  • default: 8
  • границы 1-40+
  • количество источников генерации текста

num_return_sequences

  • кол-во примеров, из которых выбирается лучший вариант.
  • default: 7
  • границы: 1 - 50
  • чем болше тем лучше качество
  • при большом количестве может долго обрабатывать или выдать ошибку

no_repeat_ngram_size

  • все ngrams такого размера могут встречаться только один раз.
  • default: 5;

length_penalty

  • параметр генерации текста length_penalty — экспоненциальный штраф к длине.
  • default: 2.0;

genstrategy

  • параметр переключения между стратегиями генерации (0 — для beam search, 1 — для sampling).
  • default: 0; top_k — параметр top_k текста для генерации. Дефолтное значение 30; top_p — параметр top_p текста для генерации. Дефолтное значение 0.95.

rewrite

Usage

await rewrite (text, temperature, top_k,  top_p, repetition_penalty, num_return_sequences, range_mode)

text

  • оригинальный текст для переписывания

temperature

  • default: 1
  • границы: 0.1 - 1.9
  • параметр температуры текста для генерации.
  • Температура текста - его актуальность(~качество).
  • Чем она выше, тем ближе текст к идеальному прототипу
  • Чем меньше коэффициент тем ближе к оригиналу

top_k

  • default: 50
  • границы: 1 - 300
  • Коэффициент показывает насколько тема близка или аналогична теме запроса. Уникальность текста.

top_p

  • default: 0.7
  • границы: 0.1 - 150
  • параметр отвечает за то сколько процентов оригинала содержится в статье
  • чем меньше, тем больше оригинального текста содержится в переписанном тексте

repetition_penalty

  • (штраф за повторные реплики.)
  • default: 0.1-1.99
  • определяет, сколько раз каждое выражение должно пройти проверку на соответствие по запросу

num_return_sequences

  • кол-во примеров, из которых выбирается лучший рерайт.
  • default: 5
  • границы: 1 - 40+
  • чем болше тем лучше качество
  • при большом количестве может долго обрабатывать или выдать ошибку

range_mode

  • выбор режима ранжирования кандидатов ("bertscore"/"classifier").
  • default: сразу оба

chat

Подключение

- SQLite3

const SQLite3 = require('better-sqlite3');
var db = new SQLite3("./db.sqlite")

const { SQLite3Chat } = require('opex-ai')
const ai = new SQLite3Chat(db,"ОрехБот"/*?bot_name*/); 

- MySQL

const MySQL = require('mysql-database');
const database = new MySQL()
const db = await database.connect({
    host:     "localhost",
    user:     "root",
    password: "passwrd",
    database: "db"
})

db.on('connected',(connection) => {
		log('Database Connected');
	})
  
const { MySQLChat } = require('opex-ai')
const ai = new MySQLChat(db,"ОрехБот"/*?bot_name*/);

Functions

await ai.sendMessage(msg,?id))
//отправляет сообщение боту, и возвращает ответ

await ai.getAllMessages(?id)
//возвращает массив сообщений указанного чата

await ai.deleteData(?id)
// Удаляет все сообщения по указанному айди ( если указать "all" в поле id, то удалятся все сообщения из всех чатов)
 
//Если вы используете только один чат, можно не указывать айди, по умолчанию будет использоваться 123456

Можно вручную указать массив сообщений

const { chat } = require("opex-ai")
history = [
  "привет",
  "привет, как дела?",
  "хорошо, а у тебя как?"
]
await chat(history,?bot_name="Орех")
const { chat } = require("opex-ai")
await chat(["Привет, как дела?"],"Ева")

history

  • история сообщений в виде массива
  • контекст, чтобы бот мог отвечать, по смыслу учитывая прошлые сообщения

bot_name

  • можно указать имя бота

Developers