LLM-Agent

2024/01/01 LLM Agent 共 2630 字,约 8 分钟

0、现有的一些 Agent

AutoGPT

XAgent

modelscope-agent

1、LLM 调用

1.1、ChatGLM 系列

参考:

https://huggingface.co/THUDM/chatglm-6b/blob/main/modeling_chatglm.py

class ChatGLMForConditionalGeneration(ChatGLMPreTrainedModel):
    """
    对 response 进行后处理
    """
    def process_response(self, response):

    """
    普通对话
    """
    def chat(
        self, 
        tokenizer, 
        query: str, 
        history: List[Tuple[str, str]] = None, 
        max_length: int = 2048, 
        num_beams=1, 
        do_sample=True, 
        top_p=0.7, 
        temperature=0.95, 
        logits_processor=None, 
        **kwargs):
    
    """
    流式对话
    """
    def stream_chat(
        self, 
        tokenizer, 
        query: str, 
        history: List[Tuple[str, str]] = None, 
        max_length: int = 2048, 
        do_sample=True, 
        top_p=0.7, 
        temperature=0.95, 
        logits_processor=None, 
        **kwargs):

ChatGLM 官方的 Gradio Web Demo

程序会运行一个 Web Server,并输出地址。在浏览器中打开输出的地址即可使用。最新版 Demo 实现了打字机效果,速度体验大大提升。注意,由于国内 Gradio 的网络访问较为缓慢,启用 demo.queue().launch(share=True, inbrowser=True) 时所有网络会经过 Gradio 服务器转发,导致打字机体验大幅下降,现在默认启动方式已经改为 share=False,如有需要公网访问的需求,可以重新修改为 share=True 启动。

基于 Streamlit 的 网页版 Demo


本地搭建属于自己的 ChatGPT:基于 PyTorch + ChatGLM-6b + Streamlit + QDrant + DuckDuckGo

  • Github:https://github.com/chopinchenx/Bubble/

1.2、LLaMA 系列

2、Tool 调用(Command)

2.1、Web Search(网络搜索)

参考:

2.1.1、DuckDuckGo

https://github.com/deedy5/duckduckgo_search

使用 DeepSeek 介绍 duckduckgo_search 库及其用途,回答的结果如下:

DuckDuckGo 是一个 互联网搜索引擎,它强调隐私保护和无追踪搜索。它不收集用户的个人信息,不使用 cookies 来跟踪用户的行为,也不与第三方共享用户数据。DuckDuckGo 的主要用途是提供一个安全的搜索引擎,让用户可以自由地搜索信息,而不必担心自己的隐私被侵犯。

DuckDuckGo 的搜索结果来自于多个来源,包括自己的爬虫、合作伙伴和开放的 API。它还提供了一些独特的功能,例如“!bangs”,它允许用户直接在搜索框中输入特定的网站或服务,例如“!amazon”或“!wikipedia”,以快速访问这些网站或服务。

DuckDuckGo 还提供了一些其他的工具和服务,例如浏览器扩展、移动应用程序和隐私保护工具。这些工具和服务旨在帮助用户保护自己的隐私,并提供更好的搜索体验。

总的来说,DuckDuckGo 是一个注重隐私保护的搜索引擎,它提供了安全、快速、准确的搜索结果,并提供了一些独特的功能和服务,以帮助用户更好地保护自己的隐私。

2.1.2、Google

使用 DeepSeek 介绍 googleapiclient 库及其用途,回答的结果如下:

Google API Client Library 是一组用于访问 Google API 的库,它允许开发者使用各种编程语言(如 Python、Java、C#、Node.js 等)来访问 Google 的 API。这些库提供了一些高级功能,例如自动授权、错误处理和数据格式转换,以简化开发过程。

Google API Client Library 的主要用途是帮助开发者快速、轻松地访问 Google 的 API,以便他们可以构建应用程序和服务。这些库提供了一些高级功能,例如自动授权、错误处理和数据格式转换,以简化开发过程。

Google API Client Library 支持许多 Google API,包括 Google Drive、Google Maps、Google Calendar、Google Analytics 等。开发者可以使用这些库来访问这些 API,以便他们可以构建各种应用程序和服务,例如文件管理、地图导航、日程安排、数据分析等。

总的来说,Google API Client Library 是一组用于访问 Google API 的库,它允许开发者使用各种编程语言来访问 Google 的 API,并提供了一些高级功能,以简化开发过程。这些库支持许多 Google API,并可以帮助开发者快速、轻松地构建各种应用程序和服务。

2.2、Web Page Browse(网页浏览)

2.3、文档上传与内容解析

pdf、doc、ppt 等

2.4、

2.5、

3、Prompt Design

4、Memory 存储

5、知识库

参考

知识增量更新

向量数据库:

  • QDrant

    • https://github.com/qdrant/qdrant
  • milvus

6、前端展示

6.1、Gradio

6.2、Streamlit

参考

文档信息

-->

Search

    Table of Contents