alfred

alfred

多功能Python深度学习工具集

alfred-py是一个专为深度学习设计的Python工具库,提供数据可视化、命令行工具、模型部署等多种功能。通过导入模块或终端命令,可便捷使用其丰富的工具集。该库旨在提升深度学习开发效率,是一个功能全面的实用工具。

alfred-py深度学习可视化命令行工具部署Github开源项目
<div align="center"> <img src="https://yellow-cdn.veclightyear.com/835a84d5/663cab33-aeeb-451f-8858-a9aa1071f925.png"> <h1>alfred-py:为深度学习而生</h1>

PyPI 下载量 Github 下载量

CI 测试 构建并部署文档 pre-commit.ci 状态

许可证 Slack 欢迎 PR

</div>

alfred-py 可以通过终端命令 alfred 调用,作为深度学习的工具。它还提供了大量的实用 API 来提高您的日常效率,例如,如果您想绘制带有分数和标签的框,如果您想在 Python 应用程序中进行日志记录,如果您想将模型转换为 TRT 引擎,只需 import alfred,您就能获得所需的一切。更多用法请阅读以下说明。

功能概述

由于许多 alfred 的新用户可能不太熟悉它,这里简要总结一下功能,更多细节请参阅我的更新:

  • 可视化:绘制框、掩码、关键点非常简单,甚至支持点云上的 3D 框;
  • 命令行工具:例如,查看任何格式(yolo、voc、coco 等)的标注数据;
  • 部署:您可以使用 alfred 部署 TensorRT 模型;
  • 深度学习常用工具:如 torch.device() 等;
  • 渲染器:渲染您的 3D 模型。

使用 alfred 可视化的图片:

alfred 以 coco 格式可视化分割标注

安装

安装 alfred 非常简单:

要求:

lxml [可选]
pycocotools [可选]
opencv-python [可选]

然后:

sudo pip3 install alfred-py

alfred 既是一个库,也是一个工具,您可以导入它的 API,或者直接在终端中调用它

alfred 的一瞥,安装上述包后,您将拥有 alfred

  • data 模块:

    # 显示 VOC 标注 alfred data vocview -i JPEGImages/ -l Annotations/ # 显示 coco 标注 alfred data cocoview -j annotations/instance_2017.json -i images/ # 显示 yolo 标注 alfred data yoloview -i images -l labels # 显示 txt 格式的检测标签 alfred data txtview -i images/ -l txts/ # 查看更多数据相关命令 alfred data -h # 评估工具 alfred data evalvoc -h
  • cab 模块:

    # 统计某种类型文件的数量 alfred cab count -d ./images -t jpg # 将文本文件拆分为训练集和测试集 alfred cab split -f all.txt -r 0.9,0.1 -n train,val
  • vision 模块:

    # 从视频中提取图像 alfred vision extract -v video.mp4 # 将图像合成为视频 alfred vision 2video -d images/
  • 使用 -h 查看更多:

    usage: alfred [-h] [--version] {vision,text,scrap,cab,data} ... positional arguments: {vision,text,scrap,cab,data} vision 视觉相关命令。 text 文本相关命令。 scrap 抓取相关命令。 cab 工具箱相关命令。 data 数据相关命令。 optional arguments: -h, --help 显示此帮助信息并退出 --version, -v 显示版本信息。

    在每个子模块中,您也可以调用它的 -halfred text -h

如果您使用的是 Windows,可以通过以下命令安装 pycocotools:pip install "git+https://github.com/philferriere/cocoapi.git#egg=pycocotools&subdirectory=PythonAPI"。由于我们需要 pycoco API,我们已将 pycocotools 作为依赖项。

更新

