[База знаний Unity + Wenxin] Используйте Baidu Intelligent Cloud для создания частной базы знаний, интеграции API базы знаний и создания двумерной сестры искусственного интеллекта с базой знаний.

1.Краткое описание

        Недавно я узнал от официальной технической поддержки Baidu Smart Cloud, что платформа больших моделей Baidu Qianfan в настоящее время предоставляет функцию онлайн-базы знаний, с помощью которой можно загружать в Интернет ваши собственные частные документы базы знаний и настраивать модель Wenxin Yiyan в качестве механизма генерации текста, создавать Ваша собственная база знаний. Раньше я использовал структуру langchain для создания собственной базы знаний и развертывал ее локально. Теперь, с помощью платформы создания базы знаний, предоставляемой Baidu Smart Cloud, я могу легко создать свое собственное частное приложение базы знаний. Кроме того, это Приложение базы знаний также предоставляет возможности вызова API, которые можно легко интегрировать в наши собственные приложения, что очень приятно. Итак, в этой статье я кратко расскажу вам, как создать собственное приложение базы знаний на интеллектуальной облачной платформе Baidu и использовать сервисы API для интеграции функции базы знаний в мой проект двумерной женщины с искусственным интеллектом.

2. Загрузите базу знаний

        ​ ​ ​ Сначала нам нужно войти на официальный сайт Baidu Smart Cloud, и каждый должен подготовить свои собственные учетные записи. Официальный сайт Baidu Smart Cloud выглядит следующим образом:

https://cloud.baidu.com/icon-default.png?t=N7T8https://cloud.baidu.com/

        После входа в интеллектуальную облачную платформу Baidu мы находим [Продукты->Суперфабрика больших моделей Qianfan->Приложение вопросов и ответов RAG] в меню официального веб-сайта и нажимаем, чтобы войти в представление приложения базы знаний.

        В интерфейсе управления приложения базы знаний Baidu Intelligent Cloud вы можете выбрать базу знаний и просмотреть ее представление.

        Нажмите, чтобы создать коллекцию базы знаний, чтобы перейти к представлению загрузки базы знаний.

        Здесь форматы документов, которые может поддерживать база знаний Baidu Smart Cloud, включают word, txt и pdf. Нам нужно только загрузить наши собственные документы знаний, и система автоматически обработает содержимое документа, разрежет содержимое документа и извлечет содержимое документ Содержание знаний. После успешной загрузки мы можем просмотреть результаты нарезки загруженного документа и извлеченные фрагменты знаний.

        Одна и та же коллекция базы знаний может загружать содержимое нескольких документов.После завершения загрузки мы создадим нашу собственную эксклюзивную коллекцию базы знаний.Последующее создание приложений базы знаний требует использования соответствующих коллекций базы знаний.Далее давайте посмотрим, как создать приложение базы знаний.

3. Создайте приложение базы знаний.

        После создания коллекции базы знаний мы можем создать собственное приложение базы знаний. Нажмите «Мои приложения» и нажмите «Создать новое приложение», чтобы начать создание собственного приложения базы знаний.

        Baidu Intelligent Cloud официально предоставляет три готовых шаблона приложений, включая базовое приложение генерации, приложение вопросов и ответов RAG и приложение человеческого диалога. Последние два шаблона являются диалоговыми шаблонами. Нам необходимо создать диалоговые приложения базы знаний, такие как приложения для роботов обслуживания клиентов с искусственным интеллектом. , вам нужно использовать последние два шаблона.

        После выбора шаблона создайте приложение, и интерфейс перейдет в представление создания приложения базы знаний.

        В интерфейсе создания приложения базы знаний мы можем выбрать и указать коллекцию базы знаний, соответствующую частной базе знаний, а также выбрать приложение большой языковой модели в соответствии с нашими собственными потребностями. Здесь мы также можем выбрать бесплатную пробную услугу, предоставляемую официальным лицом.Официальный поставщик предоставляет 200 бесплатных вызовов Wenxin Big Model 4.0 на выбор каждому. Если мы выберем платный сервис больших моделей, нам сначала нужно создать приложение для больших моделей на платформе больших моделей Qianfan. Вы можете обратиться к моей предыдущей статье для этой операции.

        После завершения настройки мы можем протестировать созданный сервис большой модели в правой части интерфейса, чтобы проверить эффект приложения базы знаний. Если тест окажется верным, нажмите «Опубликовать», чтобы опубликовать приложение базы знаний.

        В интерфейсе публикации приложения предусмотрены две доступные формы:

        ①Мы можем получить доступ к приложению базы знаний через браузер, скопировав служебный адрес приложения базы знаний;

        ②Доступ к приложениям базы знаний можно получить через вызовы API.

        Это может быть основано на ваших реальных потребностях.

