精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

基于Langbase Memory Agents將任意LLM轉(zhuǎn)為可對(duì)話式AI文檔助手 原創(chuàng)

發(fā)布于 2025-2-7 08:31
瀏覽
1收藏

在 2025 年當(dāng)下,大語(yǔ)言模型(LLM)依舊無法獲取用戶的私有數(shù)據(jù)。當(dāng)用戶向其詢問某些與個(gè)人相關(guān)的問題時(shí),大語(yǔ)言模型要么憑借推測(cè)進(jìn)行回應(yīng),要么給出錯(cuò)誤的解答。這體現(xiàn)了大語(yǔ)言模型存在的固有局限性——它們僅基于公開信息進(jìn)行訓(xùn)練,無法獲取用戶的私有上下文信息。

內(nèi)存代理(Memory Agent)則通過實(shí)時(shí)且安全地將用戶的私有數(shù)據(jù)與任意大語(yǔ)言模型進(jìn)行鏈接,有效解決了上述問題。在本教程中,筆者將詳細(xì)指導(dǎo)你如何借助Langbase(一個(gè)流行的開發(fā)工具平臺(tái),它提供了一套用于構(gòu)建 AI 應(yīng)用的工具和基礎(chǔ)設(shè)施)內(nèi)存代理,把大語(yǔ)言模型轉(zhuǎn)變?yōu)橐粋€(gè)能夠與你的個(gè)人文檔進(jìn)行交互對(duì)話的人工智能。

目錄

1. 內(nèi)存代理是什么?

2. 使用內(nèi)存代理保護(hù)你的數(shù)據(jù)

3. 內(nèi)存代理的應(yīng)用場(chǎng)景

4. 前提條件

5. 步驟 1:創(chuàng)建一個(gè)目錄并初始化npm

6. 步驟 2:創(chuàng)建一個(gè)管道代理

7. 步驟 3:添加一個(gè).env文件

8. 步驟 4:創(chuàng)建一個(gè)內(nèi)存代理

9. 步驟 5:將文檔添加到內(nèi)存代理

10. 步驟 6:生成內(nèi)存嵌入

  • 內(nèi)存嵌入是什么?
  • 為什么需要內(nèi)存嵌入?
  • 如何生成嵌入?

11. 步驟 7:在管道代理(Pipe Agent)中集成內(nèi)存

12. 步驟 8:在Node.js中集成內(nèi)存代理

13. 步驟 9:?jiǎn)?dòng)BaseAI服務(wù)器

14. 步驟 10:運(yùn)行內(nèi)存代理

15. 結(jié)果

內(nèi)存代理是什么?

內(nèi)存代理是使人機(jī)交互變得有意義的關(guān)鍵,它是系統(tǒng)存儲(chǔ)和檢索先前信息的機(jī)制,是構(gòu)建真正智能AI代理的核心要素。

實(shí)際上,盡管大型語(yǔ)言模型(LLM)看似人性化,但從設(shè)計(jì)本質(zhì)上講,其內(nèi)部并未內(nèi)置的存儲(chǔ)機(jī)制,在設(shè)計(jì)架構(gòu)上屬于無狀態(tài)模式。鑒于現(xiàn)實(shí)世界中的任務(wù)往往具有復(fù)雜性與多樣性,若要讓大語(yǔ)言模型在這些實(shí)際任務(wù)中發(fā)揮有效作用,為其增添存儲(chǔ)能力就顯得尤為必要。而內(nèi)存代理恰恰在這一需求場(chǎng)景中發(fā)揮關(guān)鍵作用。

Langbase內(nèi)存代理作為一種長(zhǎng)期存儲(chǔ)解決方案,其核心設(shè)計(jì)目標(biāo)就在于實(shí)現(xiàn)信息獲取、處理、保留以及檢索各個(gè)環(huán)節(jié)之間的無縫銜接。借助該內(nèi)存代理,可以動(dòng)態(tài)地為任意大語(yǔ)言模型添加私有數(shù)據(jù),這不僅使得大語(yǔ)言模型在交互過程中能夠?qū)崿F(xiàn)實(shí)時(shí)的上下文感知響應(yīng),還能顯著減少“幻覺生成(指的是大語(yǔ)言模型生成的與當(dāng)前上下文不相符或錯(cuò)誤的信息)”現(xiàn)象。

這些內(nèi)存代理通過整合向量存儲(chǔ)、檢索增強(qiáng)生成(RAG)以及互聯(lián)網(wǎng)訪問功能,構(gòu)建了一個(gè)功能強(qiáng)大的托管上下文搜索API。借助這一API,開發(fā)人員能夠開發(fā)出更加智能、功能更為強(qiáng)大的人工智能應(yīng)用程序。

