Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't anonimize .docx document using localhost + docker setup #10

Open
jngumy opened this issue Jan 23, 2025 · 3 comments
Open

Can't anonimize .docx document using localhost + docker setup #10

jngumy opened this issue Jan 23, 2025 · 3 comments
Assignees

Comments

@jngumy
Copy link

jngumy commented Jan 23, 2025

Hi, I downloaded the anonymizer tool to test it locally with the sample .docx file mentioned in the instructions, but the document doesn't load and shows the following error. It seems like it fails to connect to the server running in Docker.

Image

These are the logs of the api docker container:

2025-01-23 01:06:12 INFO:     Application startup complete.
2025-01-23 01:06:12 INFO:uvicorn.error:Application startup complete.
2025-01-23 01:06:49 INFO:main:reciving => 1702_13_31972_22_12_18_149bis.docx
2025-01-23 01:06:49 INFO:main:detection extension: docx (application/vnd.openxmlformats-officedocument.wordprocessingml.document)
2025-01-23 01:06:49 INFO:main:saving temp file on local storage => /tmp/4xkwryp_.docx
2025-01-23 01:06:49 INFO:main:saved temp file on local storage => /tmp/4xkwryp_.docx
2025-01-23 01:06:49 INFO:main:processing data item
2025-01-23 01:06:49 INFO:main:{'path': '/tmp/4xkwryp_.docx'}
2025-01-23 01:06:49 INFO:aymurai.pipeline.pipeline:doing preprocessing tasks...
2025-01-23 01:07:11 
  0%|          | 0/1 [00:00<?, ?it/s]
