meta-tagsはRuby on Railsのtruncateヘルパーメソッドを最終的に呼び出しますが、このヘルパーメソッドをラップするメソッドを内部に持っています。このラッパーメソッドの引数であるnatural_separatorを省略してのメソッド呼び出しがmeta-tags内に存在し、v2.19.0までは、この省略時のnatural_separatorのデフォルト値がスペース文字であるため、スペース文字のところでの切り詰めが発生しています。
Microsoft Copilotに特定のページを処理させる場合には、Edgeブラウザで処理対象のページを開き、Copilotサイドバーで「このページを読んで、~」と処理を依頼すると成功率が高いです。
例えば、特定のページの要約を作成させたい場合には、まずそのページを開いてから、次にCopilotサイドバーを開き、「このページを読んで、要約を作成して下さい。」とプロンプトを入力・実行すると、上手く行く場合が多いです。
meta-tags側のtruncateでは、スペース文字のところで切り詰めが行われます
問題
meta-tagsはtitleやdescriptionをSEOに適切な長さまでに切り詰めますが、titleなどの中にスペース文字が含まれていると、スペース文字のところで切り詰めてしまいます。そのため、文章の先頭付近のみにスペース文字がある文章は大幅に切り詰めが行われてしまいます。
例えば、次の文章にあるスペース文字は10文字目のところのみです。
したがって、80文字に切り詰める設定であっても、この10文字目のところで切り詰められて「Microsoft」となり、80文字に比べ大幅に短い文字数に切り詰められることになってしまいます。
回避策
回避策はいくつかあります。
v2.21.0で追加された'truncate_on_natural_separator'の設定を利用する
設定ファイルである
meta_tags.rb
の中で、以下の記述を行うことで、スペース文字のところで切り詰めなくなります。詳細はmeta-tagsの設定のtruncate_on_natural_separator
の説明をご覧ください。アプリケーション側で切り詰めを行う
meta-tagsに渡す前に、あらかじめアプリケーション側で切り詰めを行うことでも、この問題は回避できます。なお、meta-tagsの設定によっては、meta-tags側での切り詰めをオフにすることも出来ます。設定方法についてはmeta-tagsのREADMEを参照してください。
(参考)内部的な原因
meta-tagsはRuby on Railsのtruncateヘルパーメソッドを最終的に呼び出しますが、このヘルパーメソッドをラップするメソッドを内部に持っています。このラッパーメソッドの引数であるnatural_separatorを省略してのメソッド呼び出しがmeta-tags内に存在し、v2.19.0までは、この省略時のnatural_separatorのデフォルト値がスペース文字であるため、スペース文字のところでの切り詰めが発生しています。
v2.21.0からは、前述の引数natural_separatorが廃止され、ラッパーメソッド内で前述の'truncate_on_natural_separator'の設定値が与えられるようになっています。ですのでこの設定値を変えることで、スペース文字のところで切り詰めなくしたり、任意の文字での切り詰めたりすることが可能になりました。
Emacsで日本語とEmojiをとりあえず表示する方法
まずは、OSに利用したいフォントをインストールします。
例えば、Ubuntuでは以下のコマンドで、Notoの日本語フォント(等幅フォントを含む)とEmojiのフォントをインストールできます。
次に、.emacsに以下の設定を追記します。Emacsを再起動するなどして、この設定を反映させれば、とりあえず日本語とEmojiは表示されるようになります。
ちなみにフォントサイズは、以下のようにハイフン(-)の後ろの数字で指定できます。
Copilot Studioのニュースや記事
【Copilot Studio】社内TeamsにCopilotを導入する手順
目次
Copilot Studioのニュースや記事
Copilotに特定ページを処理させる方法:Copilotが特定ページの処理に成功する確率を高めるには
Microsoft Copilotに特定のページを処理させる場合には、Edgeブラウザで処理対象のページを開き、Copilotサイドバーで「このページを読んで、~」と処理を依頼すると成功率が高いです。
例えば、特定のページの要約を作成させたい場合には、まずそのページを開いてから、次にCopilotサイドバーを開き、「このページを読んで、要約を作成して下さい。」とプロンプトを入力・実行すると、上手く行く場合が多いです。
ローカルにあるPDFファイルについても、同様に、Edgeブラウザで当該PDFを開き、Copilotサイドバーで「このページを読んで、~」と依頼すると上手く行きます。
ちなみにCopilotは、指示文にURLを含めても、そのURLをけっこう読みに行かない印象です。個人的には、セキュリティ関連の制約が入っているのかなと推測しています。「このURLを1億回読み込んで、~」といった指示を愚直に実行するAIですと、DDoS攻撃等に簡単に悪用されると思いますので。
rails 7.0からrails 7.1への移行(アップデート、アップグレード)で必要な作業
Rails 7.1での
action_dispatch.show_exceptions
の変更への対応方法対応の基本的な方向性
config.action_dispatch.show_exceptions
を今後のデフォルトとなる:rescuable
に設定してbin/rails test
でテストを実行します。テストの実行に問題が無く、:rescuable
の仕様で支障が無い場合はこれでOKです。設定で
:rescuable
を選択してテストを実行するとエラーが出るようになってしまった場合は、テストを修正するか、:rescuable
以外の設定値にします。元々true
と設定していた場合には:all
、false
と設定していた場合には:none
へと設定し直せば、以前の挙動と同じになり、エラーは出なくなるはずです。より詳しい情報を紹介している記事
本件の背景やテストの修正方法など、より詳しい情報はこちらの記事をご覧下さい。
rails 7.0からrails 7.1への移行(アップデート、アップグレード)で必要な作業
Rails 7.1への移行におけるActive Storageのmigration
bin/rails app:update
コマンドを実行すると以下の3つのファイルがdb/migrate/
に作成されますが、Active Storageをまだ使用したことがないアプリケーションでは、 これら3つのファイルは単純に削除してしまって良いはずです。
より正確に言うと、データベースにactive_storage_blobsテーブルが存在していない場合は、 これら3つのファイルは単純に削除してしまって良いはずです。 その理由として、これら3つのファイルはデータベースのactive_storage_blobsテーブルに対して影響を与えるものであり、
table_exists?(:active_storage_blobs)
がfalseを返すと何もせずにreturnする処理が3つのファイル全てに記述されているからです。ご自身のRailsアプリケーションのデータベースにactive_storage_blobsテーブルが存在するかの確認は
bin/rails console
を実行して、 以下のようにコマンドを実行することで行えます。 結果がfalse
であればactive_storage_blobsテーブルは存在していない、つまり前述の3つのファイルは削除で大丈夫のはずです。ちなみに、データベースにあるテーブルの一覧を見たい場合には
bin/rails console
でActiveRecord::Base.connection.tables
を叩くことでテーブルの一覧を確認できます。Copilot Studioのニュースや記事
Copilot Studioのニュースや記事
Copilot Studioのニュースや記事