Saya sedang berusaha untuk menyambungkan openai ke google dialogflow cx dan sedang menulis webhook saya menggunakan fungsi awan google. Saya melakukan penyelidikan dan menghasilkan kod, tetapi setiap kali ia tidak digunakan. Adakah ini tidak boleh dilakukan dengan fungsi awan kerana saya perlu mendapatkan pertanyaan pengguna daripada dialogflow cx? Atau ada yang hilang dalam kod
Kod fungsi awan saya: entry_point ialah webhook
import openai import json import requests from google.cloud import secretmanager # Initialize the Secret Manager client client = secretmanager.SecretManagerServiceClient() # Store the conversation history if necessary convo = [] def get_secret(secret_name, project_id, version_id='latest'): """ Retrieve a secret from Google Cloud Secret Manager. """ resource_name = f"projects/{project_id}/secrets/{secret_name}/versions/{version_id}" try: # Access the secret version response = client.access_secret_version(request={"name": resource_name}) # Return the payload of the secret return response.payload.data.decode("UTF-8") except Exception as e: print(f"Error accessing secret '{secret_name}':", e) return None def query_gpt(prompt): """ Query the OpenAI completion endpoint with a prompt. """ body = { "model": "text-davinci-003", "prompt": prompt, "max_tokens": 200, "temperature": 0.9, "top_p": 1, "n": 1, "frequency_penalty": 0, "presence_penalty": 0.6 } header = {"Authorization": f"Bearer {get_secret('openai-api-key', 'my-project-id')}"} res = requests.post('https://api.openai.com/v1/completions', json=body, headers=header) return res.json() def webhook(request): """ HTTP Cloud Function entry point. """ if request.method != 'POST': return ('Only POST method is accepted', 405) request_json = request.get_json(silent=True) if not request_json or 'text' not in request_json: return ('Missing "text" in request', 400) query = request_json['text'] convo.append(f'User: {query}') convo.append("Addie:") prompt = "\n".join(convo) response = query_gpt(prompt) result = response.get('choices')[0].get('text').strip('\n') convo.append(result) return json.dumps({ 'fulfillment_response': { 'messages': [{ 'text': { 'text': [result], 'redactedText': [result] }, 'responseType': 'HANDLER_PROMPT', 'source': 'VIRTUAL_AGENT' }] } })
query_gpt
requests
库向 openai 完成端点发出 post 请求,openai api 要求您使用 openai
Terdapat ralat dalam kod dalam fungsi. Anda menggunakan pustaka
def query_gpt(prompt): openai.api_key = get_secret('openai-api-key', 'my-project-id') response = openai.Completion.create(model="text-davinci-003", prompt=prompt, max_tokens=200, temperature=0.9, top_p=1, n=1, frequency_penalty=0, presence_penalty=0.6) return response
Atas ialah kandungan terperinci Buat webhook untuk menyambung ke OpenAI dalam Google Cloud Functions. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!