kermitt2 / entity-fishing

A machine learning tool for fishing entities
http://nerd.readthedocs.io/
Apache License 2.0
249 stars 24 forks source link

Entity Fishing Service Randomly not Yielding Wiki Link #159

Open ndenStanford opened 1 year ago

ndenStanford commented 1 year ago

Hello,

I have deployed an entity fish solution following the instruction here in Kubernetes. I noticed that the service could yield a matched wiki entity most time. For example

curl -X POST "http://localhost:8090/service/disambiguate" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"text\": \"I live in London.\", \"mentions\": [\"wikipedia\"], \"entities\": [{\"rawName\": \"London\"}]}"

would yield the following result

{"software": "entity-fishing", "version": "0.0.6", "date": "2023-04-23T13:45:39.073228Z", "runtime": 20, "nbest": false, "text": "I live in London.", "language": {"lang":"en", "conf": 0.93565452097313}, "entities": [{ "rawName" : "London", "confidence_score":0.4563, "wikipediaExternalRef": 17867, "wikidataId" : "Q84", "domains" : [ "Administration", "Nautical", "Transport", "Vehicles" ]  }, { "rawName" : "London", "offsetStart" : 10, "offsetEnd" : 16, "confidence_score":0.4563, "wikipediaExternalRef": 17867, "wikidataId" : "Q84", "domains" : [ "Administration", "Nautical", "Transport", "Vehicles" ]  }]}root@entity-fish-docker-v1-7558fdd645-zgvkr:/opt/entity-fishing# curl -X POST "http://localhost:8090/service/disambiguate" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"text\": \"I live in London.\", \"mentions\": [\"wikipedia\"], \"entities\": [{\"rawName\": \"London\"}]}"

However, the service would sometimes silently fail and output the result below without matched Wiki id using the exact same input.

{"software": "entity-fishing", "version": "0.0.6", "date": "2023-04-23T13:45:46.841258Z", "runtime": 5, "nbest": false, "text": "I live in London.", "language": {"lang":"it", "conf": 0.5714275927461994}}

Is there a way I can prevent this silence failure or at least know when it will happen? Any recommendation is greatly appreciated.

kermitt2 commented 1 year ago

Hello @ndenStanford !

This is a bit surprising, I think the language identifier should be deterministic.

The text is extremely short, so you'd better fix the language in the query to avoid language recognition error:

{
    "text": "I live in London",
    "language": {
        "lang": "en"
    },
    "entities": [{
            "rawName": "London",
            "offsetStart": 10,
            "offsetEnd": 16
     }],
    "mentions": [
    ],
    "nbest": false,
    "sentence": false
}

Also note: if you want to constrain the disambiguation on a particular term only, you need normally to add the offsets for this term.

ndenStanford commented 1 year ago

Thank you for your response and clarification. Without offset specified, entity fish would just yield all the matching by default it seems but it should still function as usual.

The problem of not returning any match occurs even when the language is specified as the input below.

{'text': 'Venezuela envía 35 especialistas y 20 toneladas de ayuda a Cuba por incendio. El Gobierno de Venezuela envió la noche de este sábado a Cuba una misión de 35 bomberos especializados y técnicos de la estatal petrolera PDVSA, además de 20 toneladas de insumos para apoyar en el combate del incendio provocado por la explosión de tanques de petróleo en la localidad de Matanzas, en la isla caribeña.. El Gobierno de Venezuela envió la noche de este sábado a Cuba una misión de 35 bomberos especializados y técnicos de la estatal petrolera PDVSA, además de 20 toneladas de insumos para apoyar en el combate del incendio provocado por la explosión de tanques de petróleo en la localidad de Matanzas, en la isla caribeña. La información fue dada a conocer por el ministro de Petróleo venezolano, Tareck El Aissami, quien detalló, en su cuenta en Twitter, que se trata de «bomberos especialistas y técnicos de PDVSA de los más capacitados en este tipo de siniestros». «Además de la misión de 35 bomberos especializados en operaciones de alta complejidad, hemos enviado 20 toneladas de insumos (espuma) y polvos químicos para atender esta contingencia», explicó el funcionario, quien reiteró que Cuba cuenta con «todo» el apoyo y la solidaridad de Venezuela. El Aissami compartió fotografías y vídeos de la misión antes del despegue en un avión de la aerolínea venezolana Conviasa, y aseguró que el envío de ayuda fue una instrucción del presidente Nicolás Maduro. Durante la jornada, el Gobierno del país petrolero emitió un comunicado en el que expresó su «inquebrantable solidaridad» a Cuba y Maduro aseguró que Venezuela tiene la «plena disposición» para ayudar a la isla en estos momentos. El gran incendio que sigue activo ocurrió este sábado en dos de ocho depósitos de crudo de la zona industrial de la ciudad cubana de Matanzas y deja, hasta el momento, un muerto que no ha sido identificado, 121 lesionados y 17 bomberos desaparecidos que «estaban en la zona más cercana intentando evitar la propagación», según informaron las autoridades. El siniestro comenzó la tarde del viernes cuando un rayo impactó en uno de los ocho depósitos de combustible en el lugar. En la mañana de este sábado ocurrió una segunda explosión en otro tanque que provocó columnas de humo visibles hasta en La Habana, a 104 kilómetros del lugar. El presidente cubano, Miguel Díaz-Canel agradeció en Twitter a países como México, Venezuela, Rusia, Nicaragua, Argentina y Chile, «que con prontitud han ofrecido ayuda material solidaria ante esta compleja situación».', 'language': {'lang': 'es'}, 'mentions': ['ner', 'wikipedia'], 'entities': [{'rawName': 'PDVSA'}, {'rawName': 'Cuba'}, {'rawName': 'tanques'}, {'rawName': 'Matanzas'}, {'rawName': 'El Gobierno de Venezuela'}, {'rawName': 'Venezuela'}]}