alfred-py 已经更新了 3 年,并将继续更新!

  • 2050-xxx未完待续

  • 2023.04.28:更新了 3D 关键点可视化器,现在您可以实时可视化 Human3DM 关键点: 详情请参考 examples/demo_o3d_server.py。 结果由MotionBert生成。

  • 2022.01.18: 现在alfred支持基于Open3D的3D网格可视化服务器:

    from alfred.vis.mesh3d.o3dsocket import VisOpen3DSocket def main(): server = VisOpen3DSocket() while True: server.update() if __name__ == "__main__": main()

    然后,您只需设置一个客户端,将3D关键点发送到服务器,它就会自动可视化显示出来。 效果如下:

  • 2021.12.22: 现在alfred支持关键点可视化,几乎所有mmpose支持的数据集也都被alfred支持:

    from alfred.vis.image.pose import vis_pose_result # preds是姿态数据,对于coco人体是(Bs, 17, 3)形状 vis_pose_result(ori_image, preds, radius=5, thickness=2, show=True)
  • 2021.12.05: 您现在可以使用alfred.deploy.tensorrt进行TensorRT推理:

    from alfred.deploy.tensorrt.common import do_inference_v2, allocate_buffers_v2, build_engine_onnx_v3 def engine_infer(engine, context, inputs, outputs, bindings, stream, test_image): # image_input, img_raw, _ = preprocess_np(test_image) image_input, img_raw, _ = preprocess_img((test_image)) print('输入形状: ', image_input.shape) inputs[0].host = image_input.astype(np.float32).ravel() start = time.time() dets, labels, masks = do_inference_v2(context, bindings=bindings, inputs=inputs, outputs=outputs, stream=stream, input_tensor=image_input) img_f = 'demo/demo.jpg' with build_engine_onnx_v3(onnx_file_path=onnx_f) as engine: inputs, outputs, bindings, stream = allocate_buffers_v2(engine) # 上下文用于执行推理 with engine.create_execution_context() as context: print(engine.get_binding_shape(0)) print(engine.get_binding_shape(1)) print(engine.get_binding_shape(2)) INPUT_SHAPE = engine.get_binding_shape(0)[-2:] print(context.get_binding_shape(0)) print(context.get_binding_shape(1)) dets, labels, masks, img_raw = engine_infer( engine, context, inputs, outputs, bindings, stream, img_f)
  • 2021.11.13: 现在我添加了Siren SDK支持!

    from functools import wraps
    from alfred.siren.handler import SirenClient
    from alfred.siren.models import ChatMessage, InvitationMessage
    
    siren = SirenClient('daybreak_account', 'password')
    
    
    @siren.on_received_invitation
    def on_received_invitation(msg: InvitationMessage):
        print('收到邀请: ', msg.invitation)
        # 机器人直接同意邀请
    
    
    @siren.on_received_chat_message
    def on_received_chat_msg(msg: ChatMessage):
        print('收到新消息: ', msg.text)
        siren.publish_txt_msg('我收到了你的消息 O(∩_∩)O哈哈~', msg.roomId)
    
    
    if __name__ == '__main__':
        siren.loop()
    

    使用这个,您可以轻松设置一个聊天机器人。通过使用Siren客户端。

  • 2021.06.24: 添加了一个有用的命令行工具,轻松更改您的pypi源!!:

    alfred cab changesource
    

    然后您的pypi将默认使用阿里云源!

  • 2021.05.07: 升级Open3D说明: Open3D>0.9.0不再与之前的alfred-py兼容。请升级Open3D,您可以从源码构建Open3D:

      git clone --recursive https://github.com/intel-isl/Open3D.git
      cd Open3D && mkdir build && cd build
      sudo apt install libc++abi-8-dev
      sudo apt install libc++-8-dev
      cmake .. -DPYTHON_EXECUTABLE=/usr/bin/python3
    

    Ubuntu 16.04及以下版本我尝试从源码构建都失败了。所以,请为alfred-py使用open3d==0.9.0。

  • 2021.04.01: 添加了统一的评估器。众所周知,对于许多用户来说,编写评估可能与您的项目深度耦合。但在Alfred的帮助下,您可以通过简单地编写8行代码在任何项目中进行评估,例如,如果您的数据集格式是Yolo,那么这样做:

    def infer_func(img_f): image = cv2.imread(img_f) results = config_dict['model'].predict_for_single_image( image, aug_pipeline=simple_widerface_val_pipeline, classification_threshold=0.89, nms_threshold=0.6, class_agnostic=True) if len(results) > 0: results = np.array(results)[:, [2, 3, 4, 5, 0, 1]] # xywh转xyxy results[:, 2] += results[:, 0] results[:, 3] += results[:, 1] return results if __name__ == '__main__': conf_thr = 0.4 iou_thr = 0.5 imgs_root = 'data/hand/images' labels_root = 'data/hand/labels' yolo_parser = YoloEvaluator(imgs_root=imgs_root, labels_root=labels_root, infer_func=infer_func) yolo_parser.eval_precisely()

    然后您可以自动获得评估结果。将打印出所有召回率、精确度和mAP。更多数据集格式正在开发中。

  • 2021.03.10: 新增ImageSourceIter类,当您想为项目编写需要处理任何输入(如图像文件/文件夹/视频文件等)的演示时。您可以使用ImageSourceIter:

    from alfred.utils.file_io import ImageSourceIter # data_f可以是图像文件或图像文件夹或视频 iter = ImageSourceIter(ops.test_path) while True: itm = next(iter) if isinstance(itm, str): itm = cv2.imread(itm) # cv2.imshow('raw', itm) res = detect_for_pose(itm, det_model) cv2.imshow('res', itm) if iter.video_mode: cv2.waitKey(1) else: cv2.waitKey(0)

    然后您可以避免编写处理文件glob或在cv中读取视频的其他内容。注意itm返回可以是cv数组或文件路径

  • 2021.01.25: alfred现在支持对coco格式注释的自定义可视化(不使用pycoco工具): image-20210125194313093

