[
https://issues.apache.org/jira/browse/OPENNLP-1830?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18081941#comment-18081941
]
ASF GitHub Bot commented on OPENNLP-1830:
-----------------------------------------
mawiesne commented on code in PR #465:
URL: https://github.com/apache/opennlp-sandbox/pull/465#discussion_r3264254362
##########
opennlp-grpc/examples/README.md:
##########
@@ -1,20 +1,42 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
# Apache OpenNLP gRPC - Examples
This repository contains examples for the Apache OpenNLP gRPC project.
-For other languages, you need to generate the code stubs yourself, as shown
here for Python
+For other languages, generate the code stubs yourself, as shown here for
Python:
-```
+```bash
python3 -m pip install grpcio-tools
mkdir python
-python3 -m grpc_tools.protoc -I. --python_out=python --grpc_python_out=python
opennlp.proto
+python3 -m grpc_tools.protoc \
Review Comment:
Any benefit in having this on multiple lines? IMHO, one liner was clear and
readable.
##########
opennlp-grpc/examples/python-client/sentdetect_example.py:
##########
@@ -0,0 +1,65 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import grpc
+import opennlp_pb2
+import opennlp_pb2_grpc
+
+
+def run():
+ with grpc.insecure_channel("localhost:7071") as channel:
+ stub = opennlp_pb2_grpc.SentenceDetectorServiceStub(channel)
+
+ print("Connecting to OpenNLP gRPC server...")
+
+ try:
+ response = stub.GetAvailableModels(
+ opennlp_pb2.Empty(),
+ timeout=5
+ )
+ models = list(response.models)
+ except grpc.RpcError as e:
+ print(f"Server error: {e.code()} - {e.details()}")
+ return
+
+ if not models:
+ print("No models available on server.")
+ return
+
+ # Pick first registered sentence detector model
+ model = models[0]
Review Comment:
What if none was found? Inform consumer of the non-available model state?
##########
opennlp-grpc/examples/python-client/uv.lock:
##########
Review Comment:
Why do we need to add and keep a `.lock` file in the git repo? Can't this be
just created on the checkout for the local dev purposes?
##########
README.md:
##########
@@ -14,7 +14,6 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
-
Review Comment:
Can we leave the blank line in here?
##########
opennlp-grpc/examples/README.md:
##########
@@ -1,20 +1,42 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
# Apache OpenNLP gRPC - Examples
This repository contains examples for the Apache OpenNLP gRPC project.
-For other languages, you need to generate the code stubs yourself, as shown
here for Python
+For other languages, generate the code stubs yourself, as shown here for
Python:
-```
+```bash
python3 -m pip install grpcio-tools
mkdir python
-python3 -m grpc_tools.protoc -I. --python_out=python --grpc_python_out=python
opennlp.proto
+python3 -m grpc_tools.protoc \
+ -I. \
+ --python_out=python \
+ --grpc_python_out=python \
+ opennlp.proto
```
-# Documentation generation
+## Documentation generation
```powershell
-docker run --rm -v ${PWD}:/out -v ${PWD}:/protos pseudomuto/protoc-gen-doc
--doc_opt=markdown,opennlp.md
+docker run --rm \
Review Comment:
See comment above on one-liner formatting.
> Add Python gRPC sentence detection example with uv support
> ----------------------------------------------------------
>
> Key: OPENNLP-1830
> URL: https://issues.apache.org/jira/browse/OPENNLP-1830
> Project: OpenNLP
> Issue Type: Improvement
> Components: gRPC binding
> Reporter: Jobin Sabu
> Priority: Major
> Labels: Python, grpc
>
> Adds a Python sentence detection example for the OpenNLP gRPC example module.
> Change include:
> Adds Sentence detection Python client example
> Add uv-based dependency management support
> Improve Python example documentation
> Clean generated and align example structure with project conventions
> This improves usability for contributors testing OpenNLP gRPC Python
> integration locally
--
This message was sent by Atlassian Jira
(v8.20.10#820010)