4. Реализация кода приложения базы знаний вызовов API.

        В этом разделе основное внимание будет уделено тому, как получить доступ к встроенному приложению базы знаний через вызовы API. На странице выпуска приложения вы можете найти запись документа с инструкциями по вызову API. Прежде чем реализовывать код вызова API, мы сначала читаем документацию по API.

        Процесс вызова API очень прост. Во-первых, нам нужно создать КЛЮЧ API при выпуске приложения. После получения ключа API мы можем использовать запрос POST для доступа к нему в соответствии со спецификацией интерфейса вызова API. Ниже приводится описание интерфейса, связанного с API:

       4.1 Создать ключ API

        Чтобы создать ключ API, вам нужно всего лишь нажать «Создать ключ API» в интерфейсе публикации приложения, чтобы получить ключ. Сохраняйте информацию о ключе API правильно.

        ​ ​ 4.2 Описание API-интерфейса

        Метод вызова API, согласно описанию документа интерфейса, мы можем понять:

        Адрес и метод запроса API:

        Адрес запроса:https://console.bce.baidu.com/api/ai_apaas/v1/instance/integrated
        Метод запроса:POST

        Параметры заголовка

параметр ценить иллюстрировать
Тип содержимого приложение/json -
X-авторизация Носитель {ключ API} Поле аутентификации, ключ API должен быть заполнен между фигурными скобками.

        Параметры тела

Примечание. Для описания конкретного содержимого запроса необходима структура в формате JSON.

параметр Требуется ли это? тип Дополнительный диапазон значений описывать
запрос да нить - Запрос пользователя
режим_ответа да нить потоковая передача/блокировка Режим ответа поддерживает следующие два типа:
1. потоковая передача: потоковая передача ответа с использованием протокола SSE
2. блокировка: блокировка ответа
идентификатор_разговора нет uuid - Идентификатор диалога, действителен только для диалоговых приложений. В диалоговых приложениях:
1. Пусто: указывает, что таблица создает новый сеанс
2. Непусто: указывает, что диалог продолжается в соответствующем сеансе, и служба поддерживается внутри компании. История разговоров

        Инструкции по реагированию

параметр Требуется ли это? тип описывать
код да интервал код ошибки. Не-0 является ошибкой. См. описание кода ошибки.
сообщение да нить Сообщение об ошибке
результат нет объект Возврат результатов
+ ответ да нить Результаты ответа приложения
+ идентификатор разговора нет uuid Идентификатор разговора, действителен только для диалоговых приложений. Если в запросе разговора нет идентификатора разговора, он будет сгенерирован автоматически.

        код ошибки

код ошибки сообщение об ошибке описывать
400 Инвалидрекуестаргументеррор Ошибка параметра запроса
401 Разрешение DeniedError Ошибка разрешения
404 NotFoundResource Невозможно найти аккаунты, приложения, модели, шаблоны и т.д.
500 Внутренняя ошибка сервера Внутренняя ошибка сервера
1001 Лимит квоты превышен Превышен лимит звонков, а бесплатная квота недостаточна.
1004 LLMStreamingResponseError Ошибка службы модели
1005 Ошибка шаблона значения Ошибка проверки параметров шаблона
1006 КвотаЛимитистек Бесплатная квота истекла
1007 QianfanServiceError Доступ к сервису Qianfan недоступен.
1008 Цяньфанпермиссионденидеррор Не удалось получить доступ к службе Qianfan, обычно из-за ошибки разрешения.

