はじめに
以下を実装しました。touch-sp.hatenablog.com
メインPC
import requests url = "http://192.168.11.14:5000/flask_ollama" prompt='''以下にチャットの履歴があります。最後の行がユーザーの質問です。チャット履歴をもとにユーザーの質問をそれ自体で内容がわかるように簡単に書き換えて下さい。 ``` 山梨県の夏の観光名所は 富士山、富士五湖などがあります。 冬は ```''' data = {"prompt": prompt} response = requests.post(url, json=data) if response.status_code == 200: result = response.json() print(f"結果: {result["result"]}") else: print(f"エラー: {response.status_code}, {response.text}")
サーバーPC
Ollamaが実行されている前提です。from flask import Flask, request, jsonify import ollama app = Flask(__name__) @app.route('/flask_ollama', methods=['POST']) def prompt_extention(): data = request.get_json() if "prompt" not in data: return jsonify({"error": "promptが提供されていません"}), 400 prompt = data["prompt"] if not isinstance(prompt, str): return jsonify({"error": "有効なpromptではありません"}), 400 answer = ollama.chat( model='gemma2:27b', messages=[ { "role": "user", "content": prompt } ], options={ "max_tokens": 256, "temperature": 0.3, "top_p": 0.9, "top_k": 40, "presence_penalty": 0.0, "frequency_penalty": 0.0, "repeat_penalty": 1.1, "mirostat_mode": 0, "mirostat_tau": 5.0, "mirostat_eta": 0.1 } ) extended_prompt = answer["message"]["content"] return jsonify({"result": extended_prompt}) if __name__ == '__main__': app.run(host='0.0.0.0', port=5000)
結果
結果: 山梨県の冬の観光名所は何ですか?