如果您的数据集是COCO格式但无法正确可视化,请向我提出issue,谢谢!

  • 2020.09.27: 现在,YOLO和VOC格式可以相互转换,因此使用Alfred您可以:

    • 将YOLO转换为VOC;
    • 将VOC转换为YOLO;
    • 将VOC转换为COCO;
    • 将COCO转换为VOC;

    通过这种方式,您可以在各种标注格式之间进行转换。

  • 2020.09.08: 经过很长一段时间,alfred进行了一些更新: 我们在其中提供了coco2yolo的功能。用户可以运行以下命令将数据转换为YOLO格式:

    alfred data coco2yolo -i images/ -j annotations/val_split_2020.json
    

    只需提供图像根路径和JSON文件。然后所有结果将生成到images文件夹下的yolo文件夹或images父目录中。

    之后(您得到了yolo文件夹),您可以可视化转换结果以检查是否正确:

    alfred data yolovview -i images/ -l labels/
    

    image-20200908164952171

  • 2020.07.27: 经过很长一段时间,alfred终于有了一些更新:

    image-20200727163938094

    现在,您可以使用alfred在图像上绘制中文字符,不会出现编码未定义的问题。

    from alfred.utils.cv_wrapper import put_cn_txt_on_img img = put_cn_txt_on_img(img, spt[-1], [points[0][0], points[0][1]-25], 1.0, (255, 255, 255))

    此外,您现在可以合并2个VOC数据集!当您有2个数据集并想将它们合并为一个时,这非常有用。

    alfred data mergevoc -h
    

    您可以看到更多提示。

  • 2020.03.08:在alfred中新增了几个文件:

    alfred.utils.file_io: 提供常用的文件IO工具
    alfred.dl.torch.env: 提供PyTorch中的种子或环境设置(与detectron2有相同的API)
    alfred.dl.torch.distribute: 使用PyTorch进行分布式训练时使用的工具
    
  • 2020.03.04: 我们添加了一些评估工具来计算目标检测模型性能评估的mAP,它很有用并且可以可视化结果:

    使用方法也很简单:

    alfred data evalvoc -g ground-truth -d detection-results -im images
    

    其中-g是您的真实标签目录(包含xml或txt文件),-d是您的检测结果文件目录,-im是您的图像文件夹。您只需将所有检测结果保存为txt文件,每个图像一个txt,格式如下:

    bottle 0.14981 80 1 295 500 bus 0.12601 36 13 404 316 horse 0.12526 430 117 500 307 pottedplant 0.14585 212 78 292 118 tvmonitor 0.070565 388 89 500 196
  • 2020.02.27: 我们刚刚在alfred中更新了一个license模块,比如您想为项目应用许可证或更新许可证,只需:

    alfred cab license -o 'MANA' -n 'YoloV3' -u 'manaai.cn'

    您可以通过alfred cab license -h找到更多详细用法

  • 2020-02-11: open3d已更改其API。我们已在alfred中更新了新的open3d,您可以简单地使用最新的open3d并运行python3 examples/draw_3d_pointcloud.py,您将看到:

  • 2020-02-10: alfred现在支持Windows(实验性);

  • 2020-02-01: 武汉加油! alfred 修复了与编码'gbk'相关的Windows pip安装问题;

  • 2020-01-14: 添加了cabinet模块,还在data模块下添加了一些工具;

  • 2019-07-18: 添加了1000类ImageNet标签映射。可以这样调用:

    from alfred.vis.image.get_dataset_label_map import imagenet_labelmap # 同时,coco、voc、cityscapes的标签映射也都已添加 from alfred.vis.image.get_dataset_label_map import coco_labelmap from alfred.vis.image.get_dataset_label_map import voc_labelmap from alfred.vis.image.get_dataset_label_map import cityscapes_labelmap
  • 2019-07-13: 我们在命令行用法中添加了一个VOC检查模块,您现在可以像这样可视化VOC格式的检测数据:

    alfred data voc_view -i ./images -l labels/
    
  • 2019-05-17: 我们添加了open3d作为一个库,用于在Python中可视化3D点云。现在您可以进行一些简单的准备,并直接在激光雷达点上可视化3D框,并像OpenCV一样显示!!

    您只需使用alfred-pyopen3d就可以实现这一点!

    示例代码可以在examples/draw_3d_pointcloud.py中找到。代码已使用最新的open3d API更新!

  • 2019-05-10: 一个小更新但非常有用,我们称之为mute_tf,您想禁用TensorFlow的忽略日志吗?只需这样做!!

    from alfred.dl.tf.common import mute_tf mute_tf() import tensorflow as tf

    然后,日志消息就消失了....

  • 2019-05-07: 添加了一些协议,现在您可以使用alfred解析TensorFlow COCO标签映射:

from alfred.protos.labelmap_pb2 import LabelMap from google.protobuf import text_format with open('coco.prototxt', 'r') as f: lm = LabelMap() lm = text_format.Merge(str(f.read()), lm) names_list = [i.display_name for i in lm.item] print(names_list)
  • 2019-04-25:添加了KITTI融合功能,现在您可以像这样将3D标签投影到图像上: 我们还将添加更多融合工具,如用于nuScene数据集的工具。

    我们提供了kitti融合工具,用于将"相机链接的3D点"转换为图像像素,以及将"雷达链接的3D点"转换为图像像素。API的大致使用如下:

    # 将雷达预测转换为图像像素 from alfred.fusion.kitti_fusion import LidarCamCalibData, \ load_pc_from_file, lidar_pts_to_cam0_frame, lidar_pt_to_cam0_frame from alfred.fusion.common import draw_3d_box, compute_3d_box_lidar_coords # 雷达预测结果 # 包含x,y,z,h,w,l,rotation_y res = [[4.481686, 5.147319, -1.0229858, 1.5728549, 3.646751, 1.5121397, 1.5486346], [-2.5172017, 5.0262384, -1.0679419, 1.6241353, 4.0445814, 1.4938312, 1.620804], [1.1783253, -2.9209857, -0.9852259, 1.5852798, 3.7360613, 1.4671413, 1.5811548]] for p in res: xyz = np.array([p[: 3]]) c2d = lidar_pt_to_cam0_frame(xyz, frame_calib) if c2d is not None: cv2.circle(img, (int(c2d[0]), int(c2d[1])), 3, (0, 255, 255), -1) hwl = np.array([p[3: 6]]) r_y = [p[6]] pts3d = compute_3d_box_lidar_coords(xyz, hwl, angles=r_y, origin=(0.5, 0.5, 0.5), axis=2) pts2d = [] for pt in pts3d[0]: coords = lidar_pt_to_cam0_frame(pt, frame_calib) if coords is not None: pts2d.append(coords[:2]) pts2d = np.array(pts2d) draw_3d_box(pts2d, img)

    您可以看到类似这样的结果:

    注意

    compute_3d_box_lidar_coords用于雷达预测,compute_3d_box_cam_coords用于KITTI标签,因为KITTI标签是基于相机坐标系的!

    <p align="center"> <img src="https://yellow-cdn.veclightyear.com/835a84d5/a7f442e2-d213-43f6-bb52-dc03dfd63e49.png" /> </p>

    由于许多用户询问如何重现这个结果,您可以查看examples/draw_3d_box.py下的演示文件

  • 2019-01-25:我们刚刚为pytorch添加了网络可视化工具!它看起来如何?简单地打印出每一层网络及其输出形状,我相信这对人们可视化他们的模型非常有帮助!

    ➜  mask_yolo3 git:(master) ✗ python3 tests.py
    ----------------------------------------------------------------
            Layer (type)               Output Shape         Param #
    ================================================================
                Conv2d-1         [-1, 64, 224, 224]           1,792
                  ReLU-2         [-1, 64, 224, 224]               0
                  .........
               Linear-35                 [-1, 4096]      16,781,312
                 ReLU-36                 [-1, 4096]               0
              Dropout-37                 [-1, 4096]               0
               Linear-38                 [-1, 1000]       4,097,000
    ================================================================
    Total params: 138,357,544
    Trainable params: 138,357,544
    Non-trainable params: 0
    ----------------------------------------------------------------
    Input size (MB): 0.19
    Forward/backward pass size (MB): 218.59
    Params size (MB): 527.79
    Estimated Total Size (MB): 746.57
    ----------------------------------------------------------------
    
    

    好了,就是这样。您只需要做以下操作:

    from alfred.dl.torch.model_summary import summary from alfred.dl.torch.common import device from torchvision.models import vgg16 vgg = vgg16(pretrained=True) vgg.to(device) summary(vgg, input_size=[224, 224])

    假设您输入(224, 224)的图像,您将得到这个输出,或者您可以更改任何其他尺寸来查看输出如何变化。(目前不支持单通道图像)

  • 2018-12-7:现在,我们添加了一个可扩展的类,用于快速编写图像检测或分割演示。

    如果您想编写一个在图像、视频或直接从网络摄像头进行推理的演示,现在您可以使用标准的alfred方式来做到这一点:

    class ENetDemo(ImageInferEngine): def __init__(self, f, model_path): super(ENetDemo, self).__init__(f=f) self.target_size = (512, 1024) self.model_path = model_path self.num_classes = 20 self.image_transform = transforms.Compose( [transforms.Resize(self.target_size), transforms.ToTensor()]) self._init_model() def _init_model(self): self.model = ENet(self.num_classes).to(device) checkpoint = torch.load(self.model_path) self.model.load_state_dict(checkpoint['state_dict']) print('模型已加载!') def solve_a_image(self, img): images = Variable(self.image_transform(Image.fromarray(img)).to(device).unsqueeze(0)) predictions = self.model(images) _, predictions = torch.max(predictions.data, 1) prediction = predictions.cpu().numpy()[0] - 1 return prediction def vis_result(self, img, net_out): mask_color = np.asarray(label_to_color_image(net_out, 'cityscapes'), dtype=np.uint8) frame = cv2.resize(img, (self.target_size[1], self.target_size[0])) # mask_color = cv2.resize(mask_color, (frame.shape[1], frame.shape[0])) res = cv2.addWeighted(frame, 0.5, mask_color, 0.7, 1) return res

