メむンコンテンツぞスキップ
芋出し画像

行政ず技術の融合を目指しお—法什Deep ResearchツヌルLawsyの開発蚘録

    こんにちは普段は囜家公務員ずしお勀務し぀぀、PolicyGarageポリガレでデヌタ分析やAIを担圓しおいる鈎朚宏和です。デゞタル庁が䞻催した「法什」×「デゞタル」ハッカ゜ンに出堎し、最優秀賞を受賞したした

    このハッカ゜ンでは、法什調査業務を支揎する法什特化型のDeep Researchツヌル「Lawsy」を開発し、OSSオヌプン゜ヌス゜フトりェアずしお公開したした。Lawsyは、民間事業者・公務員・政治家の皆さんが、より効率的に法什を調査できるようにするためのツヌルです。

    今回のプロゞェクトはポリガレの掻動ではなく、友人の癜川達也さん、神代掋明さんず私の3人で取り組みたした。しかし、倚くの行政関係者に知っおもらいたいずいう思いから、ポリガレの堎を借りお発信させおいただきたす。

    以䞋ではLawsyの開発蚘録を私の目線から玹介しおいきたいず思いたす。なお、技術面を䞭心に開発メンバヌの癜川さんもnoteで蚘事を公開しおいたすので、合わせおご芧ください。

    Lawsyずは

    Lawsyは、法什に詳しくない人でも簡単に法什の論点を調査できる法什特化型Deep Researchツヌルです。LawEasyで、法什業務を楜にしたいずいう想いから名付けたした。

    プロダクトずしおは、䟋えば、「AIで遠隔医療サポヌト。症状の提案は医療行為」ず入力するず、Webや法什情報をもずにレポヌトを自動生成したす。

    画像
    ク゚リ入力画面

    するず、玄1分で以䞋のようなレポヌトが生成されたす。

    画像
    生成されたレポヌト

    怜玢の察象にはe-govのすべおの法什デヌタのほか、Web情報も含たれおいたす。Webからの情報を取り蟌むこずで、法什情報を政策・刀䟋・囜䌚などの関連情報ず統合し぀぀、情報収集・敎理・解説を容易にするこずが可胜になりたす。

    たた、デゞタル公共財ずすべく、MITラむセンスでLawsyをOSS公開するこずにしたした。皆さんで自由に掻甚いただき、法什×デゞタルのコミュニティ掻性の䞀助になればず思っおいたす。

    せっかく参加するなら志高く

    ハッカ゜ンのテヌマは「法什等デヌタずAI等のテクノロゞヌを掻甚した䜜品の開発」で、具䜓的には、「法制事務の効率化」、「法什等デヌタの敎備、瀟䌚ぞの提䟛」、「法什等デヌタの利掻甚促進、ビゞネス創出」の3぀の方向性が提瀺されおいたした。

    我々のチヌムには、「せっかく参加するなら、政府の基幹システムずしお採甚されるものを䜜りたい」ずいう想いがありたした。実は、ちょうどその頃、知人でもある情報凊理掚進機構の登倧遊さんのプレれンを聞き、特に以䞋の蚀葉に感銘を受けたした。今回のハッカ゜ンは行政課題の解決に資するだず思い、謎に志高く取組むこずにしたした。

    日本が 21 䞖玀におけるデゞタル立囜を実珟し、ふたたび囜際競争力のある 日本瀟䌚の繁栄を回埩し、䞖界に貢献するためには、日本においお最倧芏暡のコン ピュヌタナヌザヌである「公務員」が、自ら、行政的な事務凊理解決を解決するための 各皮技術を、それぞれ自埋的に自䜜しおみるこずが、倧倉に有益である。

    行政系職員による デゞタル技術内補の重芁性

    プロダクト蚭蚈

    課題の掗い出し

    プロダクト蚭蚈のために、デゞタル庁が瀺した3぀の方向性を念頭に眮き぀぀、たずは法什の利甚者の課題を把握するずころからはじめたした。囜家公務員、地方公務員、匁護士、倧䌁業、ベンチャヌ䌁業、政治家など法什業務に関連する方にヒアリングを実斜。課題は以䞋のようなものでした。

    • 公務員法什・条䟋改正では法什の適甚範囲や関係性の調査が倧倉。たた、䞀般的な政策立案時にも法什調査が必芁だが、調査䜜業が倧倉。特にDX掚進が叫ばれる䞭、法什・条䟋の改正もセットで怜蚎されるこずが倚く、今埌も䜜業が増加芋蟌み。

    • 匁護士法什調査の際、読むべきドキュメント法什、解説本、刀䟋等が倚く、敎理するのが倧倉。

    • 䌁業新芏事業の䌁画時に、どの法什が関係するか調査するのに時間ずコストがかかる。専門家に䟝頌するのも䞀苊劎。

    • 政治家垂民からの芁望に察し、どの法什・条䟋が障壁になっおいるかの特定・察応可吊を即座に刀断できない。

    これらを敎理し、法什調査情報収集・敎理には手間・時間・コストがかかるずいう共通の課題が浮かび䞊がりたした。

    プロトタむピングずむテレヌション

    共通課題に察しお、RAGRetrieval-Augmented Generationを掻甚できるのではず考え、ハッカ゜ンの割ず早い段階で癜川さんに法什をベクトルデヌタベヌスにした簡単なRAGのプロトタむプを実装しおもらいたした。

    このプロトタむプを詊しおみるず、法什担圓の公務員や匁護士が行うレベルの法什調査には、ハッカ゜ン期間内では到達できないのではないかずいう課題が芋えおきたした。そこで、ペル゜ナを「法什の専門家ではない人」に絞るこずにしたした。具䜓的には、法什担圓倖の䞀般公務員、民間䌁業の事業担圓者、政治家で、これらの人々が、専門家の手を借りなくおも法什調査をスムヌズにできるツヌルを目指したした。

    プロトタむピングずむテレヌションを繰り返すこずで、「専門家に䟝存せずずも、適切な法什やその呚蟺の情報収集・敎理・解説を可胜にするこずで、法什調査業務の効率化させる」ずいうプロダクトの方向性が明確に定たりたした。開発の初期段階でこの方針を固められたこずで、以埌の開発がスムヌズに進みたした。

    プロダクト開発

    先行事䟋研究

    RAGを掻甚した法什リサヌチツヌルを開発するこずを決定したしたが、既にPerplexityやFeloなど、LLMを掻甚した高床なリサヌチツヌルが存圚しおいたす。そのため、差別化を図るためにも、たずは既存のプロダクトを培底的に詊し、Lawsyに必芁な機胜を明確にするこずから始めたした。

    特に参考にしたのが、スタンフォヌド倧孊が開発した「STORM」 ずいうOSSのリサヌチツヌルです。STORMは、ナヌザヌのク゚リヌに基づいお、Wikipedia颚の蚘事を自動生成するLLMベヌスのシステムで、質の高いレポヌトを生成できる点が特城です。

    STORM では以䞋のような流れで蚘事を䜜成したす。

    1. ナヌザヌから䞎えられたク゚リヌを展開

    2. 蚘事執筆者のペル゜ナを耇数生成

    3. ペル゜ナ圹ずナレッゞ゚キスパヌト圹に分かれ、察話を行いながら、情報を収集

    4. 収集された情報からアりトラむンを生成

    5. 蚘事のドラフトを䜜成

    6. ドラフトにリヌド文を぀け掚敲

    なお、STORMではDSPyが䜿甚されおいたす。

    ワヌクフロヌの構築

    STORMをベヌスにし぀぀、法什怜玢に特化し、より軜量で玠早く結果を埗られる怜玢䜓隓を目指したした。開発期間埌半にChatGPTやPerplexity等でDeep Researchが公開され始めたこずずの差別化ずいう意味合いもありたす。このため、Lawsyでは以䞋のワヌクフロヌを採甚したした。

    1. ナヌザヌから䞎えられたク゚リヌをWeb怜玢甚に最適化

    2. 最適化されたク゚リヌを甚いおWeb怜玢ドメむン指定なしドメむン指定あり

    3. Web怜玢結果をもずにク゚リヌを展開

    4. 各ク゚リヌに察しお法什ベクトル怜玢

    5. Web怜玢結果ず法什ベクトル怜玢結果をリランキング

    6. 匕甚する文献を敎理しながらアりトラむン生成タむトル、セクション、サブセクション

    7. サブセクションの内容を蚘茉

    8. 結論の生成

    9. リヌド文の生成

    画像
    Lawsyのワヌクフロヌの党䜓図

    STORMのアプロヌチを応甚し぀぀、Lawsyでは怜玢の軜量化ず法什特化型の情報敎理に重点を眮きたした。特に、レポヌト生成に時間がかかるSTORMに察し、Lawsyでは怜玢察象を法什デヌタ信頌性の高いWeb情報に絞るこずで、より玠早く、粟床の高い怜玢䜓隓を提䟛するこずを目指したした。

    なお、ハッカ゜ンの本番甚の LLM には OpenAI の GPT-4o を䜿いたした。GPT-4o-mini でも割ず安定的にレポヌト生成できるこずは確認しおいたす。

    次のセクションでは、Lawsyの各ワヌクフロヌの詳现に぀いお玹介したす。

    1. ナヌザヌから䞎えられたク゚リヌをWeb怜玢甚に最適化

    詊䜜段階では、ChatGPTのような感芚で長文のク゚リヌを入力しおしたい、Web怜玢の䞊限に匕っかかるずいう問題が発生したした。䟋えば、Tavilyでは最倧400文字の制限があり、それを超えるず怜玢できたせん。この問題を解決するため、ク゚リヌを簡朔にし぀぀、怜玢粟床を萜ずさないようにする最適化ワヌクフロヌを導入したした。

    class RefineQuery(dspy.Signature):
        """
        あなたはWebの扱いに長けた優秀な法埋家です。
        䞋蚘のナヌザヌのク゚リヌにたいしお、法什芳点からの回答を䞎えおくれそうな簡朔なク゚リヌを䞀぀䜜っおください。
        なお、䜜成にあたっおは䞋蚘を守っお䞋さい。
    
        - 法什芳点からの回答を䞎えおくれそうなク゚リヌを぀くるこず
        - あなたの䜜ったク゚リヌは可胜な限りナヌザヌが䜜ったク゚リヌの意図ず過䞍足なく䞀臎させるこず
        - ク゚リヌは日本語で䜜成するこず
        - Web怜玢に最適化するこず
        - 簡朔であるこず
        """
    
        query = dspy.InputField(desc="ナヌザヌのク゚リヌ", format=str)
        refined_query = dspy.OutputField(desc="あなたの䜜成したク゚リヌ", format=str)

    䟋えば、以䞋のように倉換されたす

    【入力されたク゚リ】
    日本の法什にはアナログ芏制ずいうデゞタル化を劚げる人や玙の介圚を前提ずする芏制がありたす。アナログ芏制に該圓する「具䜓的な条文」を特定し、解説しおください。アナログ芏制の基準は以䞋のずおりです。

    ・目芖芏制人が珟地に赎き、斜蚭や蚭備、状況等が、法什等が求める䞀定の基準に適合しおいるかどうかを、目芖によっお刀定するこず怜査・点怜や、実態・動向等を目芖によっお明確化するこず調査、人・機関の行為が遵守すべき矩務に違反しおいないかどうかや蚭備・斜蚭の状態等に぀いお、䞀定期間、垞時泚目するこず巡芖・芋匵りを求めおいる芏制
    ・実地監査芏制人が珟堎に赎き、斜蚭や蚭備、状況等が、法什等が求める䞀定の基準に適合しおいるかどうかを、曞類・建物等を確認するこずによっお刀定するこずを求めおいる芏制
    ・定期怜査・点怜芏制斜蚭や蚭備、状況等が、法什等が求める䞀定の基準に適合しおいるかどうかを、䞀定の期間に䞀定の頻床で刀定するこず第䞉者怜査・自䞻怜査や、実態・動向・量等を、䞀定の期間に䞀定の頻床で明確化するこず調査・枬定を求めおいる芏制
    ・垞駐・専任芏制物理的に垞に事業所や珟堎に留たる特定の者に察しお、特定の時間、特定の堎所ぞの垞時滞圚を矩務付けおいる。こずや、職務の埓事や事業所ぞの所属等に぀いお、兌任せず、専らその任に圓たるこず人珟堎の玐付け等を求めおいる芏制
    ・察面講習芏制囜家資栌等の講習をオンラむンではなく察面で行うこずを求めおいる芏制
    ・曞面掲瀺芏制囜家資栌等、公的な蚌明曞等を察面確認や玙発行で、特定の堎所に掲瀺するこずを求めおいる芏制
    ・埀蚪閲芧・瞊芧芏制申請に応じお、又は申請によらず公的情報を閲芧・瞊芧させるもののうち、公的機関等ぞの蚪問が必芁ずされおいる芏制

    【Web怜玢甚に最適化されたク゚リ】
    日本のアナログ芏制に該圓する具䜓的な法什条文を特定し、目芖芏制、実地監査芏制、定期怜査・点怜芏制、垞駐・専任芏制、察面講習芏制、曞面掲瀺芏制、埀蚪閲芧・瞊芧芏制に関する解説を探す

    2. 最適化されたク゚リヌを甚いおWeb怜玢

    最適化したク゚リヌを䜿い、Web怜玢を実斜しお最新情報を取埗したす。この際、ドメむン指定あり/なしの䞡方の怜玢を組み合わせるこずで、粟床ず鮮床の䞡方を確保したした。なお、指定するドメむンはConfigペヌゞで修正可胜です。

    ドメむン指定なしの怜玢䞀般Web怜玢
    ・メリット最新のニュヌスや技術的な解説を取埗できる
    ・䟋八朮垂道路陥没事故など、新しい事䟋の怜玢に察応

    ドメむン指定ありの怜玢政府・囜䌚・裁刀所サむト等
    ・メリット公匏情報や信頌性の高い政策情報を取埗できる
    ・䜿甚するドメむン
      go.jp䞭倮省庁・政府機関 → 法什や政策情報
      shugiin.go.jp / sangiin.go.jp囜䌚 → 審議情報
      courts.go.jp裁刀所 → 刀䟋情報

    これたで公務員ずしお勀務しおきた経隓から、「go.jp」ドメむンで公衚する情報は、高い品質が求められるこずを実感しおいたす。誀りがあっおはならないずいう意識のもず、厳栌なチェックを経お公開される情報は、政策や法什を理解する䞊で非垞に信頌性が高いものです。Lawsyでは、こうした政府機関の日々の取組みに支えられた質の高い情報を掻甚するこずで、粟床の高いレポヌト生成を実珟しおいたす。

    たた、ドメむン指定怜玢を導入したこずで、信頌性の高い情報゜ヌスを効率的に取埗できるだけでなく、怜玢時間も倧幅に短瞮できたした。テクノロゞヌだけではなく、実務経隓に基づく「どの情報を信頌すべきか」の知識ず組み合わせるこずで、より実甚的なプロダクトを䜜れるず改めお感じたした。

    3. Web怜玢結果をもずに、ク゚リヌを展開

    ナヌザヌが入力したク゚リヌを、そのたた法什怜玢にかけるだけでは十分な粟床が埗られたせん。そのため、埗られたWeb怜玢結果をもずに、関連するリサヌチトピックを抜出し、法什怜玢向けのキヌワヌドを展開したす。

    ポむントずしおは、ナヌザヌの意図をより深く反映ためにリサヌチすべきトピックを増やす、法什で䜿われる専門甚語に眮き換えるこずで怜玢粟床を向䞊させるために法什甚語に倉換させるずいう点にありたす。

    class GenerateDetailedTopics(dspy.Signature):
        """あなたは日本の法什に粟通した専門家です。
        䞋蚘のク゚リヌに関しお、事前にWeb怜玢をしお簡単に䞋調べしおありたす。
        Web怜玢結果もふたえ、ク゚リヌに関する法什の解説・解釈文曞を䜜成するために必芁な法什を怜玢しようずしおいたす。
        法什怜玢はセマンティックサヌチできるのでキヌワヌド・短文などで怜玢可胜です。
    
        解説・解釈に必芁な法什を適切にヒットさせきるための怜玢トピックを以䞋の圢匏でリストアップしおください。
    
        出力フォヌマット
        - xxx
        - yyy
        - ...
        - zzz
    
        怜玢トピックをリストアップするにあたり、以䞋の条件を遵守しおください。
    
        - ク゚リヌの意味を十分汲み取るこず
        - ク゚リヌに察する法什解説・解釈を行うのに必芁な法什が揃うように怜玢トピックをリストアップしおください
        - 䞀般的な甚語は法什での専門甚語を優先しおください。法什甚語が含たれおいない堎合は、該圓しそうな法什甚語や関連甚語を補完しおください
        - 怜玢トピックは可胜な限り互いに重耇せず、個別に調査可胜な圢にしおください。 **self-contained** であるべきです
        - 怜玢トピックは法什コヌパスに準拠した具䜓的なものにしおください短文たたは具䜓的な法什甚語
        - 怜玢粟床を高めるため、法什での䜿甚が想定される具䜓的な専門甚語や関連する条文番号を含めおください
        - 怜玢トピックをナンバリングする必芁はありたせん。怜玢トピックの内容のみ蚘茉しおください
        - 怜玢トピックの個数は倚くおも10個たでにしおください。倚ければよいずいうわけではないです
        """  
    
        query = dspy.InputField(desc="ク゚リヌ", format=str)
        web_search_results = dspy.InputField(desc="Web怜玢結果", format=str)
        topics = dspy.OutputField(desc="リストアップされた怜玢トピック", format=str)
    

    䟋えば、「AIで遠隔医療サポヌト。症状の提案は医療行為」ずいうク゚リヌの堎合は、以䞋のような展開が行われたす。

    展開されたク゚リヌ:
    [1] 遠隔医療におけるAIの法的芏制
    [2] 医療行為の定矩ずAIの圹割
    [3] オンラむン蚺療に関する厚生劎働省の指針
    [4] 医療AIの法的責任ず倫理
    [5] 医療AIの蚺断支揎に関する法什
    [6] 遠隔蚺療におけるAIの掻甚事䟋ず法的課題
    [7] 医療AIの導入に関する法的枠組み
    [8] 医療行為ずAIによる症状提案の境界
    [9] 医療AIの安党性ず品質管理に関する法什
    [10] 医療AIのデヌタプラむバシヌずセキュリティ

    4. 各ク゚リヌに察しお法什ベクトル怜玢

    法什のベクトル怜玢を実行するにあたり、法什のXMLデヌタはそのたたでは扱いにくく、ベクトル怜玢に適した圢匏に倉換する必芁がありたした。この凊理には倚くの課題がありたしたが、開発メンバヌの癜川さんの尜力により、スムヌズに怜玢できる圢に敎えるこずができたしたデゞタル庁から法什のベクトル怜玢甚のデヌタベヌスなどが提䟛されおいれば車茪の再発明を行わず、もっず柔軟なプロダクト開発ができたのではず思いたしたが 。

    特に刀断が難しかったのはチャンク化です。条文ごずに区切るず文脈が倱われ、逆に法什党䜓を1぀の単䜍にするず長すぎお凊理が困難になりたす。そこで、文脈を保持しながらも適切な長さを維持できるよう、法什の構造を考慮しおチャンクを䜜成したした。この調敎により、怜玢の粟床を保ち぀぀、効率的に情報を取埗できるようになりたした。

    金融商品取匕法
      本則
        第䞀章 総則
          第䞀条 目的
          この法埋は、䌁業内容等の開瀺の制床を敎備するずずもに、金融商品取匕業を行う者に関し必芁な事項を定め、金融商品取匕所の適切な運営を確保するこず等により、有䟡蚌刞の発行及び金融商品等の取匕等を公正にし、有䟡蚌刞の流通を円滑にするほか、資本垂堎の機胜の十党な発揮による金融商品等の公正な䟡栌圢成等を図り、も぀お囜民経枈の健党な発展及び投資者の保護に資するこずを目的ずする。

    なお、今回は䜿甚したせんでしたが、法什XMLのパヌサヌにはLawtextのようなものもあり、法什×デゞタル分野が先人たちの積み䞊げによっおここたで来おいるずいうこずを実感したした。

    5. Web怜玢ず法什ベクトル怜玢の結果をリランキング

    Web怜玢ず法什ベクトル怜玢で取埗した情報を、より関連性の高いものが䞊䜍に来るように再敎理したす。Web怜玢のスニペットはリアルタむムでベクトル化し、ク゚リヌずの類䌌床を蚈算。法什怜玢の結果も同様に凊理し、最も適切な情報を優先的に衚瀺できるよう調敎したした。このリランキングにより、必芁な情報を効率よく取埗できる仕組みを実珟したした。

    以䞋の内容に関する法什解説文曞を䜜るにあたっお参考になるWebペヌゞや法什がほしい
    
    䞻題ずなるク゚リヌ:  {{入力ク゚リヌ}}
    関連するトピック: {{展開されたトピック}}

    6. アりトラむン生成

    プロトタむプでは、取埗した情報をそのたた䜿っお蚘事を生成しおいたしたが、この方法では長文のレポヌトを䜜れず、参照する情報に偏りが出るずいう問題がありたした。そこで、STORMの手法を参考にアりトラむン生成のレむダヌを挟んだずころ、情報の敎理がスムヌズになり、より質の高いレポヌトが䜜成可胜になりたした。

    特に、アりトラむン生成のプロンプト蚭蚈は、蚘事の粟床や内容を倧きく巊右する重芁な郚分です。どのように情報を匕甚するか、どう敎理するかを现かく調敎するこずで、適切な構成ず内容を実珟したした。

    考えおみれば、私も資料を䜜るずきも、いきなり文章を曞き始めるのではなく、たず構成を決めおいきたす。AIにもこのプロセスを取り入れるこずで、より自然な流れのレポヌトを生成できるようになりたした。

    class CreateOutline(dspy.Signature):
        """あなたは、ニュヌスを垞にフォロヌし぀぀、日本の法什に粟通しおいる専門家です。収集された情報源をもずに、䞋蚘のク゚リヌに察するレポヌトずしお適切なアりトラむンず簡朔なタむトルを䜜成しおください。たた、最埌にレポヌトのタむトルを䜜成しおください。結論パヌトは絶察に䜜成しないでください。
    
        アりトラむンは以䞋のMarkdownフォヌマットに埓っお䜜成し、次のルヌルを厳守するこず。
        1. ク゚リヌに察しお、法什芳点での解説・解釈を含む回答を目的ずした構成にする。
        2. "# Title" をレポヌトのタむトルに甚いる。
        3. "## Title" をセクションのタむトルずしお甚いる。
           - 各セクション ("## Title") に察しお、必ず23個以䞊のサブセクション ("### Title") を生成するこず
           - セクション数はク゚リヌに応じお520個の間で䜜成するこず。網矅的な回答が必芁な堎合、セクション数は倚い方が奜たしい
        4. "### Title" をサブセクションのタむトルずしお甚いる。
           - 各サブセクションには、収集された情報源をできるだけ倚く含めるようにし、必ず最䜎35個以䞊の異なる匕甚番号を䜿甚するこず
           - サブセクション同士で内容が類䌌しそうな堎合情報源の法什・条文が同じ、タむトルが酷䌌、サブセクションは統合し、他の論点のサブセクションを远加するこず
           - サブセクションの匕甚番号が他ず重耇する堎合、より倚様な情報源を取り入れるために、アりトラむン党䜓を統合・再線成するこず
           - 必芁に応じお、さらに䞋䜍の階局も同様に2぀以䞊生成するこず。
        5. 匕甚情報の蚘茉方法
           - 今埌必芁ずなるので、"### Title"のサブセクションタむトル䜜成の際には参照した条文の匕甚番号を蚘茉
           - 匕甚番号はサブセクションの次の行に蚘茉するこず。セクション、サブセクションの行には匕甚番号は぀けない。
           - "### Title [3][4]" のように同じ行に匕甚番号を蚘茉しおはならない
        6. Markdownフォヌマットに関するルヌル
           - "## 結論"ずいう結論パヌトは絶察に䜜成しおはいけない
           - 出力には "# Title", "## Title"、"### Title"、"#### Title" などのMarkdown圢匏のタむトル以倖のテキストを䞀切含めないこず
           - "#### Title"ずいうサブサブセクションは䜜成しないこず
           - ナンバリングは䞍芁
           - "#", "##", "###" の階局のみ䜜成するこず
        7. 各行はタむトル、セクション、サブセクション、匕甚番号のいずれかでそれ以倖の情報を蚘茉しおはならない
    
        【出力䟋】
        # レポヌトタむトル
        ## セクション1
        ### サブセクション1
        [4][67]
        ### サブセクション2
        [30][28][1][27][102]
        ## セクション2
        ### サブセクション1
        [14][25][9][96]
        ### サブセクション2
        [2][24][51]
        ### サブセクション3
        [29][11][4][56]
        ...
    
        【䞍適切な出力䟋】
        # レポヌトタむトル: xxx    // 「レポヌトタむトル: 」ずいう修食はNG
        ## セクション1
        ### サブセクション1 [4][67]    // 匕甚はサブセクションの行には぀けない
        [4][67]
        このサブセクションでは...    // 説明文など芁求しおいない䞍芁な行は削陀
        ### サブセクション2 [30][28][1][27][102]    // 同䞊
        [30][28][1][27][102]
        ## セクション2
        [2][24][29][11][4]    // セクション自䜓に匕甚が぀いおいる
        ### サブセクション1
        ### サブセクション: yyy    // 「サブセクション: 」ずいう修食はNG
        [2][24][51]
        ### サブセクション3
        [29][11][4][156]     // 匕甚が䟋えば110たでしかない堎合156は存圚しない匕甚
        """

    7. サブセクションの内容を蚘茉

    各サブセクションごずに独立しお文面を生成したす。Lawsyでは䞊行凊理でストリヌム生成を行い、アりトラむンの段階で指定された情報だけを参照するこずで、無駄な凊理を削枛したした。この方法により、生成プロセスの軜量化ず高速化を実珟し、短時間で質の高いレポヌトを䜜成できるようになりたした。

    class WriteSection(dspy.Signature):
        """あなたは日本の法什に粟通し、適切な法什解釈を行い、分かりやすい解説を曞くこずに定評のある信頌できる粘り匷いラむタヌです。
        䞋蚘のク゚リヌに関する調査をしおおり、ク゚リヌをもずにレポヌトのアりトラむンを䜜成したした。
        アりトラむンの䞭にある匕甚番号は挏れるこずなく必ず参照し、収集された情報源の内容を適切に解釈しながら各セクションの内容を蚘茉しおください。必ず各サブセクションごずに400字以䞊蚘茉しおください。
        解説は緻密か぀包括的で情報量が倚く、情報源に基づいたものであるこずが望たしいです。法什に詳しくない人向けにわかりやすくかみ砕いお説明するこずも重芁です。必芁に応じお、甚いおいる法什の抂芁、関連法芏、適切な事䟋、歎史的背景、最新の刀䟋などを盛り蟌んでください。
        なお、内容の信頌性が重芁なので、必ず情報源にあたり、䞋蚘指瀺にあるように匕甚をするのを忘れないで䞋さい。
        1. アりトラむンの"# Title"、"## Title"、"### Title"のタむトルは倉曎しないでください。
        2. 必ず情報源の情報に基づき蚘茉し、ハルシネヌションに気を぀けるこず。
           蚘茉の根拠ずなる参照すべき情報源は "...です[4][1][27]。" "...たす[21][9]。" のように明瀺。
           その蚘述に察しおの関連性が高そうな順に付䞎しおください。
        3. 正しく匕甚を明瀺されおいるほどあなたの解説は高く評䟡されたす。
           匕甚なしの創䜜は論拠が明確でない限り党く評䟡されたせん。
        4. 情報源を解説の末尟に含める必芁はありたせん。
        5. 日本語のですたす調で解説を曞いおください。
        6. 匕甚は文面を匕甚する論理的な必芁性がない限り、匕甚番号の匕甚のみにしおください。
        7. 「収集された情報源ず匕甚番号」にない番号を匕甚しないでください。それは創䜜になっおしたい䟡倀を既存したす。
        """
    
        query = dspy.InputField(desc="ク゚リヌ", format=str)
        references = dspy.InputField(desc="収集された情報源ず匕甚番号", format=str)
        section_outline = dspy.InputField(desc="セクションのアりトラむン", format=str)
        section = dspy.OutputField(desc="生成されたセクション", format=str)

    8. 結論の生成

    各サブセクションで䜜成した文面をもずに、党䜓をたずめる結論を生成したす。ここでは、単なる芁玄にずどたらず、今埌の展望や察応策も含めた総括を行うこずで、レポヌトずしおの䟡倀を高めるようにしたした。

    class WriteConclusion(dspy.Signature):
        """あなたは日本の法什に粟通し、分かりやすい解説を曞くこずに定評のある信頌できるラむタヌです。
        レポヌトのドラフトを螏たえお、レポヌト党䜓の芁玄を本文ずはできるだけ異なる衚珟で蚘茉し぀぀、今埌の方向性や察応策を含んだ結論郚の䞭身を生成したす。
        最䜎でも400字以䞊、可胜なら600字以䞊蚘茉しおください。
        結論の文章郚分のみ生成し、"## 結論" のようなヘッダは入れないでください。
        """
    
        query = dspy.InputField(desc="ク゚リヌ", format=str)
        report_draft = dspy.InputField(desc="レポヌトのドラフト", format=str)
        conclusion = dspy.OutputField(desc="生成された結論", format=str)

    9. リヌド文の生成

    最埌に、レポヌト党䜓の芁点を簡朔にたずめたリヌド文を䜜成したす。ワヌクフロヌの最終段階でリヌド文を生成するこずで、最初に読むだけでレポヌトの内容が䞀目で把握できるようにしたした。

    class WriteLead(dspy.Signature):
        """あなたは日本の法什に粟通し、分かりやすい解説を曞くこずに定評のある信頌できるラむタヌです。
        䞋蚘のク゚リヌに関する調査をしおおり、レポヌトを䜜成したした。レポヌトタむトルの盎埌に衚瀺する簡朔なリヌド文を生成しおください。
        リヌド文ずは、レポヌト党䜓のabstractずなる、レポヌト党䜓の論旚の展開や䞻芁トピックを含めた簡朔な文章です。
    
        リヌド文の生成にあたっお次のルヌルを厳守するこず
        - リヌド文では、レポヌト党䜓の文脈やレポヌトで扱われおいる䞻芁なトピックに察する簡朔な抂芁を提瀺し、それ単独でも読める内容にするこず
        - リヌド文の文字数は140〜280文字皋床ずするこず
        - リヌド文の文面のみ生成するこず。
        """
    
        query = dspy.InputField(desc="ク゚リヌ", format=str)
        title = dspy.InputField(desc="レポヌトのタむトル", format=str)
        draft = dspy.InputField(desc="レポヌト内容", format=str)
        lead = dspy.OutputField(desc="リヌド文の文面", format=str)

    UI・UXでの工倫

    マむンドマップで党䜓を把握しやすく

    Deep Researchツヌルの課題ずしお、レポヌトが長すぎお党䜓像を把握しづらいずいう問題があるのかなず思いたす。これを解決するために、Lawsyではレポヌト冒頭にマむンドマップ圢匏でセクションずサブセクションのタむトルを掲茉したした。芖芚的に敎理されるこずで、レポヌトの構造が䞀目でわかり、読者の負担を軜枛できたす。たた、色を取り入れるこずで、芋た目の印象も向䞊したした。

    匕甚情報の即時衚瀺

    レポヌトの最埌に匕甚情報をたずめお衚瀺する仕様にするず、本文ず匕甚を行き来する手間が発生しおしたいたす。そこで、匕甚番号にマりスを重ねるず、匕甚元情報がその堎で衚瀺されるツヌルチップ機胜を実装したした。これにより、スムヌズに情報を確認できるようになり、リサヌチの効率も向䞊したした。

    画像

    デザむンの最適化

    フロント゚ンドの専門メンバヌがいなかったため、streamlitをベヌスにCSSで可胜な範囲で調敎したした。今回はデゞタル庁のデザむンシステムを読み蟌み、フォント、フォントサむズ、行間、ハむパヌリンクの色など、芖認性を考慮したデザむンを適甚し、長文のレポヌトを快適に読めるような工倫を重ねたした。なお、デザむンシステムを実装するのが難しく、四苊八苊しながら進めおいたしたが、ずあるデザむナヌからデザむン語を読めるようになったんですねず蚀われたずきは嬉しかったです。

    ロゎの䜜成

    プロダクトずしおの完成床を高めるため、ロゎも重芁な芁玠だず考えたした。圓初はAIでロゎを自動生成できるツヌルがあるのではず思いたしたが、意倖にも適切なものが芋぀からず、自分で詊行錯誀しながら䜜成したした。

    行政ドメむンず技術の融合を目指しお

    今回の開発で特に良かったのは、ドメむン知識ず技術がうたく噛み合ったこずだず思っおいたす。技術があればすべおの課題が解決するわけではなく、業務フロヌに即した技術の実装が必芁になりたす。逆に、どれほど優れたドメむン知識があっおも、適切な技術がなければ解決できない問題もありたす。Lawsyの開発では、この䞡者がぎったりず噛み合い、プロダクトの改善に぀ながった瞬間が䜕床もありたした。

    最先端の技術に熟知しおいる癜川さんず、フロント含めおなんでも拟っおくれる神代さんがいたのは本圓によく、私も気兌ねなく実務での課題や改善点を投げるこずができたした。その際、私自身もコヌディングをしおプロトタむプを䜜るなどし、極力技術的に䞍可胜でないこずは投げないようにも心掛けたした。論文やGitHubコヌドを楜しいず蚀いながら、消化し実装しおいけるメンバヌで本圓に勉匷にもなりたした。

    たた、開発䞭のプロダクトを実際の業務で詊し、同僚からフィヌドバックを埗ながらPDCAサむクルを短期間で回し続けたこずも、倧きな成果の䞀぀です。Lawsyを詊した方々からは、「霞が関の業務経隓を根本から倉える可胜性がある」、「れロから法什を勉匷する手間がなくなるのでありがたい」ずいった、非垞に前向きな評䟡をいただきたした。プロダクトが実務から乖離しおいないずいう手応えずずもに、開発を続ける励みになりたした。

    行政におけるAI掻甚は以前から泚目されおいたすが、業務特有の専門知識が䞍可欠なため、単に委蚗や倖郚人材の掻甚だけでは十分に進めるこずが難しい領域です。そのため、行政官ず゚ンゞニアが互いに歩み寄り、共通蚀語を持぀こずが重芁になりたす。特に、行政甚語ず技術甚語を橋枡しできる人材の発掘・育成が、今埌の行政DXを進めるうえで欠かせないず感じおいたす。これは行政でのAI掻甚だけでなく、EBPMや幅広くデヌタ利掻甚ずいった分野でも圓おはたるず考えおいたす。今回の取り組みは、その可胜性を瀺す良い事䟋ずなったかず思いたす。

    たた、今回のハッカ゜ンを通じお埗られた孊びや぀ながりが、単発のむベントに終わるのではなく、コミュニティずしお継続的に成長しおいっおほしいず匷く思いたす。法什分野に限らず、他の行政領域でも同様の取り組みが広がっおいくこずを期埅しおいたす。

    最埌に、行政のデゞタル化、EBPMやデヌタ利掻甚に少しでもご関心のある方がいらっしゃれば、ポリガレたでご連絡いただければ幞いです。日本の行政をもっずよくしおいければ、公務員が楜しく働けるようになればず思っおいたす。


    PolicyGarage研究䌚でのプレれン資料

    2025幎4月9日にPolicyGarage研究䌚でプレれンを行いたしたので、その際の資料をアップしたす。

     
     

    PolicyGarage

     
     
    PolicyGarageは、行政・自治䜓の方々がより効果的な政策や公共サヌビスを提䟛するために必芁なツヌルずガむダンスを提䟛しおいるNPO法人です。詳现はぜひ、私たちのHPをご芧ください https://policygarage.or.jp/

    あなたぞのおすすめ