인셔셔RSS 관심 있는 블로그, 뉴스, 기술 정보를 효율적으로 추적하고 읽으세요
원문 읽기 InertiaRSS에서 열기

추천 피드

Google DeepMind News
Google DeepMind News
人人都是产品经理
人人都是产品经理
M
MIT News - Artificial intelligence
博客园 - 叶小钗
MyScale Blog
MyScale Blog
V
Visual Studio Blog
月光博客
月光博客
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
量子位
I
InfoQ
有赞技术团队
有赞技术团队
阮一峰的网络日志
阮一峰的网络日志
Jina AI
Jina AI
V
V2EX
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Blog — PlanetScale
Blog — PlanetScale
Last Week in AI
Last Week in AI
雷峰网
雷峰网
Stack Overflow Blog
Stack Overflow Blog
博客园 - Franky

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant Common SOC 2 Failures (Real World) Stop Vibe-Checking Your AI App: A Practical Guide to Evals How to Use SonarQube and SonarScanner Locally to Level Up Your Code Quality Your Next To-Do App Is Dead — I Replaced Mine with an OpenClaw AI Sign a Nostr event in 60 lines of Python using coincurve — no nostr-sdk, no nbxplorer, no rust toolchain ITGC Audit Explained Like You’re in Big 4 Patch Tuesday abril 2026: Microsoft parcha 163 vulnerabilidades y un zero-day en SharePoint Stop scraping everything: a better way to track competitor price changes Listing on MCPize + the Official MCP Registry while routing payments OUTSIDE the marketplace — how I kept 100% of my x402 revenue Building an AI-Powered Risk Intelligence System Using Serverless Architecture Why We Ripped Function Overloading Out of Our AI Toolchain Testing AI-Generated Code: How to Actually Know If It Works SaaS Churn Is Killing Your Business. Here Is What to Do About It (Without a Support Team) The Speed of AI Is No Longer Linear - And Self-Improving Models Are Why How to Implement RBAC for MCP Tools: A Practical Guide for Engineering Teams From Standard Quote to Persuasive Proposal: AI Automation for Arborists I built a CLI that scaffolds complete multi-tenant SaaS apps Axios CVE-2025–62718: The Silent SSRF Bug That Could Be Hiding in Your Node.js App Right Now The dashboard that ended our friendship Data Pipelines Explained Simply (and How to Build Them with Python)
FinePrint — Gemma 4를 이용해 사기성 계약을 해독하는 AI 소형 변호사
Dhruv Jani · 2026-05-25 · via DEV Community

이것은 Gemma 4 Challenge에 대한 제출물입니다: Gemma 4로 구축하세요

## 우리가 만든 것

이전 취업 시즌에, 친구가 제게 취업 제안서를 가져왔어요. 그는 흥분했어요 — 첫 번째 진짜 제안이었거든요. 제가 조항 3을 읽었어요. 그게 말해줬던 것은 3년 이전에 그가 퇴사하면 회사에 ₹2,00,000을 빚어야 한다ということ였어요. 그는 그게 그곳에 있었던 것을 몰랐어요. 그는 거의 서명했어요. 3년 동안 묶여서 도피할 방법이 없었을 거예요. 그는 개발자예요. 그의 전부인 초기 경력이었어요.

그는 혼자가 아니다. 매년 수천 명의 학생들이 채용 계약서, 인턴십 계약서, 임대차 계약서에 서명하지만, 그들이 동의하는 내용을 이해하지 못한다. 언어는 의도적으로 복잡하게 작성되어 있다. 벌금은 조항 4, 조항 7, 조항 11에 숨겨져 있다. 그리고 대부분의 사람들 - 특히 신입 졸업생들 -은 변호사를 전화할 수 있는 사람이 없다.

그래서 우리는 FinePrint을 만들었다.

FinePrint은 Gemma 4로 힘을 얻은 오픈 소스 AI 계약 보호 도구입니다. 사진, PDF를 업로드하거나 계약 텍스트를 붙여넣습니다. FinePrint은 이를 읽고 모든 함정을 찾아 무엇이 위험한지, 협상해야 할 사항은 무엇이며, 결코 서명해서는 안 되는 것은 무엇인지 정확히 알려줍니다.

얻는 것:

  • 🔴 위험 점수 (0–100) — 계약의 객관적인 위험 수준
  • 🟡 совместимость балл — 계약이 당신의 개인적 목표와 얼마나 잘 맞는지
  • ⚖️ 최종 판결 — 수락 / 협상 / 거부 및 직접적인 이유
  • 모든 적색 경고에 대한 평범한 영어 설명
  • 모든 위험한 조항에 대한 안전한 제안된 재작성
  • 각 조항별 실행 가능한 협상 팁
  • 송신 준비 완료 개인화된 협상 이메일
  • 공유 가능한 보고서 링크 + 다운로드 가능한 PDF
  • 계약 비교 — v1과 v2 업로드, 어떤 변화가 있는지 확인

