[Base de conhecimento Unity + Wenxin] Use o Baidu Intelligent Cloud para construir uma base de conhecimento privada, integrar a API da base de conhecimento e criar uma irmã bidimensional de IA com uma base de conhecimento

1.Breve descrição

        Recentemente, aprendi com o suporte técnico oficial do Baidu Smart Cloud que a Baidu Qianfan Large Model Platform fornece atualmente uma função de base de conhecimento on-line, que pode carregar seus próprios documentos de base de conhecimento privada on-line e configurar o modelo Wenxin Yiyan como mecanismo de geração de texto, construir sua própria base de conhecimento privada. No passado, usei a estrutura langchain para construir minha própria base de conhecimento e implantá-la localmente. Agora, por meio da plataforma de construção de base de conhecimento fornecida pelo Baidu Smart Cloud, posso construir facilmente meu próprio aplicativo de base de conhecimento privado. Além disso, este O O aplicativo de base de conhecimento também fornece recursos de chamada de API, que podem ser facilmente integrados em nossos próprios aplicativos, o que é muito bom. Portanto, neste artigo, apresentarei brevemente como construir seu próprio aplicativo de base de conhecimento no Baidu Intelligent Cloud Platform e usar serviços de API para integrar a função de base de conhecimento em meu projeto feminino bidimensional de IA.

2. Carregar base de conhecimento

        ​ ​ ​ Primeiro, precisamos fazer login no site oficial do Baidu Smart Cloud e cada um deve preparar suas próprias contas. O site oficial do Baidu Smart Cloud é o seguinte:

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

        Depois de fazer login na Baidu Intelligent Cloud Platform, encontramos [Produtos-> Qianfan Large Model Super Factory-> RAG Q&A Application] no menu do site oficial e clicamos para entrar na visualização do aplicativo da base de conhecimento.

        Na interface de controle do aplicativo Baidu Intelligent Cloud Knowledge Base, você pode selecionar a base de conhecimento e visualizar a visualização da base de conhecimento

        ​Clique para criar uma coleção de base de conhecimento para entrar na visualização de upload da base de conhecimento

        Aqui, os formatos de documento que a base de conhecimento do Baidu Smart Cloud pode suportar incluem Word, TXT e PDF, só precisamos fazer upload de nossos próprios documentos de conhecimento e o sistema processará automaticamente o conteúdo do documento, fatiará o conteúdo do documento e extrairá o conteúdo de o documento.conteúdo de conhecimento. Após o upload ser bem-sucedido, podemos visualizar os resultados do fatiamento do documento carregado e os fragmentos de conhecimento extraídos.

        A mesma coleção de base de conhecimento pode fazer upload de vários conteúdos de documentos. Após a conclusão do upload, construiremos nossa própria coleção de base de conhecimento exclusiva. A construção subsequente de aplicativos de base de conhecimento requer o uso de coleções de base de conhecimento relevantes. A seguir, veremos como criar um aplicativo de base de conhecimento.

3. Crie um aplicativo de base de conhecimento

        Após a criação da coleção da base de conhecimento, podemos criar nosso próprio aplicativo de base de conhecimento. Clique em Meus Aplicativos e clique em Criar um novo aplicativo para começar a construir seu próprio aplicativo de base de conhecimento.

        O Baidu Intelligent Cloud fornece oficialmente três modelos de aplicativos que podem ser construídos, incluindo aplicativos de geração básica, aplicativos de perguntas e respostas RAG e aplicativos de diálogo humano. Os dois últimos modelos são modelos de conversação. Precisamos construir aplicativos de base de conhecimento conversacional, como Para aplicativos de robôs de atendimento ao cliente de IA , você precisará usar os dois últimos modelos.

        Após selecionar um modelo, crie o aplicativo e a interface entrará na visualização de criação do aplicativo da base de conhecimento.

        Na interface de criação de aplicativos de base de conhecimento, podemos selecionar e especificar a coleção de base de conhecimento correspondente à base de conhecimento privada e selecionar um aplicativo de modelo de linguagem grande de acordo com nossas próprias necessidades. Aqui também podemos escolher o serviço de teste gratuito fornecido pelo funcionário, que oferece 200 chamadas gratuitas do Wenxin Big Model 4.0 para todos escolherem. Se escolhermos um serviço pago de modelo grande, primeiro precisamos criar um aplicativo de modelo grande na plataforma de modelo grande Qianfan. Você pode consultar meu artigo anterior para esta operação.

        Após a conclusão da configuração, podemos testar o serviço de modelo grande criado no lado direito da interface para verificar o efeito do aplicativo da base de conhecimento. Depois que o teste estiver correto, clique em Publicar para publicar o aplicativo da base de conhecimento.

        Dois formulários acessíveis são fornecidos na interface de publicação do aplicativo:

        ①Podemos acessar o aplicativo da base de conhecimento através do navegador, copiando o endereço de serviço do aplicativo da base de conhecimento;

        ②Os aplicativos da base de conhecimento podem ser acessados ​​por meio de chamadas de API.

        Isso pode ser baseado em suas necessidades reais.