在檢索增強(qiáng)生成(RAG)的架構(gòu)體系中,當(dāng)內(nèi)存與Langbase管道代理(Pipe Agent:是Langbase框架中的一個(gè)核心概念,它本質(zhì)上是一個(gè)數(shù)據(jù)處理和流轉(zhuǎn)的管道代理)實(shí)現(xiàn)直接連接時(shí),便形成了一個(gè)完整意義上的內(nèi)存代理。這種組合方式賦予了大語(yǔ)言模型獲取相關(guān)數(shù)據(jù)的能力,并使其能夠基于這些私有數(shù)據(jù)提供精確且上下文貼合的回答,從而有效克服了大語(yǔ)言模型在處理私有數(shù)據(jù)時(shí)面臨的諸多局限性。

需要注意的是,管道是一種無服務(wù)器的AI代理,它集成了代理內(nèi)存和工具。

以下將以圖示的方式,對(duì)整個(gè)過程進(jìn)行直觀展示:

基于Langbase Memory Agents將任意LLM轉(zhuǎn)為可對(duì)話式AI文檔助手-AI.x社區(qū)

使用內(nèi)存代理保護(hù)你的數(shù)據(jù)

內(nèi)存代理高度重視數(shù)據(jù)安全,通過將私密信息進(jìn)行隔離,并在本地環(huán)境或安全的環(huán)境中進(jìn)行處理,以此作為保障數(shù)據(jù)安全的首要舉措。具體而言,用于創(chuàng)建內(nèi)存嵌入的數(shù)據(jù),在未進(jìn)行明確配置的情況下,不會(huì)被發(fā)送至外部服務(wù)器,這種嚴(yán)格的設(shè)定從源頭上確保了敏感信息能夠得到妥善保護(hù)。

除此之外,內(nèi)存系統(tǒng)的訪問權(quán)限通過 API 密鑰和相關(guān)權(quán)限設(shè)置進(jìn)行嚴(yán)格管控。只有經(jīng)過授權(quán)的操作才能訪問內(nèi)存系統(tǒng),這一措施有效防止了未經(jīng)授權(quán)的訪問行為發(fā)生。如此一來,這種精心設(shè)計(jì)的安全設(shè)置,不僅能夠顯著增強(qiáng)人工智能(AI)能力,更通過全方位保護(hù)用戶數(shù)據(jù),切實(shí)維護(hù)了用戶對(duì)系統(tǒng)的信任。

內(nèi)存代理的應(yīng)用場(chǎng)景

以下為這些內(nèi)存代理在實(shí)際中的具體應(yīng)用領(lǐng)域:

  • 客戶支持:內(nèi)存代理能夠回調(diào)交互歷史記錄,以此為基礎(chǔ)提供個(gè)性化且具備上下文感知能力的支持服務(wù)。
  • 文檔搜索:在處理大型數(shù)據(jù)集、手冊(cè)或者常見問題解答文檔時(shí),內(nèi)存代理可實(shí)現(xiàn)快速且語(yǔ)義化的搜索功能。
  • 代碼輔助:針對(duì)開發(fā)人員,內(nèi)存代理可以提供與項(xiàng)目特定相關(guān)的文檔資料,并基于項(xiàng)目歷史和代碼邏輯給出調(diào)試建議,助力開發(fā)者更高效地完成開發(fā)工作。
  • 知識(shí)管理:內(nèi)存代理有助于將團(tuán)隊(duì)內(nèi)部信息進(jìn)行高效集中存儲(chǔ),并實(shí)現(xiàn)便捷的檢索功能。團(tuán)隊(duì)成員能夠快速獲取所需信息,提升團(tuán)隊(duì)整體的知識(shí)流轉(zhuǎn)和工作效率。
  • 教育與培訓(xùn):在教育與培訓(xùn)場(chǎng)景中,內(nèi)存代理可以為學(xué)生或員工提供定制化的培訓(xùn)材料,通過跟蹤學(xué)習(xí)進(jìn)度,基于存儲(chǔ)的知識(shí)庫(kù)回答學(xué)習(xí)者提出的問題。
  • 醫(yī)療保健:在醫(yī)療領(lǐng)域,內(nèi)存代理可安全地檢索患者記錄或病史信息,為醫(yī)護(hù)人員提供準(zhǔn)確的數(shù)據(jù)支持,輔助他們做出更精準(zhǔn)的醫(yī)療決策。
  • 協(xié)調(diào)工作流程:內(nèi)存代理能夠追蹤項(xiàng)目歷史記錄并結(jié)合各類工具來實(shí)現(xiàn)團(tuán)隊(duì)成員之間的協(xié)調(diào)與溝通,確保項(xiàng)目順利推進(jìn)。
  • 法律合規(guī):在法律事務(wù)和合規(guī)管理方面,內(nèi)存代理可以幫助相關(guān)人員快速參考法律指南和合規(guī)標(biāo)準(zhǔn),確保決策過程準(zhǔn)確無誤且完全符合法律規(guī)定要求。

