AgentOps - 帮助开发者构建、评估和监控 AI Agent

news2025/5/24 20:11:26

在这里插入图片描述

文章目录

    • 一、关于 AgentOps
    • 二、关键集成 🔌
    • 三、快速开始 ⌨️
        • 2行代码中的Session replays
      • 首类开发者体验
    • 四、集成 🦾
      • OpenAI Agents SDK 🖇️
      • CrewAI 🛶
      • AG2 🤖
      • Camel AI 🐪
      • Langchain 🦜🔗
      • Cohere ⌨️
      • Anthropic ﹨
      • Mistral 〽️
      • CamelAI ﹨
      • LiteLLM 🚅
      • LlamaIndex 🦙
      • Llama Stack 🦙🥞
      • SwarmZero AI 🐝
    • 五、时间旅行调试 🔮
    • 六、Agent Arena 🥊
    • 七、评估路线图 🧭
    • 八、调试路线图 🧭
      • 为什么选择 AgentOps? 🤔
    • 九、使用 AgentOps 的热门项目


一、关于 AgentOps

AgentOps 帮助开发者构建、评估和监控 AI 代理。从原型到生产。

  • github : https://github.com/AgentOps-AI/agentops
  • 官方文档:https://docs.agentops.ai/introduction
  • 文档对话:https://www.entelligence.ai/AgentOps-AI&agentops
  • Dashboard : https://app.agentops.ai/?ref=gh
  • Twitter | Discord

视频示例: agentops_demo.mp4


二、关键集成 🔌


在这里插入图片描述


  • https://docs.agentops.ai/v1/integrations/openai-agents
  • https://docs.agentops.ai/v1/integrations/crewai
  • https://docs.ag2.ai/docs/ecosystem/agentops
  • https://docs.agentops.ai/v1/integrations/microsoft
  • https://docs.agentops.ai/v1/integrations/langchain
  • https://docs.agentops.ai/v1/integrations/camel
  • https://docs.llamaindex.ai/en/stable/module_guides/observability/?h=agentops#agentops
  • https://docs.agentops.ai/v1/integrations/cohere

📊 重放分析和调试步骤式代理执行图
💸 LLM 成本管理跟踪 LLM 基础模型提供商的花费
🧪 代理基准测试将您的代理与 1,000+ 评估进行测试
🔐 合规性和安全性检测常见的提示注入和数据泄露攻击
🤝 框架集成与 CrewAI、AG2 (AutoGen)、Camel AI 和 LangChain 的原生集成

三、快速开始 ⌨️

pip install agentops

2行代码中的Session replays

初始化 AgentOps 客户端并自动获取所有 LLM 调用的分析。

获取API密钥:https://app.agentops.ai/settings/projects

import agentops

# Beginning of your program (i.e. main.py, __init__.py)
agentops.init( < INSERT YOUR API KEY HERE >)

...

# End of program
agentops.end_session('Success')

所有您的会话都可以在AgentOps仪表板上查看


Agent Debugging


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


Session Replays


在这里插入图片描述


Summary Analytics
在这里插入图片描述


在这里插入图片描述


首类开发者体验

使用尽可能少的代码为您的代理、工具和函数添加强大的可观察性:一次一行。

参考文档: http://docs.agentops.ai

# Create a session span (root for all other spans)
from agentops.sdk.decorators import session

@session
def my_workflow():
    # Your session code here
    return result

# Create an agent span for tracking agent operations
from agentops.sdk.decorators import agent

@agent
class MyAgent:
    def __init__(self, name):
        self.name = name
        
    # Agent methods here

# Create operation/task spans for tracking specific operations
from agentops.sdk.decorators import operation, task

@operation  # or @task
def process_data(data):
    # Process the data
    return result

# Create workflow spans for tracking multi-operation workflows
from agentops.sdk.decorators import workflow

@workflow
def my_workflow(data):
    # Workflow implementation
    return result

