Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@dialogai/dialog-class

Package Overview
Dependencies
Maintainers
0
Versions
101
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@dialogai/dialog-class

Отвечает за реализацию диалогового формата общения с пользователем.

  • 1.11.30
  • latest
  • npm
  • Socket score

Version published
Maintainers
0
Created
Source

Класс Dialog

Отвечает за реализацию диалогового формата общения с пользователем.

Особенность решения состоит в применении паттерна проектирования "Наблюдатель" (Observer). За диалогом наблюдают один или более "наблюдателей", и в зависимости от развития диалога дают LLM дополнительные инструкции либо выполняют другие действия. Например, при реализации иерархического мультиагентного решения используется "супервайзер", который также размещает своего наблюдателя, который, в свою очередь, может вообще прервать текущий диалог и переключиться на другие задачи.

Подключение

const {Dialog} = require("@dialogai/dialog-class");

Настройка

Пример настройки диалога для получения информации о профессиональном опыте и интересах пользователя:

const {
    DefineSkillEmphasisObserver,        // Дает дополнительные инструкции как расставить акценты в диалоге
    DiscussProfessionalIntentObserver,  // Проверяет, хочет ли пользователь продолжать диалог на профессиональную тему
    IsDialogFinishedObserver,           // Проверяет, что диалог завершен
    ProfessionalSkillObserver,          // Собирает и фиксирует все данные о профессиональном опыте пользователя
    SpeakIntentObserver,                // Проверяет, готов ли пользователь общаться
    TooManyQuestionsObserver            // Проверяет, не задает ли LLM более одного вопроса в ответе
} = require("@dialogai/dialog-observers");

/**
 * @param supervisor {DialogSupervisor}
 * @returns {Dialog}
 */
function buildDialog(supervisor) {
    let dialog = new Dialog({
        dialog_code: 'GUPD',
        start_system_msg: `
Ты должен узнать об интересах и опыте работы пользователя. Начни диалог первым. Задавай вопросы поэтапно, 
не более одного за один раз.
Сначала познакомься, пойми, ты общаешься с мужчиной или женщиной (но не спрашивай напрямую, 
просто определи это из ответов).
Общайся нейтрально, без особого восторга.
Давай оценки ответам не слишком часто, только если это уместно.
Нужно помочь ему рассказать о его интересах, которые есть сегодня, и которые были в прошлом.
Не углубляйся только в одну тему, постарайся переходить к следующей.
Избегай длинных рассуждений. Говорить должен пользователь, а не ты.
`,
        tool_name: 'discuss_skills_experience_and_hobbies',
        tool_description: `Используется когда нужно узнать опыт работы и интересы пользователя 
(по запросу пользователя или если это требуется в ходе диалога).`
    });
    if (supervisor) {
        dialog
            .reg_observer(supervisor.getObserver())
            .set_session_id(supervisor.thread_id)
            .get_tool_for(supervisor);
    }
    dialog
        .reg_observer(new IsDialogFinishedObserver())
        .reg_observer(new SpeakIntentObserver())
        .reg_observer(new TooManyQuestionsObserver())
        .reg_observer(new DefineSkillEmphasisObserver())
        .reg_observer(new ProfessionalSkillObserver())
        .reg_observer(new DiscussProfessionalIntentObserver());

    // С помощью данного поля акцентируются дополнительные стартовые инструкции
    dialog.additional_starting_instructions.push(Dialog.get_instruction("Узнай имя и возраст пользователя."));
    console.log('DIALOG :: ', dialog.toString());
    return dialog;
}

FAQs

Package last updated on 08 Dec 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc