<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Openai on akky@サイボウズラボ・ブログ</title>
		<link>https://labs.cybozu.co.jp/blog/akky/tags/openai/</link>
		<description>Recent content in Openai on akky@サイボウズラボ・ブログ</description>
		<generator>Hugo</generator>
		<language>ja</language>
		
		
		
		
			<lastBuildDate>Mon, 06 Feb 2023 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://labs.cybozu.co.jp/blog/akky/tags/openai/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>GPTravel Advisor - OpenAIのAPIを使った旅行日程提案サービス</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2023/02/gptravel-advisor-makes-your-trip-plan/</link>
				<pubDate>Mon, 06 Feb 2023 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2023/02/gptravel-advisor-makes-your-trip-plan/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://gpt-travel-advisor.vercel.app/&#34;&gt;GPTravel Advisor&lt;/a&gt;は、OpenAI の GPT3 API を使った旅行計画生成サービスです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://gpt-travel-advisor.vercel.app/&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2023/02/gptravel-advisor-makes-your-trip-plan/gptravel-advisor-takaoka_hu_3dea4fc931c67599.webp 480w, https://labs.cybozu.co.jp/blog/akky/2023/02/gptravel-advisor-makes-your-trip-plan/gptravel-advisor-takaoka_hu_6de9f3266e32c5c3.webp 768w, https://labs.cybozu.co.jp/blog/akky/2023/02/gptravel-advisor-makes-your-trip-plan/gptravel-advisor-takaoka_hu_47a2a41be6633951.webp 854w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2023/02/gptravel-advisor-makes-your-trip-plan/gptravel-advisor-takaoka.png&#34; width=&#34;854&#34; height=&#34;923&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;GPTravel Advisor で高岡3日旅行の日程を尋ねてみた&lt;/p&gt;&#xA;&lt;p&gt;入力は「行きたい都市の名前」と「旅行する日数」の2つだけ。20-30秒ほど待つと、何日目にどこに観光に行けばよい、という形で日程表が出てきます。&lt;/p&gt;&#xA;&lt;p&gt;「東京の3日間旅行」を作らせてみると、&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;朝は東京タワーの展望台から景色を見て、午後は皇居、夜は伝統料理を楽しむ&lt;/li&gt;&#xA;&lt;li&gt;朝は明治神宮と代々木公園、午後は原宿でショッピング、夜は歌舞伎&lt;/li&gt;&#xA;&lt;li&gt;朝は(豊洲ではなく)築地市場、午後はスカイツリー、夜は新宿で飲み食い&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;生成された旅行日程は、それなりに見えます。3日で二つのタワーなの、とか突っ込むことはできますが、移動にも無理はないし、こういう観光ツアーもあるかも。&lt;/p&gt;&#xA;&lt;p&gt;東京だと元々の言語モデルにたくさんのデータがあってのことかもしれないですね。&lt;/p&gt;&#xA;&lt;p&gt;ただ、自分がよく知っているマイナーな所(高岡とかね)を入れてみると、妙な日程表にも気づけました。存在しない観光地も出てくるし、無茶な移動(Aに行ったあと遠いBへ行って、なぜかAの施設内にある別のA&amp;rsquo;に行け、とか)もありました。これも、もっともらしい続きを出力しているだけというAIらしい結果です。&lt;/p&gt;&#xA;&lt;p&gt;最終的な旅程をこれでいきなり組むことは問題ですが、おおざっぱな叩き台として2,30秒でこれが手に入るのはいいかもしれませんね。&lt;/p&gt;&#xA;&lt;p&gt;TypeScript のソースコードも&lt;a href=&#34;https://github.com/dabit3/gpt-travel-advisor&#34;&gt;GitHub に公開&lt;/a&gt;されています。&lt;/p&gt;&#xA;&lt;p&gt;コード中では Open API の text-davinci-003 モデルに対してユーザーが入力した地名と日数を入れて「理想の旅行日程は?」と尋ね、帰ってきた文章から今度は観光名所を取り出し、それぞれに Google Maps へのリンクをつける、という処理をしているようです。簡単なwebサービスのラッパーであり、ChatGPT の対話インタフェースで自分で訊いても似たような結果は出るのでしょうけど、うまく答えが出る訊ね方を内蔵して迷わないインタフェースにしてるとも言えますね。&lt;/p&gt;&#xA;&lt;p&gt;サービスが当たれば API の呼び出し上限に達して続けられなかったり、追加料金が必要になったり、ということはありますが、ちょっとしたアイデアでこれまで作れなかったサービスが簡単に作れてしまうところは面白いと感じます。&lt;/p&gt;&#xA;&lt;p&gt;via &lt;a href=&#34;https://twitter.com/dabit3/status/1622330852943319048&#34;&gt;Twitter&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>リクルートメールにGPT-3を使って自動返信する</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2022/09/reply-recruiter-automatically-with-gpt-3/</link>
				<pubDate>Fri, 02 Sep 2022 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2022/09/reply-recruiter-automatically-with-gpt-3/</guid>
				<description>&lt;p&gt;転職エージェントや企業が送ってくる(スパムに近い)スカウトメールに対して&lt;a href=&#34;https://matthewbilyeu.com/blog/2022-09-01/responding-to-recruiter-emails-with-gpt-3&#34;&gt;OpenAI の GPT-3 API を使って自動応答をさせる方法を教えてくれるマット・ビリューさんのブログ記事&lt;/a&gt;がありました。&lt;/p&gt;&#xA;&lt;p&gt;転職に興味が無いなら無視してもよいでしょうが、ビリューさんは3つの理由から返事はしたいと考えたそうです。&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;それが礼儀正しいから&lt;/li&gt;&#xA;&lt;li&gt;無視しても相手は何度もフォローアップのメールを送ってくるから&lt;/li&gt;&#xA;&lt;li&gt;いつか求職する時のために関係を維持することには興味があるから&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;2番はあるあるですね。リクルーター側も自動化されていると思いますが、〇日後、△日後に「先日メールを送りましたが、その後…」みたいなメールを送ってこられることはよくあります。&lt;/p&gt;&#xA;&lt;p&gt;それで短文の「今は職を探してないけどあなたのことは覚えておくよ」的な返事をするのですが、これも手動は面倒なので、自動化したいと考えたそう。そして、一律の固定文面ではなく相手に応じたパーソナライズをしようとした時に、ルールベースでリクルーターの所属と名前を取り出すよりも、機械学習による処理を考えたと。&lt;/p&gt;&#xA;&lt;p&gt;Python の&lt;a href=&#34;https://github.com/bi1yeu/recruiter_rm&#34;&gt;ソースコードが公開&lt;/a&gt;されているのですが、&lt;a href=&#34;https://openai.com/api/&#34;&gt;OpenAI の GPT-3 API&lt;/a&gt; を使って、相手の文面から企業名と相手の名前を抽出させ、返信のテンプレートにその社名と名前を埋め込んで返答を作っています。&lt;/p&gt;&#xA;&lt;p&gt;メールがリクルートメールなのかその他の一般のメールなのかの分類はこのスクリプトでは行わず、メールサービスの方の機能で分類しフォルダに分けているようです。サンプルの環境変数では&lt;a href=&#34;https://www.fastmail.com/&#34;&gt;Fastmail&lt;/a&gt;の名前がありますね。これを IMAP でアクセスしフォルダ内のメールに自動応答をかけています。&lt;/p&gt;&#xA;&lt;p&gt;スクリプト中ではサンプルのメール文面から&amp;quot;Apple&amp;quot;社の&amp;quot;Steve&amp;quot;さんを抜き出しています。OpenAI で実際にsummarize させてみると、ちゃんと取れてます。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://openai.com/&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2022/09/reply-recruiter-automatically-with-gpt-3/openai-gpt-3-summarize-recruiter-mail_hu_526ac1f5dcab8250.webp 480w, https://labs.cybozu.co.jp/blog/akky/2022/09/reply-recruiter-automatically-with-gpt-3/openai-gpt-3-summarize-recruiter-mail_hu_cde6ba3811ef3730.webp 482w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2022/09/reply-recruiter-automatically-with-gpt-3/openai-gpt-3-summarize-recruiter-mail.png&#34; width=&#34;482&#34; height=&#34;260&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;英語のリクルートメールから送信者の名前と社名を抽出する on OpenAI の Playground&lt;/p&gt;&#xA;&lt;p&gt;これは楽ですね。日本語だとどうなのかなと、適当な文面を作って(元ネタはいっぱいありますし)食わせると、これも取れるようです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://openai.com/&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2022/09/reply-recruiter-automatically-with-gpt-3/openai-gpt-3-summarize-recruiter-mail-japanese_hu_c9be3661a274d4c3.webp 480w, https://labs.cybozu.co.jp/blog/akky/2022/09/reply-recruiter-automatically-with-gpt-3/openai-gpt-3-summarize-recruiter-mail-japanese_hu_bb8a46bc094dd5fb.webp 517w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2022/09/reply-recruiter-automatically-with-gpt-3/openai-gpt-3-summarize-recruiter-mail-japanese.png&#34; width=&#34;517&#34; height=&#34;452&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;GPT-3 の話でよく見るのはテキストの自動生成だったので、こういう要素の抽出にも簡単に使えると知れたのは良かったです。&lt;/p&gt;&#xA;&lt;p&gt;リクルートメールの方もどうせ自動化されまくっているので、この先はお互いが自動生成のメールを送りあって関係性を保つみたいなことになるのでしょうか。&lt;/p&gt;&#xA;&lt;p&gt;[追記] &lt;a href=&#34;https://news.ycombinator.com/item?id=32685214&#34;&gt;Hacker News&lt;/a&gt;のトップにも出ました。&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