이것은 문서 리더가 아닙니다. 이것은 계약 보호 엔진입니다. 문서를 읽는 것은 그것이 무엇을 말하는지 알려줍니다. FinePrint은 특정 상황에서 그것이 무엇을 의미하는지, 회사가 당신으로부터 무엇을 취하려고 하는지, 그리고 정확히 어떻게 대답해야 하는지 알려줍니다.

The FinePrint homepage — upload a contract or try a built-in example

## 데모

🔗 라이브: https://tarkashlabs-fineprint.vercel.app

자신도 시도해보고 싶나요? 라이브 앱으로 이동하여 예제를 시도하는 아래의 "캠퍼스 바운드"를 클릭하세요. 요구 사항을 채우고 분석을 클릭하세요.

FinePrint이 실제 사기 인턴십 계약서에 대해 반환한 내용은 다음과 같습니다.
🔴 위험 점수: 98 / 100 — 위험
🔴 호환성: 20 / 100 — 낮은 일치

❌ 판결: 기각

"계약서는 모든 사용자 요구사항을 위반합니다 - 유료 직책,
개인 프로젝트의 IP 소유권, ₹1,00,00,000 보증금 벌금,
임의의 초과 근무 및 18개월 경쟁 금지."

The FinePrint homepage — upload a contract or try a built-in example

Every red flag comes with a plain English explanation, negotiation tip, and a safer clause rewrite with space for asking a follow-up question

Gemma 4 Dense 31B drafts a personalized negotiation email — ready to send to HR

FinePrint에는 비교 모드도 있습니다 — 원본 및 수정된 계약서를 업로드하고 Gemma 4는 정확히 어떤 부분이 개선되었는지, 여전히 위험한 부분은 무엇인지, 그리고 새로운 부분은 무엇인지 알려줍니다.

FinePrint Compare Mode — upload two versions of a contract and see exactly what changed, what was resolved, and what red flags remain

FinePrint Compare Mode — Expanded clause comparison analysis

## 코드

🐙 GitHub: https://github.com/Tarkash-Labs/FinePrint

Frontend:  React + Vite + Tailwind CSS
Backend:   Python + FastAPI + async SSE streaming  
AI:        Gemma 4 via Google AI Studio
Deploy:    Vercel + Render

전체 화면 모드로 입력 전체 화면 모드 종료

백엔드는 ~650줄의 비동기 Python입니다. Gemma 4가 그들을 처리하는 동안 결과는 문장별로 스트리밍됩니다 — 적시 경고는 오랜 기다림 후가 아니라 실시간에 나타납니다. 모든 보고 상태는 gzip 압축을 사용하여 무상태 공유 URL에 보존됩니다 — 데이터베이스 없이, 서버 측 저장 없이.
FinePrint이 작동하는 핵심은 무엇인지 여기 있습니다 — Gemma 4에게 동시에 계약과 사용자의 개인적인 목표를 보내는 프롬프트입니다:

def _build_analysis_prompt(contract_label: str, focus_areas: str, requirements: str) -> str:
  requirements_text = requirements.strip() or "None provided."
  return f"""
You are a ruthless, detail-oriented legal expert specializing in {contract_label} contracts. Your job is to protect the user.
Analyze this contract and return a JSON with exactly these fields:
{{
  "risk_score": <integer 0-100>,
  "compatibility_score": <integer 0-100>,
  "verdict": "ACCEPT" | "NEGOTIATE" | "REJECT",
  "verdict_reason": "<1-2 sentence explanation referencing requirements and clauses>",
  "requirement_breakdown": [
    {{"requirement": "<specific user requirement>", "met": true/false, "explanation": "<why it was or wasn't met>"}}
  ],
  "red_flags": [
    {{
      "clause_title": "...", 
      "clause_text": "<EXACT text from the contract>", 
      "plain_english_explanation": "<Briefly state the risk>", 
      "negotiation_tip": "<Actionable advice on what the user should ask to change>",
      "suggested_rewrite": "<Provide a safer, alternative 1-2 sentence rewrite for this clause that the user can propose>",
      "severity": "high|medium|low"
    }}
  ],
  "safe_clauses": [{{"clause_title": "...", "plain_english_explanation": "..."}}]
}}

CRITICAL RULES:
1. Return ONLY valid JSON. No preamble. No markdown blocks.
2. DETECT ALL RED FLAGS. Do not summarize them into one. If there are 5 bad clauses, list 5 red flags.
3. You MUST extract the exact original text for "clause_text". 
4. The "risk_score" is objective based on standard legal risks. Focus heavily on: {focus_areas}.
5. The "compatibility_score" MUST directly reflect the User Requirements below. If a requirement is completely violated, score drops.

User Requirements to evaluate against:
{requirements_text}

Verdict guidance:
- ACCEPT when risk <= 30 and compatibility >= 70.
- REJECT when risk >= 61 or compatibility <= 30.
- Otherwise NEGOTIATE.
""".strip()

전체 화면 모드로 전환 전체 화면 모드 종료

