使用Python根据CSV数据筛选JSON日志条目

使用python根据csv数据筛选json日志条目

本教程详细介绍了如何使用Python从CSV文件中提取特定信息,并将其作为筛选条件,从结构不一致的JSON日志文件中匹配并提取相应的日志条目。文章涵盖了数据读取、字段匹配逻辑(包括直接匹配和字符串内嵌匹配)、结果输出,并提供了完整的代码示例和性能优化建议,帮助读者高效处理跨格式数据筛选任务。

1. 引言与问题背景

在日常的数据处理任务中,我们经常需要从不同的数据源中整合信息。一个常见的场景是,我们拥有一份结构化的数据(例如CSV文件),其中包含了一些关键标识符(如IP地址、时间戳),需要根据这些标识符去筛选另一份半结构化的日志数据(例如JSON日志文件)。由于数据源格式和内部结构可能存在差异,直接的文本匹配或简单的关联操作往往难以奏效。

本教程将以一个具体的案例为引:从CSV文件中读取客户端IP和时间戳,然后遍历JSON日志文件,查找包含这些IP和时间戳的日志条目,并将匹配的JSON日志条目输出到新文件。我们将重点解决以下挑战:

数据格式差异: CSV是逗号分隔的表格数据,JSON是键值对结构的文本。字段名称与结构差异: CSV中的字段名可能与JSON中的不同,甚至CSV中的某个值(如IP地址)可能嵌入在JSON某个字段的字符串内容中。高效匹配: 对于大型日志文件,如何实现高效的匹配。

2. 核心技术栈

我们将主要使用Python语言及其内置库来解决这个问题:

csv 模块: 用于读取和解析CSV文件。csv.DictReader 是一个非常有用的工具,它将CSV的每一行解析为一个字典,方便通过列名访问数据。json 模块: 用于读取和解析JSON数据。json.load() 或 json.loads() 可以将JSON格式的字符串或文件内容转换为Python字典或列表。字符串操作: 用于在JSON日志条目中查找嵌入的IP地址。

3. 数据准备与示例

为了演示,我们假设有以下CSV文件(input.csv)和JSON日志文件(logs.json)。

立即学习“Python免费学习笔记(深入)”;

input.csv 示例:

"clientip","destip","dest_hostname","timestamp""127.0.0.1","0.0.0.0","randomhost","2023-09-09T04:18:22.542Z""192.168.1.100","10.0.0.1","anotherhost","2023-09-10T10:00:00.000Z"

logs.json 示例:请注意,为了演示目的,我们假设 logs.json 是一个包含多个JSON对象的数组。如果您的JSON日志文件是每行一个JSON对象(JSONL格式),处理方式会有所不同,我们将在“注意事项”中提及。

[  {"log": "09-Sept-2023 rate-limit: info: client @xyz 127.0.0.1", "stream":"stderr", "time": "2023-09-09T04:18:22.542Z"},  {"log": "10-Sept-2023 connection: success from 192.168.1.100", "stream":"stdout", "time": "2023-09-10T10:00:00.000Z"},  {"log": "09-Sept-2023 some other event", "stream":"stderr", "time": "2023-09-09T05:00:00.000Z"},  {"log": "11-Sept-2023 auth failed for 10.0.0.5", "stream":"auth", "time": "2023-09-11T12:30:00.000Z"}]

我们的目标是找到 logs.json 中,其 time 字段与 input.csv 中的 timestamp 匹配,并且 log 字段内容包含 input.csv 中 clientip 的条目。

4. 代码实现

我们将分步构建Python脚本,实现上述筛选逻辑。

4.1 读取数据文件

首先,我们需要打开并读取CSV和JSON文件。

