Pythonコードでツールを作る
チャットボットに歴史イベントとWikipediaのツールを追加できたので、学校側から英語カリキュラム向けに文法ツールも追加してほしいと依頼がありました。入力された語句や単語を逆から読んでも同じかどうかを判定する、回文チェッカーを作成してください。生徒はこのツールを使って、たとえば "level" や "never odd or even" のように、逆さに入力しても同じ読みになるかどうか、さまざまな入力文字列で試せるようにします。
この演習はコースの一部です
LangChainで設計するエージェント型システム
演習の手順
- ツールの入力型を文字列として指定します。
.lower()を使って文字を小文字に変換し、.isalnum()を使って英数字以外の文字を取り除きます。- テキストが回文かどうかを判定するには、整形後のテキストがその逆順と一致するかを確認します。
- 回文でない場合に適切なメッセージを返すよう、
else文のプレースホルダーを元の入力で埋めて完成させてください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
@tool
# Set input format to string
def palindrome_checker(text: ____) -> str:
"""Check if a word or phrase is a palindrome."""
# Remove non-alphanumeric characters and convert to lowercase
cleaned_text = ''.join(char.____() for char in ____ if char.____())
# Set up if-else block to check reversed text against original text
if cleaned_text == ____[::-1]:
return f"The phrase or word '{____}' is a palindrome."
else:
# Print an alternative statement if text is not a palindrome
____ f"The phrase or word '{____}' is not a palindrome."