4.3 Кодовая реализация вызова интерфейса API

        ​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​Код буду реализовывать на Unity. Основной код как следует:

   #region Params
    [Header("填写百度助手的apikey")]
    [SerializeField] private string m_ApiKey = string.Empty;

    private string m_ConversationID= string.Empty;//对话id

    #endregion

    #region Method

    private void Awake()
    {
        url = "https://console.bce.baidu.com/api/ai_apaas/v1/instance/integrated";
    }

    /// <summary>
    /// 发送消息
    /// </summary>
    /// <returns></returns>
    public void PostMsg(string _msg, Action<string> _callback)
    {
        base.PostMsg(_msg, _callback);
    }


    /// <summary>
    /// 发送数据
    /// </summary> 
    /// <param name="_postWord"></param>
    /// <param name="_callback"></param>
    /// <returns></returns>
    public IEnumerator Request(string _postWord, System.Action<string> _callback)
    {
        stopwatch.Restart();
        string jsonPayload = JsonConvert.SerializeObject(new RequestData
        {
           query= _postWord,
           conversation_id=m_ConversationID
        });

        using (UnityWebRequest request = new UnityWebRequest(url, "POST"))
        {
            byte[] data = System.Text.Encoding.UTF8.GetBytes(jsonPayload);
            request.uploadHandler = (UploadHandler)new UploadHandlerRaw(data);
            request.downloadHandler = (DownloadHandler)new DownloadHandlerBuffer();

            request.SetRequestHeader("Content-Type", "application/json");
            request.SetRequestHeader("X-Authorization ", m_ApiKey);

            yield return request.SendWebRequest();

            if (request.responseCode == 200)
            {
                string _msg = request.downloadHandler.text;
                ResponseData response = JsonConvert.DeserializeObject<ResponseData>(_msg);

                if (response.code == 0)
                {
                    string _msgBack = response.result.answer;
                    m_ConversationID = response.result.conversation_id;

                    //添加记录
                    m_DataList.Add(new SendData("assistant", _msgBack));
                    //回调
                    _callback(_msgBack);
                }
                else
                {
                    OnLogError(response.code);
                }
            
            }

        }

        stopwatch.Stop();
        Debug.Log("文心一言AI助手耗时:" + stopwatch.Elapsed.TotalSeconds);
    }

    /// <summary>
    /// 打印错误信息
    /// </summary>
    /// <param name="code"></param>
    private void OnLogError(int code)
    {
        if (code == 400)
        {
            Debug.LogError("请求参数错误");
            return;
        }
        if (code == 401)
        {
            Debug.LogError("权限错误");
            return;
        }
        if (code == 404)
        {
            Debug.LogError("账户、应用、模型、模版等无法找到");
            return;
        }
        if (code == 500)
        {
            Debug.LogError("服务器内部错误");
            return;
        }
        if (code == 1001)
        {
            Debug.LogError("调用超限,免费额度不足");
            return;
        }
        if (code == 1004)
        {
            Debug.LogError("模型服务报错");
            return;
        }
        if (code == 1005)
        {
            Debug.LogError("模版参数校验错误");
            return;
        }
        if (code == 1006)
        {
            Debug.LogError("免费额度已过期");
            return;
        }
        if (code == 1007)
        {
            Debug.LogError("千帆服务无法访问");
            return;
        }
        if (code == 1008)
        {
            Debug.LogError("千帆服务访问失败,一般是权限错误");
            return;
        }
    }


    #endregion

    #region 数据定义

    [Serializable]
    private class RequestData
    {
        [SerializeField] public string query=string.Empty;//对话内容
        [SerializeField] public string response_mode= "blocking";//对话模式 1. streaming:流式响应,使用SSE协议  2. blocking:阻塞响应
        [SerializeField] public string conversation_id=string.Empty;//对话id,第一次对话后返回,用作聊天记录,服务端自行处理
    }

    [Serializable]
    private class ResponseData
    {
        [SerializeField] public int code;
        [SerializeField] public string message = string.Empty;
        [SerializeField] public ReData result = new ReData();

    }

    [Serializable]
    private class ReData
    {
        [SerializeField] public string answer = string.Empty;//回复
        [SerializeField] public string conversation_id = string.Empty;//对话id
    }

    #endregion

        Вызвав метод PostMsg, можно реализовать функцию отправки входной текстовой информации в API-интерфейс базы знаний и возврата информационного текста, на который ответил ИИ.

5. Конфигурация на стороне Unity

        Что касается модуля вызова API базы знаний Wenxin, я обновил его до своего проекта с открытым исходным кодом. В этом разделе будет представлен метод настройки на стороне Unity. Обратите внимание, что версия Unity должна быть 2020.3.44 и выше.

        На стороне Unity мы находим объект «База знаний Wenxin» под объектом LLM, заполняем КЛЮЧ API приложения базы знаний в объектном сценарии и настраиваем объект базы знаний Wenxin как модуль LLM ChatAgent для завершения конфигурация. Подробный процесс настройки смотрите в моем видео Bilibili.

6. Заключение

        В этой статье подробно описывается, как создать комбинацию базы знаний на интеллектуальной облачной платформе Baidu и создать собственное частное приложение базы знаний. В ней также реализован доступ к API для интеграции приложения базы знаний Baidu Wenxin в мини-коробку AI 2D. Сестринский проект. Благодаря этой интеграции приложений наша ИИ-леди получит базу знаний. Чтобы получить подробное видео с объяснением содержания этой статьи, заинтересованные друзья могут посмотреть мое видео Bilibili. Ниже представлен видеопортал:

[База знаний Unity + Wenxin] Используйте Baidu Intelligent Cloud для создания частной базы знаний, интеграции API базы знаний и создания двумерной сестры искусственного интеллекта с базой знаний.


Адрес портала проекта:

Проект AI двумерной жены с открытым исходным кодом (unity-AI-Chat-Toolkit):

Адрес Github: https://github.com/zhangliwei7758/unity-AI-Chat-Toolkit

Адрес Gitee: https://gitee.com/DammonSpace/unity-ai-chat-toolkit
 

рекомендация

отblog.csdn.net/sinat_28962939/article/details/134978346