以下の内容はhttps://shuzo-kino.hateblo.jp/entry/2025/06/26/223437より取得しました。


n8nとollamaを連動する その2:n8nチャットとpython製webhook的受けツールで試す

実際のところ

外観


IF節

とりあえずテスト実装なので

{{ $json.chatInput }} 
contains
Hello

Code節

return [
  {
    json: {
      text: "Invalid msg"
    }
  }
];

Basic LLM Chain節

とりあえず挙動制御ように
Systemに

You're a polite teacher. You understand the user is not good at english.

受け手のPythonスクリプト

#!/usr/bin/env python3
# webhook_receiver.py

from http.server import HTTPServer, BaseHTTPRequestHandler
import json
from datetime import datetime
import sys

class WebhookHandler(BaseHTTPRequestHandler):
    def do_POST(self):
        # Content-Lengthを取得
        content_length = int(self.headers.get('Content-Length', 0))
        
        # リクエストボディを読み取り
        body = self.rfile.read(content_length).decode('utf-8')
        
        # タイムスタンプ
        timestamp = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        
        # JSONパース試行
        try:
            data = json.loads(body)
            
            # valueフィールドがあれば表示
            if 'value' in data:
                print(f'\n[{timestamp}] --- Message Content ---')
                print(data['value'])
                print()
            else:
                # valueがない場合は全体を表示
                print(f'\n[{timestamp}] --- Message Content ---')
                print(json.dumps(data, indent=2, ensure_ascii=False))
                print()
        except json.JSONDecodeError:
            # JSONでない場合はそのまま表示
            print(f'\n[{timestamp}] --- Message Content ---')
            print(body)
            print()
        
        sys.stdout.flush()
        
        # レスポンスを返す
        self.send_response(200)
        self.send_header('Content-Type', 'application/json')
        self.end_headers()
        
        response = {
            'status': 'received',
            'timestamp': timestamp
        }
        self.wfile.write(json.dumps(response).encode('utf-8'))
    
    def log_message(self, format, *args):
        # アクセスログを抑制
        pass

def run_server(port=9999, host='0.0.0.0'):
    server_address = (host, port)
    httpd = HTTPServer(server_address, WebhookHandler)
    
    print('Webhook Receiver Server')
    print(f'Listening on: {host}:{port}')
    print(f'Docker access: http://172.17.0.1:{port}')
    print('Press Ctrl+C to stop\n')
    
    try:
        httpd.serve_forever()
    except KeyboardInterrupt:
        print('\n\nServer stopped.')
        sys.exit(0)

if __name__ == '__main__':
    import argparse
    
    parser = argparse.ArgumentParser(description='Simple Webhook Receiver')
    parser.add_argument('-p', '--port', type=int, default=9999,
                        help='Port number (default: 9999)')
    parser.add_argument('--host', default='0.0.0.0',
                        help='Host address (default: 0.0.0.0)')
    
    args = parser.parse_args()
    run_server(port=args.port, host=args.host)



以上の内容はhttps://shuzo-kino.hateblo.jp/entry/2025/06/26/223437より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14