diff --git a/api/findroad/index.js b/api/findroad/index.js index 7cba959..a3e3eb7 100644 --- a/api/findroad/index.js +++ b/api/findroad/index.js @@ -53,8 +53,8 @@ module.exports = async function (context, req) { console.log(`야삐 Arrival Station: ${arrival_station}`); // console.log(`야삐 Route: ${route}`); if (text_counter == 0) { - itineraryText += `{"dep": ${departure_station},`; - itineraryText += `"arr": ${arrival_station},}`; + itineraryText += `{"dep": "${departure_station}",`; + itineraryText += `"arr": "${arrival_station}"}`; // itineraryText += `"Route": '${route}',}`; text_counter += 1; @@ -65,7 +65,7 @@ module.exports = async function (context, req) { } } console.log(itineraryText) - context.res.body = JSON.parse(itineraryText); + // context.res.body = JSON.parse(itineraryText); context.res = { status: 200, diff --git a/api/onecall_script/chat.py b/api/onecall_script/chat.py index 7ca9aa0..17ada3f 100644 --- a/api/onecall_script/chat.py +++ b/api/onecall_script/chat.py @@ -3,34 +3,36 @@ """ pip install requests """ + import os import requests import openai +import sys -MODEL = "gpt-3.5-turbo" +def create_script(departure, arrival, date, time): -# 출발역, 도착역, 출발 날짜, 열차 번호, 이름, 발권 매수 + CONTENT = departure + "에서 " + arrival + "으로 " + date + " " + time + "에 가는 기차 승차권을 예매하는 말을 1줄로 해줘" -departure = "물금역" -arrival = "대전역" -time = "12/11 12:23" -ticket_num = "3" -name = "홍길동" + response = openai.ChatCompletion.create( + model="gpt-3.5-turbo", + messages=[ + {"role": "user", "content": "동대구역에서 서울역으로 20231112 162300 에 가는 기차 승차권을 예매하는 말을 1줄로 해줘."}, + {"role": "assistant", "content": "동대구역에서 서울역으로 11월 12일 16시 23분에 출발하는 기차 승차권을 예매하고 싶어요."}, + {"role": "user", "content": CONTENT}, + ], + temperature=0, + ) -CONTENT = departure + "에서 " + arrival + "으로 " + time + " 에 가는 기차 승차권을 " + ticket_num + "매 예매하는 말을 1줄로 해줘" + result = "안녕하세요, 원콜 서비스를 이용하려 합니다. " + result += response['choices'][0]['message']['content'] -response = openai.ChatCompletion.create( - model=MODEL, - messages=[ - {"role": "user", "content": "동대구역에서 서울역으로 11/15 16:24 에 가는 기차 승차권을 2매 예매하는 말을 1줄로 해줘."}, - {"role": "assistant", "content": "동대구역에서 서울역으로 11월 15일 오후 4시 24분에 출발하는 기차 승차권 2매를 예매하고 싶어요."}, - {"role": "user", "content": CONTENT}, - ], - temperature=0, -) + print(result) -result = "안녕하세요, 원콜 서비스를 이용하려 합니다. " -result += response['choices'][0]['message']['content'] -result += " 제 이름은 " + name + "입니다." +if __name__ == "__main__": + + dep = sys.argv[1] # 출발역 + arr = sys.argv[2] # 도착역 + date = sys.argv[3] # 출발 날짜 + time = sys.argv[4] # 출발 시간 -print(result) \ No newline at end of file + create_script(dep, arr, date, time) \ No newline at end of file diff --git a/api/onecall_script/index.js b/api/onecall_script/index.js index 19017c7..14d9c03 100644 --- a/api/onecall_script/index.js +++ b/api/onecall_script/index.js @@ -1,13 +1,36 @@ +const fetch = require("node-fetch"); + module.exports = async function (context, req) { - context.log('JavaScript HTTP trigger function processed a request.'); - - const name = (req.query.name || (req.body && req.body.name)); - const responseMessage = name - ? "Hello, " + name + ". This HTTP triggered function executed successfully." - : "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response."; - - context.res = { - // status: 200, /* Defaults to 200 */ - body: responseMessage - }; -} \ No newline at end of file + try { + const { dep, arr, date, time } = req.body; // 매개변수로부터 위도, 경도 정보를 받음 + + const call_command = `python3 ./onecall_script/chat.py ${dep} ${arr} ${date} ${time}`; + + const execSync = require('child_process').execSync; + const resultBuffer = execSync(call_command, { encoding: 'utf-8' }); + const result = resultBuffer.toString(); + + var jsonData = "" + try { + jsonData = JSON.parse(result); + } catch (error) { + console.error('JSON 파싱 오류:', error.message); + } + + context.res.json({ + // status: 200, /* Defaults to 200 */ + res: jsonData + }); + + } catch (error) { + console.error("Error fetching data:", error); + + context.res = { + status: 500, + body: { error: "Error fetching data" }, + headers: { + 'Content-Type': 'application/json' + } + }; + } +}; \ No newline at end of file diff --git a/src/index.html b/src/index.html index a1bcfe3..1a1501e 100644 --- a/src/index.html +++ b/src/index.html @@ -198,6 +198,8 @@

Vanilla JavaScript App

Findroad API: ...

+

Script: ...

+ @@ -243,24 +245,25 @@

Vanilla JavaScript App

const resultEndElement = document.getElementById('resultEnd'); resultEndElement.innerHTML = `도착지 (위도: ${resultEnd.latitude}, 경도: ${resultEnd.longitude})`; - // 변환된 좌표로 Tmap API 호출 및 결과 표시 - const text = await ( - await fetch(`/api/findroad`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify({ - startX: resultStart.longitude, - startY: resultStart.latitude, - endX: resultEnd.longitude, - endY: resultEnd.latitude, - "lang": 0, - "format": "json", - "count": 10 - }), - }) - ).json(); + // 변환된 좌표로 Tmap API 호출 및 결과 표시 + const { text } = await ( + await fetch(`/api/findroad`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + startX: resultStart.longitude, + startY: resultStart.latitude, + endX: resultEnd.longitude, + endY: resultEnd.latitude, + }), + }) + ).json(); + + // 문제의 구간 + console.log(typeof text); + document.querySelector('#findroad').textContent = text; console.log(text); document.querySelector('#findroad').textContent = text; @@ -290,18 +293,53 @@

Vanilla JavaScript App