Реалізація системи автодоповнення тексту (Text Completion)

Проектуємо та впроваджуємо системи штучного інтелекту: від прототипу до production-ready рішення. Наша команда поєднує експертизу в машинному навчанні, дата-інжинірингу та MLOps, щоб AI працював не в лабораторії, а в реальному бізнесі.
Показано 1 з 1Усі 1566 послуг
Реалізація системи автодоповнення тексту (Text Completion)
Середній
~3-5 днів
Часті запитання

Напрямки AI-розробки

Етапи розробки AI-рішення

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1284
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1196
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    901
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1119
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    586
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    853

Реалізація системи автодоповнення тексту

Автодоповнення тексту пропонує користувачу наступні слова або фрази під час вводу. Застосування варіюються від пошукових підказок до повного AI-помічника в текстовому редакторі.

Типи автодоповнення

Наступне слово/токен (predictive typing): передбачення одного-двох наступних слів. Використовується в мобільних клавіатурах та пошуку. Моделі: невеликі n-gram або RNN, latency < 20ms критична.

Завершення фрази: на основі початку речення запропонувати кілька варіантів завершення. Приклад: пошукові підказки Google.

Paragraph completion (повний AI-асистент): GitHub Copilot-style — завершення абзацу або блоку тексту. Потребує більш потужної моделі.

Реалізація з LLM

from openai import OpenAI

client = OpenAI()

def autocomplete(text_prefix: str, context: str = "") -> list[str]:
    response = client.chat.completions.create(
        model="gpt-4o-mini",
        messages=[
            {"role": "system", "content": f"Ти допомагаєш писати тексти. Контекст: {context}"},
            {"role": "user", "content": f"Продовжи текст трьома різними варіантами:\n{text_prefix}"}
        ],
        max_tokens=50,
        n=3,  # кілька варіантів
        temperature=0.7,
    )
    return [choice.message.content for choice in response.choices]

Оптимізація latency для real-time

Для живого введення latency повинна бути < 200ms. Стратегії:

Streaming: повертати токени по мірі генерації через SSE (Server-Sent Events). Перший токен з'являється через 100–200ms, відчуття швидкої відповіді.

Speculative decoding: невелика модель генерує чорновик, велика перевіряє — у 2–3x швидше при тій же якості.

Кешування: якщо користувач не змінив останні N символів — повернути кешовану пропозицію.

Debouncing: запускати completion лише після 300–500ms паузи введення.

Контекстна адаптація

Якість автодоповнення різко покращується з контекстом документа. Передавайте в промпт: тему документа, стиль (технічний/діловий/розмовний), попередні абзаци. Для спеціалізованих редакторів (юридичних, медичних): системний промпт із доменним словником.