上述由內(nèi)存代理所賦能的眾多應(yīng)用場(chǎng)景,正不斷開拓新的可能性,并且逐步改變著人工通用智能(AGI)的發(fā)展格局與能力邊界。

前提條件

在著手創(chuàng)建能夠與文檔進(jìn)行交互的內(nèi)存代理之前,你需要完成以下設(shè)置并準(zhǔn)備相應(yīng)工具。

本教程將采用以下技術(shù)棧:

  • BaseAI:一款用于在本地構(gòu)建AI代理的Web框架。
  • Langbase:一個(gè)專門用于構(gòu)建和部署無服務(wù)器AI代理的平臺(tái)。
  • OpenAI:通過該平臺(tái)獲取首選模型所需的 LLM 密鑰。

此外,你還需完成以下操作:

  • 在Langbase平臺(tái)上完成注冊(cè),以便獲取API密鑰。
  • 在OpenAI平臺(tái)上進(jìn)行注冊(cè),從而生成所需模型(本演示使用的是 GPT - 4o mini)的 LLM 密鑰 。

當(dāng)上述準(zhǔn)備工作全部完成后,我們即可正式開啟后續(xù)操作!  

步驟 1:創(chuàng)建一個(gè)目錄并初始化npm

若要著手創(chuàng)建一個(gè)能夠與你的文檔實(shí)現(xiàn)交互的內(nèi)存代理,首先需要在本地計(jì)算機(jī)中創(chuàng)建一個(gè)專門的目錄,并在該目錄下安裝所有與之相關(guān)的開發(fā)依賴項(xiàng)。具體操作方法為:導(dǎo)航至目標(biāo)目錄,然后在終端中運(yùn)行相應(yīng)命令,以此完成相關(guān)設(shè)置:

mkdir my-project
npm init -y
npm install dotenv

此命令會(huì)在你的項(xiàng)目目錄下創(chuàng)建一個(gè)具有默認(rèn)值的package.json文件。與此同時(shí),該命令還會(huì)執(zhí)行dotenv包的安裝操作。安裝dotenv包的目的在于,使項(xiàng)目能夠從.env文件中順利讀取環(huán)境變量,從而為項(xiàng)目的運(yùn)行提供必要的配置支持。  

步驟 2:創(chuàng)建一個(gè)管道代理

接下來,我們著手創(chuàng)建一個(gè)管道代理。管道代理在特性上區(qū)別于其他代理,它屬于無服務(wù)器AI代理,并且配備了代理工具,具備與任意語(yǔ)言或框架協(xié)同運(yùn)作的能力。管道代理的部署過程較為簡(jiǎn)便,僅需借助一個(gè)API,就能將 100 多個(gè)大型語(yǔ)言模型與任何數(shù)據(jù)相連接,進(jìn)而助力開發(fā)人員構(gòu)建各類API工作流程。

若要?jiǎng)?chuàng)建你的AI代理管道,請(qǐng)先進(jìn)入項(xiàng)目目錄,然后運(yùn)行以下命令:

npx baseai@latest pipe

在運(yùn)行該命令后,你將會(huì)看到如下提示:

BaseAI is not installed but required to run. Would you like to install it? Yes/No
Name of the pipe?  pipe-with-memory
Description of the pipe? Pipe attached to a memory
Status of the pipe? Public/Private
System prompt? You are a helpful AI assistant

當(dāng)你完成 AI 管道代理的名稱、描述以及狀態(tài)設(shè)置后,系統(tǒng)會(huì)自動(dòng)完成所有相關(guān)配置,你的管道代理將成功創(chuàng)建在 /baseai/pipes/pipe-with-memory.ts 路徑下。

步驟 3:添加一個(gè).env文件

完成上述操作后,需在項(xiàng)目根目錄中創(chuàng)建一個(gè).env 文件,并在其中添加OpenAI和Langbase的 API 密鑰。你可從指定位置獲取你的Langbase API密鑰 。

步驟 4:創(chuàng)建一個(gè)內(nèi)存代理

接下來,我們要?jiǎng)?chuàng)建一個(gè)內(nèi)存,并將其附加到管道(Pipe)中,以此讓它轉(zhuǎn)變?yōu)閮?nèi)存代理。要達(dá)成這一目標(biāo),請(qǐng)?jiān)诮K端中運(yùn)行以下命令:  

npx baseai@latest memory

運(yùn)行此命令后,將會(huì)得到以下提示:

Name of the memory?  chat-with-docs-agent
Description of the pipe? FAQs docs
Do you want to create memory from the current project git repository? Yes/No