이 단일 프롬프트가 FinePrint의 출력이 특정화되고 일반적이지 않은 이유입니다. Gemma 4는 계약서와 사용자의 삶의 목표를 동시에 읽습니다.

## Gemma 4를 어떻게 사용했는가

모델 라우팅은 실제 테스트 후 의도적으로 결정된 선택이지, 기본 선택이 아닙니다.

The Architecture

단계 1 — Gemma 4 MoE → 다중 모드 OCR
사용자가 사진이나 PDF를 업로드하면 MoE 모델은 문서 이미지를 직접 읽고 원시 텍스트를 추출합니다. 사용자는 스마트폰으로 물리적 계약서(실제로 인쇄된 종이 조각)를 사진을 찍고 업로드할 수 있습니다. Gemma 4의 네이티브 멀티모달 시각 처리는 나머지를 다룹니다. 수동 복사-붙여넣기가 필요 없습니다. 취약한 세 번째 파티 OCR 라이브러리가 필요 없습니다.

이 단계는 법적 이유가 필요하지 않습니다. 빠르고 정확한 이미지 읽기가 필요합니다. MoE 아키텍처가 적합합니다.

ステップ 2 — Gemma 4 밀집 31B → 생각이 필요한 모든 것
모든 법률적 사유는 밀집 31B에서 실행됩니다 — 조항 분류, 위험 점수 부여, 호환성 분석, 평어 설명, 제안된 수정안, 협상 팁, 그리고 개인 맞춤형 협상 이메일.

우리는 명시적으로 MoE를 법률 분석을 위해 테스트했습니다. 5가지 중대한 위반 사항이 있는 계약에 대해 1개의 일반적인 빨간 깃발을 반환했습니다. Dense 31B는 모든 5가지를 반환했습니다 - 정확한 조항 텍스트, 심각도 등급, 협상 팁 및 제안된 수정 사항과 함께.

법률적 사유는 가장 능력 있는 모델이 필요합니다. 중요한 부분에서 사용합니다.

호환성 점수 - FinePrint이 모든 다른 문서 AI와 다른 것을 만드는 것

분석을 시작하기 전에 FinePrint은 사용자의 개인적인 요구사항을 요청합니다 - 얼마 동안 머무를 계획인지, 부가 프로젝트가 필요한지, 최소 보수, 이사 선호도 등입니다. 이는 계약 텍스트와 함께 Dense 31B 프롬프트에 입력됩니다.

이 모델은 동시에 두 가지를 읽고 정렬 여부를 판단합니다. 같은 IP 할당 조항은 6개월 후에 나갈 계획을 가진 사람과 5년간의 경력을 계획하는 사람에게 매우 다르게 평가됩니다. 규칙 기반 시스템은 이를 할 수 없습니다. Gemma 4는 할 수 있습니다.

출력은 "이 조항은 위험합니다."가 아닙니다. "이 조항은 당신에게 특별히 위험합니다.""

FinePrint이 실제로 해결하고 있는 문제

법률 숙지력의 격차는 구조적인 문제입니다. 돈이 있는 사람들은 변호사가 있습니다. 다른 모든 사람들은 주어진 대로 서명합니다.

Harvey AI는 LLM이 법률 분석을 변화시킬 수 있음을 증명했습니다. 엘리트 법률사무소를 위한 서비스로 715백만 달러에 평가받습니다. FinePrint은 그와 같은 능력을 가져와 그 사무소가 결코 서비스하지 않을 사람들에게 무료로 제공합니다.

인도의 캠퍼스 취업 보증금은 매년 수십만 명의 학생들에게 영향을 미칩니다. 그들 중 대부분은 이전에 법률 문서를 읽어보지 못했습니다. 많은 학생들은 법적으로 깨는 것을 감당할 수 없는 보증금에 서명했고 - 그리고 오랜 후에 싫은 일을 떠나려고 할 때야 알게 됩니다.

FinePrint은 변호사를 빨리 연락할 수 없는 사람들에게 첫 번째 방어선입니다. 법률 조언을 대체하지는 않습니다 — 그 이유로 모든 분석의 바닥에는 경고 문구가 있습니다 — 하지만 사람들이 아무것도 서명하기 전에 올바른 질문을 할 수 있도록 필요한 인식을 줍니다.

다음은 무엇인가요
FinePrint 오늘은 학생과 초보 개발자들을 사기성 계약에서 보호합니다. 동일한 Gemma 4 아키텍처는 임대차, 프리랜서 NDA, 벤처 테마 시트에도 확장됩니다 — 이미 모든 7가지 계약 유형을 지원하고 있습니다. 장기적으로는 문서를 열 때 적법성 문제가 있는 부분을 빨간색으로 표시하는 브라우저 확장 프로그램과 다른 앱들이 통합할 수 있는 API를 개발할 계획입니다. 법률 지식 격차는 매우 큽니다. 우리는 아직 시작 단계입니다.

Tarkash Labs에서 개발했습니다
@dj29 & @yug_vasava