当前位置: 首页 > 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.xdnf.cn/news/1273951.html

相关文章:

  • Python数据分析常规步骤整理
  • [论文阅读] 人工智能 + 软件工程 | 大型语言模型对决传统方法:多语言漏洞修复能力大比拼
  • C# 中常用集合以及使用场景
  • 服务器硬件电路设计之 I2C 问答(三):I2C 总线上可以接多少个设备?如何保证数据的准确性?
  • Redis如何实现一个分布式锁?
  • ubuntu22.04安装autoware.universe
  • 进度、质量、安全的关系随笔
  • scala 样例类
  • 计算机视觉(CV)——图像相关基本概念
  • #C语言——刷题攻略:牛客编程入门训练(八):分支控制(二)
  • 7、西门子PLC基础术语:数据单位、存储区域、寻址方式、字节序
  • scanpy单细胞转录组python教程(二):单样本数据分析之数据质控
  • Spring Boot 开发三板斧:POM 依赖、注解与配置管理
  • 第三章 向量
  • 锂电池SOH预测 | 第35讲 Matlab基于BiLSTM的锂电池健康状态估计(锂电池SOH预测),附锂电池最新文章汇集
  • Python高阶
  • spring-boot-starter-data-redis 与 org.redisson 区别 联系
  • vue如何监听localstorage
  • 嵌入式开发学习(第三阶段第四天 Linux系统开发)
  • 复现论文《基于深度强化学习的微能源网能量管理与优化策略研究》
  • 【渲染流水线】[几何阶段]-[归一化NDC]以UnityURP为例
  • 【每天一个知识点】深度领域对抗神经网络
  • WPFC#超市管理系统(5)商品布局、顾客登录、商品下单
  • 【C++详解】红黑树规则讲解与模拟实现(内附红黑树插入操作思维导图)
  • ES 调优帖:Gateway 批量写入性能优化实践
  • C语言基础05——指针
  • 计算机视觉全景指南:从OpenCV预处理到YOLOv8实战,解锁多模态AI时代(第五章)
  • MVC结构变种——第三章核心视图及控制器的整体逻辑
  • 机器学习——TF-IDF 衡量词语在文档中重要程度
  • Java 日常开发笔记(小程序页面交互传参-id)