Giter Site home page Giter Site logo

Support docarray pydantic v2 about jina HOT 12 OPEN

JoanFM avatar JoanFM commented on May 27, 2024 1
Support docarray pydantic v2

from jina.

Comments (12)

TamiasSibiricus avatar TamiasSibiricus commented on May 27, 2024 1

@JoanFM have find why openapi schema sometime fails. This happened when LegacyDocumentJina appears in schemas list and fall down in pydantic lib with schema generation on two fields:

class LegacyDocumentJina(BaseDoc):
    ...
    chunks: Optional[Union[DocList[LegacyDocumentJina], List[LegacyDocumentJina]]] = None
    matches: Optional[Union[DocList[LegacyDocumentJina], List[LegacyDocumentJina]]] = None
    ...

Seems that both fields contain doclists with docs refered to self. when i comment this fields in my fork everything works fine.

I just do not car about LegacyDocumentJina fields for backward compatibility BTW.

from jina.

JoanFM avatar JoanFM commented on May 27, 2024 1

Yes, I also discovered this, but then some new things appear. WIll post more as I find, thanks a lot for the help. If you can do a PR to try all your changes it would be great

from jina.

MimicTester1307 avatar MimicTester1307 commented on May 27, 2024

Hi @JoanFM if it's is still needed, I'd like to work on this issue or #5999. I think it'll help familiarize me with the codebase.
Additionally, I tried accessing https://learn.jina.ai/ (I had bookmarked it), but it now redirects to the jina.ai home page. Will the learning resources be up again soon?

from jina.

JoanFM avatar JoanFM commented on May 27, 2024

Hey @MimicTester1307 , I do not think these learning resources wlill be back again. Where did you get the link from?

I think you can try to work on the #5999 . This ticket may be complex because we may need to.keep compatibility with 2 pydantic versions at the same time.

from jina.

MimicTester1307 avatar MimicTester1307 commented on May 27, 2024

I see, the courses were pretty comprehensive, though. I think I got it from the JinaAI site initially (a couple of months ago). I bookmarked it for later when I was more comfortable to attempt a contribution.

Alright, thanks. I'll take start with #5999. I can assign it to myself, right?

from jina.

JoanFM avatar JoanFM commented on May 27, 2024

I see, the courses were pretty comprehensive, though. I think I got it from the JinaAI site initially (a couple of months ago). I bookmarked it for later when I was more comfortable to attempt a contribution.

I will yes

from jina.

Wh1isper avatar Wh1isper commented on May 27, 2024

Hello, may I ask what is stopping us from upgrading to pydantic v2?

I know there are many integration tests that fail due to upgrades in #6132 . But I think a more beneficial approach would be for jina to upgrade a version number, something like 3.23 -> 3.30, and provide security fixes and important backports for 3.2x only. Once the downstream projects are upgraded, we can stop supporting 3.2x.

This is not in conflict with maintaining Pydantic V1 compatibility, as I know more and more projects are based on Pydantic V2, which forces me to do more complex isolation designs when adopting jina.

from jina.

Wh1isper avatar Wh1isper commented on May 27, 2024

clip-as-service uses docarray, which allows us to interact with clip by way of microservices👍, but clip-as-service's clip_client needs to rely on jina, which results in the project that relies on the clip_client being tied to the pydantic V1, though I just need a client... 😂

I understand that clip_client can't run without jina, so we may should push jina to get with the times.

from jina.

JoanFM avatar JoanFM commented on May 27, 2024

Hello, may I ask what is stopping us from upgrading to pydantic v2?

I know there are many integration tests that fail due to upgrades in #6132 . But I think a more beneficial approach would be for jina to upgrade a version number, something like 3.23 -> 3.30, and provide security fixes and important backports for 3.2x only. Once the downstream projects are upgraded, we can stop supporting 3.2x.

This is not in conflict with maintaining Pydantic V1 compatibility, as I know more and more projects are based on Pydantic V2, which forces me to do more complex isolation designs when adopting jina.

Right now, what is blocking is mostly the time availability from my side to dedicate to this feature. If someone from community feels like providing this I would love to help them out however.

from jina.

jina-bot avatar jina-bot commented on May 27, 2024

@jina-ai/product This issue is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 14 days

from jina.

TamiasSibiricus avatar TamiasSibiricus commented on May 27, 2024

@JoanFM I have tried with latest changes in PR #6150 and everything works like a charm except one thing. when i start flow as service in docker container with grpc protocol only sometimes got error with openapi schema generation related to LegacyDocumentJina. Maybe add error report later. Just to be clear this happens only first time when i rebuild image for docker container based on jina 3.25.1 image. Maybe some artefacts.

from jina.

JoanFM avatar JoanFM commented on May 27, 2024

Hey @TamiasSibiricus ,

Yes I have observed that, but there is some more nuances about having DocList actually be a List and so on. I hope to get some time to work on that again.

from jina.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.