I wonder if there's a component inside the entity fish logic that relies on a third-party service like making an API call or anything stochastic in the nature of the logic?

kermitt2 commented 1 year ago

Are you using the demo server or a local deployment? What is your environment? I can't reproduce the problem, the following query always return the same matches:

{
"text": "Venezuela envía 35 especialistas y 20 toneladas de ayuda a Cuba por incendio. El Gobierno de Venezuela envió la noche de este sábado a Cuba una misión de 35 bomberos especializados y técnicos de la estatal petrolera PDVSA, además de 20 toneladas de insumos para apoyar en el combate del incendio provocado por la explosión de tanques de petróleo en la localidad de Matanzas, en la isla caribeña.. El Gobierno de Venezuela envió la noche de este sábado a Cuba una misión de 35 bomberos especializados y técnicos de la estatal petrolera PDVSA, además de 20 toneladas de insumos para apoyar en el combate del incendio provocado por la explosión de tanques de petróleo en la localidad de Matanzas, en la isla caribeña. La información fue dada a conocer por el ministro de Petróleo venezolano, Tareck El Aissami, quien detalló, en su cuenta en Twitter, que se trata de «bomberos especialistas y técnicos de PDVSA de los más capacitados en este tipo de siniestros». «Además de la misión de 35 bomberos especializados en operaciones de alta complejidad, hemos enviado 20 toneladas de insumos (espuma) y polvos químicos para atender esta contingencia», explicó el funcionario, quien reiteró que Cuba cuenta con «todo» el apoyo y la solidaridad de Venezuela. El Aissami compartió fotografías y vídeos de la misión antes del despegue en un avión de la aerolínea venezolana Conviasa, y aseguró que el envío de ayuda fue una instrucción del presidente Nicolás Maduro. Durante la jornada, el Gobierno del país petrolero emitió un comunicado en el que expresó su «inquebrantable solidaridad» a Cuba y Maduro aseguró que Venezuela tiene la «plena disposición» para ayudar a la isla en estos momentos. El gran incendio que sigue activo ocurrió este sábado en dos de ocho depósitos de crudo de la zona industrial de la ciudad cubana de Matanzas y deja, hasta el momento, un muerto que no ha sido identificado, 121 lesionados y 17 bomberos desaparecidos que «estaban en la zona más cercana intentando evitar la propagación», según informaron las autoridades. El siniestro comenzó la tarde del viernes cuando un rayo impactó en uno de los ocho depósitos de combustible en el lugar. En la mañana de este sábado ocurrió una segunda explosión en otro tanque que provocó columnas de humo visibles hasta en La Habana, a 104 kilómetros del lugar. El presidente cubano, Miguel Díaz-Canel agradeció en Twitter a países como México, Venezuela, Rusia, Nicaragua, Argentina y Chile, «que con prontitud han ofrecido ayuda material solidaria ante esta compleja situación».", 
"language": {"lang": "es"}, 
"mentions": ["ner", "wikipedia"], 
"entities": [{"rawName": "PDVSA"}, {"rawName": "Cuba"}, {"rawName": "tanques"}, {"rawName": "Matanzas"}, {"rawName": "El Gobierno de Venezuela"}, {"rawName": "Venezuela"}]
}