4. Implementação de código do aplicativo de base de conhecimento de chamada de API

        Esta seção se concentrará em como acessar o aplicativo de base de conhecimento criado por meio de chamadas de API. Na página de lançamento do aplicativo, você pode encontrar a entrada do documento para instruções de chamada de API. Antes de implementar o código de chamada de API, primeiro lemos a documentação da API.

        O processo de chamada da API é muito simples. Primeiro, precisamos criar a API KEY quando o aplicativo for lançado. Depois de obter a chave da API, podemos usar a solicitação POST para acessá-la de acordo com a especificação da interface da chamada da API. A seguir está a descrição da interface relacionada à API:

       4.1 Criar chave API

        Para criar uma chave de API, você só precisa clicar em Criar chave de API na interface de publicação do aplicativo para obter a chave. Mantenha as informações da chave de API corretamente.

        4.2 Descrição da interface API

        Método de chamada da API, de acordo com a descrição do documento de interface, podemos entender:

        Endereço e método de solicitação de API:

        Endereço da solicitação:https://console.bce.baidu.com/api/ai_apaas/v1/instance/integrated
        Método da solicitação:POST

        Parâmetros de cabeçalho

parâmetro valor ilustrar
Tipo de conteúdo aplicativo/json -
Autorização X Portador {chave API} Campo de autenticação, a chave API deve ser preenchida entre chaves

        Parâmetros corporais

Nota: É necessária uma estrutura no formato JSON para descrever o conteúdo específico de uma solicitação.

parâmetro É obrigatório? tipo Faixa de valores opcional descrever
consulta sim corda - Consulta de solicitação do usuário
modo_resposta sim corda streaming/bloqueio O modo de resposta suporta os dois tipos a seguir:
1. streaming: resposta de streaming, usando protocolo SSE
2. bloqueio: bloqueio de resposta
conversa_id não uuid - ID da conversa, válido apenas para aplicativos de conversação. Em aplicações conversacionais:
1. Vazio: indica que a tabela cria uma nova sessão
2. Não vazio: indica que a conversa continua na sessão correspondente, e o serviço é mantido internamente. Histórico de conversas

        Instruções de resposta

parâmetro É obrigatório? tipo descrever
código sim interno Erro de código. Diferente de 0 é um erro, consulte a descrição do código de erro.
mensagem sim corda Mensagem de erro
resultado não objeto Retornar resultados
+ resposta sim corda Resultados de resposta do aplicativo
+ id_conversa não uuid ID de conversa, válido apenas para aplicativos de conversação. Se não houver conversa_id na solicitação de conversa, um será gerado automaticamente.

        Erro de código

Erro de código mensagem de erro descrever
400 InvalidRequestArgumentError Erro de parâmetro de solicitação
401 Erro de permissão negada Erro de permissão
404 NotFoundResource Contas, aplicativos, modelos, modelos, etc. não podem ser encontrados
500 Erro do Servidor Interno Erro interno do servidor
1001 Limite de cota excedido O limite de chamadas foi excedido e a cota gratuita é insuficiente.
1004 LMStreamingResponseError Erro de serviço de modelo
1005 Erro de valores de modelo Erro de verificação de parâmetro de modelo
1006 QuotaLimitExpirou A cota gratuita expirou
1007 Erro de serviço Qianfan O serviço Qianfan não pode ser acessado
1008 Erro QianfanPermissionDenied O acesso ao serviço Qianfan falhou, geralmente devido a um erro de permissão

4.3 Implementação de código de chamada de interface API

        ​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​Vou implementar o código no Unity. O código principal é o seguinte:

   #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

        Ao chamar o método PostMsg, pode-se realizar a função de enviar as informações do texto de entrada para a interface API da base de conhecimento e retornar o texto informativo respondido pela IA.

5. Configuração do lado da unidade

        Em relação ao módulo de chamada de API da Base de Conhecimento Wenxin, atualizei-o para meu projeto de código aberto. Esta seção apresentará o método de configuração no lado da unidade. Observe que a versão do Unity deve ser 2020.3.44 e superior.

        No lado do Unity, encontramos o objeto "Wenxin Knowledge Base" no objeto LLM, preenchemos a API KEY do aplicativo da base de conhecimento no script do objeto e configuramos o objeto Wenxin Knowledge Base como o módulo LLM do ChatAgent para completar o configuração. Para o processo de configuração detalhado, veja meu vídeo Bilibili.

6. Conclusão

        Este artigo apresenta em detalhes como criar uma combinação de base de conhecimento na Baidu Intelligent Cloud Platform e construir seu próprio aplicativo de base de conhecimento privado, além de implementar o acesso à API para integrar o aplicativo de base de conhecimento Baidu Wenxin na mini-caixa AI 2D. Projeto irmã. Através desta integração de aplicativos, nossa senhora de IA terá uma base de conhecimento. Para um vídeo de explicação detalhada do conteúdo abordado neste artigo, amigos interessados ​​​​podem assistir ao meu vídeo Bilibili. O seguinte é o portal de vídeos:

[Base de conhecimento Unity + Wenxin] Use o Baidu Intelligent Cloud para construir uma base de conhecimento privada, integrar a API da base de conhecimento e criar uma irmã bidimensional de IA com uma base de conhecimento


Portal de endereço do projeto:

Projeto de código aberto de esposa bidimensional de IA (unity-AI-Chat-Toolkit):

Endereço Github: https://github.com/zhangliwei7758/unity-AI-Chat-Toolkit

Endereço do guia: https://gitee.com/DammonSpace/unity-ai-chat-toolkit
 

Acho que você gosta

Origin blog.csdn.net/sinat_28962939/article/details/134978346
Recomendado
Clasificación