• DocArray Updates 0.38+0.39


    DocArray 近期更新

    🆕 新功能

    • 支持 Pydantic v2 🚀 (#1652)

      此版本最重要的功能是对 Pydantic v2 的全面支持!同时我们将继续支持 Pydantic v1。

      如果您使用 Pydantic v2,您需要调整您的 DocArray 代码以适配新的 Pydantic API。请查看他们的 迁移指南

      Pydantic v2 的核心部分采用 Rust 编写,并为 DocArray 提供了显著的性能改进:JSON 序列化速度提高了 240%,并且使用 TorchTensor 等非本地类型验证 BaseDoc 和 DocList 时,速度提高了 20%。

    • 添加 BaseDocWithoutId (#1803)

      默认情况下,BaseDoc 包含一个 id 字段。如果您希望构建一个不包含此 ID 字段的模型的 API,这可能会出现问题。因此,我们现在提供了一个 BaseDocWithoutId,顾名思义,它是没有 ID 字段的 BaseDoc。

      请谨慎使用 Document,除非您明确需要删除 ID,否则仍然应使用 BaseDoc 作为基类。

      ⚠️ DocIndex 需要 id 字段来存储和检索文档,因此 BaseDocWithoutId 与 DocIndex 或任何需要向量数据库的功能不兼容。

    🐞 bug 修复

    • 修复 DocList 订阅错误

      可以使用语法 DocList[MyDoc]() 从 BaseDoc 键入 DocList。

      在此版本中,允许用户多次指定 DocList 类型的 bug 已被修复。

    • 不再支持 DocList[MyDoc1][MyDoc2] (#1800)

      此外,我们还修复了一个错误:当用户向 DocList 传递诸如 DocList[doc()] 的错误类型时,该错误会导致静默失败。 (#1794)

    • Milvus 连接参数缺失 (#1802)

      错误设置 Milvus 客户端端口的 bug 已被修复。

    • 使 DocList.to_json()DocVec.to_json() 返回 str 而不是 bytes (#1769)

      为与 BaseDoc .to_json() 和其他 pydantic 模型保持一致,该版本更改了 DocList.to_json()DocVec.to_json() 方法的返回类型。在之后的版本中,这些方法将返回 str 类型的数据,而不是 bytes

      💥 由于返回类型已更改,因此这被视为一个重大变更。

    • 在附加之前进行类型转换 (#1758)

      此版本在 reduce 辅助函数内部引入了类型转换,在附加到最终结果之前对输入进行类型转换。可能能够减少模式兼容但不完全相同的文档。

    • 跳过 __annotations__ 中的文档属性,但不跳过 __fields__ (#1777)

      此版本修复了 create_pure_python_type_model 辅助函数中的一个问题。从这个版本开始,类型创建期间将只考虑类 __fields__ 中的属性。之前的行为在用户在输入类中引入 ClassVar 时会导致应用程序崩溃:

      class MyDoc(BaseDoc):
          endpoint: ClassVar[str] = "my_endpoint"
          input_test: str = ""
          field_info = model.__fields__[field_name].field_info
      • 1
      KeyError: 'endpoint'
      • 1

      感谢 @NarekA 在 Jina 项目中提出并修复。该修复已移植到 DocArray 中。

      💥 重大变更

    • 移除 Jina AI Cloud 推送/拉取 (#1791)

      Jina AI Cloud 已停用。因此,我们正在移除与 Jina AI Cloud 相关的推送/拉取功能。

    • DocList.to_json()DocVec.to_json() 的返回类型更改

      为了使 to_json 方法在不同类之间保持一致,我们将其在 DocList 和 DocVec 中的返回类型更改为 str。如果您在您的应用程序中使用了这个方法,请更新您的代码以返回 str 而不是 bytes

    本文由 mdnice 多平台发布

  • 相关阅读:
    【Python学习】—Python基础语法(六)
    C 运算符
    react跨域如何解决?
    2023-10-03 LeetCode每日一题(买卖股票的最佳时机 III)
    蓝桥杯官网练习题(算式900)
    [ansible]playbook结合项目解释执行步骤
    计算机java项目|springboot校园一卡通
    GO语言最常用的语法
    Java设计模式之装饰器模式
    linux 文本处理工具 cut 和 awk
  • 原文地址:https://blog.csdn.net/Jina_AI/article/details/133775964