import csvimport jsonimport re # 引入正则表达式模块,用于更灵活的IP匹配def load_data(csv_filepath, json_filepath):    """    加载CSV和JSON文件数据。    :param csv_filepath: CSV文件路径    :param json_filepath: JSON文件路径    :return: 包含CSV数据的列表(字典形式)和JSON数据的列表(字典形式)    """    csv_data = []    json_data = []    try:        with open(csv_filepath, 'r', encoding='utf-8') as csvfile:            # 使用DictReader将每一行解析为字典            reader = csv.DictReader(csvfile)            for row in reader:                csv_data.append(row)        print(f"成功加载CSV文件: {csv_filepath}, 包含 {len(csv_data)} 条记录。")    except FileNotFoundError:        print(f"错误:CSV文件未找到,请检查路径: {csv_filepath}")        return [], []    except Exception as e:        print(f"加载CSV文件时发生错误: {e}")        return [], []    try:        with open(json_filepath, 'r', encoding='utf-8') as jsonfile:            # 加载整个JSON文件内容            json_data = json.load(jsonfile)        print(f"成功加载JSON文件: {json_filepath}, 包含 {len(json_data)} 条记录。")    except FileNotFoundError:        print(f"错误:JSON文件未找到,请检查路径: {json_filepath}")        return csv_data, []    except json.JSONDecodeError as e:        print(f"错误:JSON文件解析失败,请检查文件格式: {e}")        return csv_data, []    except Exception as e:        print(f"加载JSON文件时发生错误: {e}")        return csv_data, []    return csv_data, json_data

4.2 匹配逻辑实现

接下来是核心的匹配逻辑。我们将遍历CSV的每一行,然后对每一行,再遍历JSON日志的每一条,进行条件判断。

def find_matching_log_entries(csv_records, json_log_entries):    """    根据CSV记录中的IP和时间戳,查找匹配的JSON日志条目。    :param csv_records: 从CSV文件读取的记录列表    :param json_log_entries: 从JSON日志文件读取的条目列表    :return: 匹配的JSON日志条目列表    """    matched_entries = []    for csv_record in csv_records:        csv_client_ip = csv_record.get('clientip')        csv_timestamp = csv_record.get('timestamp')        if not csv_client_ip or not csv_timestamp:            print(f"警告: CSV记录缺少 'clientip' 或 'timestamp' 字段,跳过: {csv_record}")            continue        # 对IP进行转义,以防IP地址中包含正则表达式特殊字符        # 但通常IP地址不会包含,这里只是为了更严谨        # pattern = re.compile(r'b' + re.escape(csv_client_ip) + r'b') # 使用单词边界匹配整个IP        for json_entry in json_log_entries:            json_log_content = json_entry.get('log', '') # 获取log字段内容,如果不存在则为空字符串            json_time = json_entry.get('time')            # 匹配条件1: 时间戳直接匹配            timestamp_match = (csv_timestamp == json_time)            # 匹配条件2: IP地址在JSON日志内容中            # 简单字符串包含判断            ip_match = (csv_client_ip in json_log_content)            # 如果需要更精确的IP匹配(例如确保是独立的IP地址,而不是部分数字)            # 可以使用正则表达式:            # ip_match = bool(pattern.search(json_log_content))            if timestamp_match and ip_match:                matched_entries.append(json_entry)                # 找到匹配后,可以根据需求选择是否跳出内层循环,                # 如果一个CSV记录只匹配一个JSON条目,可以 break                # 但如果一个CSV记录可能匹配多个JSON条目,则不应 break                # 这里我们假设一个CSV记录可能匹配多个,所以不 break    return matched_entries

4.3 结果输出

最后,将匹配到的JSON日志条目写入一个新的文件。

def write_results_to_file(output_filepath, results):    """    将匹配结果写入到指定的输出文件。    :param output_filepath: 输出文件路径    :param results: 匹配的JSON日志条目列表    """    try:        with open(output_filepath, 'w', encoding='utf-8') as outfile:            # 将每个匹配的JSON对象单独写入一行,便于后续处理            for entry in results:                outfile.write(json.dumps(entry, ensure_ascii=False) + 'n')        print(f"匹配结果已成功写入文件: {output_filepath}, 共 {len(results)} 条记录。")    except Exception as e:        print(f"写入结果文件时发生错误: {e}")

