Hi,

thanks for the follow up. Overall, I think it looks quite nicely -
thanks. Maybe Jeff or Atita also have some opinons on the Python style
here :)

I think it requires some love in the following areas:

1.) The build config needs to be configured correctly with the package
name, versioning, dependencies for gRPC (like grpcio, grpcio-tools,
protobuf), build backend (maybe use uv?)

2.) Ensure a clear and reproducible workflow for regenerating stubs
from the proto files on GitHub, e.g. you could add a script in
/scripts/gen_protos.sh that:

- pulls the proto definitions from the Apache opennlp-sandbox repo
- runs grpc_tools.protoc to update Python stubs
- places them in your package

This protects against drift and supports automated updates if needed.

3.) I would add some unit tests that actually call a running OpenNLP
GRPC backend (for example via testcontainers or a local mock)

4.) Setup GH actions, e.g. regenerates stubs and opens a PR if they
have changed. You can see an example how this can be done in the
opennlp core repo for the license updates. Build and run the tests from
3.)

Gruß
Richard



Am Sonntag, dem 14.12.2025 um 14:50 +0530 schrieb Jobin Sabu:
> Hi Richard,
> 
> I’ve added a small Python client based on the existing opennlp-grpc
> proto
> definitions in the sandbox, along with a minimal examples/ folder.
> 
> The purpose of the examples/ folder is to provide a simple, runnable
> reference for Python users to verify their setup and understand how
> to call
> the gRPC services (sentence detection, tokenization, etc.) without
> needing
> to inspect the client internals.
> 
> While testing, I attempted to run the Java gRPC backend via
> Docker/Maven
> from the sandbox. Building and running the service requires the full
> sandbox parent setup and the correct build context, which can be
> non-obvious when approaching it primarily from the Python side. The
> client
> itself works once a compatible backend and model are available.
> 
> Everything is kept in the same repo for transparency and easier
> review. I’m
> happy to adjust structure, scope, or move this into a proper PR if
> you
> think it’s ready. It is here
> 
> https://github.com/JOBIN-SABU/opennlp-sandbox-experiments
> 
> Please let me know how you’d like me to proceed.
> 
> Best regards,
> Jobin Sabu
> 
> On Tue, 16 Sept, 2025, 5:38 pm Richard Zowalla, <[email protected]>
> wrote:
> 
> > Hi,
> > 
> > I had a very brief look. I don’t know why there is a Python server
> > implementation.
> > We have a fully GRPC capable backend implementation located here:
> > https://github.com/apache/opennlp-sandbox/tree/main/opennlp-grpc
> > You can just run that via Docker (for example). This would also be
> > the
> > thing to upgrade / enhance for further NLP tasks.
> > 
> > On the other side, we would need to implement a Python client
> > (based on
> > the proto definition) and wrap that into something a Python person
> > is more
> > familiar with.
> > I guess that the best way would be to fork opennlp-sandbox and
> > provide
> > your updates in your fork of the sandbox, so it can easily be
> > integrated.
> > 
> > Gruß
> > Richard
> > 
> > > Am 16.09.2025 um 13:56 schrieb Jobin Sabu
> > > <[email protected]>:
> > > 
> > > Good evening OpenNLP devs,
> > > I hope you’re doing well. I wanted to apologise for the delay in
> > following
> > > up on the gRPC-based Python integration we discussed earlier —
> > > university
> > > exams and related academic commitments took up more time than I
> > > expected.
> > > Things have settled down now, and I’m ready to continue the work.
> > > 
> > > Quick status update (minimal prototype):
> > > 
> > > I generated and tested the Python gRPC stubs from
> > > proto/opennlp.proto.
> > > 
> > > I implemented a small Python gRPC server that exposes the
> > > tokenizer
> > service
> > > and a simple client example.
> > > 
> > > I verified the flow locally using the official Apache OpenNLP CLI
> > (OpenNLP
> > > 2.5.5).
> > > 
> > > Code + usage examples are on GitHub:
> > > https://github.com/JOBIN-SABU/Apache_opennlp_grpc
> > > 
> > > 
> > > Next steps I intend to take (and would value your input on):
> > > 
> > > Open a short PR with this minimal prototype so it’s easy for
> > > reviewers to
> > > run and test.
> > > 
> > > Expand to additional services (POS tagging, sentence detection)
> > > based on
> > > your feedback and preferences.
> > > 
> > > Ensure the implementation and packaging meet ASF guidelines for
> > > contribution.
> > > 
> > > 
> > > If you or other maintainers have a moment, could you try the repo
> > > and
> > share
> > > any initial feedback? I can open a PR with a concise README and
> > > test
> > > instructions so it’s straightforward to run locally. I’d greatly
> > appreciate
> > > any guidance on preferred design choices or packaging
> > > requirements
> > before I
> > > expand the scope.
> > > 
> > > Thank you again for the earlier encouragement — I’m excited to
> > > contribute
> > > and will follow your lead on next steps.
> > > 
> > > Best regards,
> > > Jobin Sabu
> > > [email protected]
> > > https://github.com/JOBIN-SABU/Apache_opennlp_grpc
> > > 
> > > 
> > > On Sun, 18 May, 2025, 12:38 am Richard Zowalla, <[email protected]>
> > > wrote:
> > > 
> > > > Hi,
> > > > 
> > > > Feel free to contribute to OpenNLP.
> > > > 
> > > > You can ask any question on the list or we can open a
> > > > discussion with
> > code
> > > > (i.e. in a PR).
> > > > Every contribution in that area is valuable, imho.
> > > > 
> > > > Gruß
> > > > Richard
> > > > 
> > > > > Am 10.05.2025 um 05:38 schrieb Jobin Sabu
> > > > > <[email protected]>:
> > > > > 
> > > > > Respected Apache OpenNLP Team,
> > > > > 
> > > > > I hope you're doing well.
> > > > > 
> > > > > Although I wasn't selected for GSoC this year, I remain
> > > > > deeply
> > interested
> > > > > in contributing to OpenNLP — particularly the gRPC-based
> > > > > Python
> > > > integration
> > > > > project we previously discussed. I found the idea both
> > > > > technically
> > > > exciting
> > > > > and valuable for the community, and I’d still love to pursue
> > > > > it
> > > > > independently.
> > > > > 
> > > > > Currently, I’m in the middle of my 4th semester university
> > > > > exams, which
> > > > > will conclude on *May 17*. I plan to begin contributing more
> > > > > actively
> > > > > around *May 20* and would be truly grateful for your
> > > > > *guidance and
> > > > > mentorship* throughout the process.
> > > > > 
> > > > > Please let me know if you’re open to supporting this
> > > > > contribution and
> > if
> > > > > there are any specific expectations or directions I should
> > > > > follow to
> > > > align
> > > > > well with the project.
> > > > > 
> > > > > Looking forward to your response.
> > > > > 
> > > > > Warm regards,
> > > > > *Jobin Sabu*
> > > > 
> > > > 
> > 
> > 

Reply via email to