当前位置: 首页 > news >正文

ADK【4】内置前端调用流程

文章目录

  • 说明
  • ADK内置前端
  • ADK内置前端开启流程

说明

  • 本文学自赋范社区公开课,仅供学习和交流使用,不用作任何商业用途!

ADK内置前端

  • ADK作为最新一代Agent开发框架,不仅功能特性非常领先,而且还内置了非常多的工具,包括Gemini系列模型自带的谷歌搜索、文件检索和代码解释器等功能,同时ADK还拥有内置对话前端,方便开发者更加直观的感受Agent的对话流程,并且实时追踪Agent的events流。
  • 如果Agent中存在外部工具调用,则在内置前端中,还能进一步观察到Agent调用外部工具完整流程,以及各环节调用信息,方便开发者即时debug。如果是使用Gemini模型,这个前端还支持语音和视频实时交互。
    在这里插入图片描述

ADK内置前端开启流程

  • 需要创建一个项目文件,如创建一个ADK_Chat文件夹。然后,创建基本文件结构。
  • 注意,如果是Windows系统,官方推荐手动创建项目文件基本结构,而不是采用IDE如Cursor等进行创建,以避免出现字符乱码情况。
ADK_Chat/
├── test_agent/
│   ├── agent.py
│   ├── __init__.py
│   ├── .env
├── __init__.py
└── ...
  • ADK_Chat目录下,创建虚拟环境,并安装adk和litellm库
uv venv
.venv\Scripts\activate
pip install litellm google-adk
  • test_gent/__init__.py文件中写入:
    from . import agent
    
  • 然后在.env中写入如下内容:
    OPENAI_API_BASE="https://dashscope.aliyuncs.com/compatible-mode/v1"
    OPENAI_API_KEY="sk-xxx"
    MODEL="deepseek/deepseek-r1-0528"
    
  • agent.py文件代码如下:
from google.adk.agents import Agent
from google.adk.models.lite_llm import LiteLlmimport os
from dotenv import load_dotenv
load_dotenv(override=True)DS_API_KEY = os.getenv("DS_API_KEY")
DS_BASE_URL = os.getenv("DS_BASE_URL")
MODEL=os.getenv("MODEL")
model = LiteLlm(model=MODEL,  api_base=DS_BASE_URL,api_key=DS_API_KEY
)root_agent = Agent(name="helpful_agent",model=model,instruction="你是一个乐于助人的中文助手。",description="回答用户的问题。"
)
  • 在根目录下输入,使用adk命令先进行Agent测试。
    (ADK_Chat) D:\Code\ADK_Chat>adk run test_agent
    

在这里插入图片描述

  • adk其实是伴随着安装包一起安装的调用测试命令。在使用adk命令时,无需单独设置主函数,只需要按照要求创建一个名为root_agent的主agent,即可顺利开启对话。同时当前项目结构中,.env文件用于保存一些关键变量信息,而__init__.py则负责将当前项目文件test_agent包装为一个可执行的Python文件。这也就是为何可以直接输入adk run test_agent的原因。
  • 在项目根目录下输入,在浏览器输入:http://127.0.0.1:8002/即可开启对话
adk web --port 8002

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 借助ADK run或者web等工具,则可以不进行任何额外其他设置,快速调用已经创建好的Agent并进行功能测试,期间关于会话ID、用户ID和APP ID等参数都会自动设置,且支持多轮对话并能打印详细的每个event信息,是非常高效的开发工具。
http://www.dtcms.com/a/323877.html

相关文章:

  • TDengine IDMP 快速体验(方式二 通过 docker)
  • 安全引导功能及ATF的启动过程(五)
  • Linux 虚拟机磁盘空间占满-全面清理方案
  • GoBy 工具联动 | GoBy AWVS 自动化漏扫工作流
  • [论文阅读] 人工智能 + 软件工程 | 大型语言模型对决传统方法:多语言漏洞修复能力大比拼
  • Kafka 生产者与消费者分区策略全解析:从原理到实践
  • 音视频学习(五十一):AAC编码器
  • Samba使用
  • java常见算法
  • 前端开发的奇技淫巧 --- 持续更新中
  • 《P3403 跳楼机》
  • 搭建本地 Git 服务器
  • Beelzebub靶机攻略
  • 昼夜节律修复方案(2025.08.10-08.17)
  • 基于python高校固定资产管理系统
  • vue3项目中在一个组件中点击了该组件中的一个按钮,那么如何去触发另一个组件中的事件?
  • 计算机网络:(十四)传输层(下)详细讲解TCP报文段的首部格式,TCP 可靠传输的实现与TCP 的流量控制
  • 纳维 - 斯托克斯方程的存在性与光滑性:流体世界的千年谜题
  • Dify集成 Echarts 实现智能数据报表集成与展示实战详解
  • 【东枫科技】FR2/FR3 毫米波原型开发平台
  • ubuntu 安装内核模块驱动 DKMS 介绍
  • 基于Ubuntu20.04的环境,编译QT5.15.17源码
  • 瑞芯微 RK3588 平台驱动开发 学习计划
  • Ubuntu 22.04 离线环境下完整安装 Anaconda、CUDA 12.1、NVIDIA 驱动及 cuDNN 8.9.3 教程
  • 设计模式(Design Pattern)
  • vue和react和uniapp的状态管理分别是什么,并且介绍和怎么使用
  • FreeRTOS 任务与中断函数:运行机制、关键区别与使用准则
  • 如何利用RabbitMQ延迟消息优化电商支付
  • MPLS特性之PHP(Penultimate Hop Popping)
  • Android的事件分发流程、Kotlin协程、4大组件、Handler机制、架构设计、性能优化、内存泄漏