4.4 完整脚本

将上述功能整合到一个主函数中。

import csvimport jsonimport redef main():    csv_file = 'input.csv'    json_log_file = 'logs.json'    output_file = 'output.txt' # 输出文件,每行一个JSON对象    # 1. 加载数据    csv_records, json_log_entries = load_data(csv_file, json_log_file)    if not csv_records or not json_log_entries:        print("数据加载失败或数据为空,程序终止。")        return    # 2. 查找匹配的日志条目    print("开始查找匹配的日志条目...")    matched_results = find_matching_log_entries(csv_records, json_log_entries)    print(f"查找完成,共找到 {len(matched_results)} 条匹配记录。")    # 3. 将结果写入文件    if matched_results:        write_results_to_file(output_file, matched_results)    else:        print("没有找到任何匹配的日志条目。")if __name__ == "__main__":    main()

5. 运行与验证

将上述代码保存为 log_filter.py。确保 input.csv 和 logs.json 文件与脚本在同一目录下,或者修改脚本中的文件路径。运行脚本:python log_filter.py检查 output.txt 文件,它将包含匹配到的JSON日志条目。

output.txt 预期内容:

{"log": "09-Sept-2023 rate-limit: info: client @xyz 127.0.0.1", "stream": "stderr", "time": "2023-09-09T04:18:22.542Z"}{"log": "10-Sept-2023 connection: success from 192.168.1.100", "stream": "stdout", "time": "2023-09-10T10:00:00.000Z"}

6. 注意事项与优化

6.1 文件路径与编码

文件路径: 确保脚本中指定的文件路径正确。如果文件不在同一目录,需要提供完整路径或相对路径。编码: 始终指定文件编码(如 encoding=’utf-8’),以避免乱码问题。

6.2 错误处理

代码中已经包含了 try-except 块来处理文件未找到 (FileNotFoundError) 和JSON解析错误 (json.JSONDecodeError)。在实际应用中,可以根据需求增加更详细的错误日志记录。

6.3 性能优化

对于大型CSV和JSON文件,嵌套循环(O(N*M) 复杂度)可能会导致性能瓶颈。可以考虑以下优化策略:

预处理JSON日志: 如果JSON日志文件非常大且需要频繁查询,可以将其转换为更易于查询的结构。例如,创建一个以时间戳为键的字典,或者以IP地址为键的字典(如果一个IP可能对应多个日志,则值为列表)。

# 示例:预处理JSON日志,以时间戳为键json_by_timestamp = {}for entry in json_log_entries:    ts = entry.get('time')    if ts:        if ts not in json_by_timestamp:            json_by_timestamp[ts] = []        json_by_timestamp[ts].append(entry)# 查找时:# for csv_record in csv_records:#     csv_timestamp = csv_record.get('timestamp')#     if csv_timestamp in json_by_timestamp:#         for json_entry in json_by_timestamp[csv_timestamp]:#             # 进行IP匹配#             ...

这种方式将时间戳匹配的复杂度从O(M)降低到O(1),整体复杂度变为O(N + M + N*K) (K是每个时间戳下的平均日志数),对于时间戳匹配是主要瓶颈的场景效果显著。

流式处理: 如果JSON文件是JSONL(每行一个JSON对象)格式,或者文件过大无法一次性加载到内存,可以采用流式读取,逐行处理。

# 示例:处理JSONL格式文件# with open(json_filepath, 'r', encoding='utf-8') as jsonfile:#     for line in jsonfile:#         try:#             json_entry = json.loads(line)#             # 进行匹配逻辑#         except json.JSONDecodeError:#             print(f"警告: 跳过无效JSON行: {line.strip()}")