If you want to constrain the disambiguation on a particular term only, you need normally to add the offsets for this term in the given text AND keep the "mentions" field empty ("mentions": [],), otherwise the mention recognition specified here is used ("wikipedia" means using all wikipedia known anchors) and the term under entities are ignored.

I wonder if there's a component inside the entity fish logic that relies on a third-party service like making an API call or anything stochastic in the nature of the logic?

There is no external call and all the ML components are deterministic afaik.

kermitt2 commented 1 year ago

Sorry you're using the Docker image in Kubernetes. I don't know what could explain a different behavior in a Kubernetes setting. Can you access the server logs maybe?

ndenStanford commented 1 year ago

The issue generally occurs when traffic to the pod is large. I would expect entity fish pod to explicitly fail if it cannot handle the traffic but instead, it still yields status 200 even though it doesn't give the response with the wiki link in it like this.

{"software": "entity-fishing", "version": "0.0.6", "date": "2023-04-23T13:45:39.073228Z", "runtime": 20, "nbest": false, "text": "I live in London.", "language": {"lang":"en", "conf": 0.93565452097313}, "entities": [{ "rawName" : "London", "confidence_score":0.4563, "wikipediaExternalRef": 17867, "wikidataId" : "Q84", "domains" : [ "Administration", "Nautical", "Transport", "Vehicles" ]  }, { "rawName" : "London", "offsetStart" : 10, "offsetEnd" : 16, "confidence_score":0.4563, "wikipediaExternalRef": 17867, "wikidataId" : "Q84", "domains" : [ "Administration", "Nautical", "Transport", "Vehicles" ]  }]}root@entity-fish-docker-v1-7558fdd645-zgvkr:/opt/entity-fishing# curl -X POST "http://localhost:8090/service/disambiguate" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"text\": \"I live in London.\", \"mentions\": [\"wikipedia\"], \"entities\": [{\"rawName\": \"London\"}]}"

The Kubernetes contains entity fish model pods that deployed using the Docker provided in here and the client frontend pods which simply do some data preprocessing, invoke the model pod, and post-process the result.

Here is the sample of logs from the entity fish pod. Note that it looks like all requests to the entity fish model pods are successful.

172.31.30.134 - - [23/Apr/2023:18:51:09 +0000] "POST /service/disambiguate HTTP/1.1" 200 9407 "-" "python-requests/2.28.2" 294
172.31.30.134 - - [23/Apr/2023:18:51:10 +0000] "POST /service/disambiguate HTTP/1.1" 200 318 "-" "python-requests/2.28.2" 4
172.31.30.134 - - [23/Apr/2023:18:51:11 +0000] "POST /service/disambiguate HTTP/1.1" 200 318 "-" "python-requests/2.28.2" 4
172.31.30.134 - - [23/Apr/2023:18:51:13 +0000] "POST /service/disambiguate HTTP/1.1" 200 318 "-" "python-requests/2.28.2" 4
[0:0:0:0:0:0:0:1] - - [23/Apr/2023:18:51:14 +0000] "POST /service/disambiguate HTTP/1.1" 200 202 "-" "curl/7.74.0" 3
172.31.30.134 - - [23/Apr/2023:18:51:15 +0000] "POST /service/disambiguate HTTP/1.1" 200 3395 "-" "python-requests/2.28.2" 116
172.31.30.134 - - [23/Apr/2023:18:51:17 +0000] "POST /service/disambiguate HTTP/1.1" 200 4648 "-" "python-requests/2.28.2" 47
172.31.30.134 - - [23/Apr/2023:18:51:28 +0000] "POST /service/disambiguate HTTP/1.1" 200 318 "-" "python-requests/2.28.2" 5
[0:0:0:0:0:0:0:1] - - [23/Apr/2023:18:51:29 +0000] "POST /service/disambiguate HTTP/1.1" 200 202 "-" "curl/7.74.0" 5
[0:0:0:0:0:0:0:1] - - [23/Apr/2023:18:51:29 +0000] "POST /service/disambiguate HTTP/1.1" 200 202 "-" "curl/7.74.0" 3
172.31.30.134 - - [23/Apr/2023:18:51:29 +0000] "POST /service/disambiguate HTTP/1.1" 200 9314 "-" "python-requests/2.28.2" 328
172.31.30.134 - - [23/Apr/2023:18:51:35 +0000] "POST /service/disambiguate HTTP/1.1" 200 3527 "-" "python-requests/2.28.2" 100
172.31.30.134 - - [23/Apr/2023:18:51:40 +0000] "POST /service/disambiguate HTTP/1.1" 200 24782 "-" "python-requests/2.28.2" 983
[0:0:0:0:0:0:0:1] - - [23/Apr/2023:18:51:44 +0000] "POST /service/disambiguate HTTP/1.1" 200 202 "-" "curl/7.74.0" 4
172.31.30.134 - - [23/Apr/2023:18:51:50 +0000] "POST /service/disambiguate HTTP/1.1" 200 318 "-" "python-requests/2.28.2" 5
172.31.30.134 - - [23/Apr/2023:18:51:53 +0000] "POST /service/disambiguate HTTP/1.1" 200 318 "-" "python-requests/2.28.2" 5
[0:0:0:0:0:0:0:1] - - [23/Apr/2023:18:51:59 +0000] "POST /service/disambiguate HTTP/1.1" 200 202 "-" "curl/7.74.0" 5
[0:0:0:0:0:0:0:1] - - [23/Apr/2023:18:51:59 +0000] "POST /service/disambiguate HTTP/1.1" 200 202 "-" "curl/7.74.0" 4
172.31.30.134 - - [23/Apr/2023:18:52:00 +0000] "POST /service/disambiguate HTTP/1.1" 200 318 "-" "python-requests/2.28.2" 4
172.31.30.134 - - [23/Apr/2023:18:52:04 +0000] "POST /service/disambiguate HTTP/1.1" 200 13288 "-" "python-requests/2.28.2" 321
172.31.30.134 - - [23/Apr/2023:18:52:05 +0000] "POST /service/disambiguate HTTP/1.1" 200 1595 "-" "python-requests/2.28.2" 192
172.31.30.134 - - [23/Apr/2023:18:52:08 +0000] "POST /service/disambiguate HTTP/1.1" 200 8790 "-" "python-requests/2.28.2" 1169

