docs: adicionar proposta do projeto MarkAPI (Markdown)#68
docs: adicionar proposta do projeto MarkAPI (Markdown)#68
Conversation
Agent-Logs-Url: https://github.com/scieloorg/markapi/sessions/14fb5775-681c-4a32-b9b6-de0b5d8131f3 Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
|
@copilot também há o serviço de marcação automática das referências, elabore a documentação sobre isso |
Agent-Logs-Url: https://github.com/scieloorg/markapi/sessions/2647bc33-83b2-4acb-8e1d-a22e9de00c8c Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
Adicionada na seção "Funcionalidades" uma subseção dedicada à Marcação automática de referências bibliográficas, descrevendo entrada/saída, exposição via API REST ( |
|
@copilot informação relevante o público-alvo e forma de instalação. Apesar de ser uma aplicação Web, pode ser instalada como uma ferramenta Desktop para monousuário em um computador ou em um servidor em intranet ou ainda um servidor para internet. Em servidor com GPU funcionará melhor. Na ausência de GPU , usa-se um modelo LLM pequeno. Há a possibilidade de contratar API de LLM, mas o custo e a LLM que se responsabiliza é o usuário ou sua empresa. |
…ience Agent-Logs-Url: https://github.com/scieloorg/markapi/sessions/c1eb80dd-6194-42f7-8dfa-e18931e11f87 Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
Atualizei
|
|
@copilot adicione info da stack, wagtail, celery, etc, o máximo de detalhes técnicos possível |
…ktools, LLMs, Docker/K8s) Agent-Logs-Url: https://github.com/scieloorg/markapi/sessions/47c3e7bb-f2f9-4359-8272-ada21307acef Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
Expandi a seção Arquitetura em alto nível em
Também corrigi a menção a |
|
@copilot o sistema ainda está em construção, o production.yml deveria existir. Inclusive se tiver algumas sugestões de funcionalidades (perspectivas) e requisitos não funcionais, por favor, acrescente no documento. |
….yml mention Agent-Logs-Url: https://github.com/scieloorg/markapi/sessions/2734776c-1774-4ae9-96da-9bf7d163345b Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
Atualizado em
|
|
@copilot converta a documentação para markdown |
Agent-Logs-Url: https://github.com/scieloorg/markapi/sessions/2fe40dff-b626-4580-86aa-d481b7f857ba Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
Convertido em 725e824:
Build do Sphinx validada localmente sem erros. |
Não havia documentação de proposta descrevendo o propósito do MarkAPI, seus modos de instalação e suas funcionalidades. Esta PR adiciona um documento
proposta.mdemdocs/, redigido em português (Markdown, renderizado pelo Sphinx viamyst-parser), alinhado ao código do branchmain, à dependênciapacktoolse aos módulos existentes (xml_manager,reference,model_ai,docx_layouts).O que esse PR faz?
docs/proposta.mdcom a proposta do projeto, cobrindo:local.yml— eproduction.ymlprevisto/em construção, além dos manifestos Kubernetes emkubernetes/para ambientes maiores), incluindo subseção Requisitos de hardware e opções de LLM (GPU para melhor desempenho, modelo LLM pequeno em ambiente sem GPU, e possibilidade de configurar uma API externa de LLM contratada com custo e responsabilidade do usuário/instituição)..zipSPS (XML, PDFs por idioma, imagens e ativos digitais nomeados conforme SPS), validação de XML e geração de PDFs viapacktools, marcação automática de referências bibliográficas (serviço dedicado exposto via API REST), marcação automatizada por LLM configurável e ajustes manuais pelo usuário.wagtail-modeladmin,wagtailmenus,wagtail-localize,wagtail-autocomplete,wagtail-django-recaptcha), Django REST Framework 3.15 +djangorestframework-simplejwt, PostgreSQL (psycopg2-binary), Celery 5 + Redis 6 + Kombu,django-celery-beat/django_celery_results, Flower, Gunicorn/gevent, lxml, python-docx, packtools 4.12.6, langdetect/langid, tenacity, llama-cpp-python, huggingface-hub, google-generativeai, MailHog /django-anymail, Sentry / Elastic APM,django-environ,django-compressor, whitenoise, Docker Compose (local.yml,production.ymlprevisto) e Kubernetes (kubernetes/), além de flake8/isort.INSTALLED_APPS(config,core,core_settings,users,xml_manager,reference,model_ai,docx_layouts,tracker,django_celery_beat) para arquivos concretos do repositório.packtools→ empacotamento.zipSPS → eventos notrackere monitoramento via Flower.tenacity), observabilidade (tracker, Flower, Sentry, Elastic APM), segurança (JWT, CSRF, reCAPTCHA, segredos viadjango-environ), privacidade dos dados (LLM local on-premise vs. API contratada), desempenho (GPU, processamento assíncrono, reuso de marcações), conformidade com o SPS viapacktools, manutenibilidade (flake8/isort), auditabilidade e compatibilidade com navegadores modernos.myst_parseremdocs/conf.py(comsource_suffixmapeando.rste.md) emyst-parseremrequirements/local.txt.propostanotoctreededocs/index.rst, agora resolvido paradocs/proposta.md.mixed-citationem texto livre) e saída (<element-citation>no padrão SPS, ou estrutura intermediária);ReferenceViewSetemreference/api/v1/views.py);LlamaService(model_ai) usando prompts eresponse_formatdefinidos emreference/config.py(e alternativa Google Gemini viareference/config_gemini.py);reference/data_utils.get_xml;Reference/ElementCitationcontrolados porReferenceStatus;tracker.GeneralEvent;Onde a revisão poderia começar?
docs/proposta.md— verificar se o conteúdo reflete fielmente o escopo desejado da aplicação, em especial as seções Modos de Instalação (com a subseção Requisitos de hardware e opções de LLM), Marcação automática de referências bibliográficas, Arquitetura em alto nível (stack tecnológica, organização do código e fluxo de execução típico), Requisitos não funcionais, Perspectivas (funcionalidades futuras) e Público-alvo. Em seguida,docs/conf.py(extensãomyst_parseresource_suffix),requirements/local.txt(dependênciamyst-parser) edocs/index.rstpara conferir a inclusão no toctree.Como este poderia ser testado manualmente?
docker-compose -f local.yml up docs.Algum cenário de contexto que queira dar?
A proposta foi redigida a partir do código do
maine da descrição do issue, descrevendo a aplicação como ferramenta de marcação assistida por LLM (opcional) com revisão manual obrigatória para a equipe editorial. A subseção sobre marcação automática de referências, a expansão das seções de Modos de Instalação (com requisitos de hardware/opções de LLM) e Público-alvo, a seção detalhada de Arquitetura em alto nível (stack tecnológica completa, organização do código e fluxo de execução) e as novas seções Requisitos não funcionais e Perspectivas (funcionalidades futuras) foram adicionadas em resposta ao feedback do mantenedor, refletindo os serviços já implementados nos módulosreferenceemodel_ai, os cenários reais de instalação (desktop monousuário, servidor em intranet, servidor na internet, com ou sem GPU, e a opção de API externa de LLM contratada) e as dependências reais derequirements/base.txterequirements/production.txt. Como o sistema ainda está em construção,production.ymlé citado como artefato previsto/em construção, ao lado delocal.yml(existente) e dos manifestos Kubernetes emkubernetes/. Em resposta a um pedido posterior do mantenedor, o documento foi convertido de reStructuredText para Markdown (docs/proposta.md), passando o Sphinx a renderizá-lo viamyst-parser(configuração ajustada emdocs/conf.pye dependência adicionada emrequirements/local.txt), permitindo que próximos documentos da pastadocs/também possam ser escritos em Markdown.Screenshots
Não aplicável — alteração apenas de documentação textual.
Referências
requirements/base.txterequirements/production.txt(Django, Wagtail, DRF + SimpleJWT, Celery, Redis, Kombu, django-celery-beat, Flower, Gunicorn/gevent, lxml, python-docx, packtools, langdetect/langid, tenacity, llama-cpp-python, huggingface-hub, google-generativeai, MailHog/django-anymail, Sentry, Elastic APM) e módulosxml_manager,reference(incluindoreference/api/v1/views.py,reference/marker.py,reference/data_utils.py,reference/config.py,reference/config_gemini.py),model_ai(comllama.py/LlamaServiceeexceptions.py),tracker,core,core_settings,users,config(incluindoconfig/celery_app.pyeconfig/api_router.py) e os manifestos emkubernetes/do próprio repositório.