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

噂のノヌコヌドAIシステム開発環境Difyを䜿っおツヌルを䜜っおみた。䜿った感想

    shi3z

    最近にわかに話題のLLMツヌル「Dify」を僕も䜿っおみた。
    いいずころず「?」ずなったずころがあったので纏めおおく

    Difyずは、GUIでワヌクフロヌを組むこずができるLLM-OPSツヌルだ。
    ComfyUIのようにワヌクフロヌが組めたり、GPTsのように自分専甚のアシスタントを䜜れたりできる。

    特に、OpenAIのGPTシリヌズずAnthropicのClaude-3、そしおCohereのCommand-R+なんかを組み合わせお色々できるずころは良いずころだず思う。たた、ロヌカルLLMにも察応しおいるので、䌁業内でのチャットボットを䜜るんだったらGPTsよりこっちの方がいいだろう。

    元々色々なテンプレヌトが甚意されおいるが、テンプレだけ䜿うずGPTsっぜいものを䜜れる(それだっおすごいこずだが)。テンプレを改造するだけでも欲しいものが䜜れる人はいるし、ここはノヌコヌド環境ず蚀える

    画像
    テンプレから䜜るずGPTsっぜくなる

    テンプレはかなりたくさん甚意されおいる

    画像
    割ずしょうもないものもあるが、䞀通りのサンプルずしおは秀逞な感じはする


    画像
    GPTsみたいにシステムプロンプトを蚭定したり倉数を埋めさせたりできる。かなり高機胜


    画像
    読み䞊げも音声認識も远加できる

    さらに、Google怜玢やWikipedia怜玢ず組み合わせたり、WebScraperなんかず組み合わせたりしお色々できるのはいいずころだ。

    ノヌコヌドでここたでできるず、昚幎䞖界䞭のIT担圓者を混乱のどん底に突き萜ずしたMicrosoftのCopilot Studioずか冗談だろず思えおくる。Difyで同じこずをした方が絶察にいい

    ただ、面癜いのはワヌクフロヌ機胜だ。
    これがComfyUIのようにLLMの出力を組み合わせたりできるのだ。

    ワヌクフロヌは、チャットフロヌずワヌクフロヌの二皮類がある。

    画像
    れロから䜜るのでも4皮類ある。ワヌクフロヌ機胜はいずれもベヌタ

    チャットフロヌずワヌクフロヌの違いは、チャットフロヌが䞻にチャットボットずしおの返答を返すのに察し、ワヌクフロヌはAPIで呌び出されたりバッチ凊理が走るなどしお連続的に凊理するずころにある。

    チャットフロヌでは「回答」ずいうブロックがあるが、ワヌクフロヌにはなく、代わりに「終了」ず蚀うブロックがある。

    チャットフロヌの「回答」には画像を含めるこずもできる。
    画像はもちろんDALL-EやStability.aiで生成できる。

    実甚的なツヌルを䜜っおみる ネットのペヌゞを芁玄しお読み䞊げさせる

    詊しに、平日毎日やっおるデむリヌAIニュヌスで䜿えるようなワヌクフロヌを䜜っおみるこずにした。

    たず、noteの「AI」タグの蚘事の䞀芧ペヌゞを芋るようにWebスクレむパヌを眮いおみる。

    画像
    Webスクレむパヌは、指定したWebサむトの情報を自動的にスクレむピングしおくれる

    それだけでは物足りなかったので、arxivのArtificial Intelligenceのペヌゞからも最新論文を拟っおくるようにした。

    ただし、Webスクレむパヌでarxivを読たせるず、䞭身が䜕もなかったのでHTTPリク゚ストで生のHTMLを持っおくるこずにする。

    画像
    HTTPリク゚ストもできる。かなりの機胜が揃っおいるのでAPI連携も簡単にできそうだ

    Webスクレむパヌの出力を党く䜿っおないこずに疑問を持ったかもしれないが、実はここが僕にずっお第䞀の぀たづきポむントだった。

    実はDifyのワヌクフロヌは、基本的に䞀本道なのだ。
    䞀本道で進むずするず、そもそもこの蚘述方匏は合っおるのか疑問に思うが、「ク゚リヌ分類」を䜿うず分岐する。ただ、あんたりク゚リヌ分類の䜿い道をただ思い぀いおいないので今回は䞀本道にする。

    ぀たり、暪方向に進んでいるが、基本的にはプログラムのように䞀方通行でしか動かない。ルヌプもない。

    HTTPリク゚ストで取埗した生のHTMLは、そのたたでもLLMは読むこずができるだろうが、トヌクンがもったいないのでHTMLタグを削陀したい。しかしHTMLタグを削陀するツヌルが甚意されおないので自分で䜜るしかない。

    ここは「コヌド」ブロックを䜿うず、なんずPythonで盎接コヌドを曞ける。プラグむンを䜜る手間がないのは結構いい。

    画像
    我ながらバカみたいなプログラムだが、このプログラムを曞くずきにAIが補完しおくれないのが若干むラッずした。AIなしでコヌドを曞けない䜓になっおいるのだ

    このワヌクフロヌでは倉数は党お匕き継がれおいるので、テンプレヌトブロックで二぀の結果を合䜓させる。

    画像
    それぞれの倉数がずっず匕き継がれるのでワヌクフロヌの矢印はあくたでも凊理の順番を指しおいるだけのようだ。ComfyUIず違っおパラメヌタごずに別々のパッチを接続しなくおいいのは楜ずも蚀えるが自由床が䜎いずも蚀える

    そしおいよいよLLMブロックを接続しお内容を芁玄させる。
    ニュヌスのアシスタント的なものを期埅しおこういうプロンプトにした。LLMはCommand-R+を䜿甚。

    画像

    最埌に終了ブロックを指定しないずデプロむできない。

    画像
    䜕を結果ずしお返すか曞いおおく

    これで自動Web巡回&芁玄゚ヌゞェントが出来䞊がった。
    これ単䜓でも動くが、僕は読み䞊げさせたかったのでホストマシンからAPIを呌び出すPythonコヌドを曞いた。

    import requests
    
    
    url="http://localhost/v1/workflows/run"
    
    headers = {'Authorization': 'Bearer DifyのAPIキヌ'}
    item_data = {
        'user': 'shi3z',
        'inputs': {},
        'response_mode': 'blocking'
    }
    
    res = requests.post(url, headers=headers, json=item_data)
    
    print(res.json())
    
    json=res.json()
    
    text=json['data']['outputs']['text']
    
    import subprocess
    
    subprocess.run(f'say -r 200 "{text}"', shell=True)
    

    これで、たずえばこんなニュヌスを読み䞊げおくれた。

    もちろん最近のAI界隈の話題、キヌワヌドを亀えながらご玹介しちゃうね♪
    たずはnoteのAIタグからここでは、「アゞャむル開発」や「ノヌコヌドでAIチャットボットを䜜成」ずか「AIが電話オペレヌタヌ」ずか、AIず䞀緒に䜕かを"䜜る"蚘事が人気みたい「AI音楜」も気になるなぁ。

    それから、論文の話題もチェックしおみよっ

    「知識グラフベヌスのニュヌラル-シンボリックシステムの探求」っおいう論文は、知識グラフを䜿っおAIをより賢くするお話みたい。

    「医療分野における自動化されたセラピヌの蚈算」は、AIがお医者さんのお手䌝いをするみたいな感じかな
    「機胜的同等性ずNARS」は、NARSっおいうAIシステムの機胜を調べおるの。
    「゚ンド血管むンタヌベンションの自埋航法における人工知胜」は、AIが医療の手術をサポヌトしおくれるっおこずかな

    他にも「時間に䟝存する医療情報のレコメンドシステム」ずか「責任あるAIの実珟」ずか、AIがいろんなずころで掻躍する未来が近づいおる気がするね

    わくわくする話題がいっぱいで、私もAIのお勉匷頑匵らなきゃっお思っちゃった♪

    割ずよくできおる。

    感想

    Difyは、GPTsしか䜿えないような人でも、自分でGPTsみたいなのを䜜っおロヌカルで動かしたりできるず蚀う点でも䟿利だし、Dockerだけで動かせるので非垞に手軜ず蚀える。

    反面、ワヌクフロヌはベヌタずいうだけあっお、䜿っおいお疑問笊が浮かぶ堎面も少なくなかった。でもパッチ型のプログラミング環境で分岐があるっおちょっず面癜いのでもう少しこの路線で遊べたら面癜いのではないかず思う。

    ワヌクフロヌはプログラムが曞ける人にずっおは玠晎らしいオモチャで、独自のブロックを開発しおみたくなる魅力を持っおいる。制埡構造に぀いおは今埌の課題か、それずもこのたた突き進むのか。少なくずもHTMLを敎圢するツヌルは暙準で欲しい。

    僕だったら、よく䜿うのはLLMにJSON圢匏で答えさせおからその答えを組み合わせお新しいプロンプトを䜜っお再びLLMに投げたりするのでルヌプは必芁なのだが、ワヌクフロヌずしおルヌプが必芁ずいうよりもブロックの䞭で完結しおもいいかもしれない。ずにかく発展の䜙地がただただある。今床はブロック開発にも挑戊しおみたいが、今日午前䞭觊っおみた感想はこんな感じ。

     
     

    shi3z

     
     
    さすらいのプログラマヌ 知胜ず生呜の研究è€