6.4 IP地址匹配的鲁棒性

在 find_matching_log_entries 函数中,IP地址的匹配目前使用了简单的 in 操作符。这可能导致误报,例如 127.0.0.1 会匹配到 127.0.0.10。推荐使用正则表达式 (re 模块) 来确保匹配的是完整的IP地址。例如,使用 r’b’ + re.escape(csv_client_ip) + r’b’ 来匹配单词边界内的IP地址,这样可以避免部分匹配。

6.5 时间戳格式标准化

确保CSV和JSON中的时间戳格式一致。如果格式不一致(例如,一个使用 Z 表示UTC,另一个没有),可能需要使用 datetime 模块进行解析和标准化,然后再进行比较。

7. 总结

本教程提供了一个使用Python根据CSV数据筛选JSON日志条目的完整解决方案。通过 csv.DictReader 和 json.load 模块,我们可以高效地处理不同格式的数据源。同时,通过详细的匹配逻辑、错误处理和性能优化建议,您可以根据实际需求调整和扩展此脚本,以应对更复杂的跨格式数据处理任务。掌握这些技能将极大地提升您在数据分析和日志处理方面的效率。

以上就是使用Python根据CSV数据筛选JSON日志条目的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1369229.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
使用Python从CSV文件匹配JSON日志条目并提取相关信息
上一篇 2025年12月14日 09:28:51
Python文件复制性能优化策略与实践
下一篇 2025年12月14日 09:29:03