100%|██████████| 1/1 [00:21<00:00, 21.33s/it]
100%|██████████| 1/1 [00:21<00:00, 21.34s/it]
2025-01-23 01:07:20 INFO:main:[{'path': '/tmp/4xkwryp_.docx', 'data': {'doc.text': '"2018 - AÑO DE LOS JUEGOS OLÍMPICOS DE LA JUVENTUD"\t\nJUZGADO DE 1RA INSTANCIA EN LO PENAL CONTRAVENCIONAL Y DE FALTAS N°10 SECRETARÍA UNICA \nGONZALEZ, MARCELO SOBRE 149 BIS - AMENAZAS \nNúmero: IPP 31972/2018-0 \nCUIJ: IPP J-01-00059758-5/2018-0 \nActuación Nro: 12508563/2018 \nACTA DE AUDIENCIA \n"GONZALEZ, MARCELO s/ art. 149 bis, 149, segundo párrafo, 186 inc. 1o, 239 Código Penal" (en adelante, CP)\nCausa No 31.972/18 \nFecha: 22/12/2018 \nHora de inicio: 9:30 \nTipo de audiencia: audiencia de excarcelación (art. 186 del Código Procesal Penal de la Ciudad Autónoma de Buenos Aires; en adelante, CPPCABA).\nJuez: Pablo C. Casas, titular del Juzgado Penal, Contravencional y de Faltas Nro. 10.\nSecretaria: María Antonela Mandolesi.\nPARTES PRESENTES \nFiscal: Marcela Solano, titular de la Fiscalía Penal, Contravencional y de Faltas Nro. 33.\nDefensora Oficial: María Marta Sormani, titular interina de la Defensoría Oficial Nro. 5. \nImputado: MARCELO GONZALEZ, DNI 23.875.846, quien comparece detenido trasladado por personal del Servicio Penitenciario Federal desde el Complejo Penitenciario Federal II de Marcos Paz.\nSe deja constancia que el señor Juez hizo saber a las partes que la audiencia será grabada en formato audio-video, motivo por el cual el acta será sucinta. De solicitarlo, tendrán a disposición copia del CD de la grabación de la audiencia, que formara parte de esta acta. \n\tDESARROLLO DE LA AUDIENCIA \nJuez: declara abierta la audiencia, explica al imputado las razones en virtud de las cuales se está realizando la presente audiencia. Cede la palabra a su defensa.\nDefensora: solicita si pueden estar presentes los familiares del imputado.\nJuez: entendiendo que no están comprometidos como testigos y si son todos mayores de edad, si la Fiscal no tiene oposiciones pueden ingresar a la Sala de Audiencias.\nDefensora: si bien solicitó la excarcelación de su defendido, desea poner en conocimiento del señor Juez que han arribado a un acuerdo de juicio abreviado con la titular de la Fiscalía interviniente, por lo que desiste del planteo de excarcelación efectuado en el día de ayer.\nFiscal: manifiesta que efectivamente han llegado a un acuerdo de avenimiento del art. 266 CPPCABA con la señora Defensora, porque el señor GONZALEZ adelantó a través de su defensora que estaría dispuesto a reconocer su responsabilidad en orden a los hechos que fueron descritos en el requerimiento de juicio y con la calificación legal que se les atribuyó. \nSi se corrobora que el imputado reconoce estaría dispuesto a reconocer su responsabilidad por los hechos descriptos en el requerimiento de juicio pueden avanzar con la exposición de los términos del acuerdo. \nImputado: MARCELO GONZALEZ, DNI 23.875.846, nacido el 7/09/1974, de 44 años, de género varón cis, de nacionalidad argentina, antes último domicilio antes de la detención en la calle Olavarria 754, donde vivía con la señora Domínguez, sus hijos y su nieta. Tiene 4 hijos con su pareja anterior de 21, 20, 18 y 15 años de edad. Actualmente se encuentra desempleado. Se deja constancia que el imputado comparece detenido trasladado por personal del SPF desde el Complejo Penitenciario Federal II de Marcos Paz. Refiere que comprende lo que refirió su defensora y la señora Fiscal. Luego de repasar los hechos que se le atribuyen, refiere que reconoce su responsabilidad, y que consiente la calificación jurídica que les atribuyó la señora Fiscal. \nFiscal: en atención a lo expresado por el imputado, se remite oralmente al contenido del requerimiento de juicio en cuanto a la descripción de los hechos y la valoración de la prueba en la que se fundan. Sostiene la calificación legal consignada en dicha pieza procesal, en cuanto valoró que los hechos atribuidos al imputado constituyen los delitos previstos y reprimidos en el art. 149 bis, primer párrafo, CP (amenazas simples); 149 bis, primer párrafo, segunda parte, CP (amenazas agravadas por el uso de armas); 149 bis segundo párrafo (amenazas coactivas); art. 239 CP (desobediencia) y 186 inc. 1o CP (incendio con peligro para los bienes), todos los cuales concurren entre sí en forma real. Los hechos además fueron cometidos en un contexto de violencia contra la mujer por lo que resultan de aplicación las previsiones de la Ley 26.485 de Protección Integral de la Mujer y de la Convención de "Belem Do Para", en atención a las distintas modalidades de violencia a las que las víctimas fueron sometidas por parte del señor GONZALEZ. \nAhora bien, tras las conversaciones mantenidas con la defensa, y tras haber tomado contacto con las tres víctimas, entiendo adecuado solicitar se le imponga la pena de tres (3) años de prisión, en suspenso, y sujetarlo por el mismo tiempo a las siguientes reglas de conducta: 1) fijar domicilio en la calle camino General Belgrano 1414, Avellaneda, Provincia de Buenos Aires, domicilio de su madre, y comunicar cualquier modificación; 2) someterse al cuidado del Patronato de Liberados de la Ciudad, sito en la calle Coronel Díaz 2110, 5o Piso, de esta Ciudad; 3) prohibición de contacto por cualquier medio con las tres víctimas, señoras NADIA QUIROGA, PAULA QUIROGA y BELEN QUIROGA, incluyendo las redes sociales; 4) prohibición de acercamiento a un radio menor de 500 mts. respecto de las nombradas y de sus respectivos domicilios, sitos en Olavarría 754 (Domínguez), Suárez 968 (Lazarte), Coronel Salvadores 820 (Peralta) y de la peluquería sita en la calle Del Valle Iberlucea 1086; 5) prohibición de referirse a NADIA QUIROGA, en forma directa o indirectamente, sea a través de su nombre o de su imagen, a través de redes sociales y/o de cualquier otra plataforma digital; 6) realizar un tratamiento psicológico y/o psiquiátrico en el lugar que propongan la defensa y/o el imputado; 7) realizar un taller vinculado con la prevención de la violencia de género "Con textos de violencia", dictado por Marisa Nazimof de la Subsecretaría de Derechos Humanos y Pluralismo Cultural de la Nación, que se dicta en Av. Libertador 8151. \nEl control de la pauta de abstención de contacto y de acercamiento será monitoreado a través de la implantación de un dispositivo de geoposicionamiento refractario respecto de las tres víctimas. \nEn atención a las conversaciones que mantuvo la Fiscalía en el día de ayer, se anotició nuevamente a las víctimas de la audiencia que se iba a celebrar en el día de la fecha y adelantando la posibilidad de que recupere la libertad, se dio intervención al Centro de Monitoreo Urbano a fin de que se contacten con las nombradas y les hagan entrega de un dispositivo de geoposicionamiento, como medida de protección y resguardo en los términos de la Ley 26.485. \nDenunciante: Nadia Quiroga, DNI 11.111.432, de 32 años de edad, de género mujer cis, trabaja en coto como cajera y gana aproximadamente 140000 pesos. Con domicilio en zona sur.\nNo tiene hijos o hijas en común con el acusado.\nJuez: teniendo en cuenta el acuerdo arribado por las partes y puesto en conocimiento en esta audiencia. Entiende que el pedido realizado por la señora defensora en los términos del art. 186 CPPCABA deviene abstracto. Le explica al imputado los alcances del instituto de avenimiento, y le pregunta si está dispuesto a aceptar las pautas de conducta sugeridas por la señora Fiscal. Le hace saber que entiende que como tribunal se encuentra legitimado para modificar o agregar nuevas pautas de conducta porque así lo habilita la última parte del art. 27 bis CP. También le advierte que cualquier incumplimiento de alguna de las pautas, luego de garantizarle el derecho a ser oído, puede derivar en su detención en caso de que no se trate de un incumplimiento justificado. Le hace saber que la consecuencia jurídica en tal caso sería que se revoque la condicionalidad de la pena y se efectivice la pena de prisión. Que en atención a esto último si tiene alguna duda este es el momento para resolverlas, porque si llega a haber algún incumplimiento posterior no va a admitir que alegue que no había comprendido bien lo que tenía que cumplir o que no le había quedado claro. \nImputado: a preguntas del señor Juez refiere que es totalmente libre en la elección de esta aceptación de responsabilidad y en la aceptación de la pena. Consiente la totalidad de las pautas de conducta que propusieron y las que le imponga el señor Juez. Comprende todo lo que se le explicó y lo que más le duele es haber expuesto a sus hijos. \nJuez: refiere que además resulta importante que tome en cuenta los derechos de las mujeres que resultaron víctimas, que somos conscientes de que es su primer conflicto con la ley penal pero que es necesario encauzarlo porque los hechos escalaron a un nivel de transcendencia a los que ya hizo alusión en la última audiencia de prisión preventiva. Que por ese motivo interpreta que era necesaria la intervención del Estado para reducir el nivel de violencia del conflicto social y transmitirle un mensaje. A través de las pautas de conducta que se le impongan intentarán ayudarlo a internalizar la necesidad de respetar los derechos de las mujeres y de no aprovechar la posición asimétrica de poder que tienen los varones respecto de las mujeres, porque el Estado Argentino y de la Ciudad, a través de sus autoridades, asumieron esa obligación. \nImputado: refiere que tiene tres hijas mujeres y que le duele la carátula de la causa porque es violencia de género, violencia física, simbólica y psicológica y él las ha acompañado a las hijas a marchas, y entiende la relevancia de la cuestión. \nJuez: lo tiene presente pero le hace saber que los hechos que él llevó adelante se enmarcaron en ese contexto y por eso revisten un nivel de seriedad y de gravedad que deben ser abordados adecuadamente para que la pena surta un efecto beneficioso para el imputado, para su grupo familiar y para la sociedad en general. \nSeguidamente, explica al imputado el contenido de todas las pautas de conducta que se le habrán de imponer. \nImputado: quiere vivir en la calle Maza 1246, PB, dpto. "2", de esta Ciudad, donde residiría con su actual pareja. \nJuez: refiere que tras haber constatado en Google Maps que existe una distancia de varios kilómetros entre los domicilios de las víctimas y el que propuso el imputado, resulta viable que fije allí su lugar de residencia. \nRefiere que agregará el deber del imputado de concurrir al Patronato de Liberados cada quince (15) días.\nCon relación a la prohibición de referirse a Nadia a través de imágenes o de cualquier medio, como en la causa se hicieron referencias a que él habría realizado difundido imágenes de contenido íntimo de la señora Domínguez, le hace saber al imputado que le impondrá el deber de dar de baja el contenido que él hubiera cargado en internet con algún usuario propio, sea en redes sociales o plataformas digitales, y encomendará a la Fiscalía el control de esta regla. \nImputado: pregunta si tendrá que portar tres pulseras porque no estaba al tanto.\nJuez: le hace saber que sí porque sólo de esa manera se puede ejercer el control respecto de las tres víctimas.\nImputado: refiere que es incómoda y que te llaman a cada rato y a cualquier hora. Que tres juntas son muy incomodas. Que pensaba que eran tres aparatos que le iban a dar a las víctimas. \nJuez: dispone un cuarto intermedio de 15’ para que la defensa se entreviste con el imputado. \nSe reanuda la audiencia a las 11.15 hs. en presencia de todas las partes, el señor Juez se constituye en la Sala de Audiencias y le cede la palabra a la señora Defensora Oficial.\nDefensora: refiere que su defendido le ha referido que acepta la imposición de las tres pulseras.\nJuez: le hace saber que sin perjuicio de las dificultades técnicas el personal de la Oficina de Monitoreo puede darle alternativas para que cargue el dispositivo sin que tenga que está al lado del enchufe cada cuatro horas.\nImputado: explica que el problema no es la carga sino que desde la Oficina perdían la señal entonces lo llamaban a cada rato, a cualquier hora, cuando dormía. Que si tiene que trabajar y si se aleja del dispositivo también lo llaman. No tiene problema en que lo llamen pero siempre que sea un horario normal y que esté justificado. No quiere que esos problemas deriven en que se le genere un antecedente de incumplimiento por esas falsas alarmas.\nJuez: lo tiene presente pero le hace saber que esas son las condiciones de funcionamiento del sistema de control, pero le hace saber que si lo llaman por un problema de carga o de poca señal y lo llaman, eso no marca ningún antecedente negativo en su contra. El personal del Centro de Monitoreo deja registro de todo: de los motivos de la alerta, del llamado, de las explicaciones que él dio. Si la alerta se debe a un problema técnico, eso no lo perjudicará de ninguna manera. Pero entiende que más allá de los problemas técnicos que tiene el dispositivo de monitoreo, se trata del único mecanismo técnico disponible para controlar que cumpla con las restricciones que se le impondrán con la condena y para garantizar los derechos de las víctimas. Le advierte al imputado que otras posibles alertas se podrían generar si se cruzaran ocasionalmente o causalmente con alguna de las víctimas, y que en tal caso podrían llamarlo para preguntarle donde está y darle la indicación de que se retire de la zona, y que en tal caso debería cumplir. \nLuego, refiere que en honor a la brevedad, adelantará que la solicitud de pena efectuada por la señora Fiscal constituye el límite para la imposición de la sanción porque de lo contrario incurriría en un exceso de jurisdicción violatorio del principio acusatorio (art. 13.3 CCABA). \nAnticipa que comparte tanto la valoración de la prueba efectuada por la señora Fiscal en su requerimiento de juicio, como así también la calificación de los hechos propuesta por la Fiscal y consentida por la defensa y por el imputado. \nEn cuanto a las pautas de conducta, se remite a las consideraciones efectuadas previamente en torno a la extensión y alcance de las mismas. Refiere que adelantará el veredicto y que difiere la lectura de los fundamentos de la sentencia para las 12.30 horas (art. 251 CPPCABA).\nToda vez que no había medidas de protección vigentes al momento de los hechos, RESUELVE: \nI. HOMOLOGAR EL ACUERDO DE AVENIMIENTO formulado entre las partes y consecuentemente, CONDENAR a MARCELO GONZALEZ, DNI 23.875.846, en la presente causa No 31.972/2018, a la pena de TRES (3) AÑOS DE PRISIÓN EN SUSPENSO, por considerarlo autor penalmente responsable de los hechos que tuvieron lugar los días 7 de septiembre, 8 de septiembre, 19 de septiembre, 26 de septiembre, 28 de septiembre, entre el 5 y 6 de noviembre, 6 de noviembre, 9 de noviembre, 10 de noviembre, 13 de noviembre, 14 de noviembre, y entre el 15 y 19 de noviembre de 2018, constituyen los delitos de amenazas simples, amenazas agravadas por el uso de armas, amenazas coactivas, desobediencia e incendio con peligro para los bienes, los cuales concurren entre sí de forma real, los cuales tuvieron lugar en un contexto de violencia de género, física, psicológica y simbólica bajo la modalidad de violencia doméstica, debiendo cumplir durante el PLAZO DE TRES (3) AÑOS, con las siguientes REGLAS DE CONDUCTA consistentes en: 1) fijar domicilio en la calle Maza 1246, PB, dpto. "2", de esta Ciudad y comunicar cualquier modificación; 2) someterse al cuidado del Patronato de Liberados de la Ciudad, sito en la calle Coronel Díaz 2110, 5o Piso, de esta Ciudad, debiendo concurrir cada quince (15) días; 3) prohibición de contacto por cualquier medio con las tres víctimas, señoras NADIA QUIROGA, PAULA QUIROGA y BELEN QUIROGA, incluyendo las redes sociales; 4) prohibición de acercamiento a un radio menor de 500 mts. respecto de las nombradas y de sus respectivos domicilios, sitos en Olavarría 555 y de la peluquería sita en la calle Del Valle Iberlucea 500; 5) prohibición de referirse a NADIA QUIROGA, directa o indirectamente, sea a través de su nombre o de su imagen, a través de redes sociales y/o de cualquier otra plataforma digital, y obligación de dar de baja el co2025-01-23T01:07:20.041889560Z ntenido que él hubiera cargado en internet, sea en redes sociales o plataformas digitales, encomendado a la Fiscalía el control de esta regla; 6) realizar un tratamiento psicológico y/o psiquiátrico, previo dictamen por parte del Cuerpo Médico respecto de su necesidad y pertinencia; 7) realizar un taller vinculado con la prevención de la violencia de género "Con textos de violencia", dictado por Marisa Nazimof de la Subsecretaría de Derechos Humanos y Pluralismo Cultural de la Nación, en Av. Libertador 8151, debiendo acreditar su inscripción dentro del plazo de 10 días; con COSTAS (arts. 5, 26, 27 bis, 40, 41, 45 y 149 bis, primer párrafo, 149 bis, primer párrafo, segunda parte, 149 bis segundo párrafo, art. 239 y 186 inc. 1o CP, art. 55 CP; arts. 4, 5 inc. 1o y 2o y art. 6 de la Ley 26.485; y art. 1o de la Convención Interamericana para prevenir, sancionar y erradicar la violencia contra la mujer de "Belem do Pará"; y arts. 266 y 248 CPPCABA).\nII. DISPONER EL CONTROL BAJO VIGILANCIA ELECTRÓNICA del cumplimiento de la prohibición de acercamiento a menos de 500 metros de las víctimas y sus domicilios quede a cargo de la Gerencia Operativa de Relaciones con Poder Judicial de la Subsecretaria del Ministerio de Justicia y Seguridad del GCBA, a cuyo fin líbrense los oficios correspondientes (310 y 328 CPPCABA). \nIII. DISPONER LA LIBERTAD de MARCELO GONZALEZ, previa implementación del sistema de vigilancia electrónica, a cuyo fin corresponde dar inmediata intervención al Centro de Monitoreo y Gestión de la Subsecretaría de Justicia del Ministerio de Justicia y Seguridad. \nIV. ESTABLECER que el vencimiento del PLAZO DE TRES AÑOS para el cumplimiento de las reglas de conducta VENCERÁ EL DÍA 23 DE DICIEMBRE DE 2021 (art. 27 bis CP).\nV. ESTABLECER que el registro de la sentencia caducará a todos sus efectos el día 22 DE DICIEMBRE DE 2028 (art. 51 inc. 1o CP). \n VI. COMUNICAR que el señor MARCELO GONZALEZ permaneció detenido en el marco de la presente causa desde el día 21 de noviembre de 2018 al 22 de diciembre del mismo año, y LIBRAR LOS OFICIOS pertinentes a fin de comunicar la sentencia. \nSe notifica a las partes en este acto del veredicto, quienes manifiestan que consentirán la resolución, y se difiere la lectura de los fundamentos de la sentencia condenatoria para las 12.00 hs., haciendo saber a las partes que si no pueden comparecer serán notificadas mediante cédula electrónica de los fundamentos de la sentencia (art. 251 CPPCABA).\nHora de cierre: 11.30 hs.\nJuzgado PCyF No 10 - Tacuarí 138, 7o Piso - juzcyf10@jusbaires.gob.ar - 4014-6821/20 - @jpcyf10 \nJuzgado PCyF No 10 - Tacuarí 138, 7o Piso - juzcyf10@jusbaires.gob.ar - 4014-6821/20 - @jpcyf10', 'doc.valid': True}}]
2025-01-23 01:07:20 INFO:main:removing file => /tmp/4xkwryp_.docx