執(zhí)行上述操作之后,系統(tǒng)會(huì)自動(dòng)完成所有相關(guān)設(shè)置。你便能夠訪問成功創(chuàng)建在 /baseai/memory/chat-with-docs-agent.ts 路徑下的內(nèi)存。

步驟 5:將文檔添加到內(nèi)存代理

在 /baseai/memory/chat-with-docs-agent.ts 路徑下,你會(huì)看到一個(gè)名為 documents 的文件夾。此文件夾專門用于存儲(chǔ)期望 AI 代理能夠訪問的文件。在本次演示過程中,我先將管道(Pipe)的常見問題頁(yè)面另存為.pdf 或.txt 格式的文件。隨后,把該文件轉(zhuǎn)換為markdown格式,并將轉(zhuǎn)換后的文件放置在 baseai/memory/chat-with-docs/documents 目錄中。  

執(zhí)行這一步驟,能夠切實(shí)保證內(nèi)存代理具備處理和檢索文檔信息的能力。如此一來,AI代理在面對(duì)用戶提出的查詢時(shí),便能夠根據(jù)你所提供的文檔內(nèi)容做出準(zhǔn)確回答。  

步驟 6:生成內(nèi)存嵌入

目前,你已成功將文檔添加至內(nèi)存。接下來的關(guān)鍵步驟是生成內(nèi)存嵌入。不過在此之前,有必要先了解一下:嵌入究竟是什么,以及為什么它們對(duì)于整個(gè)系統(tǒng)而言是不可或缺的 ? 

內(nèi)存嵌入是什么?

嵌入是文檔的一種數(shù)字表現(xiàn)形式。借助這種形式,人工智能能夠理解單詞、短語(yǔ)以及句子之間的上下文關(guān)聯(lián)和語(yǔ)義關(guān)系。我們不妨把嵌入看作是一種將文檔“翻譯”成人工智能能夠處理的“語(yǔ)言”的方式,以便實(shí)現(xiàn)語(yǔ)義搜索與檢索功能。  

為什么需要內(nèi)存嵌入?

若缺少嵌入這一關(guān)鍵環(huán)節(jié),AI代理便無法將用戶提出的查詢與文檔中的相關(guān)內(nèi)容進(jìn)行有效匹配。而通過生成嵌入向量,實(shí)際上是在創(chuàng)建一個(gè)可供搜索的索引。這個(gè)索引對(duì)于內(nèi)存代理給出準(zhǔn)確且高效的響應(yīng)起著至關(guān)重要的支持作用。  

如何生成嵌入?

若要為你的文檔生成嵌入,請(qǐng)?jiān)诮K端中執(zhí)行以下命令:

npx baseai@latest embed -m chat-with-docs-agent

至此,你的內(nèi)存已準(zhǔn)備就緒,可以與管道(即內(nèi)存代理)進(jìn)行連接。連接完成后,你的 AI 代理便能從你提供的文檔中獲取精準(zhǔn)的、具備上下文感知能力的響應(yīng)。  

步驟 7:在管道代理(Pipe Agent)中集成內(nèi)存

接下來,你需要將此前創(chuàng)建的內(nèi)存附加到管道(Pipe)代理上,以此讓它成為一個(gè)內(nèi)存代理。要完成這一操作,請(qǐng)進(jìn)入 /baseai/pipes/pipe-with-memory.ts 文件。以下是該文件目前的內(nèi)容展示:

import { PipeI } from '@baseai/core';

