質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

ChatGPT

ChatGPTは、OpenAI社の提供するインタラクティブなテキストコミュニケーションを行うことができるAIサービスまたは、そのアルゴリズムのモデル名です。

Q&A

2回答

692閲覧

無限ループ問題:Chatgptを使った文章修正プログラム(slack-cloud functions)

reotantan

総合スコア295

ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

ChatGPT

ChatGPTは、OpenAI社の提供するインタラクティブなテキストコミュニケーションを行うことができるAIサービスまたは、そのアルゴリズムのモデル名です。

0グッド

0クリップ

投稿2023/05/06 06:54

以下のコードをcloud functionsで実行し、slack上で実行するものの、botからの回答内容を再度Chatgptに渡して返信を返すループとなってしまいます。

Chatgptなどを使い、ユーザーからメンションされたものを絞るように指示するものの、うまくいかず、もしslack apiの知見があり、この課題について解決方法がわかる方がいましたら、教えていただきたいです。

よろしくお願いします。

python

1import os 2import json 3import openai 4from flask import jsonify, request 5from slack_sdk import WebClient 6from slack_sdk.errors import SlackApiError 7 8openai_api_key = "apitoken" 9SLACK_BOT_TOKEN = "token" 10 11def mention_handler(request): 12 if request.method != "POST": 13 return "Only POST requests are accepted", 405 14 15 data = request.get_json() 16 17 if not data or "event" not in data: 18 return "Invalid request", 400 19 20 event = data["event"] 21 22 if "bot_id" in event: 23 return "Ignoring bot events", 200 24 25 if event.get("type") == "app_mention" and "text" in event: 26 try: 27 openai.api_key = openai_api_key 28 assist1 = "" 29 30 # メンション部分を削除 31 user_input = event["text"].split(" ", 1)[1] 32 33 response = openai.ChatCompletion.create( 34 model="gpt-4", 35 messages=[ 36 {"role": "system", "content": "あなたは先生です。テキストを渡すので子供でもわかるような文章に修正してください。"}, 37 {"role": "assistant", "content": assist1}, 38 {"role": "user", "content": user_input}, 39 ], 40 n=1 41 ) 42 43 corrected_text = response["choices"][0]["message"]["content"] 44 45 client = WebClient(token=SLACK_BOT_TOKEN) 46 response = client.chat_postMessage(channel=event["channel"], text=corrected_text, thread_ts=event["ts"]) 47 except SlackApiError as e: 48 print(f"Error: {e}") 49 return "Error sending message", 500 50 51 return "Mention handled", 200 52 53

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

reotantan

2023/05/06 07:06

調査した内容としては、以下の内容を入れることで、ボットからの返信はフィルターできるとありましたが、実際にはできず、今回の相談です。 if "bot_id" in event: return "Ignoring bot events", 200
guest

回答2

0

if "bot_id" in event: # eventの中に「bot_id」というキーがなければ返事しない return "Ignoring bot events", 200

の下に、

if event.get("user") == "botのユーザーid": return "Ignoring messages bot posted", 200

を加えてみたら?

投稿2023/05/06 07:44

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

reotantan

2023/05/06 08:03

ありがとうございます。こちら試してみます!
reotantan

2023/05/06 08:06

こちら試してみましたが、やはりループが走ってしまいますね。 難しいものですね、、
guest

0

Slack のクラウド機能で ChatGPT を使用するプログラムで無限ループの問題が発生しているようです。 これに対処するには、フィルタリング ロジックを実装して、ボットがユーザーによって言及された場合にのみ処理を制限し、ループを防ぐ必要がある場合があります。 Slack API に詳しい方がこの課題を解決するための洞察を持っている場合は、ご指導いただければ幸いです。

投稿2024/03/07 06:14

chatgptfrancai

総合スコア2

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問