# Nest decorators for proper span hierarchy
from agentops.sdk.decorators import session, agent, operation

@agent
class MyAgent:
    @operation
    def nested_operation(self, message):
        return f"Processed: {message}"
        
    @operation
    def main_operation(self):
        result = self.nested_operation("test message")
        return result

@session
def my_session():
    agent = MyAgent()
    return agent.main_operation()

所有装饰器支持:

  • 输入/输出记录
  • 异常处理
  • 异步/等待函数
  • 发电机功能
  • 自定义属性和名称

四、集成 🦾


OpenAI Agents SDK 🖇️

构建多智能体系统,使用工具、交接和防护措施。AgentOps 提供与 OpenAI Agents 的一级集成。

pip install agents-sdk

  • AgentOps集成示例
  • 官方CrewAI文档

CrewAI 🛶

只需两行代码即可构建具有可观察性的Build Crew代理。只需在您的环境中设置AGENTOPS_API_KEY,您的队伍将在AgentOps仪表板上获得自动监控。

pip install 'crewai[agentops]'
  • AgentOps 集成示例
  • 官方 CrewAI 文档

AG2 🤖

只需两行代码,即可为AG2(前身为AutoGen)代理添加完整的可观察性和监控。在你的环境中设置一个AGENTOPS_API_KEY并调用agentops.init()

  • AG2 可观测性示例
  • AG2 - 代理操作文档

Camel AI 🐪

跟踪和分析具有完全可观测性的CAMEL代理。在您的环境中设置AGENTOPS_API_KEY并初始化AgentOps以开始使用。

  • Camel AI - 高级代理通信框架
  • AgentOps 集成示例
  • 官方 Camel AI 文档

安装

pip install "camel-ai[all]==0.2.11"
pip install agentops

import os
import agentops
from camel.agents import ChatAgent
from camel.messages import BaseMessage
from camel.models import ModelFactory
from camel.types import ModelPlatformType, ModelType

# Initialize AgentOps
agentops.init(os.getenv("AGENTOPS_API_KEY"), default_tags=["CAMEL Example"])

# Import toolkits after AgentOps init for tracking
from camel.toolkits import SearchToolkit

# Set up the agent with search tools
sys_msg = BaseMessage.make_assistant_message(
    role_name='Tools calling operator',
    content='You are a helpful assistant'
)

# Configure tools and model
tools = [*SearchToolkit().get_tools()]
model = ModelFactory.create(
    model_platform=ModelPlatformType.OPENAI,
    model_type=ModelType.GPT_4O_MINI,
)

# Create and run the agent
camel_agent = ChatAgent(
    system_message=sys_msg,
    model=model,
    tools=tools,
)

response = camel_agent.step("What is AgentOps?")
print(response)

agentops.end_session("Success")

查看我们的Camel集成指南以获取更多示例,包括多代理场景。


Langchain 🦜🔗

AgentOps可以无缝地与使用Langchain构建的应用程序协同工作。要使用此处理程序,将Langchain作为可选依赖项安装:


安装

pip install agentops[langchain]

要使用处理器,导入并设置

import os
from langchain.chat_models import ChatOpenAI
from langchain.agents import initialize_agent, AgentType
from agentops.partners.langchain_callback_handler import LangchainCallbackHandler

AGENTOPS_API_KEY = os.environ['AGENTOPS_API_KEY']
handler = LangchainCallbackHandler(api_key=AGENTOPS_API_KEY, tags=['Langchain Example'])

llm = ChatOpenAI(openai_api_key=OPENAI_API_KEY,
                 callbacks=[handler],
                 model='gpt-3.5-turbo')

agent = initialize_agent(tools,
                         llm,
                         agent=AgentType.CHAT_ZERO_SHOT_REACT_DESCRIPTION,
                         verbose=True,
                         callbacks=[handler], # You must pass in a callback handler to record your agent
                         handle_parsing_errors=True)