const pipePipeWithMemory = (): PipeI => ({    apiKey: process.env.LANGBASE_API_KEY!, // Replace with your API key https://langbase.com/docs/api-reference/api-keys    name: 'pipe-with-memory',    description: 'Pipe attached to a memory',    status: 'public',    model: 'openai:gpt-4o-mini',    stream: true,    json: false,    store: true,    moderate: true,    top_p: 1,    max_tokens: 1000,    temperature: 0.7,    presence_penalty: 1,    frequency_penalty: 1,    stop: [],    tool_choice: 'auto',    parallel_tool_calls: false,    messages: [        { role: 'system', content: `You are a helpful AI assistant.` }],    variables: [],    memory: [],    tools: []});
export default pipePipeWithMemory;

現(xiàn)在,需將內(nèi)存集成到管道中。具體做法是在文件頂部導(dǎo)入內(nèi)存,并將其作為內(nèi)存數(shù)組中的函數(shù)進(jìn)行調(diào)用。以下是完成所有這些操作后代碼呈現(xiàn)的樣子:  

import { PipeI } from '@baseai/core';
import chatWithDocsAgentMemory from '../memory/chat-with-docs-agent';

const pipePipeWithMemory = (): PipeI => ({
    apiKey: process.env.LANGBASE_API_KEY!, // Replace with your API key https://langbase.com/docs/api-reference/api-keys
    name: 'pipe-with-memory',
    description: 'Pipe attached to a memory',
    status: 'public',
    model: 'openai:gpt-4o-mini',
    stream: true,
    json: false,
    store: true,
    moderate: true,
    top_p: 1,
    max_tokens: 1000,
    temperature: 0.7,
    presence_penalty: 1,
    frequency_penalty: 1,
    stop: [],
    tool_choice: 'auto',
    parallel_tool_calls: false,
    messages: [
        { role: 'system', content: `You are a helpful AI assistant.` }],
    variables: [],
    memory: [chatWithDocsAgentMemory()],
tools: []
});

export default pipePipeWithMemory;

步驟 8:在Node.js中集成內(nèi)存代理

接下來,我們要把之前創(chuàng)建的內(nèi)存代理集成到 Node.js 項(xiàng)目中,目的是為所關(guān)聯(lián)的文檔構(gòu)建一個(gè)交互式命令行界面(CLI)。這個(gè) Node.js 項(xiàng)目將充當(dāng)測(cè)試內(nèi)存代理以及與內(nèi)存代理進(jìn)行交互的基礎(chǔ)環(huán)境(在本教程開篇部分,我們已經(jīng)通過初始化npm完成了一個(gè) Node.js 項(xiàng)目的初步設(shè)置 )。

現(xiàn)在,創(chuàng)建一個(gè) index.ts 文件:

touch index.ts

在這個(gè)TypeScript文件里,需要導(dǎo)入你此前創(chuàng)建的管道代理。后續(xù)我們會(huì)借助@baseai/core里的管道原語(yǔ)(pipe primitive:用于構(gòu)建和操作管道的基本元素)來運(yùn)行該管道。

將以下代碼添加到 index.ts 文件中:

import 'dotenv/config';import { Pipe } from '@baseai/core';import inquirer from 'inquirer';import ora from 'ora';import chalk from 'chalk';import pipePipeWithMemory from './baseai/pipes/pipe-with-memory';
const pipe = new Pipe(pipePipeWithMemory());
async function main() {
const initialSpinner = ora('Conversation with Memory agent...').start();   try {       const { completion: calculatorTool} = await pipe.run({           messages: [{ role: 'user', content: 'Hello' }],       });       initialSpinner.stop();       console.log(chalk.cyan('Report Generator Agent response...'));       console.log(calculatorTool);   } catch (error) {       initialSpinner.stop();       console.error(chalk.red('Error processing initial request:'), error);   }
while (true) {       const { userMsg } = await inquirer.prompt([           {               type: 'input',               name: 'userMsg',               message: chalk.blue('Enter your query (or type "exit" to quit):'),           },       ]);
if (userMsg.toLowerCase() === 'exit') {           console.log(chalk.green('Goodbye!'));           break;       }
const spinner = ora('Processing your request...').start();
try {           const { completion: reportAgentResponse } = await pipe.run({               messages: [{ role: 'user', content: userMsg }],           });
spinner.stop();           console.log(chalk.cyan('Agent:'));           console.log(reportAgentResponse);       } catch (error) {           spinner.stop();           console.error(chalk.red('Error processing your request:'), error);       }   }}
main();

這段代碼旨在創(chuàng)建一個(gè)交互式命令行界面(CLI),以便與 AI 代理進(jìn)行聊天互動(dòng),它借助 @baseai/core 庫(kù)中的管道來處理用戶輸入。下面為你詳細(xì)介紹代碼的運(yùn)行邏輯及相關(guān)操作:

  • 首先,代碼需要導(dǎo)入一些必要的庫(kù)。其中,dotenv 用于環(huán)境配置,inquirer 用于獲取用戶輸入,ora 用于加載微調(diào)器,而 chalk 則用于實(shí)現(xiàn)彩色輸出。在運(yùn)行代碼前,請(qǐng)務(wù)必在終端中使用以下命令安裝這些庫(kù):npm install ora inquirer 。
  • 接著,管道對(duì)象是基于 BaseAI 庫(kù),利用一個(gè)名為 pipe-with-memory 的預(yù)定義內(nèi)存創(chuàng)建而成。

然后,在 main() 函數(shù)內(nèi)部:

  • 當(dāng)與 AI 代理的初始對(duì)話開始時(shí),旋轉(zhuǎn)圖標(biāo)會(huì)隨即啟動(dòng),并展示 “Hello” 這條消息。
  • 之后,來自 AI 的響應(yīng)將會(huì)呈現(xiàn)出來。
  • 程序會(huì)進(jìn)入循環(huán)運(yùn)行狀態(tài),持續(xù)要求用戶輸入內(nèi)容,并將用戶的查詢發(fā)送給 AI 代理。
  • 每次接收到 AI 的響應(yīng)后都會(huì)顯示出來,這一過程會(huì)不斷重復(fù),直至用戶輸入 “exit” 為止。

步驟 9:?jiǎn)?dòng)BaseAI服務(wù)器

