[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-Open-Source-Legal--OpenContracts":3,"tool-Open-Source-Legal--OpenContracts":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":78,"owner_location":78,"owner_email":78,"owner_twitter":78,"owner_website":78,"owner_url":79,"languages":80,"stars":110,"forks":111,"last_commit_at":112,"license":113,"difficulty_score":10,"env_os":114,"env_gpu":115,"env_ram":115,"env_deps":116,"category_tags":119,"github_topics":120,"view_count":10,"oss_zip_url":78,"oss_zip_packed_at":78,"status":16,"created_at":129,"updated_at":130,"faqs":131,"releases":160},265,"Open-Source-Legal\u002FOpenContracts","OpenContracts","Humans and AI agents, building knowledge bases together. Self-hosted document annotation, version control, semantic search, and MCP.","OpenContracts 是一个开源的自托管平台，帮助团队将散落在合同、法规、研究报告等文档中的知识结构化，构建可供人类与 AI 协同使用的知识库。它解决了传统文档信息“锁在 PDF 里、难以检索和复用”的问题，通过版本控制、语义搜索和协作标注，让知识真正可被 AI 理解和推理。\n\n该平台特别适合法律、合规、研究或政策领域的专业人士，以及需要构建高质量私有知识库的开发者和 AI 工程师。用户无需依赖外部服务，即可在本地安全地管理敏感文档。\n\nOpenContracts 的技术亮点包括：支持多模态搜索（结合向量嵌入与全文检索）、内置 MCP（Model Context Protocol）服务器，可直接对接 Claude、Cursor 等主流 AI 工具；还提供 LLM 驱动的批量结构化数据提取、格式保留的文档解析，以及细粒度的协作功能（如评论、@提及和投票）。其核心理念始终如一：最好的 AI 系统，离不开精心整理的数据——而 OpenContracts 让人与 AI 在同一空间共同完成这项工作。","![OpenContracts](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FOpen-Source-Legal_OpenContracts_readme_2a3dcf368550.png)\n\n# OpenContracts ([Demo](https:\u002F\u002Fcontracts.opensource.legal))\n\nThe open source platform for building knowledge bases that humans and AI agents can work with together.\n\n[![Sponsor](https:\u002F\u002Fimg.shields.io\u002Fstatic\u002Fv1?label=Sponsor&message=%E2%9D%A4&logo=GitHub&color=%23fe8e86)](https:\u002F\u002Fgithub.com\u002Fsponsors\u002FJSv4)\n\n| | |\n|---|---|\n| Backend CI\u002FCD | [![codecov](https:\u002F\u002Fcodecov.io\u002Fgh\u002FOpen-Source-Legal\u002FOpenContracts\u002Fbranch\u002Fmain\u002Fgraph\u002Fbadge.svg?token=RdVsiuaTVz)](https:\u002F\u002Fapp.codecov.io\u002Fgh\u002Fopen-source-legal\u002FOpenContracts) |\n| Meta | [![code style - black](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fcode%20style-black-000000.svg)](https:\u002F\u002Fgithub.com\u002Fpsf\u002Fblack) [![types - Mypy](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Ftypes-Mypy-blue.svg)](https:\u002F\u002Fgithub.com\u002Fpython\u002Fmypy) [![imports - isort](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fimports-isort-ef8336.svg)](https:\u002F\u002Fgithub.com\u002Fpycqa\u002Fisort) [![License - AGPL-3.0](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-AGPL--3.0-blue)](https:\u002F\u002Fwww.gnu.org\u002Flicenses\u002Fagpl-3.0) |\n\n---\n\n![Discovery Landing Page](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FOpen-Source-Legal_OpenContracts_readme_d71b499ff54d.png)\n\nMost knowledge lives in documents. Contracts, regulations, research papers, policies — the stuff that governs how organizations actually work. That knowledge is usually trapped: locked in PDFs, scattered across drives, understood fully by a handful of people who happened to read the right things at the right time.\n\nOpenContracts started in 2019 with a simple conviction: that knowledge needed to be carefully curated, and that machine learning systems were only as good as the data underneath them. It was built as a platform for human collaborators — lawyers, researchers, analysts — to annotate documents together and produce gold-standard training data.\n\nThose collaborators mostly never came. The platform was too early, the problem too niche, the value too invisible.\n\nThen large language models arrived, and the world suddenly needed exactly what OpenContracts had been building all along: structured, annotated, version-controlled knowledge bases that AI could actually reason over. The collaborators the platform was designed for finally showed up — they just turned out to be AI agents.\n\nToday, OpenContracts is a self-hosted platform where teams build knowledge bases from their documents and where AI agents work alongside humans to search, analyze, and extend that knowledge. The core conviction hasn't changed. The best AI systems still need carefully curated data. The difference is that now, the curation and the AI happen in the same place.\n\n\u003Ctable>\n\u003Ctr>\n\u003Ctd align=\"center\" width=\"33%\">\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fassets\u002Fimages\u002Ficons\u002Fagents.svg\" width=\"48\" height=\"48\" alt=\"AI Agents\">\n\u003Cbr>\n\u003Ch4>AI Agents\u003C\u002Fh4>\n\u003Cp>Configurable assistants that search, annotate, and reason over your knowledge base\u003C\u002Fp>\n\u003C\u002Ftd>\n\u003Ctd align=\"center\" width=\"33%\">\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fassets\u002Fimages\u002Ficons\u002Fmcp.svg\" width=\"48\" height=\"48\" alt=\"MCP Server\">\n\u003Cbr>\n\u003Ch4>MCP Server\u003C\u002Fh4>\n\u003Cp>Expose your corpus to Claude, Cursor, and any MCP-compatible AI tool\u003C\u002Fp>\n\u003C\u002Ftd>\n\u003Ctd align=\"center\" width=\"33%\">\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fassets\u002Fimages\u002Ficons\u002Fsearch.svg\" width=\"48\" height=\"48\" alt=\"Multimodal Search\">\n\u003Cbr>\n\u003Ch4>Multimodal Search\u003C\u002Fh4>\n\u003Cp>Vector embeddings and full-text search across documents and annotations\u003C\u002Fp>\n\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd align=\"center\" width=\"33%\">\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fassets\u002Fimages\u002Ficons\u002Fcollaboration.svg\" width=\"48\" height=\"48\" alt=\"Collaboration\">\n\u003Cbr>\n\u003Ch4>Collaboration\u003C\u002Fh4>\n\u003Cp>Threaded discussions, @mentions, voting, and moderation at every level\u003C\u002Fp>\n\u003C\u002Ftd>\n\u003Ctd align=\"center\" width=\"33%\">\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fassets\u002Fimages\u002Ficons\u002Fextract.svg\" width=\"48\" height=\"48\" alt=\"Data Extract\">\n\u003Cbr>\n\u003Ch4>Data Extract\u003C\u002Fh4>\n\u003Cp>Structured extraction across hundreds of documents with LLM-powered queries\u003C\u002Fp>\n\u003C\u002Ftd>\n\u003Ctd align=\"center\" width=\"33%\">\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fassets\u002Fimages\u002Ficons\u002Fformat.svg\" width=\"48\" height=\"48\" alt=\"Format Preservation\">\n\u003Cbr>\n\u003Ch4>Format Preservation\u003C\u002Fh4>\n\u003Cp>PDF layout fidelity with precise text-to-coordinate mapping via PAWLS\u003C\u002Fp>\n\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n---\n\n## What Makes This Different\n\n### Human Knowledge as the Foundation\n\nThis is not another \"chat with your PDFs\" tool. OpenContracts treats human annotation as the ground truth. Teams define custom label schemas, annotate documents with precise selections (including multi-page spans), and map relationships between concepts. AI builds on top of that work — it doesn't replace it.\n\n![Document Annotator](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FOpen-Source-Legal_OpenContracts_readme_c1d8795a1392.png)\n\n### Knowledge Bases, Not File Cabinets\n\nDocuments are organized into corpuses — version-controlled collections with folder hierarchies, fine-grained permissions, and full history. Fork a public corpus to build on someone else's annotations. Restore any previous version. Every change is tracked.\n\nThis is `git` for knowledge: you can branch, build, share, and never lose work.\n\n![Corpus Home](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FOpen-Source-Legal_OpenContracts_readme_f2631eb7d095.png)\n\n### AI Agents That Work With What You've Built\n\nConfigurable AI agents can search your documents, query your annotations, and participate in discussions — all grounded in the structured knowledge your team has created. They don't hallucinate in a vacuum; they reason over real, curated data.\n\n@mention an agent in a discussion thread. Ask it to compare clauses across a hundred contracts. Let it surface patterns your team annotated last quarter. The agent's power comes from the quality of the knowledge base underneath it.\n\n![AI Agent Response](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FOpen-Source-Legal_OpenContracts_readme_f1fbe823316e.png)\n\n### Collaboration Where the Knowledge Lives\n\nForum-style threaded discussions at every level — global, per-corpus, per-document. @mention documents, corpuses, and AI agents. Upvote the best analysis. Pin critical findings. The conversation happens next to the source material, not in a separate tool.\n\n![Discussion Threads](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FOpen-Source-Legal_OpenContracts_readme_ae8af4039f07.png)\n\n### Shared Knowledge Compounds\n\nMake a corpus public. Others fork it, refine the annotations, add documents, and share their improvements. Leaderboards and badges recognize contributors. Analytics show which knowledge bases are gaining traction and where the community is most active.\n\nThis is the DRY principle applied to institutional knowledge: annotate once, build on it forever.\n\n![Analytics Dashboard](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FOpen-Source-Legal_OpenContracts_readme_b557f36dff9f.png)\n\n---\n\n## See it in Action\n\n### PDF Annotation Flow\n![PDF Annotation Flow](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FOpen-Source-Legal_OpenContracts_readme_d8e3004c4b93.gif)\n\n### Text Format Support\n![Text Annotation Flow](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FOpen-Source-Legal_OpenContracts_readme_bb06380413f6.gif)\n\n---\n\n## Quick Start\n\n### Development\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts.git\ncd OpenContracts\ndocker compose -f local.yml up\n```\n\n### Production\n\n```bash\n# Apply database migrations first\ndocker compose -f production.yml --profile migrate up migrate\n\n# Start services\ndocker compose -f production.yml up -d\n```\n\n---\n\n## Documentation\n\nBrowse the full documentation at [jsv4.github.io\u002FOpenContracts](https:\u002F\u002Fjsv4.github.io\u002FOpenContracts\u002F) or in the repo:\n\n| Guide | Description |\n|-------|-------------|\n| [Quick Start](docs\u002Fquick_start.md) | Get running with Docker in minutes |\n| [Key Concepts](docs\u002Fwalkthrough\u002Fkey-concepts.md) | Core workflows and terminology |\n| [PDF Data Format](docs\u002Farchitecture\u002FPDF-data-layer.md) | How text maps to PDF coordinates |\n| [LLM Framework](docs\u002Farchitecture\u002Fllms\u002FREADME.md) | PydanticAI integration and agents |\n| [Vector Stores](docs\u002Fextract_and_retrieval\u002Fvector_stores.md) | Semantic search architecture |\n| [Pipeline Overview](docs\u002Fpipelines\u002Fpipeline_overview.md) | Parser and embedder system |\n| [Custom Extractors](docs\u002Fwalkthrough\u002Fadvanced\u002Fwrite-your-own-extractors.md) | Build your own data extraction tasks |\n| [v3.0.0.b3 Release Notes](docs\u002Freleases\u002Fv3.0.0.b3.md) | Latest features and migration guide |\n\n---\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Architecture\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n### Data Format\n\nOpenContracts uses a standardized format for representing text and layout on PDF pages, enabling portable annotations across tools:\n\n![Data Format](docs\u002Fassets\u002Fimages\u002Fdiagrams\u002Fpawls-annotation-mapping.svg)\n\n### Processing Pipeline\n\nThe modular pipeline supports custom parsers, embedders, and thumbnail generators:\n\n![Pipeline Diagram](docs\u002Fassets\u002Fimages\u002Fdiagrams\u002Fparser_pipeline.svg)\n\nEach component inherits from a base class with a defined interface:\n- **Parsers** — Extract text and structure from documents\n- **Embedders** — Generate vector embeddings for search\n- **Thumbnailers** — Create document previews\n\nSee the [pipeline documentation](docs\u002Fpipelines\u002Fpipeline_overview.md) for details on creating custom components.\n\n\u003C\u002Fdetails>\n\n---\n\n## Telemetry\n\nOpenContracts collects anonymous usage data to guide development priorities: installation events, feature usage statistics, and aggregate counts. We do not collect document contents, extracted data, user identities, or query contents.\n\n**Disable backend telemetry**: Set `TELEMETRY_ENABLED=False` in your Django settings.\n**Disable frontend analytics**: Leave `REACT_APP_POSTHOG_API_KEY` unset in `frontend\u002Fpublic\u002Fenv-config.js`.\n\n---\n\n## Supported Formats\n\n- PDF (full layout and annotation support)\n- Text-based formats (plaintext, Markdown)\n\n**Coming soon:** DOCX viewing and annotation powered by [Docxodus](https:\u002F\u002Fgithub.com\u002FJSv4\u002FDocxodus).\n\n---\n\n## Acknowledgements\n\nThis project builds on work from:\n- [AllenAI PAWLS](https:\u002F\u002Fgithub.com\u002Fallenai\u002Fpawls) — PDF annotation data format and concepts\n- [NLMatics nlm-ingestor](https:\u002F\u002Fgithub.com\u002Fnlmatics\u002Fnlm-ingestor) — Document parsing pipeline\n\n---\n\n## License\n\nAGPL-3.0 — See [LICENSE](LICENSE) for details.\n","![OpenContracts](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FOpen-Source-Legal_OpenContracts_readme_2a3dcf368550.png)\n\n# OpenContracts（[演示站点](https:\u002F\u002Fcontracts.opensource.legal)）\n\n一个开源平台，用于构建人类与 AI 智能体（AI agents）可协同工作的知识库。\n\n[![Sponsor](https:\u002F\u002Fimg.shields.io\u002Fstatic\u002Fv1?label=Sponsor&message=%E2%9D%A4&logo=GitHub&color=%23fe8e86)](https:\u002F\u002Fgithub.com\u002Fsponsors\u002FJSv4)\n\n| | |\n|---|---|\n| 后端 CI\u002FCD | [![codecov](https:\u002F\u002Fcodecov.io\u002Fgh\u002FOpen-Source-Legal\u002FOpenContracts\u002Fbranch\u002Fmain\u002Fgraph\u002Fbadge.svg?token=RdVsiuaTVz)](https:\u002F\u002Fapp.codecov.io\u002Fgh\u002Fopen-source-legal\u002FOpenContracts) |\n| 元信息 | [![code style - black](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fcode%20style-black-000000.svg)](https:\u002F\u002Fgithub.com\u002Fpsf\u002Fblack) [![types - Mypy](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Ftypes-Mypy-blue.svg)](https:\u002F\u002Fgithub.com\u002Fpython\u002Fmypy) [![imports - isort](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fimports-isort-ef8336.svg)](https:\u002F\u002Fgithub.com\u002Fpycqa\u002Fisort) [![License - AGPL-3.0](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-AGPL--3.0-blue)](https:\u002F\u002Fwww.gnu.org\u002Flicenses\u002Fagpl-3.0) |\n\n---\n\n![Discovery Landing Page](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FOpen-Source-Legal_OpenContracts_readme_d71b499ff54d.png)\n\n大多数知识都存在于文档中——合同、法规、研究论文、政策——这些内容决定了组织实际如何运作。但这些知识通常被“困住”了：锁在 PDF 中，散落在各个存储空间里，只有少数碰巧在正确时间读过相关内容的人才能完全理解。\n\nOpenContracts 于 2019 年启动，基于一个简单的信念：知识需要精心整理（curated），而机器学习系统的效果取决于其底层数据的质量。该平台最初是为人类协作者（如律师、研究人员、分析师）设计的，让他们能够共同标注文档，并生成高质量的训练数据。\n\n然而，这些协作者大多从未出现。平台推出得太早，问题过于小众，价值也难以被看见。\n\n随后，大语言模型（Large Language Models, LLMs）出现了，世界突然迫切需要 OpenContracts 一直在构建的东西：结构化、已标注、版本可控的知识库，让 AI 能够真正进行推理。平台原本为之设计的协作者终于出现了——只不过他们其实是 AI 智能体。\n\n如今，OpenContracts 是一个可自托管（self-hosted）的平台，团队可以基于自己的文档构建知识库，而 AI 智能体则与人类并肩工作，对知识进行搜索、分析和扩展。核心信念没有改变：最好的 AI 系统仍然依赖于精心整理的数据。不同的是，现在数据整理与 AI 推理发生在同一个地方。\n\n\u003Ctable>\n\u003Ctr>\n\u003Ctd align=\"center\" width=\"33%\">\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fassets\u002Fimages\u002Ficons\u002Fagents.svg\" width=\"48\" height=\"48\" alt=\"AI Agents\">\n\u003Cbr>\n\u003Ch4>AI 智能体\u003C\u002Fh4>\n\u003Cp>可配置的助手，可在你的知识库中进行搜索、标注和推理\u003C\u002Fp>\n\u003C\u002Ftd>\n\u003Ctd align=\"center\" width=\"33%\">\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fassets\u002Fimages\u002Ficons\u002Fmcp.svg\" width=\"48\" height=\"48\" alt=\"MCP Server\">\n\u003Cbr>\n\u003Ch4>MCP 服务器\u003C\u002Fh4>\n\u003Cp>将你的语料库（corpus）暴露给 Claude、Cursor 及任何兼容 MCP 的 AI 工具\u003C\u002Fp>\n\u003C\u002Ftd>\n\u003Ctd align=\"center\" width=\"33%\">\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fassets\u002Fimages\u002Ficons\u002Fsearch.svg\" width=\"48\" height=\"48\" alt=\"Multimodal Search\">\n\u003Cbr>\n\u003Ch4>多模态搜索\u003C\u002Fh4>\n\u003Cp>跨文档和标注的向量嵌入（vector embeddings）与全文搜索\u003C\u002Fp>\n\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd align=\"center\" width=\"33%\">\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fassets\u002Fimages\u002Ficons\u002Fcollaboration.svg\" width=\"48\" height=\"48\" alt=\"Collaboration\">\n\u003Cbr>\n\u003Ch4>协作\u003C\u002Fh4>\n\u003Cp>各级别支持带话题的讨论、@提及、投票和审核\u003C\u002Fp>\n\u003C\u002Ftd>\n\u003Ctd align=\"center\" width=\"33%\">\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fassets\u002Fimages\u002Ficons\u002Fextract.svg\" width=\"48\" height=\"48\" alt=\"Data Extract\">\n\u003Cbr>\n\u003Ch4>数据提取\u003C\u002Fh4>\n\u003Cp>通过 LLM 驱动的查询，在数百份文档中进行结构化提取\u003C\u002Fp>\n\u003C\u002Ftd>\n\u003Ctd align=\"center\" width=\"33%\">\n\u003Cbr>\n\u003Cimg src=\"docs\u002Fassets\u002Fimages\u002Ficons\u002Fformat.svg\" width=\"48\" height=\"48\" alt=\"Format Preservation\">\n\u003Cbr>\n\u003Ch4>格式保留\u003C\u002Fh4>\n\u003Cp>通过 PAWLS 实现 PDF 布局高保真还原，并提供精确的文本到坐标映射\u003C\u002Fp>\n\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n---\n\n## 有何不同\n\n### 以人类知识为基础\n\n这并非又一个“与你的 PDF 聊天”的工具。OpenContracts 将人类标注视为事实依据（ground truth）。团队可定义自定义标签体系，对文档进行精确选择（包括跨多页的片段），并建立概念之间的关联。AI 在此基础上工作——而非取而代之。\n\n![Document Annotator](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FOpen-Source-Legal_OpenContracts_readme_c1d8795a1392.png)\n\n### 构建知识库，而非文件柜\n\n文档被组织成语料库（corpuses）——具有文件夹层级、细粒度权限控制和完整历史记录的版本化集合。你可以派生（fork）一个公开语料库，在他人标注的基础上继续构建；可恢复任意历史版本；所有变更均被追踪。\n\n这是知识领域的 `git`：你可以分支、构建、共享，且永不丢失工作成果。\n\n![Corpus Home](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FOpen-Source-Legal_OpenContracts_readme_f2631eb7d095.png)\n\n### 与你所构建内容协同工作的 AI 智能体\n\n可配置的 AI 智能体能够搜索你的文档、查询你的标注，并参与讨论——所有行为都基于你团队创建的结构化知识。它们不会凭空幻觉（hallucinate），而是基于真实、经过整理的数据进行推理。\n\n在讨论线程中 @ 提及一个智能体，让它比较上百份合同中的条款，或让它揭示你团队上个季度标注出的模式。智能体的能力源自其底层知识库的质量。\n\n![AI Agent Response](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FOpen-Source-Legal_OpenContracts_readme_f1fbe823316e.png)\n\n### 在知识所在之处协作\n\n在各个层级（全局、语料库级、文档级）提供论坛式的话题讨论。可 @ 提及文档、语料库和 AI 智能体。为最佳分析点赞，置顶关键发现。讨论就发生在原始材料旁边，而非另一个独立工具中。\n\n![Discussion Threads](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FOpen-Source-Legal_OpenContracts_readme_ae8af4039f07.png)\n\n### 共享知识产生复利效应\n\n将语料库设为公开。其他人可派生它，优化标注，添加文档，并分享改进成果。排行榜和徽章表彰贡献者。分析面板展示哪些知识库正获得关注，以及社区最活跃的区域。\n\n这是 DRY（Don’t Repeat Yourself）原则在机构知识中的应用：标注一次，永久复用。\n\n![Analytics Dashboard](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FOpen-Source-Legal_OpenContracts_readme_b557f36dff9f.png)\n\n---\n\n## 实际效果演示\n\n### PDF 标注流程\n![PDF Annotation Flow](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FOpen-Source-Legal_OpenContracts_readme_d8e3004c4b93.gif)\n\n### 文本格式支持\n![Text Annotation Flow](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FOpen-Source-Legal_OpenContracts_readme_bb06380413f6.gif)\n\n---\n\n## 快速开始\n\n### 开发环境\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts.git\ncd OpenContracts\ndocker compose -f local.yml up\n```\n\n### 生产环境\n\n```bash\n\n# 首先应用数据库迁移\ndocker compose -f production.yml --profile migrate up migrate\n\n# 启动服务\ndocker compose -f production.yml up -d\n```\n\n---\n\n## 文档\n\n浏览完整文档请访问 [jsv4.github.io\u002FOpenContracts](https:\u002F\u002Fjsv4.github.io\u002FOpenContracts\u002F)，或在本仓库中查看：\n\n| 指南 | 描述 |\n|------|------|\n| [快速开始](docs\u002Fquick_start.md) | 几分钟内通过 Docker 快速运行 |\n| [核心概念](docs\u002Fwalkthrough\u002Fkey-concepts.md) | 核心工作流与术语 |\n| [PDF 数据格式](docs\u002Farchitecture\u002FPDF-data-layer.md) | 文本如何映射到 PDF 坐标 |\n| [LLM 框架](docs\u002Farchitecture\u002Fllms\u002FREADME.md) | PydanticAI 集成与智能体（agents） |\n| [向量存储（Vector Stores）](docs\u002Fextract_and_retrieval\u002Fvector_stores.md) | 语义搜索架构 |\n| [流水线概览](docs\u002Fpipelines\u002Fpipeline_overview.md) | 解析器（Parser）与嵌入器（Embedder）系统 |\n| [自定义提取器](docs\u002Fwalkthrough\u002Fadvanced\u002Fwrite-your-own-extractors.md) | 构建你自己的数据提取任务 |\n| [v3.0.0.b3 版本说明](docs\u002Freleases\u002Fv3.0.0.b3.md) | 最新功能与迁移指南 |\n\n---\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>架构\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n### 数据格式\n\nOpenContracts 使用一种标准化格式来表示 PDF 页面上的文本与布局，从而支持在不同工具间移植注释：\n\n![Data Format](docs\u002Fassets\u002Fimages\u002Fdiagrams\u002Fpawls-annotation-mapping.svg)\n\n### 处理流水线\n\n模块化流水线支持自定义解析器（Parsers）、嵌入器（Embedders）和缩略图生成器（Thumbnailers）：\n\n![Pipeline Diagram](docs\u002Fassets\u002Fimages\u002Fdiagrams\u002Fparser_pipeline.svg)\n\n每个组件均继承自一个具有明确定义接口的基类：\n- **解析器（Parsers）** — 从文档中提取文本与结构\n- **嵌入器（Embedders）** — 为搜索生成向量嵌入（vector embeddings）\n- **缩略图生成器（Thumbnailers）** — 创建文档预览图\n\n有关创建自定义组件的详细信息，请参阅 [流水线文档](docs\u002Fpipelines\u002Fpipeline_overview.md)。\n\n\u003C\u002Fdetails>\n\n---\n\n## 遥测（Telemetry）\n\nOpenContracts 收集匿名使用数据以指导开发优先级：包括安装事件、功能使用统计和聚合计数。我们**不会**收集文档内容、提取的数据、用户身份或查询内容。\n\n**禁用后端遥测**：在 Django 设置中设置 `TELEMETRY_ENABLED=False`。  \n**禁用前端分析**：在 `frontend\u002Fpublic\u002Fenv-config.js` 中不设置 `REACT_APP_POSTHOG_API_KEY`。\n\n---\n\n## 支持的格式\n\n- PDF（完整支持布局与注释）\n- 基于文本的格式（纯文本、Markdown）\n\n**即将推出**：由 [Docxodus](https:\u002F\u002Fgithub.com\u002FJSv4\u002FDocxodus) 提供支持的 DOCX 查看与注释功能。\n\n---\n\n## 致谢\n\n本项目基于以下工作的成果：\n- [AllenAI PAWLS](https:\u002F\u002Fgithub.com\u002Fallenai\u002Fpawls) — PDF 注释数据格式与相关概念\n- [NLMatics nlm-ingestor](https:\u002F\u002Fgithub.com\u002Fnlmatics\u002Fnlm-ingestor) — 文档解析流水线\n\n---\n\n## 许可证\n\nAGPL-3.0 — 详情请参见 [LICENSE](LICENSE)。","# OpenContracts 快速上手指南\n\nOpenContracts 是一个开源平台，用于构建人类与 AI 智能体可协同工作的结构化知识库，特别适用于合同、法规、政策等文档的管理与智能分析。\n\n## 环境准备\n\n- **操作系统**：Linux \u002F macOS \u002F Windows（推荐 Linux 或 macOS）\n- **Docker**：版本 ≥ 20.10\n- **Docker Compose**：版本 ≥ 2.0（已集成在新版 Docker 中）\n- **内存建议**：至少 4GB 可用内存（生产环境建议 8GB+）\n- **网络**：确保可访问 GitHub（国内用户建议配置镜像加速）\n\n> 💡 **国内加速建议**：  \n> 可使用阿里云或 DaoCloud 的 Docker 镜像加速服务，提升镜像拉取速度。  \n> 若克隆缓慢，可尝试使用 GitHub 镜像站（如 `https:\u002F\u002Fghproxy.com\u002F`）代理仓库地址。\n\n## 安装步骤\n\n### 1. 克隆代码仓库\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts.git\ncd OpenContracts\n```\n\n> 国内用户若遇网络问题，可尝试：\n> ```bash\n> git clone https:\u002F\u002Fghproxy.com\u002Fhttps:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts.git\n> ```\n\n### 2. 启动服务\n\n#### 开发环境（快速体验）\n\n```bash\ndocker compose -f local.yml up\n```\n\n服务启动后，访问 [http:\u002F\u002Flocalhost:3000](http:\u002F\u002Flocalhost:3000) 即可使用。\n\n#### 生产环境\n\n```bash\n# 先执行数据库迁移\ndocker compose -f production.yml --profile migrate up migrate\n\n# 启动所有服务\ndocker compose -f production.yml up -d\n```\n\n默认服务端口为 80（HTTP）或 443（HTTPS），请确保端口未被占用。\n\n## 基本使用\n\n1. **首次访问**：打开浏览器，进入 `http:\u002F\u002Flocalhost:3000`（开发模式）或你的服务器地址（生产模式）。\n2. **创建知识库（Corpus）**：点击 “Create Corpus”，上传 PDF 或文本文件。\n3. **标注文档**：在文档中选中文本，添加自定义标签（如“付款条款”、“责任限制”等）。\n4. **调用 AI 智能体**：在讨论区 @AI 助手，例如：\n   ```\n   @contract-analyzer 请找出所有违约责任条款并比较差异。\n   ```\n5. **搜索知识**：使用顶部搜索框进行全文或语义搜索，结果包含文档内容与人工标注。\n\n> ✅ 提示：平台支持 PDF 原始排版保留、多页跨段落标注、版本控制及团队协作功能，适合法律、合规、研究等专业场景。\n\n更多高级功能（如自定义提取器、MCP 接入 Claude\u002FCursor 等）请参考官方文档：[https:\u002F\u002Fjsv4.github.io\u002FOpenContracts\u002F](https:\u002F\u002Fjsv4.github.io\u002FOpenContracts\u002F)","某跨国科技公司法务团队需定期审查数百份供应商合同，以确保合规性并识别潜在风险条款。\n\n### 没有 OpenContracts 时\n- 合同分散在多个共享文件夹和邮件附件中，查找特定条款（如“数据跨境”或“违约赔偿”）依赖手动全文搜索，效率极低。\n- 不同法务人员对同类条款的理解不一致，缺乏统一标注标准，导致风险判断主观性强。\n- 合同版本混乱，修订历史难以追溯，无法确定当前生效条款是否已被更新。\n- 无法批量提取结构化信息（如签约方、有效期、管辖法律），每次分析都需人工逐份阅读。\n- AI助手因缺乏结构化知识库，只能基于原始PDF回答问题，常出现事实错误或遗漏关键上下文。\n\n### 使用 OpenContracts 后\n- 所有合同集中上传至平台，通过语义搜索快速定位相关条款，支持关键词与自然语言混合查询。\n- 团队协作标注关键条款（如“责任限制”“知识产权归属”），形成标准化标签体系，并保留讨论记录供复盘。\n- 平台自动追踪文档版本变更，每次修订均生成差异对比，确保审计可追溯。\n- 利用内置LLM驱动的数据提取功能，一键批量导出所有合同中的结构化字段，用于合规报告生成。\n- 通过MCP协议将知识库接入Claude等AI工具，外部智能体可精准引用已验证的合同内容，大幅提升问答准确性。\n\nOpenContracts 将散落的合同文本转化为人机协同的结构化知识资产，在保障法律严谨性的同时释放AI分析潜力。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FOpen-Source-Legal_OpenContracts_2b783942.png","Open-Source-Legal","Open Source Legal","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FOpen-Source-Legal_1f016a1a.png",null,"https:\u002F\u002Fgithub.com\u002FOpen-Source-Legal",[81,85,89,93,97,100,104,107],{"name":82,"color":83,"percentage":84},"Python","#3572A5",58.2,{"name":86,"color":87,"percentage":88},"TypeScript","#3178c6",41.4,{"name":90,"color":91,"percentage":92},"HTML","#e34c26",0.2,{"name":94,"color":95,"percentage":96},"Shell","#89e051",0.1,{"name":98,"color":99,"percentage":96},"Dockerfile","#384d54",{"name":101,"color":102,"percentage":103},"CSS","#663399",0,{"name":105,"color":106,"percentage":103},"JavaScript","#f1e05a",{"name":108,"color":109,"percentage":103},"SCSS","#c6538c",1262,141,"2026-04-05T07:55:00","AGPL-3.0","Linux, macOS, Windows","未说明",{"notes":117,"python":115,"dependencies":118},"项目使用 Docker 部署，开发环境通过 docker compose -f local.yml 启动，生产环境使用 production.yml。依赖的具体 Python 版本和库未在 README 中明确列出。支持 PDF 和文本格式（如 Markdown），未来将支持 DOCX。后端基于 Django，前端为 React。可通过设置环境变量禁用遥测功能。",[],[51,15,13,26],[121,122,123,124,125,126,127,128],"agent","agentic-ai","etl","etl-pipeline","llm","unstructured-data","vector-database","prompt-engineering","2026-03-27T02:49:30.150509","2026-04-06T06:44:33.830775",[132,137,142,147,152,156],{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},851,"上传 PDF 文档时出现 'height is missing' 错误怎么办？","该错误源于 nlm-ingestor 解析某些 PDF 时缺少页面高度信息。维护者确认该问题已在后续版本中修复。建议更新到最新版 OpenContracts，并确保使用最新的 nlm-ingestor。如果仍遇到问题，可尝试重建 Conda 环境或 Docker 容器（如用户 rmast 所做），并考虑向 nlm-ingestor 项目贡献测试用的 PDF 文件以帮助改进解析器。","https:\u002F\u002Fgithub.com\u002FOpen-Source-Legal\u002FOpenContracts\u002Fissues\u002F148",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},852,"在 macOS（特别是 M 系列芯片）上运行时出现 ImportError: 'cannot allocate memory in static TLS block' 怎么解决？","该错误通常出现在 macOS Sonoma 及 M 系列芯片设备上，与 PyTorch 的 libgomp 库内存分配有关。目前尚无官方通用解决方案，但有用户通过更换嵌入模型（如从 HuggingFace 切换到 OpenAI Embeddings）绕过部分依赖。建议关注 Issue #135 的进展，或尝试在 Linux 环境（如 Ubuntu 22.04）中部署以避免此问题。","https:\u002F\u002Fgithub.com\u002FOpen-Source-Legal\u002FOpenContracts\u002Fissues\u002F135",{"id":143,"question_zh":144,"answer_zh":145,"source_url":146},853,"创建新标签集（Label Set）时出现静默的 GraphQL 错误是什么原因？","该问题通常是由于创建标签集时未提供图标图片（image）导致的。用户 zdql 确认在补充图像后问题解决。维护者已计划提交 PR 修复此问题，建议在创建标签集时确保上传了有效的图标图片，或等待相关修复合并。","https:\u002F\u002Fgithub.com\u002FOpen-Source-Legal\u002FOpenContracts\u002Fissues\u002F145",{"id":148,"question_zh":149,"answer_zh":150,"source_url":151},854,"启动 Django 服务时出现 'TypeError: requires_system_checks must be a list or tuple' 错误如何处理？","该错误由 Django 升级至 LTS 版本后命令类初始化不兼容引起。维护者已在 PR #172 中修复此问题。请确保拉取最新代码（包含 commit d26b78c 之后的修复），重新构建 Docker 镜像即可解决。","https:\u002F\u002Fgithub.com\u002FOpen-Source-Legal\u002FOpenContracts\u002Fissues\u002F171",{"id":153,"question_zh":154,"answer_zh":155,"source_url":136},855,"文档上传后显示成功，但在界面中无法编辑文档怎么办？","文档上传成功后会在「Documents」和「Annotations」标签页中显示。虽然界面提示“可以编辑”，但当前版本可能尚未实现完整的编辑功能。建议查阅官方文档了解基本用法，并关注项目更新。如有能力，可参与贡献以完善编辑功能。",{"id":157,"question_zh":158,"answer_zh":159,"source_url":136},856,"如何为 nlm-ingestor 贡献测试用例以帮助改进 PDF 解析？","维护者鼓励用户向 nlm-ingestor 项目贡献测试 PDF 文件和测试套件，尤其是那些能触发解析错误的文档（如 Issue #148 中的 2017-2278.pdf）。可通过 Fork nlm-ingestor 仓库，添加测试文件并提交 Pull Request。这有助于提升其布局分析能力，优于其他解析引擎。",[161,166,171,176,181,186,191,196,201,206,211,216,221,226,231,236,241,246,251,256],{"id":162,"version":163,"summary_zh":164,"released_at":165},100417,"v3.0.0.b4","# OpenContracts v3.0.0.b4\r\n\r\n## Highlights\r\n\r\nThis beta release includes significant new features, security hardening, performance optimizations, and UI modernization across the platform.\r\n\r\n### Auth0 Authentication for Django Admin\r\n- Django admin now supports Auth0 SSO login with password fallback\r\n- Admin claims synchronization via Auth0 token claims (`is_staff`, `is_superuser`)\r\n- Open redirect prevention, CSRF protection, and in-memory token storage\r\n- 50+ security tests covering edge cases\r\n\r\n### Runtime-Configurable Pipeline Settings\r\n- **PipelineSettings singleton model**: Database-backed configuration for parsers, embedders, and thumbnailers -- no more Django settings file changes for runtime config\r\n- **Encrypted secrets storage**: Fernet-encrypted API keys and credentials, never exposed via GraphQL\r\n- **Visual pipeline configuration UI**: Replaces JSON editing with clickable component cards, per-stage MIME type selectors, and auto-expanding settings\r\n- **Management command** `migrate_pipeline_settings`: Self-documenting component discovery and settings migration\r\n- GraphQL mutations for `updatePipelineSettings`, `resetPipelineSettings`, `updateComponentSecrets`, and `deleteComponentSecrets`\r\n\r\n### Personal Corpus (\"My Documents\")\r\n- Each user automatically receives a personal \"My Documents\" corpus\r\n- All uploads without a specified corpus default to personal corpus\r\n- Data migration creates personal corpuses for existing users (irreversible)\r\n\r\n### Document Processing Pipeline Hardening\r\n- Processing status tracking with PENDING\u002FPROCESSING\u002FCOMPLETED\u002FFAILED states\r\n- Typed parsing exceptions with transient\u002Fpermanent distinction\r\n- Automatic retry with exponential backoff (up to 3 retries)\r\n- Manual retry via `RetryDocumentProcessing` GraphQL mutation\r\n- Failure notifications to document creator\r\n\r\n### Bifurcated Conversation Permissions (CHAT vs THREAD)\r\n- `CHAT` type: Restrictive permissions (creator + explicit + public)\r\n- `THREAD` type: Context-based permissions inherited from corpus\u002Fdocument\r\n- `ConversationQueryOptimizer` for request-level caching\r\n\r\n### Corpus Forking Improvements\r\n- Folder hierarchy preservation during fork\r\n- Relationship preservation with annotation remapping\r\n- Multiple bug fixes for edge cases (missing label sets, slug collisions, etc.)\r\n\r\n### Corpus-Scoped MCP Endpoints\r\n- New `\u002Fmcp\u002Fcorpus\u002F{corpus_slug}\u002F` endpoint for single-corpus shareable links\r\n- Auto-injected corpus context for all tool calls\r\n- TTL-based cache with LRU eviction\r\n\r\n### Multimodal Embedding Support\r\n- CLIP ViT-L-14 multimodal embedder (768-dim shared text\u002Fimage space)\r\n- 2048-dimensional embedding support for newer models\r\n- Pre-extracted image content for annotations (~10-20x faster embeddings)\r\n- Corpus-specific dual embedding strategy\r\n\r\n### Frontend Modernization\r\n- **Unified Upload Modal**: Consolidated bulk and single upload into one component with @os-legal\u002Fui design system\r\n- **Corpus List View redesign**: Hero section, stats grid, filter tabs, CollectionCard components\r\n- **Extract View**: Route-based architecture with WebSocket real-time updates (replacing polling)\r\n- **NavMenu migration**: @os-legal\u002Fui NavBar with built-in responsive hamburger menu\r\n- **Landing page redesign**: Corpus categories, CompactLeaderboard, skeleton loading states\r\n- **Annotations Panel**: Reusable shared component with semantic search, filtering, and pagination\r\n- **GraphQL query optimization**: Eliminated ~39 N+1 queries on landing page via subquery-backed count fields\r\n\r\n### Security\r\n- **WebSocket agent permission vulnerability fixed**: Three-layer permission model prevents unauthorized access\r\n- **JWT error message hardening**: Generic messages to prevent information disclosure\r\n- **Sensitive data redaction in logs**: API keys, secrets, passwords redacted from logs\r\n- **IDOR prevention hardened** across GraphQL mutations and REST endpoints\r\n- **TOCTOU fix** for agent thread actions with `select_for_update()`\r\n\r\n### Other Notable Changes\r\n- LlamaParse document parser integration\r\n- Thread\u002Fmessage triggered corpus actions for automated moderation\r\n- Moderation dashboard with rollback features\r\n- Real-time notification system via WebSocket\r\n- Unified JWT authentication utility\r\n- Bulk document selection and removal\r\n- Agent chat processing indicator\r\n- MCP telemetry tracking (privacy-preserving)\r\n- Secure zip import with folder structure preservation\r\n\r\n### Breaking Changes\r\n- **ModernBERT embedders removed**: Switch to SentenceTransformerEmbedder, OpenAIEmbedder, or VoyageAIEmbedder\r\n- **NLM Ingest Parser removed**: Use Docling (default) or LlamaParse\r\n- **Migration 0038 is irreversible**: Creates personal corpuses for all users\r\n- **Migration 0039**: Removes legacy `corpus.documents` M2M field (use DocumentPath)\r\n\r\n### Upgrade Notes\r\n1. **Back up your database** before upgrading\r\n2. Run migrations: `docker compose -f production.yml --profile migrate up migrate`\r\n3. If using ModernBERT embedders, update Pipel","2026-02-08T17:23:46",{"id":167,"version":168,"summary_zh":169,"released_at":170},100418,"v3.0.0.b3","## 🎯  Summary\r\n\r\nv3.0.0.b3 transforms OpenContracts from a document analysis platform into a **collaborative document intelligence hub**. This is our largest release ever, introducing social features, AI agents, and a complete versioning system.\r\n\r\n---\r\n\r\n## ✨ New Features\r\n\r\n### 📄 Document Versioning\r\n- **Version History Panel** - Track changes, view metadata, restore previous versions\r\n- **Time Travel** - Query corpus state at any point in history\r\n- **Soft Delete & Restore** - Deleted documents go to trash and can be recovered\r\n- **Corpus Isolation** - Each corpus gets independent version trees (no cross-corpus conflicts)\r\n- **Dual-Tree Architecture** - Efficient storage with shared structural annotations\r\n\r\n### 💬 Collaboration System\r\n- **Forum-Style Discussions** - At global (`\u002Fdiscussions`), corpus, and document levels\r\n- **Threading** - Nested conversations with voting (upvote\u002Fdownvote)\r\n- **@Mentions** - Tag documents, corpuses, and AI agents inline\r\n- **Pinning & Locking** - Moderator controls for important\u002Fresolved threads\r\n- **Full-Text Search** - Find threads across all discussions at `\u002Fthreads`\r\n\r\n### 🤖 AI Agent System\r\n- **Configurable Agents** - Create custom AI assistants with specific tools and personas\r\n- **@Mention Invocation** - Type `@agent-name` to trigger AI responses in any thread\r\n- **Tool System** - Agents can use `similarity_search`, `load_document_text`, `search_annotations`\r\n- **Corpus-Scoped Agents** - Create agents specific to individual corpuses\r\n- **Default Agents** - Research Assistant and Document Analyst installed automatically\r\n\r\n### 🏆 Badges & Gamification\r\n- **Achievement System** - Earn badges for contributions (First Upload, Prolific Annotator, etc.)\r\n- **Celebration UI** - Modal with confetti when badges are earned\r\n- **Custom Badges** - Admins can create corpus-specific or global badges\r\n- **Reputation System** - Points from annotations, uploads, discussions, upvotes\r\n\r\n### 📁 Folder Organization\r\n- **Hierarchical Folders** - Unlimited nesting depth within corpuses\r\n- **Drag & Drop** - Move documents and folders visually\r\n- **Folder Tree Sidebar** - Collapsible navigation with document counts\r\n- **Breadcrumb Navigation** - Easy path awareness and quick navigation\r\n\r\n### 👤 User Profiles & Leaderboard\r\n- **Public Profiles** (`\u002Fprofile\u002F:slug`) - Avatar, stats, badges, activity feed\r\n- **Privacy Controls** - Toggle profile visibility in settings\r\n- **Leaderboard** (`\u002Fleaderboard`) - Community rankings by reputation\r\n- **Activity Feed** - Recent uploads, annotations, discussions\r\n\r\n### 🏠 Discovery Landing Page\r\n- **New Homepage** - Replaces direct redirect to `\u002Fcorpuses`\r\n- **Trending Corpuses** - Popular public document collections\r\n- **Recent Discussions** - Active community threads\r\n- **Community Stats** - Total users, documents, annotations\r\n\r\n### 📊 Analytics Dashboard\r\n- **Corpus Engagement Metrics** - Thread counts, message volume, contributors\r\n- **Visualizations** - Bar charts with animated counters\r\n- **Auto-Refresh** - Updates every 5 minutes\r\n\r\n---\r\n\r\n## 🔧 Technical Improvements\r\n\r\n### Infrastructure\r\n- **Parallel Test Execution** - 4x faster with pytest-xdist (`-n 4 --dist loadscope`)\r\n- **License Change** - GPL-3.0 → AGPL-3.0 for stronger copyleft protection\r\n- **PostHog Telemetry** - Opt-in analytics with singleton client pattern\r\n- **TypeScript 5.9** - Full upgrade from 4.5 with all type errors resolved\r\n- **Security Fixes** - npm vulnerability resolutions via yarn resolutions\r\n\r\n### API & Database\r\n- **DocumentPath Model** - Replaces M2M for document-corpus relationships\r\n- **StructuralAnnotationSet** - Shared annotations across corpus copies\r\n- **Relay-Style Pagination** - Consistent pagination for thread search\r\n- **Query Optimizations** - Permission-annotated queries with batch loading\r\n\r\n### Frontend\r\n- **@floating-ui\u002Fdom** - Replaced deprecated tippy.js\r\n- **Improved Mobile UX** - Better responsive layouts for corpus\u002Fdocument views\r\n- **Deep Linking** - Support for tabs, messages, and annotation display settings\r\n- **Component Test Stability** - Fixed Playwright test infrastructure\r\n\r\n---\r\n\r\n## 🔄 Migration Guide\r\n\r\n### Quick Start\r\n```bash\r\n# 1. Pull new images\r\ndocker compose -f production.yml pull\r\n\r\n# 2. Run migrations FIRST (critical!)\r\ndocker compose -f production.yml --profile migrate up migrate\r\n\r\n# 3. Verify migration\r\ndocker compose -f production.yml run django python manage.py validate_v3_migration\r\n\r\n# 4. Start services\r\ndocker compose -f production.yml up -d\r\n```\r\n\r\n### Breaking Changes\r\n1. **Corpus-Document Relationship** - Uses `DocumentPath` model (M2M still works but deprecated)\r\n2. **Thread Search Pagination** - Now uses Relay-style (`edges`, `pageInfo`, `totalCount`)\r\n\r\n📖 **Full migration guide**: See [docs\u002Freleases\u002Fv3.0.0.b3.md](https:\u002F\u002Fgithub.com\u002FOpen-Source-Legal\u002FOpenContracts\u002Fblob\u002Fmain\u002Fdocs\u002Freleases\u002Fv3.0.0.b3.md)\r\n\r\n---\r\n\r\n## 🐛 Bug Fixes\r\n\r\n### Security\r\n- Fixed IDOR vulnerability in agent creation\r\n- User profile privacy now en","2025-12-12T05:24:06",{"id":172,"version":173,"summary_zh":174,"released_at":175},100419,"v3.0.0.b2","# Description\r\n\r\n**This release brings important mobile improvements, new agent capabilities, and enhanced export functionality**\r\n\r\n## Major Features & Improvements\r\n\r\n1. **Modular Agent Instructions** - You can now customize agent system prompts per corpus, giving you fine-grained control over agent behavior for different document collections (#521)\r\n\r\n2. **Enhanced Export Modal** - Added pagination and delete functionality to the export modal for better management of export tasks (#507)\r\n\r\n3. **Page Imaging Tool for Agents** - Agents can now request page images, enabling new visual analysis capabilities (#506)\r\n\r\n4. **Cookie Modal Revamp** - Improved cookie consent modal with proper persistence (#508)\r\n\r\n5. **GraphQL Query Optimizations** - Significant performance improvements in GraphQL queries with better permission filtering and query optimization (#482)\r\n\r\n6. **GCP Cloud Storage Support** - Added Google Cloud Platform storage backend as an alternative to S3 (#475)\r\n\r\n7. **Comprehensive Rate Limiting** - Implemented rate limiting for GraphQL API to ensure system stability (#453)\r\n\r\n## Bug Fixes\r\n\r\n1. **Mobile Viewport Issues** - Fixed mobile and desktop viewport overflow problems in corpus chat and document viewer (#539)\r\n2. **Re-authentication Flow** - Improved user experience during re-authentication (#520)\r\n3. **Non-PDF Exports** - Fixed document export functionality for non-PDF file formats (#505)\r\n4. **Corpus Layout** - Eliminated unwanted spacing in corpus home layout\r\n5. **Async\u002FSync Boundaries** - Fixed async\u002Fsync boundary issue in document embedder picker\r\n\r\n## Infrastructure & Performance\r\n\r\n- Refactored S3 storage backend for enhanced connection pooling and client reuse\r\n- Enhanced annotation privacy and permission handling\r\n- Improved test coverage for agent tools and rate limiting\r\n- Docker and deployment configuration improvements\r\n- Better error handling in authentication and routing\r\n\r\n## Dependency Updates\r\n\r\nMultiple security and feature updates including:\r\n- pytest-cov 6.2.1 → 7.0.0\r\n- jsonschema 4.24.0 → 4.25.1\r\n- coverage 7.10.7 → 7.11.0\r\n- django-cors-headers 4.7.0 → 4.9.0\r\n- vite 6.3.6 → 6.4.1\r\n- And many others\r\n\r\n## Included PRs\r\n\r\n* Merge pull request #542 from Open-Source-Legal\u002Fdependabot\u002Fpip\u002Fcoverage-7.11.0\r\n* Merge pull request #541 from Open-Source-Legal\u002Fdependabot\u002Fpip\u002Fjsonschema-4.25.1\r\n* Merge pull request #540 from Open-Source-Legal\u002Fdependabot\u002Fpip\u002Fpytest-cov-7.0.0\r\n* Merge pull request #539 from Open-Source-Legal\u002FJSv4\u002Fissue-531\r\n* Merge pull request #538 from Open-Source-Legal\u002Fdependabot\u002Fnpm_and_yarn\u002Ffrontend\u002Fvite-6.4.1\r\n* Merge pull request #537 from Open-Source-Legal\u002Fdependabot\u002Fpip\u002Fdjango-cors-headers-4.9.0\r\n* Merge pull request #535 from Open-Source-Legal\u002Fdependabot\u002Fpip\u002Ftokenizers-gte-0.21-and-lt-0.23\r\n* Merge pull request #534 from Open-Source-Legal\u002Fdependabot\u002Fpip\u002Fwatchfiles-1.1.1\r\n* Merge pull request #521 from Open-Source-Legal\u002Ffeature\u002Fissue-518-modular-agent-instructions\r\n* Merge pull request #520 from Open-Source-Legal\u002Ffix\u002Fissue-517-graceful-reauth\r\n* Merge pull request #508 from Open-Source-Legal\u002Ffeature\u002Fissue-41-cookie-modal-revamp\r\n* Merge pull request #507 from Open-Source-Legal\u002Ffeature\u002Fissue-93-export-modal-pagination\r\n* Merge pull request #506 from Open-Source-Legal\u002Ffeature\u002Fissue-403-page-imaging-tool\r\n* Merge pull request #505 from Open-Source-Legal\u002Ffix\u002Fissue-449-non-pdf-exports\r\n* Merge pull request #501 from Open-Source-Legal\u002Fdependabot\u002Fpip\u002Frequirements\u002Ffiletypes\u002Fmammoth-1.11.0\r\n* Merge pull request #499 from Open-Source-Legal\u002Fdependabot\u002Fgithub_actions\u002Factions\u002Fsetup-node-6\r\n* Merge pull request #498 from Open-Source-Legal\u002FJSv4\u002Fimprove-agent-tools\r\n* Merge pull request #492 from Open-Source-Legal\u002Fdependabot\u002Fpip\u002Fdjango-coverage-plugin-3.2.0\r\n* Merge pull request #491 from Open-Source-Legal\u002Fdependabot\u002Fpip\u002Fgoogle-auth-2.41.1\r\n* Merge pull request #490 from Open-Source-Legal\u002Fdependabot\u002Fgithub_actions\u002Factions\u002Fcheckout-5.0.0\r\n* Merge pull request #487 from Open-Source-Legal\u002FJSv4\u002Frevise-sidebar-overlay\r\n* Merge pull request #486 from Open-Source-Legal\u002Fdependabot\u002Fpip\u002Fdjango-anymail-mailgun--13.1\r\n* Merge pull request #485 from Open-Source-Legal\u002Fdependabot\u002Fpip\u002Fcoverage-7.10.7\r\n* Merge pull request #484 from Open-Source-Legal\u002Fdependabot\u002Fpip\u002Fdjango-4.2.24\r\n* Merge pull request #483 from Open-Source-Legal\u002Fdependabot\u002Fdocker\u002Fcompose\u002Fproduction\u002Ftraefik\u002Ftraefik-3.5.3\r\n* Merge pull request #482 from Open-Source-Legal\u002FJSv4\u002Fquery-optimizations\r\n* Merge pull request #481 from Open-Source-Legal\u002Fdependabot\u002Fpip\u002Fpytest-8.4.2\r\n* Merge pull request #480 from Open-Source-Legal\u002Fdependabot\u002Fpip\u002Fdjangorestframework-3.16.1\r\n* Merge pull request #479 from Open-Source-Legal\u002Fdependabot\u002Fnpm_and_yarn\u002Ffrontend\u002Faxios-1.12.0\r\n* Merge pull request #478 from Open-Source-Legal\u002Fdependabot\u002Fdocker\u002Fcompose\u002Fproduction\u002Ftraefik\u002Ftraefik-3.5.2\r\n* Merge pull request #477 from Open-Source-Legal\u002Fdependabot\u002Fnpm_and_yarn\u002Ffrontend\u002Fvite-6.3.6\r\n* Merge pull request #475 from Open-Source-Legal\u002FJSv4\u002Fadd-gcp-cloud-","2025-10-26T22:56:43",{"id":177,"version":178,"summary_zh":179,"released_at":180},100420,"v3.0.0.b1","# Description\r\n\r\n**This release brings substantial but targeted improvements to the annotator UI\u002FUX, specifically**\r\n\r\n1. Vastly improved UI\u002FUX for navigating notes, annotations and other document info in the view. Work there is still ongoing, but the many tabs and requirements to context switch have been replaced in favor of a single unified context feed where you can sort and filter the various info container types by page and - eventually - we can scroll lock the feed and the document. \r\n2. Also simplified the creation of labelsets and labels. Before, you had to know to create a labelset or link an existing one to a corpus. To add a new label to a doc that doesn't already exist, you had to exit the corpus, nav to the labelset, add the label, and then jump back in. All of this is now 1 - 2 clicks and can happen from within the floating label component. \r\n\r\n**We've also fixed and improved some things:**\r\n\r\n1. The data extract performance using pydantic ai agents was middling, and we've updated how that agent is configured to improve structured data extract. \r\n3. Metadata creation and retrieval has been rebuilt to use the same storage types as extracts. Much better handling of types and much better test coverage. \r\n4. Fixed some bugs with export tasks expecting wrong # of arguments. \r\n5. Fixed issues with claude-based highlighter analyses\r\n\r\n## Included PRs\r\n* Migrate All Docling Embedders to Microservice, Remove HF dependencies from core app by @JSv4 in https:\u002F\u002Fgithub.com\u002FOpen-Source-Legal\u002FOpenContracts\u002Fpull\u002F362\r\n* Bump openai from 1.65.4 to 1.80.0 by @dependabot[bot] in https:\u002F\u002Fgithub.com\u002FOpen-Source-Legal\u002FOpenContracts\u002Fpull\u002F373\r\n* Bump llama-index-agent-openai from 0.4.1 to 0.4.8 by @dependabot[bot] in https:\u002F\u002Fgithub.com\u002FOpen-Source-Legal\u002FOpenContracts\u002Fpull\u002F372\r\n* Bump traefik from 3.3.6 to 3.4.0 in \u002Fcompose\u002Fproduction\u002Ftraefik by @dependabot[bot] in https:\u002F\u002Fgithub.com\u002FOpen-Source-Legal\u002FOpenContracts\u002Fpull\u002F361\r\n* Bump factory-boy from 3.3.1 to 3.3.3 by @dependabot[bot] in https:\u002F\u002Fgithub.com\u002FOpen-Source-Legal\u002FOpenContracts\u002Fpull\u002F360\r\n* Added GitHub action workflow to do release. by @JSv4 in https:\u002F\u002Fgithub.com\u002FOpen-Source-Legal\u002FOpenContracts\u002Fpull\u002F376\r\n* Create Agent Framework Agnostic Agent API by @JSv4 in https:\u002F\u002Fgithub.com\u002FOpen-Source-Legal\u002FOpenContracts\u002Fpull\u002F386\r\n* Streamlined Knowledge Base by @JSv4 in https:\u002F\u002Fgithub.com\u002FOpen-Source-Legal\u002FOpenContracts\u002Fpull\u002F400\r\n* Add Events (Like Tool Usage, Thinking, etc.) to Agent API and Return Message Types by @JSv4 in https:\u002F\u002Fgithub.com\u002FOpen-Source-Legal\u002FOpenContracts\u002Fpull\u002F392\r\n* Bump django-extensions from 3.2.3 to 4.1 by @dependabot[bot] in https:\u002F\u002Fgithub.com\u002FOpen-Source-Legal\u002FOpenContracts\u002Fpull\u002F393\r\n* [Snyk] Upgrade @types\u002Freact from 18.3.21 to 18.3.23 by @JSv4 in https:\u002F\u002Fgithub.com\u002FOpen-Source-Legal\u002FOpenContracts\u002Fpull\u002F396\r\n* Bump traefik from 3.4.0 to 3.4.3 in \u002Fcompose\u002Fproduction\u002Ftraefik by @dependabot[bot] in https:\u002F\u002Fgithub.com\u002FOpen-Source-Legal\u002FOpenContracts\u002Fpull\u002F399\r\n* Bump watchfiles from 1.0.4 to 1.1.0 by @dependabot[bot] in https:\u002F\u002Fgithub.com\u002FOpen-Source-Legal\u002FOpenContracts\u002Fpull\u002F395\r\n* Bump flake8 from 7.2.0 to 7.3.0 by @dependabot[bot] in https:\u002F\u002Fgithub.com\u002FOpen-Source-Legal\u002FOpenContracts\u002Fpull\u002F409\r\n* Bump celery from 5.4.0 to 5.5.3 by @dependabot[bot] in https:\u002F\u002Fgithub.com\u002FOpen-Source-Legal\u002FOpenContracts\u002Fpull\u002F407\r\n* Bump pytest-django from 4.9.0 to 4.11.1 by @dependabot[bot] in https:\u002F\u002Fgithub.com\u002FOpen-Source-Legal\u002FOpenContracts\u002Fpull\u002F406\r\n* Bump django-cors-headers from 3.13.0 to 4.7.0 by @dependabot[bot] in https:\u002F\u002Fgithub.com\u002FOpen-Source-Legal\u002FOpenContracts\u002Fpull\u002F405\r\n* Bump django-environ from 0.9.0 to 0.12.0 by @dependabot[bot] in https:\u002F\u002Fgithub.com\u002FOpen-Source-Legal\u002FOpenContracts\u002Fpull\u002F416\r\n* Bump hiredis from 3.0.0 to 3.2.1 by @dependabot[bot] in https:\u002F\u002Fgithub.com\u002FOpen-Source-Legal\u002FOpenContracts\u002Fpull\u002F414\r\n* Bump crispy-bootstrap5 from 2025.4 to 2025.6 by @dependabot[bot] in https:\u002F\u002Fgithub.com\u002FOpen-Source-Legal\u002FOpenContracts\u002Fpull\u002F413\r\n* Bump traefik from 3.4.3 to 3.4.4 in \u002Fcompose\u002Fproduction\u002Ftraefik by @dependabot[bot] in https:\u002F\u002Fgithub.com\u002FOpen-Source-Legal\u002FOpenContracts\u002Fpull\u002F412\r\n* Bump django-crispy-forms from 2.3 to 2.4 by @dependabot[bot] in https:\u002F\u002Fgithub.com\u002FOpen-Source-Legal\u002FOpenContracts\u002Fpull\u002F415\r\n* Improve Build Times by @JSv4 in https:\u002F\u002Fgithub.com\u002FOpen-Source-Legal\u002FOpenContracts\u002Fpull\u002F418\r\n* Bump djangorestframework from 3.15.2 to 3.16.0 by @dependabot[bot] in https:\u002F\u002Fgithub.com\u002FOpen-Source-Legal\u002FOpenContracts\u002Fpull\u002F423\r\n* Bump django-cte from 1.3.3 to 2.0.0 by @dependabot[bot] in https:\u002F\u002Fgithub.com\u002FOpen-Source-Legal\u002FOpenContracts\u002Fpull\u002F421\r\n* Bump docker\u002Fbuild-push-action from 5 to 6 by @dependabot[bot] in https:\u002F\u002Fgithub.com\u002FOpen-Source-Legal\u002FOpenContracts\u002Fpull\u002F419\r\n* Bump responses from 0.22.0 to 0.25.7 by @dependabot[bot] in https:\u002F\u002Fgithub.com\u002FOpen-Source-Legal\u002FOpenContracts\u002Fpull\u002F422\r\n* Bump actions\u002Fcheckout from 4 to 5 by @dependabot[bot] in https:\u002F\u002Fgithub.com\u002FOpen-Source-Legal\u002FOpenContracts\u002Fpull\u002F438\r\n* Bump traefik from 3.4.4 to 3.5.0 in \u002Fc","2025-08-25T06:09:34",{"id":182,"version":183,"summary_zh":184,"released_at":185},100421,"v3.0.0.a2","Another big update:\r\n\r\n1. Supports dynamic length embeddings (per corpus) so you can configure a different embeddings module for different projects. \r\n2. Async and websocket support with improved agents (more work to be done)\r\n3. Source highlights IN document for queries\r\n4.  Migrated to vite\r\n5. Migrated to pdf,js 5.*\r\n6. Playwright tests for key pdf interactions (more to come)\r\n\r\n## What's Changed\r\n* [Snyk] Fix for 32 vulnerabilities by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F291\r\n* Update quick-start.md by @ThreatLentes in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F292\r\n* Fix documentation configuration by @ofek in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F303\r\n* Issue85 port redirect to 3000 by @ThreatLentes in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F293\r\n* Add Post Processors & Example PDF Redaction by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F306\r\n* Bump watchfiles from 1.0.3 to 1.0.4 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F310\r\n* [Snyk] Security upgrade nginx from 1.27.3-alpine to 1.27.4-alpine by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F316\r\n* [Snyk] Security upgrade cryptography from 43.0.1 to 44.0.1 by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F317\r\n* Bump traefik from 3.2.3 to 3.3.4 in \u002Fcompose\u002Fproduction\u002Ftraefik by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F319\r\n* [Snyk] Security upgrade pillow from 9.5.0 to 10.3.0 by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F309\r\n* [Snyk] Security upgrade pillow from 9.5.0 to 10.0.1 by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F305\r\n* Implement ASGI, Doc Chat and Doc Summary View by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F311\r\n* Bump openai from 1.58.1 to 1.65.4 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F327\r\n* Bump django-redis from 5.2.0 to 5.4.0 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F324\r\n* Bump coverage from 7.6.1 to 7.6.12 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F315\r\n* [Snyk] Fix for 7 vulnerabilities by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F322\r\n* Bump axios from 1.7.9 to 1.8.2 in \u002Ffrontend by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F328\r\n* Pluggable vector storage by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F339\r\n* Add Bulk Import and Case Summarizer by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F343\r\n* Migrate to Vite & Upgrade Pdf.js by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F353\r\n* Bump traefik from 3.3.4 to 3.3.6 in \u002Fcompose\u002Fproduction\u002Ftraefik by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F351\r\n* Bump sphinx from 6.1.0 to 8.2.3 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F326\r\n* Bump vite from 6.3.2 to 6.3.4 in \u002Ffrontend by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F357\r\n* Bump crispy-bootstrap5 from 2024.2 to 2025.4 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F348\r\n\r\n## New Contributors\r\n* @ThreatLentes made their first contribution in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F292\r\n* @ofek made their first contribution in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F303\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fcompare\u002Fv3.0.0.a1...v3.0.0.a2","2025-05-06T12:21:49",{"id":187,"version":188,"summary_zh":189,"released_at":190},100422,"v3.0.0.a1","**3.0.0 Alpha1 Release:**\r\n\r\nThis release brings a ton of long-planned and much-needed improvements. Specifically:\r\n\r\n1. Brought the frontend up to React 18\r\n2. Completely overhauled state handling in the annotator component to improve performance and cut down on unnecessary re-renders. Using Jotai atoms now instead of contexts. \r\n3. Added modular document processing pipelines that can easily be configured and enabled\u002Fdisabled via settings module. \r\n4. Added a docling-based processing pipeline\r\n5. Ensured that relationships are now imported and exported with corposes\r\n6. Load relationships produced by document processing pipeline\r\n7. Overhauled data extract task (still a work-in-progress)\r\n8. Improved test coverage\r\n9. Lots of GUI cleanup. Fixed minor bugs and general ugliness.\r\n\r\n## What's Changed\r\n* Bump traefik from 3.1.6 to 3.2.3 in \u002Fcompose\u002Fproduction\u002Ftraefik by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F259\r\n* Upgrade to React 18 and Implement React-Data-Table by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F243\r\n* Make Parsers, Embedders and Thumbnail Generators Modular by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F257\r\n* Bump redis from 5.0.8 to 5.2.1 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F264\r\n* Bump flake8 from 6.0.0 to 7.1.1 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F234\r\n* Bump django-storages[boto3] from 1.13.1 to 1.14.4 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F269\r\n* Pre 3.0.0 Alpha Cleanup by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F266\r\n* Bump django-filter from 22.1 to 24.3 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F268\r\n* Bump nanoid from 3.3.7 to 3.3.8 in \u002Ffrontend by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F275\r\n* Bump pylint-django from 2.5.5 to 2.6.1 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F279\r\n* Bump pytest-cov from 5.0.0 to 6.0.0 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F278\r\n* Bump cross-spawn from 7.0.3 to 7.0.6 in \u002Ffrontend by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F274\r\n* Bump actions\u002Fcheckout from 4.2.1 to 4.2.2 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F241\r\n* Relationship Import for Parser Pipeline by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F276\r\n* Bump pyjwt from 2.4.0 to 2.10.1 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F265\r\n* Extract Cleanup by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F285\r\n* GUI Cleanup by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F282\r\n* [Snyk] Security upgrade nginx from 1.21.4-alpine to 1.27.3-alpine by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F290\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fcompare\u002Fv2.4.0...v3.0.0.a1","2025-01-06T06:10:08",{"id":192,"version":193,"summary_zh":194,"released_at":195},100423,"v2.4.0","This is a pretty significant upgrade vs 2.3.1. We added a number of features:\r\n\r\n1. We now support ingesting, rendering and annotating txt-based formats like plaintext, markdown, etc. \r\n2. Our document ingestion pipeline has a parser for txt-based formats. \r\n3. The task decorator for custom tasks will automatically switch from span-based to token-based annotations depending on the underlying format. At the moment this is just pdf vs non-pdf, but could be a richer taxonomy. \r\n4. Substantial styling improvements.\r\n\r\n## What's Changed\r\n* Bump pytest from 8.2.2 to 8.3.3 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F227\r\n* Bump pytz from 2022.7 to 2024.2 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F226\r\n* Bump psycopg2 from 2.9.5 to 2.9.9 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F229\r\n* Bump traefik from 3.1.4 to 3.1.5 in \u002Fcompose\u002Fproduction\u002Ftraefik by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F232\r\n* Bump actions\u002Fcheckout from 4.1.7 to 4.2.0 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F231\r\n* Bump cryptography from 43.0.0 to 43.0.1 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F228\r\n* Bump traefik from 3.1.5 to 3.1.6 in \u002Fcompose\u002Fproduction\u002Ftraefik by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F238\r\n* Bump actions\u002Fcheckout from 4.2.0 to 4.2.1 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F236\r\n* Add Txt Annotator by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F233\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fcompare\u002Fv2.3.1...v2.4.0","2024-11-11T02:46:33",{"id":197,"version":198,"summary_zh":199,"released_at":200},100424,"v2.3.1","**Two primary improvements in this release:**\r\n\r\n1. The admin views have been built out with more filters, raw_id renders (to cut down on M2M and FK pulls), and custom actions - including a custom dropdown action on selected Corpus(es) to make them public. \r\n2. We were previously loading ALL annotations for an analysis in each document view. First off, that's really inefficient for large corpuses. Second, it meant that the annotator got cluttered with random annotations that weren't actually in the loaded document. Added a filter on the `fullAnnotationList` prop of AnalysesType to filter to `document_id`. Updated frontend to only request annotation analyses for `opened_document`.\r\n\r\n## What's Changed\r\n* Bump traefik from 3.1.2 to 3.1.3 in \u002Fcompose\u002Fproduction\u002Ftraefik by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F217\r\n* Bump pillow from 9.4.0 to 10.4.0 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F186\r\n* Bump djangorestframework from 3.14.0 to 3.15.2 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F214\r\n* Bump gunicorn from 20.1.0 to 23.0.0 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F194\r\n* Improve Admin Views by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F219\r\n* Bump traefik from 3.1.3 to 3.1.4 in \u002Fcompose\u002Fproduction\u002Ftraefik by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F225\r\n* Bump mypy from 1.11.1 to 1.11.2 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F223\r\n* Bump drf-extra-fields from 3.4.1 to 3.7.0 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F221\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fcompare\u002Fv.2.3.0...v2.3.1","2024-09-20T22:03:27",{"id":202,"version":203,"summary_zh":204,"released_at":205},100425,"v.2.3.0","It is now possible to collect feedback from users on public corpuses where `can_comment` is set to true. Added some nice GUI enhancements to the labels to support more action buttons - including a cool parabolic spiral button cloud that sprouts from an action zone.\r\n\r\n## What's Changed\r\n* Add User Feedback by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F216\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fcompare\u002Fv2.2.0...v.2.3.0","2024-09-17T01:48:17",{"id":207,"version":208,"summary_zh":209,"released_at":210},100426,"v2.2.0","This release brings an enormous number of frontend improvements and tweaks, primarily focused on unifying the document annotation and viewer components into a single component that has a single, clean workflow for viewing different extracts and analyses for a given document. \r\n\r\n## What's Changed\r\n* Finalize 2.1 by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F200\r\n* Bump crispy-bootstrap5 from 0.7 to 2024.2 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F196\r\n* Bump redis from 4.5.1 to 5.0.8 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F201\r\n* Bump pytest-django from 4.5.2 to 4.9.0 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F204\r\n* Bump django-debug-toolbar from 3.7.0 to 4.4.6 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F203\r\n* Enhancement: Sane, Smooth UX for Document-Based Workflows  by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F206\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fcompare\u002Fv2.1.0...v2.2.0","2024-09-12T06:02:06",{"id":212,"version":213,"summary_zh":214,"released_at":215},100427,"v2.1.0","## TLDR\r\n\r\nThis release brings the addition of `CorpusActions`, GitHub Action-style automatic analyzers or data extractors that run when a document is uploaded. See more [here](https:\u002F\u002Fjsv4.github.io\u002FOpenContracts\u002Farchitecture\u002Fopencontract-corpus-actions\u002F).\r\n\r\n## What's Changed\r\n* Upgrade Django App Dependencies to work with Django LTS by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F172\r\n* Add Document Analysis Row by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F175\r\n* Bump django from 4.2.14 to 4.2.15 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F180\r\n* Bump flake8-isort from 6.0.0 to 6.1.1 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F181\r\n* Bump pytest-cov from 4.0.0 to 5.0.0 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F182\r\n* Bump cryptography from 38.0.1 to 43.0.0 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F184\r\n* Bump traefik from 3.1.0 to 3.1.2 in \u002Fcompose\u002Fproduction\u002Ftraefik by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F179\r\n* Bump django-crispy-forms from 1.14.0 to 2.3 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F166\r\n* Add Corpus Actions by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F183\r\n* Bump pylint-django from 2.5.3 to 2.5.5 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F129\r\n* Bump flower from 1.0.0 to 2.0.1 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F125\r\n* Bump django-coverage-plugin from 2.0.3 to 3.1.0 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F190\r\n* Bump werkzeug from 2.2.2 to 3.0.3 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F188\r\n* Bump celery from 5.2.7 to 5.4.0 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F187\r\n* Bump python-slugify from 6.1.2 to 8.0.4 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F192\r\n* Bump ipdb from 0.13.9 to 0.13.13 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F189\r\n* Bump mypy from 0.991 to 1.11.1 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F191\r\n* Bump marvin from 2.3.4 to 2.3.7 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F195\r\n* Improved doc analyzer task decorator to do more I\u002FO handling  by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F185\r\n* Bump factory-boy from 3.2.1 to 3.3.1 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F197\r\n* Added Sample Doc Action Task and Cleanup Task Execution by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F198\r\n* Bump coverage from 6.5.0 to 7.6.1 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F199\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fcompare\u002Fv2.0.0...v2.1.0","2024-08-27T03:34:51",{"id":217,"version":218,"summary_zh":219,"released_at":220},100428,"v2.0.0.post1","# Upgrade Dependencies\r\n\r\nThe upgrade from Django 3.2* to 4.2.* introduced a syntax change in the management command that caused two django app dependencies to break. In the process of upgrading these, some other dependency issues cropped up.\r\n\r\nThis release:\r\n\r\n1. Upgrades django app dependencies for full Django 4.2.* compatibility\r\n2. Upgrades opencv and related dependencies\r\n3. Introduces additional test cases to improve test coverage. \r\n\r\n## What's Changed\r\n* Upgrade Django App Dependencies to work with Django LTS by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F172\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fcompare\u002Fv2.0.0...v2.0.0.post1","2024-07-30T02:45:59",{"id":222,"version":223,"summary_zh":224,"released_at":225},100429,"v2.0.0","# This release includes:\r\n\r\n1. A table-based data extract interface and related models\r\n2. Improved test coverage\r\n3. Upgrade to Django 4.2.* LTS\r\n\r\n## What's Changed\r\n* Add Data Extraction by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F117\r\n* Bump pytest from 6.2.5 to 8.2.2 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F126\r\n* v2 Bugfixes by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F128\r\n* Bump actions\u002Fupload-artifact from 3 to 4 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F123\r\n* Bump actions\u002Fsetup-node from 3 to 4 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F121\r\n* Bump actions\u002Fcheckout from 3.3.0 to 4.1.7 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F120\r\n* Better Docs and Modular Extract Tasks by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F130\r\n* Bump actions\u002Fsetup-python from 4 to 5 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F122\r\n* Improve Docs and Diagrams by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F131\r\n* Add Testing Docs by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F132\r\n* Update Production Compose by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F136\r\n* Fix Injection of Configurations into Frontend from Env Variables by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F137\r\n* Fix GUI Bugs by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F138\r\n* Create Funding.yaml by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F142\r\n* Update README.md by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F143\r\n* File inspection and Mimetype Limits on Document Upload Mutation. by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F144\r\n* Bump traefik from 2.9.6 to 3.0.4 in \u002Fcompose\u002Fproduction\u002Ftraefik by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F133\r\n* Use Default Icon for Labelset Where None Provided by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F146\r\n* Updated Terms of Service and Opening Modal by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F147\r\n* Install Embeddings Model @ \u002Fmodels in Production Container + Fix Extract Where Search Text is None by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F156\r\n* Improve Document Selection Workflows by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F157\r\n* Bump traefik from 3.0.4 to 3.1.0 in \u002Fcompose\u002Fproduction\u002Ftraefik by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F160\r\n* Frontend Cleanup by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F163\r\n* Fix CorpusCards by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F164\r\n* Fix Corpus Query Source Action by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F165\r\n* Dynamically Apply OCR, Improve PDF Utilities and Tests by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F167\r\n* Improve DB Performance with Additional Indexes by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F168\r\n* Long Poll Documents When Document is Processing by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F169\r\n* Upgrade Django LTS by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F170\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fcompare\u002Fv1.3.0...v2.0.0","2024-07-27T06:01:49",{"id":227,"version":228,"summary_zh":229,"released_at":230},100430,"v2.0.0.b3","# Some PDF-handling-related improvements:\r\n\r\n1. Merged some nlm-ingestor changes from upstream repo to fix an issue with missing style tags with certain pdfs\r\n2. Improved test coverage for pdf utils\r\n3. Turn on OCR dynamically for PDFs that appear to need it, avoiding wasting processing power on *all* PDFs while preventing text-less PDFs when OCR is required.\r\n\r\n# Also some minor GUI bug-fixes\r\n\r\n","2024-07-22T07:33:51",{"id":232,"version":233,"summary_zh":234,"released_at":235},100431,"v2.0.0.b2","Features:\r\n- The data extract tasks are now dynamically loaded and can be applied on a column-by-column basis. So, you can write very specific extract logic for a given column \u002F data field. Newly-registered tasks are displayed automatically on the frontend and can be selected by the user when building a fieldset for a datagrid. \r\n-  Add a search to the Extracts view and improved various load and performance issues. \r\n- Removed the LanguageModel model as it's almost completely subsumed by the ability to create custom extract pipelines. Moreover, it wasn't really doing anything before.\r\n- Expanded our docs and tutorials to explain how data extract works and walk someone through writing a custom data extract task.\r\n\r\n## What's Changed\r\n* Bump pytest from 6.2.5 to 8.2.2 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F126\r\n* v2 Bugfixes by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F128\r\n* Bump actions\u002Fupload-artifact from 3 to 4 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F123\r\n* Bump actions\u002Fsetup-node from 3 to 4 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F121\r\n* Bump actions\u002Fcheckout from 3.3.0 to 4.1.7 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F120\r\n* Better Docs and Modular Extract Tasks by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F130\r\n* Bump actions\u002Fsetup-python from 4 to 5 by @dependabot in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F122\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fcompare\u002Fv2.0.0b1...v2.0.0.b2","2024-06-23T16:38:19",{"id":237,"version":238,"summary_zh":239,"released_at":240},100432,"v2.0.0b1","# 2.0.0 Beta 1\r\n\r\n*Added Grid-based Data Extraction and Corpus Querying*\r\n\r\nThis update extends the analytical capabilities of the application, allowing for automated and background extraction of structured data from documents, improving efficiency and scalability.\r\n\r\n### We've added a couple models on the backend:\r\n**Extract**: Represents a headless, background annotation task linked to a Corpus and Fieldset.\r\n**Fieldset**: Defines a reusable set of fields for Extracts, linked to Columns.\r\n**Column**: Represents a discrete data structure to extract from a document, with various properties like query, match_text, output_type, and more.\r\n**Datacell**: Represents extracted data for each column and document, storing data as JSON.\r\n**LanguageModel**: Represents a language model to be used in the extraction process.\r\n\r\n### Improved Test Suite\r\n- LlamaIndex is being tested with [vcr.py](https:\u002F\u002Fvcrpy.readthedocs.io\u002Fen\u002Flatest\u002F) so we actually have realistic tests and mocks for corpus query and corpus extract tasks\r\n- Added a lot of graphql query and endpoint tests\r\n\r\n### New GUI Elements\r\n- There is now an extract tab and a number of GUI elements to make it easy to construct an extract grid made up of documents, corpora and re-usable columns. \r\n- Within the Corpus view, there is a query tab you can use to ask questions of the corpus\r\n\r\n## What's Changed\r\n* Add Data Extraction by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F117\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fcompare\u002Fv1.3.0...v2.0.0b1","2024-06-19T15:45:48",{"id":242,"version":243,"summary_zh":244,"released_at":245},100433,"v1.3.0","Major feature is addition of nlm ingestor microservice which will eventually totally replace the PAWLs preprocessor (which has some periodic issues for certain doc types). This allows us to import layout blocks along with the document and token layers. \r\n\r\n## What's Changed\r\n* Add Documentation on Annotation Creation Logic + Component(s) by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F113\r\n* Create overview.md by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F114\r\n* Add Nlm-ingestor by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F115\r\n* Add Structural Annotations and Vector Embeddings by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F116\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fcompare\u002Fv1.2.2...v1.3.0","2024-06-04T04:01:44",{"id":247,"version":248,"summary_zh":249,"released_at":250},100434,"v1.2.2","I moved the PAWLs parser to its own repo and am now pointing my dependency there. I also noticed that I had made some changes beyond bug fixes in my work to improve outputs where PDF image quality is bad. While this did improve the results, I inadvertently introduced a scaling issue with the token coordinate system, and the tokens were offset from the image, so labeling was effectively broken. I rolled back the OCR quality workarounds I added to fix the scaling issue in my new repo. These can be added back in later, but, for now, OpenContracts functionality is restored.\r\n\r\n## What's Changed\r\n* Fix Broken Coordinate System in Parser  by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F112\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fcompare\u002Fv1.2.1...v1.2.2","2023-09-13T04:50:10",{"id":252,"version":253,"summary_zh":254,"released_at":255},100435,"v1.2.1","Created a new format that encapsulates a document's pdf, its text, its PAWLs tokens and all annotations which can be imported in a single API call. This will be useful for remote clients that might process a document and then want to upload multiple annotations simultaneously. Will also support planned feature to export single annotated documents in addition to entire corpuses.\r\n\r\n## What's Changed\r\n* Added import task to import a single annotated doc. Also added a test. by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F110\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fcompare\u002Fv1.2.0...v1.2.1","2023-05-13T03:49:09",{"id":257,"version":258,"summary_zh":259,"released_at":260},100436,"v1.2.0","The main feature addition here is the ability to export documents into FUNSD-style annotations that can easily be loaded into LayoutLM-style models. There is also a LangChain export, but it's not fully-baked yet . At the moment, it just exports full document text and metadata. This release also comes with a number of bug fixes.\r\n\r\n## What's Changed\r\n* Fix Quickstart Docs by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F84\r\n* Fix Django Auth by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F86\r\n* Add Export Format Choice GUI by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F88\r\n* Quickstart updated to include steps to configure .env files. by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F89\r\n* Add Funsd Export by @JSv4 in https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fpull\u002F92\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FJSv4\u002FOpenContracts\u002Fcompare\u002Fv1.1.0...v1.2.0","2023-03-10T06:10:50"]