查看Langchain 示例笔记本以获取更多详细信息,包括异步处理程序。


Cohere ⌨️

首先类支持 Cohere(>=5.4.0)。这是一个持续集成的项目,如果您需要任何额外的功能,请通过 Discord 联系我们!

  • AgentOps集成示例
  • 官方Cohere文档

安装

pip install cohere

import cohere
import agentops

# Beginning of program's code (i.e. main.py, __init__.py)
agentops.init(<INSERT YOUR API KEY HERE>)
co = cohere.Client()

chat = co.chat(
    message="Is it pronounced ceaux-hear or co-hehray?"
)

print(chat)

agentops.end_session('Success')

import cohere
import agentops

# Beginning of program's code (i.e. main.py, __init__.py)
agentops.init(<INSERT YOUR API KEY HERE>)

co = cohere.Client()

stream = co.chat_stream(
    message="Write me a haiku about the synergies between Cohere and AgentOps"
)

for event in stream:
    if event.event_type == "text-generation":
        print(event.text, end='')

agentops.end_session('Success')

Anthropic ﹨

跟踪代理使用Anthropic Python SDK(>=0.32.0)构建。

  • AgentOps 集成指南
  • 官方Anthropic文档

安装

pip install anthropic

import anthropic
import agentops

# Beginning of program's code (i.e. main.py, __init__.py)
agentops.init(<INSERT YOUR API KEY HERE>)

client = anthropic.Anthropic(
    # This is the default and can be omitted
    api_key=os.environ.get("ANTHROPIC_API_KEY"),
)

message = client.messages.create(
        max_tokens=1024,
        messages=[
            {
                "role": "user",
                "content": "Tell me a cool fact about AgentOps",
            }
        ],
        model="claude-3-opus-20240229",
    )
print(message.content)

agentops.end_session('Success')

流式传输

import anthropic
import agentops

# Beginning of program's code (i.e. main.py, __init__.py)
agentops.init(<INSERT YOUR API KEY HERE>)

client = anthropic.Anthropic(
    # This is the default and can be omitted
    api_key=os.environ.get("ANTHROPIC_API_KEY"),
)

stream = client.messages.create(
    max_tokens=1024,
    model="claude-3-opus-20240229",
    messages=[
        {
            "role": "user",
            "content": "Tell me something cool about streaming agents",
        }
    ],
    stream=True,
)

response = ""
for event in stream:
    if event.type == "content_block_delta":
        response += event.delta.text
    elif event.type == "message_stop":
        print("\n")
        print(response)
        print("\n")

异步

import asyncio
from anthropic import AsyncAnthropic

client = AsyncAnthropic(
    # This is the default and can be omitted
    api_key=os.environ.get("ANTHROPIC_API_KEY"),
)

async def main() -> None:
    message = await client.messages.create(
        max_tokens=1024,
        messages=[
            {
                "role": "user",
                "content": "Tell me something interesting about async agents",
            }
        ],
        model="claude-3-opus-20240229",
    )
    print(message.content)

await main()

Mistral 〽️

使用 Mistral Python SDK (>=0.32.0) 构建的跟踪代理。

  • AgentOps集成示例
  • Mistral官方文档
pip install mistralai

Sync

from mistralai import Mistral
import agentops

# Beginning of program's code (i.e. main.py, __init__.py)
agentops.init(<INSERT YOUR API KEY HERE>)

client = Mistral(
    # This is the default and can be omitted
    api_key=os.environ.get("MISTRAL_API_KEY"),
)

message = client.chat.complete(
        messages=[
            {
                "role": "user",
                "content": "Tell me a cool fact about AgentOps",
            }
        ],
        model="open-mistral-nemo",
    )
print(message.choices[0].message.content)

agentops.end_session('Success')

from mistralai import Mistral
import agentops

# Beginning of program's code (i.e. main.py, __init__.py)
agentops.init(<INSERT YOUR API KEY HERE>)

client = Mistral(
    # This is the default and can be omitted
    api_key=os.environ.get("MISTRAL_API_KEY"),
)

message = client.chat.stream(
        messages=[
            {
                "role": "user",
                "content": "Tell me something cool about streaming agents",
            }
        ],
        model="open-mistral-nemo",
    )

response = ""
for event in message:
    if event.data.choices[0].finish_reason == "stop":
        print("\n")
        print(response)
        print("\n")
    else:
        response += event.text

agentops.end_session('Success')

异步

import asyncio
from mistralai import Mistral

client = Mistral(
    # This is the default and can be omitted
    api_key=os.environ.get("MISTRAL_API_KEY"),
)

async def main() -> None:
    message = await client.chat.complete_async(
        messages=[
            {
                "role": "user",
                "content": "Tell me something interesting about async agents",
            }
        ],
        model="open-mistral-nemo",
    )
    print(message.choices[0].message.content)

await main()

异步流

import asyncio
from mistralai import Mistral

client = Mistral(
    # This is the default and can be omitted
    api_key=os.environ.get("MISTRAL_API_KEY"),
)

async def main() -> None:
    message = await client.chat.stream_async(
        messages=[
            {
                "role": "user",
                "content": "Tell me something interesting about async streaming agents",
            }
        ],
        model="open-mistral-nemo",
    )

    response = ""
    async for event in message:
        if event.data.choices[0].finish_reason == "stop":
            print("\n")
            print(response)
            print("\n")
        else:
            response += event.text

await main()

CamelAI ﹨

使用 CamelAI Python SDK (>=0.32.0) 构建的 Track agents。

  • CamelAI集成指南
  • CamelAI官方文档

安装

pip install camel-ai[all]
pip install agentops

#Import Dependencies
import agentops
import os
from getpass import getpass
from dotenv import load_dotenv

#Set Keys
load_dotenv()
openai_api_key = os.getenv("OPENAI_API_KEY") or "<your openai key here>"
agentops_api_key = os.getenv("AGENTOPS_API_KEY") or "<your agentops key here>"

您可以在这里找到使用示例!:
https://github.com/AgentOps-AI/agentops/blob/main/examples/camelai_examples/README.md


LiteLLM 🚅

AgentOps 提供了对 LiteLLM(>=1.3.1) 的支持,允许您使用相同的输入/输出格式调用 100+ 个 LLM。

  • AgentOps 集成示例
  • 官方 LiteLLM 文档

安装

pip install litellm

# Do not use LiteLLM like this
# from litellm import completion
# ...
# response = completion(model="claude-3", messages=messages)

# Use LiteLLM like this
import litellm
...
response = litellm.completion(model="claude-3", messages=messages)
# or
response = await litellm.acompletion(model="claude-3", messages=messages)

LlamaIndex 🦙

AgentOps 与使用 LlamaIndex 构建的应用无缝协作,LlamaIndex 是一个用于构建具有 LLM 的上下文增强生成式 AI 应用程序的框架。


安装

pip install llama-index-instrumentation-agentops

为了使用该处理器,导入并设置

from llama_index.core import set_global_handler

# NOTE: Feel free to set your AgentOps environment variables (e.g., 'AGENTOPS_API_KEY')
# as outlined in the AgentOps documentation, or pass the equivalent keyword arguments
# anticipated by AgentOps' AOClient as **eval_params in set_global_handler.

set_global_handler("agentops")

查看LlamaIndex 文档 以获取更多详情。


Llama Stack 🦙🥞

AgentOps 提供了对 Llama Stack Python 客户端(>=0.0.53)的支持,允许您监控您的 Agentic 应用程序。

  • AgentOps集成示例1
  • AgentOps集成示例2
  • 官方 Llama Stack Python 客户端

SwarmZero AI 🐝