若要在本地運(yùn)行內(nèi)存代理,首先需要啟動(dòng) BaseAI 服務(wù)器。請(qǐng)?jiān)诮K端中運(yùn)行以下命令:  

npx baseai@latest dev

步驟 10:運(yùn)行內(nèi)存代理

使用以下命令運(yùn)行 index.ts 文件:

npx tsx index.ts

結(jié)果

在你的終端中,系統(tǒng)會(huì)提示“輸入你的查詢”。例如,我們不妨提問:“什么是 Langbase 上的管道?” 此時(shí),內(nèi)存代理將會(huì)給出回應(yīng),并且還會(huì)提供正確的來源或引用信息。

通過上述一系列設(shè)置,我們成功構(gòu)建了一個(gè)“Chat with Your Document”代理。該代理充分利用了大型語(yǔ)言模型(LLM)和 Langbase 內(nèi)存代理的強(qiáng)大功能,有效克服了 LLM 自身存在的局限性。它不僅能夠確保給出準(zhǔn)確的響應(yīng),而且在處理私有數(shù)據(jù)時(shí)不會(huì)出現(xiàn)“幻覺”現(xiàn)象。

譯者介紹

劉濤,51CTO社區(qū)編輯,某大型央企系統(tǒng)上線檢測(cè)管控負(fù)責(zé)人。

原文標(biāo)題:How to Use Langbase Memory Agents to Make Any LLM a Conversational AI for Your Docs

作者:??Maham Codes??