相关推荐

  • sublime如何在新版本中找回旧版的功能 _sublime新版本找回旧功能方法

    sublime如何在新版本中找回旧版的功能 _sublime新版本找回旧功能方法sublime如何在新版本中找回旧版的功能 _sublime新版本找回旧功能方法sublime如何在新版本中找回旧版的功能 _sublime新版本找回旧功能方法sublime如何在新版本中找回旧版的功能 _sublime新版本找回旧功能方法

    答案:通过设置和插件可恢复Sublime Text旧版体验。1. 右键顶部或用命令面板启用菜单栏和工具栏;2. 安装PackageResourceViewer修改主题或切换为Default主题还原标签页样式;3. 在用户设置中添加参数关闭动画、显示边框、使用小图标以还原侧边栏;4. 设置&#8221…

    2026年9月25日 • 用户投稿
    000
  • Deepseek 满血版联合 Scribble Diffusion Pro,绘制专业级图像​

    Deepseek 满血版联合 Scribble Diffusion Pro,绘制专业级图像​Deepseek 满血版联合 Scribble Diffusion Pro,绘制专业级图像​Deepseek 满血版联合 Scribble Diffusion Pro,绘制专业级图像​Deepseek 满血版联合 Scribble Diffusion Pro,绘制专业级图像​

    使用deepseek满血版配合scribble diffusion pro可高效进行专业图像创作。1. scribble diffusion pro是基于草图生成高质量图像的插件,适合已有初步构图的创作者;2. deepseek提供更强文本理解与细节控制能力,提升风格、光影等描述精准度;3. 高效使…

    2026年9月25日 • 用户投稿
    200
  • Debian Apache日志对SEO有何影响

    debian apache日志记录了网站的所有访问请求,包括ip地址、请求类型、响应状态等详细信息。这些日志对于seo有以下几个方面的影响: SEO GPT 免费的白帽SEO,PPC和网站经销商平台 17 查看详情 Apache日志对SEO的重要性 监控网站流量和用户行为:通过分析Apache访问日…

    2026年9月25日
    000
  • 快手如何设置动态封面_快手动态封面设置的步骤与技巧

    快手如何设置动态封面_快手动态封面设置的步骤与技巧快手如何设置动态封面_快手动态封面设置的步骤与技巧快手如何设置动态封面_快手动态封面设置的步骤与技巧快手如何设置动态封面_快手动态封面设置的步骤与技巧

    1、可通过长按主页背景选择相册视频设置动态封面;2、需在通用设置中开启动态封面功能;3、也可从视频分享页点击动态壁纸快速应用。 如果您在快手个人主页希望展示更具吸引力的动态封面,以替代静态图片,可以通过特定步骤进行设置。该功能允许用户使用短视频作为主页背景,提升个性化展示效果。 本文运行环境:iPh…

    2026年9月25日 • 用户投稿
    200
  • win10电脑qq远程桌面连接不上的解决方法

    win10电脑qq远程桌面连接不上的解决方法win10电脑qq远程桌面连接不上的解决方法win10电脑qq远程桌面连接不上的解决方法win10电脑qq远程桌面连接不上的解决方法

    腾讯出品的qq是一款广泛使用的聊天工具,几乎每个人都拥有自己的qq账号,在使用过程中还可以实现远程控制的功能。不过,部分用户反映在尝试远程连接时遇到了障碍,那么win10系统下qq远程连接失败该怎么办呢?接下来就让我们一起探讨win10电脑qq远程桌面连接失败的解决办法。 QQ远程连接无法使用怎么办…

    2026年9月25日 • 用户投稿
    000
  • Java多态中成员变量是否具有动态绑定特性

    成员变量不具有动态绑定特性,其访问基于引用变量的声明类型而非实际对象类型。例如,当父类和子类存在同名成员变量时,通过父类引用访问该变量将获取父类中的值,即使实际对象是子类实例。这体现了静态绑定,即在编译期确定访问的变量。相比之下,实例方法支持动态绑定(后期绑定),在运行时根据对象的实际类型决定调用哪…

    2026年9月25日
    100
  • 摩尔线程科创板上市 IPO 已过会,冲刺“国产 GPU 第一股”

    摩尔线程科创板上市 IPO 已过会,冲刺“国产 GPU 第一股”摩尔线程科创板上市 IPO 已过会,冲刺“国产 GPU 第一股”摩尔线程科创板上市 IPO 已过会,冲刺“国产 GPU 第一股”摩尔线程科创板上市 IPO 已过会,冲刺“国产 GPU 第一股”

    2025 年 9 月 26 日,上交所官方网站信息显示,摩尔线程智能科技(北京)股份有限公司(简称“摩尔线程”)的科创板 ipo 项目已顺利通过上市委审议,保荐机构为中信证券股份有限公司。 从正式提交申请获上交所受理,到成功过会,摩尔线程历时不足三个月,创下科创板企业上市审核速度的新纪录。本次IPO…

    2026年9月25日 • 用户投稿
    100
  • 1688阿里巴巴官方网站 1688阿里巴巴新品快订入口

    1688阿里巴巴官方网站 1688阿里巴巴新品快订入口1688阿里巴巴官方网站 1688阿里巴巴新品快订入口1688阿里巴巴官方网站 1688阿里巴巴新品快订入口1688阿里巴巴官方网站 1688阿里巴巴新品快订入口

    1688阿里巴巴官方网站新品快订入口为https://ding.1688.com,该平台涵盖服饰、配饰、家居日用及包装物料等丰富商品类目,支持先采后付、48小时发货、混批进货等高效交易模式,并提供新人优惠、实时成交数据展示、销售趋势提示及全网截图比价等采购优化服务。 1688阿里巴巴官方网站新品快订…

    2026年9月25日 • 用户投稿
    000
  • 2025 上半年中国蓝牙耳机市场份额出炉:小米第一

    2025 上半年中国蓝牙耳机市场份额出炉:小米第一2025 上半年中国蓝牙耳机市场份额出炉:小米第一2025 上半年中国蓝牙耳机市场份额出炉:小米第一2025 上半年中国蓝牙耳机市场份额出炉:小米第一

    根据 idc 最新发布的数据,2025 年上半年中国蓝牙耳机市场出货量约为 5998 万台,同比增长 7.5%。其中,小米以 16.5% 的市场份额位居榜首。值得注意的是,耳夹式耳机在 2025 年上半年的市场规模与增速首次超越耳挂式产品,实现出货量 651 万台,同比增长高达 41.0%。 小米耳…

    2026年9月25日 • 用户投稿
    200
  • Java 中处理货币数据的正确方式

    Java 中处理货币数据的正确方式Java 中处理货币数据的正确方式Java 中处理货币数据的正确方式Java 中处理货币数据的正确方式

    在 Java 应用程序中,尤其是在处理财务数据时,选择正确的数据类型至关重要。货币数据通常以特定的格式呈现,例如包含货币符号(如美元符号 $)和千位分隔符(如逗号 ,)。直接将这些数据映射到 DTO 类时,我们需要仔细考虑数据类型的选择,以避免潜在的精度损失和计算错误。 货币数据类型选择考量 常见的…

    2026年9月25日 • 用户投稿
    000
  • 如何在Debian上检测Nginx SSL状态

    在debian系统上检测nginx的ssl状态,可以通过以下几种方法进行: 使用Nginx命令行工具:打开终端,输入以下命令来检查Nginx的SSL配置是否正确: sudo nginx -t -c /etc/nginx/nginx.conf 这个命令会测试Nginx配置文件的语法是否正确,并且会显示…

    2026年9月25日
    000
  • sublime如何显示文件路径状态栏 _sublime文件路径状态栏显示方法

    sublime如何显示文件路径状态栏 _sublime文件路径状态栏显示方法sublime如何显示文件路径状态栏 _sublime文件路径状态栏显示方法sublime如何显示文件路径状态栏 _sublime文件路径状态栏显示方法sublime如何显示文件路径状态栏 _sublime文件路径状态栏显示方法

    在用户设置中添加”show_full_path”: true可让Sublime Text状态栏显示完整文件路径,需确保状态栏已通过View→Show Status Bar开启,保存设置后生效。 Sublime Text 默认状态下可能不会在底部状态栏显示完整的文件路径,但可以…

    2026年9月25日 • 用户投稿
    000
  • AI思维导图工具有哪些_好用的AI思维导图工具大全

    AI思维导图工具有哪些_好用的AI思维导图工具大全AI思维导图工具有哪些_好用的AI思维导图工具大全AI思维导图工具有哪些_好用的AI思维导图工具大全AI思维导图工具有哪些_好用的AI思维导图工具大全

    ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ TreeMind树图:新一代AI智能思维导图,一句话生成思维导图 博思白板:博思云创推出的AI多功能白板工具 ProcessOn:在线AI流程图和思维导图制作工具 自由画布:百度文库和百度网盘联…

    2026年9月25日 • 用户投稿
    000
  • 开源鸿蒙 6.0 Release 版本发布

    开源鸿蒙 6.0 Release 版本发布开源鸿蒙 6.0 Release 版本发布开源鸿蒙 6.0 Release 版本发布开源鸿蒙 6.0 Release 版本发布

    开源鸿蒙 6.0 release 版本已正式上线。据悉,该版本在应用框架、媒体处理、系统安全等多个核心技术领域实现了重要突破,显著增强了系统的稳定性和开发效率,同时进一步优化了生态适配能力。 在应用开发方面,ArkUI组件能力得到深度增强,新增了组件背景安全区自动延伸功能。当界面元素靠近状态栏或导航…

    2026年9月25日 • 用户投稿
    000
  • 幕布新手入门教程:从零开始创建你的第一个文档

    幕布新手入门教程:从零开始创建你的第一个文档幕布新手入门教程:从零开始创建你的第一个文档幕布新手入门教程:从零开始创建你的第一个文档幕布新手入门教程:从零开始创建你的第一个文档

    首先注册登录幕布账号,进入主界面后点击新建文档并输入标题,通过回车创建节点、Tab键调整层级,利用快捷键提升效率,最后插入待办、加粗、链接等富文本内容完成结构化笔记。 如果您刚刚开始使用幕布,想要快速上手并创建属于自己的第一份结构化文档,可以通过以下步骤完成基础操作。幕布以大纲笔记为核心,帮助用户高…

    2026年9月25日 • 用户投稿
    000
  • Java 中处理货币数据的最佳实践

    Java 中处理货币数据的最佳实践Java 中处理货币数据的最佳实践Java 中处理货币数据的最佳实践Java 中处理货币数据的最佳实践

    本文旨在探讨在 Java 中处理货币数据的最佳实践。面对 JSON 数据中包含的货币值(例如 “$234,205,860″),直接使用 String 存储是一种选择,但可能并非最优。本文将深入分析各种数据类型在处理货币时的优劣,并推荐使用 BigDecimal 进行精确计算,…

    2026年9月25日 • 用户投稿
    000
  • 苹果13pro参数详细参数

    苹果13pro参数详细参数苹果13pro参数详细参数苹果13pro参数详细参数苹果13pro参数详细参数

    iPhone 13 Pro 拥有 1200 万像素的后置广角、超广角和长焦摄像头,以及 1200 万像素的前置摄像头。后置摄像头支持光学图像稳定和电影模式,前置摄像头支持人像模式。手机搭载苹果 A15 仿生芯片,具有 128GB 至 1TB 的存储容量。 ☞☞☞☞点击夸克ai手把手教你,操作像呼吸一…

    2026年9月25日 • 用户投稿
    000
  • 首个开源多模态 Deep Research 智能体,超越多个闭源方案

    首个开源多模态 Deep Research 智能体,超越多个闭源方案首个开源多模态 Deep Research 智能体,超越多个闭源方案首个开源多模态 Deep Research 智能体,超越多个闭源方案首个开源多模态 Deep Research 智能体,超越多个闭源方案

    研究团队 投稿 量子位 | 公众号 QbitAI 首个开源多模态 Deep Research Agent 来了。 整合了网页浏览、图像搜索、代码解释器、内部 OCR 等多种工具,通过全自动流程生成高质量推理轨迹,并用冷启动微调和强化学习优化决策,使模型在任务中能自主选择合适的工具组合和推理路径。 假…

    2026年9月25日 • 用户投稿
    100
  • 【每日收评】集微指数跌0.99%,蔚来宣布完成高速换电千站计划

    【每日收评】集微指数跌0.99%,蔚来宣布完成高速换电千站计划【每日收评】集微指数跌0.99%,蔚来宣布完成高速换电千站计划【每日收评】集微指数跌0.99%,蔚来宣布完成高速换电千站计划【每日收评】集微指数跌0.99%,蔚来宣布完成高速换电千站计划

    ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 7月9日,A股三大指数今日冲高回落,沪指3500点得而复失。截止收盘,沪指跌0.13%,收报3493.05点;深证成指跌0.06%,收报10581.80点;创业板指涨0.16%,收报2184.6…

    2026年9月25日 • 用户投稿
    100
  • 详解win7系统给局域网电脑发消息的操作方法

    详解win7系统给局域网电脑发消息的操作方法详解win7系统给局域网电脑发消息的操作方法详解win7系统给局域网电脑发消息的操作方法详解win7系统给局域网电脑发消息的操作方法

    我们日常在电脑上聊天通常会使用第三方聊天工具,这满足了个人沟通的需求。而在企业环境中,员工之间的内部交流则更倾向于采用局域网通信的方式,既安全又高效。那么在win7系统中,如何实现向局域网内的其他计算机发送消息呢?下面将详细介绍具体操作步骤。 Win7系统局域网发消息操作指南: 1、首先需要启用 A…

    2026年9月25日 • 用户投稿
    200

发表回复

登录后才能评论
关注微信