跟踪和分析 SwarmZero 代理,具有全面的可观察性。在你的环境中设置一个 AGENTOPS_API_KEY,然后初始化 AgentOps 以开始使用。

  • SwarmZero - 高级多智能体框架
  • AgentOps集成示例
  • SwarmZero AI 集成示例
  • SwarmZero AI - 代理操作文档
  • SwarmZero 官方 Python SDK

安装

pip install swarmzero
pip install agentops

from dotenv import load_dotenv
load_dotenv()

import agentops
agentops.init(<INSERT YOUR API KEY HERE>)

from swarmzero import Agent, Swarm
# ...

五、时间旅行调试 🔮


在这里插入图片描述


试试 : https://app.agentops.ai/timetravel


六、Agent Arena 🥊

(即将推出!)


七、评估路线图 🧭

平台仪表板评估
✅ Python SDK✅ 多会话和跨会话指标✅ 自定义评估指标
🚧 评估构建器 API✅ 自定义事件标签跟踪🔜 代理分数卡
✅ Javascript/Typescript SDK✅ 会话重放🔜 评估游乐场 + 排行榜

八、调试路线图 🧭

性能测试环境LLM 测试推理和执行测试
✅ 事件延迟分析🔜 非平稳环境测试🔜 LLM 非确定性函数检测🚧 无限循环和递归思维检测
✅ 代理工作流程执行定价🔜 多模态环境🚧 令牌限制溢出标志🔜 故障推理检测
🚧 成功验证器(外部)🔜 执行容器🔜 上下文限制溢出标志🔜 生成代码验证器
🔜 代理控制器/技能测试✅ 蜜罐和提示注入检测 (PromptArmor)🔜 API 账单跟踪🔜 错误断点分析
🔜 信息上下文约束测试🔜 反代理障碍(例如,验证码)🔜 CI/CD 集成检查
🔜 回归测试🔜 多代理框架可视化

为什么选择 AgentOps? 🤔

没有合适的工具,AI代理将变得缓慢、昂贵且不可靠。我们的使命是将您的代理从原型过渡到生产。以下是AgentOps脱颖而出的原因:

  • 全面可观察性: 跟踪您的AI代理的性能、用户交互和API使用情况。
  • 实时监控:通过会话回放、指标和实时监控工具立即获得洞察。
  • 成本控制:监控和管理你在LLM和API调用上的支出。
  • 故障检测:快速识别并响应代理故障和多代理交互问题。
  • 工具使用统计: 了解您的代理如何使用外部工具,并通过详细的分析来理解。
  • 会话级指标:通过全面的统计数据获得您代理人的会话的整体视图。
    AgentOps 是设计用来让代理的可观察性、测试和监控变得简单。

九、使用 AgentOps 的热门项目

RepositoryStars
geekan / MetaGPT42787
run-llama / llama_index34446
crewAIInc / crewAI18287
camel-ai / camel5166
superagent-ai / superagent5050
iyaja / llama-fs4713
BasedHardware / Omi2723
MervinPraison / PraisonAI2007
AgentOps-AI / Jaiqu272
swarmzero / swarmzero195
strnad / CrewAI-Studio134
alejandro-ao / exa-crewai55
tonykipkemboi / youtube_yapper_trapper47
sethcoast / cover-letter-builder27
bhancockio / chatgpt4o-analysis19
breakstring / Agentic_Story_Book_Workflow14
MULTI-ON / multion-python13

Generated using github-dependents-info, by Nicolas Vuillamy


2025-04-16(三)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2336659.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

leetcode 122. Best Time to Buy and Sell Stock II

题目描述 这道题可以用贪心思想解决。 本文介绍用动态规划解决。本题分析方法与第121题一样&#xff0c;详见leetcode 121. Best Time to Buy and Sell Stock 只有一点区别。第121题全程只能买入1次&#xff0c;因此如果第i天买入股票&#xff0c;买之前的金额肯定是初始金额…

【ROS】代价地图

