Бұл мақалада біз DeepPavlov кітапханасы негізінде корпоративті AI чат-ботын құру процесін қарастырамыз және әрбір қадамды тереңірек түсіндіреміз.
Біз модельдерді баптаудан бастап корпоративтік жүйелермен интеграциялауға дейінгі барлық кезеңдерде код мысалдарын келтіріп, әрбір әрекетті толықтай сипаттаймыз.
1. Деректерді дайындау
Тиімді чат-бот құру үшін пайдаланушылардың нақты сұраныстарын өңдей алатын мәліметтерді дайындау қажет. Бұл деректер мәтін түрінде болуы мүмкін (мысалы, сұрақтар мен жауаптар немесе диалогтар), оларды модельдерді оқыту үшін пайдалануымызға болады.
FAQ (жиі қойылатын сұрақтар) үшін дайындалған деректер мысалы:
[
{"question": "Несие алу үшін өтінімді қалай беру керек?", "answer": "Несие алу үшін өтінімді біздің веб-сайт арқылы беруге болады."},
{"question": "Несиеге қанша ақша алуға болады?", "answer": "Сіз 10 000 бен 1 000 000 теңге аралығында несие ала аласыз."},
{"question": "Несие алу үшін қандай құжаттар қажет?", "answer": "Несие алу үшін жеке куәлік және табыс туралы анықтама қажет."}
]
Бұл деректер чат-ботқа сұрақтарға жауап беру үшін пайдаланылатын болады.
2. DeepPavlov орнату және модель таңдау
Енді біз чат-бот үшін қажетті модельді таңдап, оны DeepPavlov көмегімен баптаймыз. Осы мақалада біз BERT модельін қолданамыз, себебі ол сұрақтарға жауап беруге өте жақсы келеді.
Сұрақтарға жауап беру үшін алдын ала үйретілген BERT моделін орнату және пайдалану
Кітапхананы және тәуелділіктерді орнату:
Алдымен DeepPavlov кітапханасын орнату керек:
pip install deeppavlov
Код мысалы:
from deeppavlov import build_model, configs
# Алдын ала үйретілген BERT моделін жүктеу
model = build_model(configs.squad.squad_bert, download=True)
# Сұрақтың мысалы
question = "Несиеге қанша ақша алуға болады?"
# Жауапты алу
answer = model([question])
print(answer)
Түсіндірме:
-
Біз BERT моделін жүктеп, оны сұрақтар мен жауаптар (SQuAD) тапсырмасы бойынша алдын ала үйретілген күйде қолданамыз. Бұл модель мәтіннің контекстіне сүйене отырып, сұрақтарға жауап беруге мүмкіндік береді.
-
Модель сұрақты қабылдайды және оған сәйкес жауапты ұсынады.
Нәтиже:
['Сіз 10 000 бен 1 000 000 теңге аралығында несие ала аласыз.']
Бұл код бізге нақты сұрақ бойынша жауап алуға мүмкіндік береді, оны алдын ала үйретілген модельдің контекстінде өңдейді.
3. Модельді өз деректерімізде оқыту (Fine-tuning)
Модельді өзіңізге қажетті әрі нақты ету үшін оны өз деректеріңізде қайта оқытуды қарастырайық. Бұл үшін FAQ деректерін пайдаланып, моделімізді арнайы мақсаттарға бейімдейміз.
Оқытуға арналған конфигурацияны дайындау:
Модельді өз деректеріңізде оқыту үшін JSON форматындағы конфигурация файлын жасау қажет. Бұл файл модельдің параметрлерін, оқыту деректерін және басқа да маңызды ақпаратты сипаттайды.
Конфигурация файлының мысалы:
{
"dataset_reader": {
"name": "reader",
"data_path": "path_to_faq_data.json",
"split": "train",
"test_size": 0.1
},
"dataset_iterator": {
"name": "iterator",
"batch_size": 16
},
"model": {
"name": "bert",
"pretrained": "bert-base-uncased",
"hidden_size": 768
},
"trainer": {
"epochs": 3,
"batch_size": 16,
"learning_rate": 1e-5
}
}
Түсіндірме:
-
Бұл конфигурация файлы деректерді оқу және модельді баптау үшін параметрлерді көрсетеді. Мұнда
data_path
сұрақтар мен жауаптар бар деректер файлының жолын көрсетеді. -
BERT моделі алдын ала үйретілген болып табылады және оның параметрлері (
hidden_size
және т.б.) конфигурацияға енгізілген.
Модельді оқыту:
Енді конфигурация дайын болған соң, модельді өз деректерімізде оқытуға болады.
from deeppavlov import train_model
from deeppavlov.core.commands.train import read_json
# Оқыту конфигурациясын оқу
config = read_json('path_to_config.json')
# Модельді оқыту
train_model(config)
Бұл код конфигурация файлын оқиды және модельді сіздің деректеріңізде оқытады.
4. Корпоративтік жүйелермен интеграция (мысалы, CRM)
Енді оқытылған модельді корпоративтік жүйелермен, мысалы, CRM (Клиенттермен қатынас басқару жүйесі) интеграциялайық. Мақсат — чат-ботқа корпоративтік деректерге негізделген ақпараттарды алу мүмкіндігін беру.
CRM жүйесімен интеграциялау мысалы:
CRM жүйесінде тұтынушының тапсырыс жағдайын сұрау үшін API қолдануға болады.
CRM жүйесінен тапсырыс күйін алу үшін код мысалы:
import requests
def get_order_status(order_id):
# CRM API URL
url = f"https://crm.example.com/api/orders/{order_id}"
# GET сұранысын жіберу
response = requests.get(url)
# Сұраныс сәтті болғанын тексеру
if response.status_code == 200:
order_data = response.json() # JSON деректерін ажырату
return order_data['status'] # Тапсырыс күйін қайтару
else:
return "Тапсырыс күйін алу мүмкін болмады."
# Пайдаланушы сұрауы
order_id = "12345"
status = get_order_status(order_id)
print(f"Тапсырыс күйі {order_id}: {status}")
Түсіндірме:
-
Бұл код CRM жүйесімен интеграция жасайды және тапсырыстың күйін алады.
-
GET сұранысы арқылы CRM API-іне қосылып, тапсырыс туралы ақпарат алады.
Нәтиже:
Тапсырыс күйі 12345: Жеткізу процесінде
Бұл код бізге корпоративтік жүйелермен өзара әрекеттесуді жеңілдетіп, чат-ботқа нақты уақыттағы ақпараттарды ұсынуға мүмкіндік береді.
5. Модельді тестілеу және жетілдіру
Чат-бот дайын болғаннан кейін, оны тестілеу маңызды. Бұл тестілеу барысында дұрыс жауап бермейтін сұрауларды анықтап, модельді жетілдіру қажет.
Жаңа сұрақтарға жауап алу үшін тестілеу мысалы:
from deeppavlov import build_model, configs
# Модельді жүктеу
model = build_model(configs.squad.squad_bert, download=True)
# Жаңа сұрақтың мысалы
new_query = "Менің тапсырысымның күйін қалай білуге болады?"
# Жауапты алу
new_answer = model([new_query])
print(new_answer)
Нәтиже:
['Сіздің тапсырысыңыздың күйін тапсырыс нөмірін ұсыну арқылы білуге болады.']
Егер модель кейбір сұрақтарға дұрыс жауап бермесе, онда оны қайта оқыту қажет болады. Бұл үшін жаңа деректерді қосып, модельді қайта оқыту арқылы дәлдікті арттыруға болады.
Қорытынды
Бұл мақалада біз DeepPavlov негізінде корпоративті AI чат-ботын құру процесін қарастырдық, оның ішінде модельді баптау, оқыту, корпоративтік жүйелермен интеграция және тестілеу кезеңдерін егжей-тегжейлі түсіндірдік. Мұндай чат-боттар клиенттермен өзара әрекеттесуді жақсартып, компанияның тиімділігін арттыруға көмектеседі.