如果 name == 'main': v_f = '' enet_seg = ENetDemo(f=v_f, model_path='save/ENet_cityscapes_mine.pth') enet_seg.run()

之后,你可以直接从视频中进行推理。这种用法可以在 git 仓库中找到:

<p align="center"><img src="https://yellow-cdn.veclightyear.com/835a84d5/6081bb1f-4a17-44fa-ac97-9db8009d7444.gif"/></p>

使用 alfred 的仓库:http://github.com/jinfagang/pt_enet

  • 2018-11-6:我很高兴地宣布 alfred 2.0 发布了!😄⛽️👏👏 让我们快速看一下更新了什么:

    # 2个新模块,fusion 和 vis
    from alred.fusion import fusion_utils
    

    fusion 模块包含了许多你可能会用到的有用的传感器融合辅助函数,比如将激光雷达点云投影到图像上。

  • 2018-08-01:修复了视频组合函数与序列不能很好配合的问题。添加了一个排序算法以确保视频序列正确。 还在包中添加了一些绘制边界框的函数。

    可以这样调用:

  • 2018-03-16:稍微更新了 alfred,现在我们可以使用这个工具将视频序列组合回原始视频! 只需简单地执行:

    # alfred 二进制可执行程序 alfred vision 2video -d ./video_images

功能

alfred 既是一个库,也是一个命令行工具。它可以做这些事情:

# 从视频中提取图像 alfred vision extract -v video.mp4 # 将图像序列组合成视频 alfred vision 2video -d /path/to/images # 从图像中获取人脸 alfred vision getface -d /path/contains/images/

快来试试吧!

版权

AlfredLucas Jin 用 ❤️ 构建,欢迎 star 和提交 PR。如果你有任何问题,可以通过微信联系我:jintianiloveu,本代码在 GPL-3 许可下发布。

编辑推荐精选

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

下拉加载更多