【ROS】代价地图 前言代价地图&#xff08;Costmap&#xff09;概述代价地图的参数costmap_common_params.yaml 参数说明costmap_common_params.yaml 示例说明global_costmap.yaml 参数说明global_costmap.yaml 示例说明local_costmap.yaml 参数说明local_costmap.yaml 示例说明…

《Against The Achilles’ Heel: A Survey on Red Teaming for Generative Models》全文阅读

《Against The Achilles’ Heel: A Survey on Red Teaming for Generative Models》 突破阿基里斯之踵&#xff1a;生成模型红队对抗综述 摘要 生成模型正迅速流行并被整合到日常应用中&#xff0c;随着各种漏洞暴露&#xff0c;其安全使用引发担忧。鉴于此&#xff0c;红队…

datagrip连接mysql问题5.7.26

1.Case sensitivity: plainmixed, delimitedexac Remote host terminated the handshake. 区分大小写&#xff1a;plain混合&#xff0c;分隔exac 远程主机终止了握手。 原因:usessl 参数用于指定是否使用 SSL&#xff08;Secure Sockets Layer&#xff09;加密来保护数据传…

探索亮数据Web Unlocker API:让谷歌学术网页科研数据 “触手可及”

本文目录 一、引言二、Web Unlocker API 功能亮点三、Web Unlocker API 实战1.配置网页解锁器2.定位相关数据3.编写代码 四、Web Scraper API技术亮点 五、SERP API技术亮点 六、总结 一、引言 网页数据宛如一座蕴藏着无限价值的宝库&#xff0c;无论是企业洞察市场动态、制定…

【本地MinIO图床远程访问】Cpolar TCP隧道+PicGo插件,让MinIO图床一键触达

写在前面&#xff1a;本博客仅作记录学习之用&#xff0c;部分图片来自网络&#xff0c;如需引用请注明出处&#xff0c;同时如有侵犯您的权益&#xff0c;请联系删除&#xff01; 文章目录 前言MinIO本地安装与配置cpolar 内网穿透PicGo 安装MinIO远程访问总结互动致谢参考目录…

Policy Gradient思想、REINFORCE算法,以及贪吃蛇小游戏(一)

文章目录 Policy Gradient思想论文REINFORCE算法论文Policy Gradient思想和REINFORCE算法的关系用一句人话解释什么是REINFORCE算法策略这个东西实在是太抽象了,它可以是一个什么我们能实际感受到的东西?你说的这个我理解了,但这个东西,我怎么优化?在一堆函数中,找到最优…

Profibus DP主站转modbusTCP网关与dp从站通讯案例

Profibus DP主站转modbusTCP网关与dp从站通讯案例 在当前工业自动化的浪潮中&#xff0c;不同协议之间的通讯转换成为了提升生产效率和实现设备互联的关键。Profibus DP作为一种广泛应用的现场总线技术&#xff0c;与Modbus TCP的结合&#xff0c;为工业自动化系统的集成带来了…

快速部署大模型 Openwebui + Ollama + deepSeek-R1模型

背景 本文主要快速部署一个带有web可交互界面的大模型的应用&#xff0c;主要用于开发测试节点&#xff0c;其中涉及到的三个组件为 open-webui Ollama deepSeek开放平台 首先 Ollama 是一个开源的本地化大模型部署工具,提供与OpenAI兼容的Api接口&#xff0c;可以快速的运…

H.265硬件视频编码器xk265代码阅读 - 帧内预测

源代码地址&#xff1a; https://github.com/openasic-org/xk265 帧内预测具体逻辑包含在代码xk265\rtl\rec\rec_intra\intra_pred.v 文件中。 module intra_pred() 看起来是每次计算某个4x4块的预测像素值。 以下代码用来算每个pred_angle的具体数值&#xff0c;每个mode_i对应…

Arcgis经纬线标注设置(英文、刻度显示)

