Spaces:
Build error
Build error
File size: 8,816 Bytes
4d2fcd2 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 | # Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import argparse
import os
from agent import BrowserAgent
from computers import BrowserbaseComputer, PlaywrightComputer
PLAYWRIGHT_SCREEN_SIZE = (1440, 900)
def main() -> int:
parser = argparse.ArgumentParser(description="Run the browser agent with a query.")
parser.add_argument(
"--query",
type=str,
required=True,
help="The query for the browser agent to execute.",
)
parser.add_argument(
"--env",
type=str,
choices=("playwright", "browserbase"),
default="playwright",
help="The computer use environment to use.",
)
parser.add_argument(
"--initial_url",
type=str,
default="https://www.google.com",
help="The inital URL loaded for the computer.",
)
parser.add_argument(
"--highlight_mouse",
action="store_true",
default=False,
help="If possible, highlight the location of the mouse.",
)
parser.add_argument(
"--model",
default='gemini-2.5-computer-use-preview-10-2025',
help="Set which main model to use.",
)
args = parser.parse_args()
if args.env == "playwright":
env = PlaywrightComputer(
screen_size=PLAYWRIGHT_SCREEN_SIZE,
initial_url=args.initial_url,
highlight_mouse=args.highlight_mouse,
)
elif args.env == "browserbase":
env = BrowserbaseComputer(
screen_size=PLAYWRIGHT_SCREEN_SIZE,
initial_url=args.initial_url
)
else:
raise ValueError("Unknown environment: ", args.env)
with env as browser_computer:
agent = BrowserAgent(
browser_computer=browser_computer,
query=args.query,
model_name=args.model,
)
agent.agent_loop()
return 0
def run_genflow():
env = PlaywrightComputer(
screen_size=PLAYWRIGHT_SCREEN_SIZE,
initial_url="https://wenku.baidu.com/ndcore/browse/aiunion?fr=options_AIcard_1&_wkts_=1761290807747&bdQuery=genflow&t=1761290807744&tabType=genflow&aiCreat=genflow",
# initial_url="https://www.doubao.com/chat/",
highlight_mouse=True, # 如果指定,代理将尝试在屏幕截图中突出显示鼠标光标的位置。这对于可视化调试很有用。
)
# query="在提示文本为'输入问题,交给GenFlow的'搜索条中输入‘百度’,点击发送按钮",
search_query = [
"《劳动法》中关于加班与调休的相关规定解读",
"不到喀什游不算到新疆,不到古城游不算到喀什,最后一天来一场深度的早到晚古城游!",
"为何说地球正处在5大灾难性生态临界点?",
"为什么要进行展示设计案例分析",
"镜子为什么不能正对床?",
"鹅绒羽绒服比鸭绒羽绒服好在哪?",
"如何从根本解决宿舍问题,改善职工住宿条件?",
"独生子女为什么不能全部继承父母遗产?",
"写一篇忧郁文艺小诗 一节六句话",
"9.3阅兵有哪些国家参加",
"今年戛纳电影节有哪些国家的影片参展",
"最近的世界移动通信大会有哪些国家的企业参会",
"今年日本东京国际动漫节吸引了哪些国家的动漫团队参与",
"今年年大阪·关西世界园艺博览会有哪些国家设立展馆",
"最近德国法兰克福国际车展有哪些国家的汽车品牌亮相",
"第九届世界无人机大会有哪些国家的企业和团队参加",
"最近亚洲物流展CeMAT有哪些国家的物流企业参展",
"最近世界教育创新峰会有哪些国家的教育机构代表出席",
"2025年意大利美食节有哪些国家带来特色美食展示"
]
query = "帮我生成一份关于新能源领域的投资报告"
citerion = """
核心评价维度:
1. 内容与逻辑 (灵魂)
- 清晰的投资论点: 报告是否有明确、可验证的“买入/卖出”观点及目标价?观点是否新颖,提供了市场尚未察觉的洞察?
- 严谨的逻辑链条: 从行业分析到公司研究,再到财务估值,所有论据是否像积木一样牢固支撑核心论点?推理过程是否严密,无逻辑跳跃?
- 研究的深度与广度: 是否覆盖了行业(格局、驱动)、公司(模式、护城河)、财务(三张表、比率)和估值(假设合理性)?
2. 数据与事实 (基石)
- 准确性与时效性: 数据是否准确?来源(年报、权威统计)是否可靠?信息是否最新?
- 相关性与解读: 数据是否与论点强相关?是否对数据背后的业务含义进行了深入解读,而非简单罗列?
3. 结构与表达 (骨架)
- 结构清晰: 是否有清晰的摘要、目录和逻辑流程?(例如:摘要->行业->公司->财务->估值->风险->结论)
- 语言专业: 语言是否精炼、客观、准确?专业术语使用是否恰当?
- 可视化: 图表是否清晰、直观?排版是否专业,重点突出?
4. 客观性与风险意识 (灵魂试金石)
- 客观中立: 是否同时呈现了正反论据?是否存在明显偏见?
- 全面的风险分析: 是否识别并深入分析了关键的下行风险(行业、公司、宏观、估值)?是否讨论了风险对投资论点的影响?"""
query = "查找5个简历模板链接"
citerion = "通过访问链接确保每一条都是有效的, 并且资源链接的数量是否满足5条。有时候链接通过页面卡片提供,你需要通过点击卡片进行链接跳转。"
prompt = f"""
GenFlow是一个AI聊天机器人。对于给定的问题,他会执行'任务规划','任务执行','输出结果'三个步骤。
在GenFlow执行每个步骤时,'任务规划','任务执行','输出结果'会分别呈现黑色或灰色。黑色代表该步骤完成,灰色代表该步骤未完成。
你需要作为测试员,在它的网页底部搜索栏中输入用户提交的问题,在GenFlow执行完三个任务后,客观地判断其最终是否按照给定标准:{citerion} 回答了问题。
GenFlow返回的内容可能比较长,你可以多次执行'scroll_at'操作来查看网页中它返回的上下文。
GenFlow有时会呈现左边主页面,右边预览区域。在这种情况下执行'scroll_at'的时候你要注意鼠标位置。
通过反复的滚动,确保主页面和预览区域已经滚动到底。预览区域往往很长,所以你需要多次执行'scroll_at'操作,确保2次滚动操作看到的网页完全一样为止, 给出最终客观评价.
GenFlow一定会给出'输出结果',请保持足够的耐心!
Regardless of the input language, you need to output in Chinese.
"""
citerion = """提交任务"1+1,2+3和4+5",判断结果分别是不是2,5,9"""
query = f"""比较genflow和doubao哪个在数学计算上的能力更好。标准: {citerion}"""
prompt = f"""
GenFlow和DouBao是2个AI聊天机器人。
你需要作为测试员,根据用户需求在它们的网页端搜索栏中输入问题,评测它们的能力
初始状态你处于DouBao的首页,在测试完毕后,你需要切换到GenFlow的首页进行测试。然后给出最终结论
DouBao的url是 <url>https://www.doubao.com/chat/</url>
GenFlow的url是 <url>https://wenku.baidu.com/ndcore/browse/aiunion?fr=options_AIcard_1&_wkts_=1761290807747&bdQuery=genflow&t=1761290807744&tabType=genflow&aiCreat=genflow"</url>
AI返回的内容可能比较长,你可以多次执行'scroll_at'操作来查看网页中它们返回的上下文。
你需要多次执行'scroll_at'操作,确保2次滚动操作看到的网页完全一样为止, 给出最终客观评价.
Regardless of the input language, you need to output in Chinese.
"""
with env as browser_computer:
agent = BrowserAgent(
browser_computer=browser_computer,
query=query,
system_prompt=prompt,
model_name='gemini-2.5-computer-use-preview-10-2025',
)
agent.agent_loop()
# pass
if __name__ == "__main__":
run_genflow()
|