?著作權(quán)歸作者所有,如需轉(zhuǎn)載,請(qǐng)注明出處,否則將追究法律責(zé)任
已于2025-2-7 10:12:52修改
收藏 1
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦
人人香蕉久久| 国产一二区在线| 性欧美暴力猛交另类hd| 亚洲视频国产视频| www.com污| 欧美videosex性极品hd| 91丨九色丨尤物| 国产精品福利小视频| 男人晚上看的视频| 国产欧美啪啪| 在线观看日韩毛片| 国产精品视频二| 精品一二三区视频| 国产精品亚洲一区二区三区妖精| 欧美一级片免费在线| 男人av资源站| 五月综合久久| 日韩欧美在线不卡| 日本成人在线免费视频| 七七成人影院| 国产精品美女久久久久久久久 | av中文在线资源库| 中文字幕久久午夜不卡| 国产精品日韩一区二区| 一区二区视频网站| 国产一区成人| 久久久久久欧美| 亚洲一区电影在线观看| 亚洲精品动态| 欧美精品一区二区三区视频| 狠狠躁狠狠躁视频专区| 爱情电影社保片一区| 亚洲最色的网站| 一区二区三区一级片| 狠狠狠综合7777久夜色撩人| 不卡av在线免费观看| 91亚洲国产成人精品性色| 久草视频在线免费| 国产精品社区| 午夜剧场成人观在线视频免费观看 | 黑人一区二区三区| 欧美日韩国产精品专区| 福利视频免费在线观看| 成人在线播放免费观看| 国产精品美女一区二区| 天堂社区 天堂综合网 天堂资源最新版 | 欧美亚洲一级| 久久久噜噜噜久久中文字免| 国产女人被狂躁到高潮小说| 国产精品99一区二区三| 神马久久久久久| 自拍偷拍视频亚洲| 九九视频精品全部免费播放| 日韩精品中文字| 人妻av一区二区| 日韩一级淫片| 亚洲精品在线观看网站| 四虎精品一区二区| 精品自拍偷拍| 亚洲国产天堂久久国产91| 亚洲av成人精品一区二区三区| 亚洲综合影院| 欧美v日韩v国产v| 精产国品一区二区三区| 粉嫩一区二区三区在线观看| 3atv在线一区二区三区| 久久国产激情视频| 久久久加勒比| 欧美一区二区三区在线看| 天天综合天天添夜夜添狠狠添| 成人在线黄色| 欧美精品国产精品| 久久久久国产免费| 欧美wwwsss9999| 亚洲精品一区在线观看香蕉| www.av欧美| 国产一区二区三区站长工具| 中文字幕av一区二区| 潘金莲一级黄色片| 国产精品chinese| 91大神福利视频在线| 亚洲免费在线视频观看| a毛片在线看免费观看| 国产精品久久久久桃色tv| 亚洲一二三区在线| 午夜影院免费在线| 精品动漫一区二区三区| 九色porny91| 亚洲精品大片| 精品乱人伦一区二区三区| 91av在线免费| 久久中文字幕二区| 欧美高清视频在线播放| 天堂中文字幕在线观看| 麻豆91在线播放| 国产精品av一区| 黄色国产在线| 伊人开心综合网| 男人添女人下部高潮视频在观看| 成人日韩精品| 日韩精品一区二区三区视频播放 | www.日本久久久久com.| 久久久精品99| 久久黄色网页| 亚洲综合国产精品| 国产日本在线观看| 亚洲综合丁香婷婷六月香| 免费激情视频在线观看| 97久久综合精品久久久综合| 亚洲视频在线免费看| 麻豆91精品91久久久| 美女视频一区免费观看| 亚洲qvod图片区电影| 水莓100在线视频| 亚洲婷婷综合色高清在线| 国产91在线视频观看| 亚洲最大的免费视频网站| 亚洲国产日韩一区| 欧美日韩精品一区二区三区视频播放| 久久亚洲电影| 国产三级精品在线不卡| v片在线观看| 欧美色精品在线视频| 日韩 中文字幕| 午夜国产欧美理论在线播放| 国产精品久久二区| 视频一区二区免费| 亚洲精品少妇30p| 婷婷丁香激情网| 日韩av三区| 欧美精品激情blacked18| 一级片视频播放| 久久网这里都是精品| 免费观看国产视频在线| 日韩欧美2区| 亚洲欧美综合另类中字| 国产精品自拍视频一区| 国产酒店精品激情| 正在播放91九色| 成人国产在线| 国产亚洲精品成人av久久ww| xxxx.国产| 99亚偷拍自图区亚洲| 国产美女主播在线| 日韩三级av高清片| 欧美国产日本高清在线 | 免费成人美女女在线观看| 在线综合欧美| 精品午夜一区二区| 18video性欧美19sex高清| 欧美成人精品二区三区99精品| 久久99久久99精品免费看小说| 日本女优在线视频一区二区| 日韩欧美亚洲v片| 日韩电影av| 亚洲最新中文字幕| 中文天堂在线播放| 中文字幕日韩av资源站| 亚洲热在线视频| 欧美日韩1区| 国产精品乱子乱xxxx| 免费电影网站在线视频观看福利| 日韩视频免费观看高清在线视频| 欧美卡一卡二卡三| 国产91丝袜在线播放| 国产91视频一区| 国产ts一区| 欧美最猛性xxxx| 成人亚洲综合天堂| 欧美理论电影在线| 激情四射综合网| 99九九99九九九视频精品| 蜜桃传媒视频第一区入口在线看| 国产调教在线| 亚洲欧美在线免费| 中文字幕黄色av| 日韩理论片一区二区| 丰满人妻一区二区三区大胸 | 可以看毛片的网址| 日韩av黄色在线| 国产精品视频精品视频| 国产写真视频在线观看| 亚洲国产黄色片| 国产精品午夜一区二区| 亚洲免费高清视频在线| 男人的天堂影院| 日本欧美一区二区在线观看| 日本三日本三级少妇三级66| 久久porn| 国产精品成人av性教育| jizz性欧美10| 亚洲美女www午夜| 国产精品一区二区av白丝下载| 亚洲影视在线播放| 国产手机在线观看| 国产一区二区精品在线观看| 欧美亚洲精品一区二区| 久久久影院免费| 激情久久av| 日韩成人一区| 欧美在线影院在线视频| 欧美性猛交xxx乱大交3蜜桃| 亚洲国产成人精品一区二区| 在线观看中文字幕码| 亚洲mv在线观看| 制服丨自拍丨欧美丨动漫丨| 97国产一区二区| 久久久精品视频国产| 久久成人亚洲| 99久热在线精品视频| 国产在视频线精品视频www666| 91精品国产一区二区三区动漫| 成人免费福利| 97视频在线观看免费| 蜜桃视频网站在线观看| 亚洲精品自在久久| 亚洲国产精品二区| 欧美日韩亚洲综合在线| 六月丁香激情综合| 一区二区久久久久| 国产精品久久久免费看| 久久亚洲一级片| 四虎永久免费观看| 国产乱子伦一区二区三区国色天香| 日韩 欧美 高清| 日韩午夜免费| www.男人天堂网| 久久久久久久久久久妇女| 日韩免费av电影| 亚洲系列另类av| 国产综合 伊人色| 一区二区三区四区高清视频| 国产日韩在线亚洲字幕中文| 三级成人在线| 国产91热爆ts人妖在线| 午夜影院一区| 国内成人精品视频| 人人澡人人添人人爽一区二区| 最新国产成人av网站网址麻豆| 国产视频二区在线观看| 亚洲女人被黑人巨大进入al| 天天射天天色天天干| 精品福利一区二区三区免费视频| 99久久一区二区| 91精品国产综合久久婷婷香蕉| 依依成人在线视频| 欧美性大战久久| 中文字幕av网站| 日本二三区不卡| 小泽玛利亚一区二区三区视频| 色综合一个色综合| 国产成人精品777777| 色狠狠av一区二区三区| 在线免费观看国产精品| 91久久免费观看| 亚洲婷婷久久综合| 欧美日韩一区二区三区四区| 在线观看黄色网| 欧美精品在线视频| 精品国产av一区二区三区| 日韩一区二区三区在线| 亚洲a视频在线观看| 欧美精品一区二区三区蜜桃视频 | 成人黄色视屏网站| 国产一区二区在线免费视频| 999久久久国产999久久久| 亚洲xxx自由成熟| 91久久精品无嫩草影院| 国严精品久久久久久亚洲影视| 任我爽精品视频在线播放| 奇米精品在线| 99久久夜色精品国产亚洲1000部 | 日韩午夜激情| 成人在线观看黄| 美国三级日本三级久久99| 999久久久精品视频| 国产91精品精华液一区二区三区| 催眠调教后宫乱淫校园| 久久综合999| 午夜精品久久久久99蜜桃最新版| 亚洲精品成人少妇| 99热只有这里有精品| 欧美天天综合网| xxxx国产精品| 亚洲欧洲国产伦综合| 成人国产免费电影| 91av成人在线| 99tv成人影院| 久久久久久久久久久久久久一区| 不卡视频在线| 免费网站在线观看视频| 久久激情一区| 久久精品无码专区| 国产欧美日韩卡一| 精品97人妻无码中文永久在线| 亚洲va国产天堂va久久en| 在线观看中文字幕2021| 亚洲а∨天堂久久精品9966| 韩国福利在线| 欧美激情国产精品| 色老太综合网| aa日韩免费精品视频一| jiujiure精品视频播放| 国产美女永久无遮挡| 亚洲免费网址| 日本美女久久久| 中文字幕成人在线观看| 国产一级一级片| 欧美三日本三级三级在线播放| 狠狠人妻久久久久久综合麻豆| 最近2019年好看中文字幕视频| 国模私拍一区二区国模曼安| 成人黄色av网站| 牛牛精品成人免费视频| 男人草女人视频| 蜜桃视频免费观看一区| 不卡一区二区在线观看| 亚洲精品第1页| 国产又大又黑又粗| 亚洲天堂久久av| 日韩伦理在线一区| 99国产在线观看| 五月婷婷六月综合| 亚洲 欧美 日韩系列| wwww国产精品欧美| xxxx 国产| 日韩丝袜美女视频| 国产最新在线| 国产精品网红福利| 国产成人三级| 99re在线视频免费观看| 成人黄页在线观看| 国产在线视频99| 91精品国产综合久久久久久 | a看欧美黄色女同性恋| 亚洲美女自拍偷拍| 久久99精品一区二区三区三区| 免费黄在线观看| 91黄色激情网站| 久久视频www| 国产成人91久久精品| 欧美a大片欧美片| 欧美日韩在线一| eeuss鲁片一区二区三区在线观看| 一区二区三区免费高清视频| 欧美一级一级性生活免费录像| 免费av不卡| 亚洲一区二区免费| 欧美激情第10页| 稀缺呦国内精品呦| 亚洲成人自拍一区| 天堂av在线免费| 欧美亚洲激情在线| 免费毛片在线不卡| 手机看片福利盒子久久| 欧美国产精品久久| 波多野结衣二区三区| 中文字幕欧美日韩| 中文成人在线| 成人一区二区av| 91一区一区三区| 国产寡妇亲子伦一区二区三区四区| 亚洲男子天堂网| 久久电影天堂| 亚洲高潮无码久久| 成人动漫在线一区| 久久久精品视频网站| 一区二区亚洲欧洲国产日韩| 久久亚洲精品人成综合网| 国产系列第一页| 丁香婷婷综合五月| 特级毛片www| 中文字幕国产日韩| 日本精品视频| 国产美女网站在线观看| 欧美激情一区二区三区四区| 91精品视频免费在线观看| 久久久成人精品视频| 国内精品国产成人国产三级粉色| 69堂免费视频| 国产精品美女久久久久高潮| 国产超碰人人模人人爽人人添| 97精品国产97久久久久久春色| 精品国产一区一区二区三亚瑟| 午夜视频在线网站| 午夜欧美一区二区三区在线播放| 黄视频在线观看免费| 亚洲aⅴ男人的天堂在线观看 | 国产亚洲精品美女久久久久久久久久| 超碰超碰在线观看| 亚洲高清视频的网址| 国产日本在线视频| 国产精品一区二区三区免费观看| 美女91精品| 免费三片在线播放| 夜夜躁日日躁狠狠久久88av| 91精品久久久久久综合五月天| 一区二区三区免费播放| 亚洲午夜精品一区二区三区他趣| 激情小视频在线|