However, when inspecting the entity fish result using simple logic in the client pod, it's clear that some requests didn't get processed correctly in the way I mentioned previously. I logged out some of these faulty responses. Here I printed out the query and the corresponding responses below. I attempted to retry 3 times but the failure always happens the same way. The majority of the requests are ok but a handful does not give the correct responses.

INFO:main:Query does not yield entity entity fish entities
INFO:main:retry_model_call: 0
INFO:main:query: 
INFO:main:{'text': '3 pcs conjunto de jantar para jardim madeira de teca maciça. Este conjunto de jantar para jardim em madeira, com um design elegante e contemporâneo, é uma ótima opção para refeições ou para relaxar no jardim. Material de qualidade: a madeira de teca maciça é um bonito material natural. Esta peça em teca passou por um processo de remoção de humidade, foi seca em estufa e, […]. Este conjunto de jantar para jardim em madeira, com um design elegante e contemporâneo, é uma ótima opção para refeições ou para relaxar no jardim.  Material de qualidade: a madeira de teca maciça é um bonito material natural. Esta peça em teca passou por um processo de remoção de humidade, foi seca em estufa e, posteriormente, finamente lixada para lhe ser atribuída uma aparência muito suave. A madeira de teca é conhecida pela sua força excecional e resistência às intempéries. Tampo de mesa robusto: esta mesa de jantar proporciona-lhe um tampo de mesa robusto. Pode colocar os seus aperitivos, bebidas e qualquer uma das suas decorações favoritas. Resistente à água: sendo resistente à água e apresentando um aspeto clássico, poderá colocar o móvel de jardim em qualquer lugar do seu doce lar, quer seja dentro ou fora de casa! Experiência de assento confortável: cada banco possui um encosto, o que os torna altamente confortáveis.   Cada produto é fornecido com um manual de instruções na caixa para facilitar a montagem. Para prolongar a vida útil do seu mobiliário de exterior, recomendamos que o proteja com uma capa impermeável.   Mesa: Material: madeira de teca dura finamente lixada com acabamento à base de água Dimensões: 200 x 100 x 77 cm (C x L x A) Tamanho das pernas: 5 x 5 cm (L x P) Espessura da estrutura do tampo de mesa: 28 mm (margem +/- 2 mm) Espessura das ripas do tampo de mesa: 12 mm (margem +/- 2 mm) Banco: Material: madeira de teca dura finamente lixada com acabamento à base de água Dimensões (cada): 180 x 59 x 90 cm (L x P x A) Profundidade do assento: 43 cm Altura do assento a partir do chão: 45 cm A entrega inclui: 1 x Mesa 2 x Bancos', 'language': {'lang': 'pt'}, 'mentions': ['ner', 'wikipedia'], 'entities': [{'rawName': 'Espessura das'}, {'rawName': 'Banco'}, {'rawName': 'Tamanho das pernas'}]}
INFO:main:wiki_response: 
INFO:main:{'software': 'entity-fishing', 'version': '0.0.6', 'date': '2023-04-23T18:59:36.737736Z', 'runtime': 66, 'nbest': False, 'text': '3 pcs conjunto de jantar para jardim madeira de teca maciça. Este conjunto de jantar para jardim em madeira, com um design elegante e contemporâneo, é uma ótima opção para refeições ou para relaxar no jardim. Material de qualidade: a madeira de teca maciça é um bonito material natural. Esta peça em teca passou por um processo de remoção de humidade, foi seca em estufa e, […]. Este conjunto de jantar para jardim em madeira, com um design elegante e contemporâneo, é uma ótima opção para refeições ou para relaxar no jardim.  Material de qualidade: a madeira de teca maciça é um bonito material natural. Esta peça em teca passou por um processo de remoção de humidade, foi seca em estufa e, posteriormente, finamente lixada para lhe ser atribuída uma aparência muito suave. A madeira de teca é conhecida pela sua força excecional e resistência às intempéries. Tampo de mesa robusto: esta mesa de jantar proporciona-lhe um tampo de mesa robusto. Pode colocar os seus aperitivos, bebidas e qualquer uma das suas decorações favoritas. Resistente à água: sendo resistente à água e apresentando um aspeto clássico, poderá colocar o móvel de jardim em qualquer lugar do seu doce lar, quer seja dentro ou fora de casa! Experiência de assento confortável: cada banco possui um encosto, o que os torna altamente confortáveis.   Cada produto é fornecido com um manual de instruções na caixa para facilitar a montagem. Para prolongar a vida útil do seu mobiliário de exterior, recomendamos que o proteja com uma capa impermeável.   Mesa: Material: madeira de teca dura finamente lixada com acabamento à base de água Dimensões: 200 x 100 x 77 cm (C x L x A) Tamanho das pernas: 5 x 5 cm (L x P) Espessura da estrutura do tampo de mesa: 28 mm (margem +/- 2 mm) Espessura das ripas do tampo de mesa: 12 mm (margem +/- 2 mm) Banco: Material: madeira de teca dura finamente lixada com acabamento à base de água Dimensões (cada): 180 x 59 x 90 cm (L x P x A) Profundidade do assento: 43 cm Altura do assento a partir do chão: 45 cm A entrega inclui: 1 x Mesa 2 x Bancos', 'language': {'lang': 'pt', 'conf': 1.0}}
INFO:main:Query does not yield entity entity fish entities
INFO:main:retry_model_call: 1
INFO:main:query: 
INFO:main:{'text': '3 pcs conjunto de jantar para jardim madeira de teca maciça. Este conjunto de jantar para jardim em madeira, com um design elegante e contemporâneo, é uma ótima opção para refeições ou para relaxar no jardim. Material de qualidade: a madeira de teca maciça é um bonito material natural. Esta peça em teca passou por um processo de remoção de humidade, foi seca em estufa e, […]. Este conjunto de jantar para jardim em madeira, com um design elegante e contemporâneo, é uma ótima opção para refeições ou para relaxar no jardim.  Material de qualidade: a madeira de teca maciça é um bonito material natural. Esta peça em teca passou por um processo de remoção de humidade, foi seca em estufa e, posteriormente, finamente lixada para lhe ser atribuída uma aparência muito suave. A madeira de teca é conhecida pela sua força excecional e resistência às intempéries. Tampo de mesa robusto: esta mesa de jantar proporciona-lhe um tampo de mesa robusto. Pode colocar os seus aperitivos, bebidas e qualquer uma das suas decorações favoritas. Resistente à água: sendo resistente à água e apresentando um aspeto clássico, poderá colocar o móvel de jardim em qualquer lugar do seu doce lar, quer seja dentro ou fora de casa! Experiência de assento confortável: cada banco possui um encosto, o que os torna altamente confortáveis.   Cada produto é fornecido com um manual de instruções na caixa para facilitar a montagem. Para prolongar a vida útil do seu mobiliário de exterior, recomendamos que o proteja com uma capa impermeável.   Mesa: Material: madeira de teca dura finamente lixada com acabamento à base de água Dimensões: 200 x 100 x 77 cm (C x L x A) Tamanho das pernas: 5 x 5 cm (L x P) Espessura da estrutura do tampo de mesa: 28 mm (margem +/- 2 mm) Espessura das ripas do tampo de mesa: 12 mm (margem +/- 2 mm) Banco: Material: madeira de teca dura finamente lixada com acabamento à base de água Dimensões (cada): 180 x 59 x 90 cm (L x P x A) Profundidade do assento: 43 cm Altura do assento a partir do chão: 45 cm A entrega inclui: 1 x Mesa 2 x Bancos', 'language': {'lang': 'pt'}, 'mentions': ['ner', 'wikipedia'], 'entities': [{'rawName': 'Espessura das'}, {'rawName': 'Banco'}, {'rawName': 'Tamanho das pernas'}]}
INFO:main:wiki_response: 
INFO:main:{'software': 'entity-fishing', 'version': '0.0.6', 'date': '2023-04-23T18:59:36.737736Z', 'runtime': 66, 'nbest': False, 'text': '3 pcs conjunto de jantar para jardim madeira de teca maciça. Este conjunto de jantar para jardim em madeira, com um design elegante e contemporâneo, é uma ótima opção para refeições ou para relaxar no jardim. Material de qualidade: a madeira de teca maciça é um bonito material natural. Esta peça em teca passou por um processo de remoção de humidade, foi seca em estufa e, […]. Este conjunto de jantar para jardim em madeira, com um design elegante e contemporâneo, é uma ótima opção para refeições ou para relaxar no jardim.  Material de qualidade: a madeira de teca maciça é um bonito material natural. Esta peça em teca passou por um processo de remoção de humidade, foi seca em estufa e, posteriormente, finamente lixada para lhe ser atribuída uma aparência muito suave. A madeira de teca é conhecida pela sua força excecional e resistência às intempéries. Tampo de mesa robusto: esta mesa de jantar proporciona-lhe um tampo de mesa robusto. Pode colocar os seus aperitivos, bebidas e qualquer uma das suas decorações favoritas. Resistente à água: sendo resistente à água e apresentando um aspeto clássico, poderá colocar o móvel de jardim em qualquer lugar do seu doce lar, quer seja dentro ou fora de casa! Experiência de assento confortável: cada banco possui um encosto, o que os torna altamente confortáveis.   Cada produto é fornecido com um manual de instruções na caixa para facilitar a montagem. Para prolongar a vida útil do seu mobiliário de exterior, recomendamos que o proteja com uma capa impermeável.   Mesa: Material: madeira de teca dura finamente lixada com acabamento à base de água Dimensões: 200 x 100 x 77 cm (C x L x A) Tamanho das pernas: 5 x 5 cm (L x P) Espessura da estrutura do tampo de mesa: 28 mm (margem +/- 2 mm) Espessura das ripas do tampo de mesa: 12 mm (margem +/- 2 mm) Banco: Material: madeira de teca dura finamente lixada com acabamento à base de água Dimensões (cada): 180 x 59 x 90 cm (L x P x A) Profundidade do assento: 43 cm Altura do assento a partir do chão: 45 cm A entrega inclui: 1 x Mesa 2 x Bancos', 'language': {'lang': 'pt', 'conf': 1.0}}
INFO:main:Query does not yield entity entity fish entities
INFO:main:retry_model_call: 2
INFO:main:query: 
INFO:main:{'text': '3 pcs conjunto de jantar para jardim madeira de teca maciça. Este conjunto de jantar para jardim em madeira, com um design elegante e contemporâneo, é uma ótima opção para refeições ou para relaxar no jardim. Material de qualidade: a madeira de teca maciça é um bonito material natural. Esta peça em teca passou por um processo de remoção de humidade, foi seca em estufa e, […]. Este conjunto de jantar para jardim em madeira, com um design elegante e contemporâneo, é uma ótima opção para refeições ou para relaxar no jardim.  Material de qualidade: a madeira de teca maciça é um bonito material natural. Esta peça em teca passou por um processo de remoção de humidade, foi seca em estufa e, posteriormente, finamente lixada para lhe ser atribuída uma aparência muito suave. A madeira de teca é conhecida pela sua força excecional e resistência às intempéries. Tampo de mesa robusto: esta mesa de jantar proporciona-lhe um tampo de mesa robusto. Pode colocar os seus aperitivos, bebidas e qualquer uma das suas decorações favoritas. Resistente à água: sendo resistente à água e apresentando um aspeto clássico, poderá colocar o móvel de jardim em qualquer lugar do seu doce lar, quer seja dentro ou fora de casa! Experiência de assento confortável: cada banco possui um encosto, o que os torna altamente confortáveis.   Cada produto é fornecido com um manual de instruções na caixa para facilitar a montagem. Para prolongar a vida útil do seu mobiliário de exterior, recomendamos que o proteja com uma capa impermeável.   Mesa: Material: madeira de teca dura finamente lixada com acabamento à base de água Dimensões: 200 x 100 x 77 cm (C x L x A) Tamanho das pernas: 5 x 5 cm (L x P) Espessura da estrutura do tampo de mesa: 28 mm (margem +/- 2 mm) Espessura das ripas do tampo de mesa: 12 mm (margem +/- 2 mm) Banco: Material: madeira de teca dura finamente lixada com acabamento à base de água Dimensões (cada): 180 x 59 x 90 cm (L x P x A) Profundidade do assento: 43 cm Altura do assento a partir do chão: 45 cm A entrega inclui: 1 x Mesa 2 x Bancos', 'language': {'lang': 'pt'}, 'mentions': ['ner', 'wikipedia'], 'entities': [{'rawName': 'Espessura das'}, {'rawName': 'Banco'}, {'rawName': 'Tamanho das pernas'}]}
INFO:main:wiki_response: 
INFO:main:{'software': 'entity-fishing', 'version': '0.0.6', 'date': '2023-04-23T18:59:36.737736Z', 'runtime': 66, 'nbest': False, 'text': '3 pcs conjunto de jantar para jardim madeira de teca maciça. Este conjunto de jantar para jardim em madeira, com um design elegante e contemporâneo, é uma ótima opção para refeições ou para relaxar no jardim. Material de qualidade: a madeira de teca maciça é um bonito material natural. Esta peça em teca passou por um processo de remoção de humidade, foi seca em estufa e, […]. Este conjunto de jantar para jardim em madeira, com um design elegante e contemporâneo, é uma ótima opção para refeições ou para relaxar no jardim.  Material de qualidade: a madeira de teca maciça é um bonito material natural. Esta peça em teca passou por um processo de remoção de humidade, foi seca em estufa e, posteriormente, finamente lixada para lhe ser atribuída uma aparência muito suave. A madeira de teca é conhecida pela sua força excecional e resistência às intempéries. Tampo de mesa robusto: esta mesa de jantar proporciona-lhe um tampo de mesa robusto. Pode colocar os seus aperitivos, bebidas e qualquer uma das suas decorações favoritas. Resistente à água: sendo resistente à água e apresentando um aspeto clássico, poderá colocar o móvel de jardim em qualquer lugar do seu doce lar, quer seja dentro ou fora de casa! Experiência de assento confortável: cada banco possui um encosto, o que os torna altamente confortáveis.   Cada produto é fornecido com um manual de instruções na caixa para facilitar a montagem. Para prolongar a vida útil do seu mobiliário de exterior, recomendamos que o proteja com uma capa impermeável.   Mesa: Material: madeira de teca dura finamente lixada com acabamento à base de água Dimensões: 200 x 100 x 77 cm (C x L x A) Tamanho das pernas: 5 x 5 cm (L x P) Espessura da estrutura do tampo de mesa: 28 mm (margem +/- 2 mm) Espessura das ripas do tampo de mesa: 12 mm (margem +/- 2 mm) Banco: Material: madeira de teca dura finamente lixada com acabamento à base de água Dimensões (cada): 180 x 59 x 90 cm (L x P x A) Profundidade do assento: 43 cm Altura do assento a partir do chão: 45 cm A entrega inclui: 1 x Mesa 2 x Bancos', 'language': {'lang': 'pt', 'conf': 1.0}}
2023-04-23 18:59:36,739 - uvicorn.access - INFO - 172.31.93.49:48278 - "POST /entity_fish_wiki HTTP/1.1" 200
2023-04-23 18:59:38,506 - uvicorn.access - INFO - 172.31.93.49:48278 - "POST /entity_fish_wiki HTTP/1.1" 200
2023-04-23 18:59:39,335 - uvicorn.access - INFO - 172.31.93.49:36084 - "GET /ready_check HTTP/1.1" 200
2023-04-23 18:59:46,980 - uvicorn.access - INFO - 172.31.93.49:36108 - "GET /ready_check HTTP/1.1" 200
2023-04-23 18:59:48,010 - uvicorn.access - INFO - 172.31.93.49:36124 - "GET /health_check HTTP/1.1" 200
2023-04-23 18:59:48,030 - uvicorn.access - INFO - 172.31.93.49:36124 - "GET /health_check HTTP/1.1" 200
2023-04-23 18:59:48,035 - uvicorn.access - INFO - 172.31.93.49:36124 - "GET /health_check HTTP/1.1" 200
2023-04-23 18:59:48,039 - uvicorn.access - INFO - 172.31.93.49:36124 - "GET /health_check HTTP/1.1" 200
2023-04-23 18:59:48,144 - uvicorn.access - INFO - 172.31.93.49:36124 - "GET /health_check HTTP/1.1" 200
2023-04-23 18:59:49,325 - uvicorn.access - INFO - 172.31.93.49:58736 - "GET /health_check HTTP/1.1" 200
2023-04-23 18:59:49,336 - uvicorn.access - INFO - 172.31.93.49:58746 - "GET /ready_check HTTP/1.1" 200
2023-04-23 18:59:49,830 - uvicorn.access - INFO - 172.31.93.49:36096 - "POST /entity_fish_wiki HTTP/1.1" 200
2023-04-23 18:59:54,129 - uvicorn.access - INFO - 172.31.93.49:58756 - "POST /entity_fish_wiki HTTP/1.1" 200
2023-04-23 18:59:54,336 - uvicorn.access - INFO - 172.31.93.49:58772 - "GET /ready_check HTTP/1.1" 200
INFO:main:Query does not yield entity entity fish entities
INFO:main:retry_model_call: 0
INFO:main:query: 
INFO:main:{'text': 'Satiriker Gabriel Vetter im Porträt: «Es muss richtig dumm aussehen». <img align="left" hspace="5" src="https://cdn.unitycms.io/images/72WDm7Ata7b9StAP9_KopH.jpg?op=ocroped&amp;val=1200,1200,1000,494,177,0&amp;sum=49LMqxVWl5M" width="150px" /> Für «Deville» erfand Gabriel Vetter zahlreiche Figuren. Nun ist der 40-Jährige für den Sonntagabend beim Schweizer Fernsehen im Gespräch. Wie funktioniert gute Satire? Wenn Gabriel Vetter im Schweizer Fernsehen zur Gesellschaftskritik anhebt, lässt. Für «Deville» erfand Gabriel Vetter zahlreiche Figuren. Nun ist der 40-Jährige für den Sonntagabend beim Schweizer Fernsehen im Gespräch. Wie funktioniert gute Satire? Wenn Gabriel Vetter im Schweizer...weiterlesen »', 'language': {'lang': 'de'}, 'mentions': ['ner', 'wikipedia'], 'entities': [{'rawName': 'Fernsehen'}, {'rawName': 'Figuren'}, {'rawName': 'Gespräch'}, {'rawName': 'Wenn Gabriel Vetter'}, {'rawName': 'Schweizer'}, {'rawName': 'den Sonntagabend'}, {'rawName': 'Jährige'}, {'rawName': 'Deville'}, {'rawName': 'Für'}, {'rawName': 'Gabriel Vetter'}, {'rawName': 'Fernsehen zur Gesellschaftskritik'}]}
INFO:main:wiki_response: 
INFO:main:{'software': 'entity-fishing', 'version': '0.0.6', 'date': '2023-04-23T18:59:59.306755Z', 'runtime': 29, 'nbest': False, 'text': 'Satiriker Gabriel Vetter im Porträt: «Es muss richtig dumm aussehen». <img align="left" hspace="5" src="https://cdn.unitycms.io/images/72WDm7Ata7b9StAP9_KopH.jpg?op=ocroped&amp;val=1200,1200,1000,494,177,0&amp;sum=49LMqxVWl5M" width="150px" /> Für «Deville» erfand Gabriel Vetter zahlreiche Figuren. Nun ist der 40-Jährige für den Sonntagabend beim Schweizer Fernsehen im Gespräch. Wie funktioniert gute Satire? Wenn Gabriel Vetter im Schweizer Fernsehen zur Gesellschaftskritik anhebt, lässt. Für «Deville» erfand Gabriel Vetter zahlreiche Figuren. Nun ist der 40-Jährige für den Sonntagabend beim Schweizer Fernsehen im Gespräch. Wie funktioniert gute Satire? Wenn Gabriel Vetter im Schweizer...weiterlesen »', 'language': {'lang': 'de', 'conf': 1.0}}
INFO:main:Query does not yield entity entity fish entities
INFO:main:retry_model_call: 1
INFO:main:query: 

Let me know if this make sense. Sorry for a long post.

ndenStanford commented 1 year ago

Hello @kermitt2,

Would you mind clarifying the best way to verify the readiness of the server deployed via Dockerfile through the health check endpoint http://localhost:8091/metrics?pretty=true?

What is the expected behavior of the server when it's overloaded with a large number of requests?

Thank you