赞
踩
原文地址:Build Autonomous AI Agents with Function Calling
将聊天机器人转变为可以与外部 API 交互的代理
2024 年 4 月 2 日
Function Call(函数调用)并不是什么新鲜事。2023 年 7 月,OpenAI 为其 GPT 模型引入了函数调用,该功能现在已被竞争对手采用。Google 的 Gemini API 最近支持它,Anthropic 正在将其集成到 Claude 中。函数调用对于大型语言模型 (LLMs )来说变得至关重要,从而增强了它们的功能。
考虑到这一点,我的目标是编写一个全面的教程,涵盖基本介绍之外的函数调用(已经有很多教程了)。重点将放在实际实施上,构建一个完全自主的人工智能代理,并将其与 Streamlit 集成,以获得类似 ChatGPT 的界面。虽然 OpenAI 用于演示,但本教程可以很容易地适用于其他LLMs支持函数调用,例如 Gemini。
Function Calling(函数调用)使开发人员能够描述函数(也称为工具,您可以将其视为模型要执行的操作,例如执行计算或下订单),并让模型智能地选择输出包含参数的 JSON 对象来调用这些函数。简单来说,它允许:
它开辟了许多可能性:
借用 Gemini 的函数调用文档,函数调用具有以下结构,在 OpenAI 中的工作原理相同
图片来自 Gemini 的函数调用文档
这似乎有些混乱,但我们将通过示例详细说明这个概念
在深入研究代码之前,先介绍一下Demo应用程序的架构。
在这里,我们为参观酒店的游客建立了一个助手。助手可以访问以下工具,这些工具允许助手访问外部应用程序。
get_items
, purchase_item
: 通过API连接到存储在数据库中的产品目录,分别用于检索项目列表和进行购买rag_pipeline_func
:使用检索增强生成 (RAG) 连接到文档存储,以从非结构化文本(例如酒店手册)中获取信息
现在让我们开始吧!
前往 Github 克隆我的代码。以下内容可以在笔记本中找到 function_calling_demo
。
还请创建并激活虚拟环境,然后 pip install -r requirements.txt
安装所需的软件包
我们首先连接到 OpenRouter。或者,只要您有 OpenAI API 密钥,使用原始 OpenAIChatGenerator
文件而不覆盖 也可以 api_base_url
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import os from dotenv import load_dotenv from haystack.components.generators.chat import OpenAIChatGenerator from haystack.utils import Secret from haystack.dataclasses import ChatMessage from haystack.components.generators.utils import print_streaming_chunk # Set your API key as environment variable before executing this load_dotenv() OPENROUTER_API_KEY = os.environ.get('OPENROUTER_API_KEY') chat_generator = OpenAIChatGenerator(api_key=Secret.from_env_var("OPENROUTER_API_KEY"), api_base_url="https://openrouter.ai/api/v1", model="openai/gpt-4-turbo-preview", streaming_c |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。