在arcgis软件中绘制地图边框&#xff0c;添加经纬度度时常常面临经纬度出现中文&#xff0c;如下图所示&#xff1a; 解决方法&#xff0c;设置一下Arcgis的语言 点击高级--确认 这样Arcgis就转为英文版了&#xff0c;此时在来看经纬线刻度的标注&#xff0c;自动变成英文

Windows安装Ollama并指定安装路径(默认C盘)

手打不易&#xff0c;如果转摘&#xff0c;请注明出处&#xff01; 注明原文&#xff1a;http://blog.csdn.net/q258523454/article/details/147289192 一、下载Ollama 访问Ollama官网 打开浏览器&#xff0c;访问Ollama的官方网站&#xff1a;https://ollama.ai/。 在官网首页…

Python自动化处理奖金分摊:基于连续空值的智能分配算法升级

Python自动化处理奖金分摊&#xff1a;基于连续空值的智能分配算法升级 原创 IT小本本 IT小本本 2025年04月04日 02:00 北京 引言 在企业薪酬管理中&#xff0c;团队奖金分配常涉及复杂的分摊规则。传统手工分摊不仅效率低下&#xff0c;还容易因人为疏漏导致分配不公。 本文…

AI工具箱源码+成品网站源码+springboot+vue

大家好&#xff0c;今天给大家分享一个靠AI广告赚钱的项目&#xff1a;AI工具箱成品网站源码&#xff0c;源码支持二开&#xff0c;但不允许转售&#xff01;&#xff01; 本人专门为小型企业和个人提供的解决方案。 不懂技术的也可以直接部署工具箱网站&#xff0c;成为站长&…

如何下载免费地图数据?

按照以下步骤下载免费地图数据。 1、安装GIS地图下载器 从GeoSaaS&#xff08;.COM&#xff09;官网下载“GIS地图下载器”软件&#xff1a;&#xff0c;安装完成后桌面上出现”GIS地图下载器“图标。 双击桌面图标打开”GIS地图下载器“ 2、下载地图数据 点击主界面底部的“…

IO 口作为外部中断输入

外部中断 1. NVIC2. EXTI 1. NVIC NVIC即嵌套向量中断控制器&#xff0c;它是内核的器件&#xff0c;M3/M4/M7 内核都是支持 256 个中断&#xff0c;其中包含了 16 个系统中断和 240 个外部中断&#xff0c;并且具有 256 级的可编程中断设置。然而芯片厂商一般不会把内核的这些…

《MySQL基础:了解MySQL周边概念》

1.登录选项的认识 -h&#xff1a;指明登录部署了mysql服务的主机&#xff0c;默认为127.0.0.1-P&#xff1a;指明要访问的端口号&#xff0c;默认为3306-u&#xff1a;指明登录用户-p&#xff1a;指明登录密码 2.什么是数据库 2.1认识数据库 第一点理解。 mysql是数据库的客户…

RCL谐振电压增益曲线

谐振电路如何通过调频实现稳压&#xff1f; 为什么要做谐振&#xff1f; 在谐振状态实现ZVS导通&#xff0c;小电流关断 电压增益GVo/Vin&#xff0c;相当于产出投入比 当ff0时&#xff0c;G1时&#xff0c;输出电压输入电压 当G<1时&#xff0c;输出电压<输入电压 …

JavaScript:表单及正则表达式验证

今天我要介绍的是在JavaScript中关于表单验证内容的知识点介绍&#xff1a; 关于表单验证&#xff0c;我接下来则直接将内容以及效果显示出来并作注解&#xff0c;这样可以清晰看见这个表达验证的妙用&#xff1a; <form id"ff" action"https://www.baidu.…

一、Appium环境安装

找了一圈操作手机的工具或软件&#xff0c;踩了好多坑&#xff0c;最后决定用这个工具(影刀RPA手机用的也是这个)&#xff0c;目前最新的版本是v2.17.1&#xff0c;是基于nodejs环境的&#xff0c;有两种方式&#xff0c;我只试了第一种方式&#xff0c;第二种方式应该是比较简…