looks like im getting a 200 from the server but data.document.map is failing because its not returning an array instead its returning a string

Image

I followed all the steps outlined in the installation guide https://github.com/AymurAI, but I can't get it to work.

Am i missing something? thanks

@ivanafeldfeber
Copy link
Contributor

Hello @jngumy we updated the instructions, the command prompt was outdated but now it is fixed. Could you try with this new command?
docker run -d -p 8899:8899 registry.gitlab.com/collective.ai/datagenero-public/aymurai-api-prod:latest

@ivanafeldfeber ivanafeldfeber self-assigned this Jan 29, 2025
@jngumy
Copy link
Author

jngumy commented Jan 29, 2025

Hi @ivanafeldfeber thanks for your quick reply. That worked, thanks!

The tool works well until I try to anonymize and download the anonymized version of the .docx document. At this step, I'm getting a 500 error.

Image

here are the backend logs for that error

to /tmp/tmp0fr1c7_j
2025-01-29 23:33:12 INFO:     172.17.0.1:59310 - "POST /anonymizer/anonymize-document HTTP/1.1" 500 Internal Server Error
2025-01-29 23:33:12 ERROR:    Exception in ASGI application
2025-01-29 23:33:12   + Exception Group Traceback (most recent call last):
2025-01-29 23:33:12   |   File "/packages/starlette/_utils.py", line 77, in collapse_excgroups
2025-01-29 23:33:12   |     yield
2025-01-29 23:33:12   |   File "/packages/starlette/middleware/base.py", line 186, in __call__
2025-01-29 23:33:12   |     async with anyio.create_task_group() as task_group:
2025-01-29 23:33:12   |   File "/packages/anyio/_backends/_asyncio.py", line 763, in __aexit__
2025-01-29 23:33:12   |     raise BaseExceptionGroup(
2025-01-29 23:33:12   | exceptiongroup.ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
2025-01-29 23:33:12   +-+---------------- 1 ----------------
2025-01-29 23:33:12     | Traceback (most recent call last):
2025-01-29 23:33:12     |   File "/packages/uvicorn/protocols/http/httptools_impl.py", line 401, in run_asgi
2025-01-29 23:33:12     |     result = await app(  # type: ignore[func-returns-value]
2025-01-29 23:33:12     |   File "/packages/uvicorn/middleware/proxy_headers.py", line 70, in __call__
2025-01-29 23:33:12     |     return await self.app(scope, receive, send)
2025-01-29 23:33:12     |   File "/packages/fastapi/applications.py", line 1054, in __call__
2025-01-29 23:33:12     |     await super().__call__(scope, receive, send)
2025-01-29 23:33:12     |   File "/packages/starlette/applications.py", line 113, in __call__
2025-01-29 23:33:12     |     await self.middleware_stack(scope, receive, send)
2025-01-29 23:33:12     |   File "/packages/starlette/middleware/errors.py", line 187, in __call__
2025-01-29 23:33:12     |     raise exc
2025-01-29 23:33:12     |   File "/packages/starlette/middleware/errors.py", line 165, in __call__
2025-01-29 23:33:12     |     await self.app(scope, receive, _send)
2025-01-29 23:33:12     |   File "/packages/starlette/middleware/base.py", line 185, in __call__
2025-01-29 23:33:12     |     with collapse_excgroups():
2025-01-29 23:33:12     |   File "/usr/local/lib/python3.10/contextlib.py", line 153, in __exit__
2025-01-29 23:33:12     |     self.gen.throw(typ, value, traceback)
2025-01-29 23:33:12     |   File "/packages/starlette/_utils.py", line 83, in collapse_excgroups
2025-01-29 23:33:12     |     raise exc
2025-01-29 23:33:12     |   File "/packages/starlette/middleware/base.py", line 187, in __call__
2025-01-29 23:33:12     |     response = await self.dispatch_func(request, call_next)
2025-01-29 23:33:12     |   File "/packages/aymurai/api/main.py", line 89, in add_process_time_header
2025-01-29 23:33:12     |     response = await call_next(request)
2025-01-29 23:33:12     |   File "/packages/starlette/middleware/base.py", line 163, in call_next
2025-01-29 23:33:12     |     raise app_exc
2025-01-29 23:33:12     |   File "/packages/starlette/middleware/base.py", line 149, in coro
2025-01-29 23:33:12     |     await self.app(scope, receive_or_disconnect, send_no_error)
2025-01-29 23:33:12     |   File "/packages/starlette/middleware/cors.py", line 85, in __call__
2025-01-29 23:33:12     |     await self.app(scope, receive, send)
2025-01-29 23:33:12     |   File "/packages/starlette/middleware/exceptions.py", line 62, in __call__
2025-01-29 23:33:12     |     await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
2025-01-29 23:33:12     |   File "/packages/starlette/_exception_handler.py", line 62, in wrapped_app
2025-01-29 23:33:12     |     raise exc
2025-01-29 23:33:12     |   File "/packages/starlette/_exception_handler.py", line 51, in wrapped_app
2025-01-29 23:33:12     |     await app(scope, receive, sender)
2025-01-29 23:33:12     |   File "/packages/starlette/routing.py", line 715, in __call__
2025-01-29 23:33:12     |     await self.middleware_stack(scope, receive, send)
2025-01-29 23:33:12     |   File "/packages/starlette/routing.py", line 735, in app
2025-01-29 23:33:12     |     await route.handle(scope, receive, send)
2025-01-29 23:33:12     |   File "/packages/starlette/routing.py", line 288, in handle
2025-01-29 23:33:12     |     await self.app(scope, receive, send)
2025-01-29 23:33:12     |   File "/packages/starlette/routing.py", line 76, in app
2025-01-29 23:33:12     |     await wrap_app_handling_exceptions(app, request)(scope, receive, send)
2025-01-29 23:33:12     |   File "/packages/starlette/_exception_handler.py", line 62, in wrapped_app
2025-01-29 23:33:12     |     raise exc
2025-01-29 23:33:12     |   File "/packages/starlette/_exception_handler.py", line 51, in wrapped_app
2025-01-29 23:33:12     |     await app(scope, receive, sender)
2025-01-29 23:33:12     |   File "/packages/starlette/routing.py", line 73, in app
2025-01-29 23:33:12     |     response = await f(request)
2025-01-29 23:33:12     |   File "/packages/fastapi/routing.py", line 301, in app
2025-01-29 23:33:12     |     raw_response = await run_endpoint_function(
2025-01-29 23:33:12     |   File "/packages/fastapi/routing.py", line 214, in run_endpoint_function
2025-01-29 23:33:12     |     return await run_in_threadpool(dependant.call, **values)
2025-01-29 23:33:12     |   File "/packages/starlette/concurrency.py", line 39, in run_in_threadpool
2025-01-29 23:33:12     |     return await anyio.to_thread.run_sync(func, *args)
2025-01-29 23:33:12     |   File "/packages/anyio/to_thread.py", line 56, in run_sync
2025-01-29 23:33:12     |     return await get_async_backend().run_sync_in_worker_thread(
2025-01-29 23:33:12     |   File "/packages/anyio/_backends/_asyncio.py", line 2441, in run_sync_in_worker_thread
2025-01-29 23:33:12     |     return await future
2025-01-29 23:33:12     |   File "/packages/anyio/_backends/_asyncio.py", line 943, in run
2025-01-29 23:33:12     |     result = context.run(func, *args)
2025-01-29 23:33:12     |   File "/packages/aymurai/api/main.py", line 248, in anonymize_document
2025-01-29 23:33:12     |     doc_anonymizer(
2025-01-29 23:33:12     |   File "/packages/aymurai/text/anonymization.py", line 571, in __call__
2025-01-29 23:33:12     |     self.replace_text_in_xml(paragraphs, tempdir)
2025-01-29 23:33:12     |   File "/packages/aymurai/text/anonymization.py", line 467, in replace_text_in_xml
2025-01-29 23:33:12     |     tokens = pd.concat(
2025-01-29 23:33:12     |   File "/packages/pandas/core/reshape/concat.py", line 382, in concat
2025-01-29 23:33:12     |     op = _Concatenator(
2025-01-29 23:33:12     |   File "/packages/pandas/core/reshape/concat.py", line 445, in __init__
2025-01-29 23:33:12     |     objs, keys = self._clean_keys_and_objs(objs, keys)
2025-01-29 23:33:12     |   File "/packages/pandas/core/reshape/concat.py", line 507, in _clean_keys_and_objs
2025-01-29 23:33:12     |     raise ValueError("No objects to concatenate")
2025-01-29 23:33:12     | ValueError: No objects to concatenate
2025-01-29 23:33:12     +------------------------------------
2025-01-29 23:33:12 
2025-01-29 23:33:12 During handling of the above exception, another exception occurred:
2025-01-29 23:33:12 
2025-01-29 23:33:12 Traceback (most recent call last):
2025-01-29 23:33:12   File "/packages/uvicorn/protocols/http/httptools_impl.py", line 401, in run_asgi
2025-01-29 23:33:12     result = await app(  # type: ignore[func-returns-value]
2025-01-29 23:33:12   File "/packages/uvicorn/middleware/proxy_headers.py", line 70, in __call__
2025-01-29 23:33:12     return await self.app(scope, receive, send)
2025-01-29 23:33:12   File "/packages/fastapi/applications.py", line 1054, in __call__
2025-01-29 23:33:12     await super().__call__(scope, receive, send)
2025-01-29 23:33:12   File "/packages/starlette/applications.py", line 113, in __call__
2025-01-29 23:33:12     await self.middleware_stack(scope, receive, send)
2025-01-29 23:33:12   File "/packages/starlette/middleware/errors.py", line 187, in __call__
2025-01-29 23:33:12     raise exc
2025-01-29 23:33:12   File "/packages/starlette/middleware/errors.py", line 165, in __call__
2025-01-29 23:33:12     await self.app(scope, receive, _send)
2025-01-29 23:33:12   File "/packages/starlette/middleware/base.py", line 185, in __call__
2025-01-29 23:33:12     with collapse_excgroups():
2025-01-29 23:33:12   File "/usr/local/lib/python3.10/contextlib.py", line 153, in __exit__
2025-01-29 23:33:12     self.gen.throw(typ, value, traceback)
2025-01-29 23:33:12   File "/packages/starlette/_utils.py", line 83, in collapse_excgroups
2025-01-29 23:33:12     raise exc
2025-01-29 23:33:12   File "/packages/starlette/middleware/base.py", line 187, in __call__
2025-01-29 23:33:12     response = await self.dispatch_func(request, call_next)
2025-01-29 23:33:12   File "/packages/aymurai/api/main.py", line 89, in add_process_time_header
2025-01-29 23:33:12     response = await call_next(request)
2025-01-29 23:33:12   File "/packages/starlette/middleware/base.py", line 163, in call_next
2025-01-29 23:33:12     raise app_exc
2025-01-29 23:33:12   File "/packages/starlette/middleware/base.py", line 149, in coro
2025-01-29 23:33:12     await self.app(scope, receive_or_disconnect, send_no_error)
2025-01-29 23:33:12   File "/packages/starlette/middleware/cors.py", line 85, in __call__
2025-01-29 23:33:12     await self.app(scope, receive, send)
2025-01-29 23:33:12   File "/packages/starlette/middleware/exceptions.py", line 62, in __call__
2025-01-29 23:33:12     await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
2025-01-29 23:33:12   File "/packages/starlette/_exception_handler.py", line 62, in wrapped_app
2025-01-29 23:33:12     raise exc
2025-01-29 23:33:12   File "/packages/starlette/_exception_handler.py", line 51, in wrapped_app
2025-01-29 23:33:12     await app(scope, receive, sender)
2025-01-29 23:33:12   File "/packages/starlette/routing.py", line 715, in __call__
2025-01-29 23:33:12     await self.middleware_stack(scope, receive, send)
2025-01-29 23:33:12   File "/packages/starlette/routing.py", line 735, in app
2025-01-29 23:33:12     await route.handle(scope, receive, send)
2025-01-29 23:33:12   File "/packages/starlette/routing.py", line 288, in handle
2025-01-29 23:33:12     await self.app(scope, receive, send)
2025-01-29 23:33:12   File "/packages/starlette/routing.py", line 76, in app
2025-01-29 23:33:12     await wrap_app_handling_exceptions(app, request)(scope, receive, send)
2025-01-29 23:33:12   File "/packages/starlette/_exception_handler.py", line 62, in wrapped_app
2025-01-29 23:33:12     raise exc
2025-01-29 23:33:12   File "/packages/starlette/_exception_handler.py", line 51, in wrapped_app
2025-01-29 23:33:12     await app(scope, receive, sender)
2025-01-29 23:33:12   File "/packages/starlette/routing.py", line 73, in app
2025-01-29 23:33:12     response = await f(request)
2025-01-29 23:33:12   File "/packages/fastapi/routing.py", line 301, in app
2025-01-29 23:33:12     raw_response = await run_endpoint_function(
2025-01-29 23:33:12   File "/packages/fastapi/routing.py", line 214, in run_endpoint_function
2025-01-29 23:33:12     return await run_in_threadpool(dependant.call, **values)
2025-01-29 23:33:12   File "/packages/starlette/concurrency.py", line 39, in run_in_threadpool
2025-01-29 23:33:12     return await anyio.to_thread.run_sync(func, *args)
2025-01-29 23:33:12   File "/packages/anyio/to_thread.py", line 56, in run_sync
2025-01-29 23:33:12     return await get_async_backend().run_sync_in_worker_thread(
2025-01-29 23:33:12   File "/packages/anyio/_backends/_asyncio.py", line 2441, in run_sync_in_worker_thread
2025-01-29 23:33:12     return await future
2025-01-29 23:33:12   File "/packages/anyio/_backends/_asyncio.py", line 943, in run
2025-01-29 23:33:12     result = context.run(func, *args)
2025-01-29 23:33:12   File "/packages/aymurai/api/main.py", line 248, in anonymize_document
2025-01-29 23:33:12     doc_anonymizer(
2025-01-29 23:33:12   File "/packages/aymurai/text/anonymization.py", line 571, in __call__
2025-01-29 23:33:12     self.replace_text_in_xml(paragraphs, tempdir)
2025-01-29 23:33:12   File "/packages/aymurai/text/anonymization.py", line 467, in replace_text_in_xml
2025-01-29 23:33:12     tokens = pd.concat(
2025-01-29 23:33:12   File "/packages/pandas/core/reshape/concat.py", line 382, in concat
2025-01-29 23:33:12     op = _Concatenator(
2025-01-29 23:33:12   File "/packages/pandas/core/reshape/concat.py", line 445, in __init__
2025-01-29 23:33:12     objs, keys = self._clean_keys_and_objs(objs, keys)
2025-01-29 23:33:12   File "/packages/pandas/core/reshape/concat.py", line 507, in _clean_keys_and_objs
2025-01-29 23:33:12     raise ValueError("No objects to concatenate")
2025-01-29 23:33:12 ValueError: No objects to concatenate

is this a known issue? thanks in advance

@jansaldo
Copy link
Contributor

jansaldo commented Feb 4, 2025

Dear @jngumy,

Thank you for your interest in the AymurAI project and for bringing this issue to our attention. We have attempted to reproduce the error you encountered but were able to run the anonymization pipeline and export the edited .odt document without any issues.

To assist you further, we suggest the following steps:

  1. Verify that you are using the most recent version of the AymurAI API Docker image, by running the command shared by @ivanafeldfeber.
  2. Ensure that no other instances of the AymurAI API are running to prevent conflicts. You can list running containers with docker ps.
  3. If there are other instances of the AymurAI API running, stop them using: docker stop [container_id].
  4. Confirm that the API is accessible by navigating to http://localhost:8899/docs in your web browser. This should display the API documentation, indicating that the server is running correctly.

If after performing these steps the issue persists, please provide us with additional details, such as error messages, log outputs, and the steps you have taken. This information will help us diagnose the problem more effectively.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants