รับข้อผิดพลาด org.springframework.expression.spel.SpelParseException จาก Watson Conversation API

ฉันกำลังลองใช้บริการ API การสนทนาจาก Watson (โดยใช้ไคลเอนต์ Python API ที่มีอยู่บน pypi: watson-developer-cloud.

เมื่อฉันส่งคำขอ ฉันได้รับข้อผิดพลาดต่อไปนี้:

"output": {
    "text": [],
    "error": "Error when updating output with output of dialog node id:node
{
  "output": {
    "text": "El monto que te puedo adelantar lo define el sistema según el análisis que realiza de tu figura crediticia. El primer adelanto será de hasta $2000 y mientras vayas cumpliendo en tiempo y forma, se irá aumentando el monto que el sistema te ofrece, siendo $4000 el máximo. Si querés saber el monto exacto que puedo otorgarte, registrate o accedé a tu cuenta y hacé click en la opción \"Pedí un Adelanto\"."
  }
}
1470064336636. Fix the dialog node. Node output was:{\"text\":\"El monto que te puedo adelantar lo define el sistema seg\u00fan el an\u00e1lisis que realiza de tu figura crediticia. El primer adelanto ser\u00e1 de hasta $2000 y mientras vayas cumpliendo en tiempo y forma, se ir\u00e1 aumentando el monto que el sistema te ofrece, siendo $4000 el m\u00e1ximo. Si quer\u00e9s saber el monto exacto que puedo otorgarte, registrate o acced\u00e9 a tu cuenta y hac\u00e9 click en la opci\u00f3n \\\"Ped\u00ed un Adelanto\\\".\"}\n**org.springframework.expression.spel.SpelParseException**: EL1049E:(pos 8): Unexpected data after '.': '2000'\n"

คำตอบ (เป็นภาษาสเปน) มีดังต่อไปนี้:

{
  "output": {
    "text": "El monto que te puedo adelantar lo define el sistema según el análisis que realiza de tu figura crediticia. El primer adelanto será de hasta $2000 y mientras vayas cumpliendo en tiempo y forma, se irá aumentando el monto que el sistema te ofrece, siendo $4000 el máximo. Si querés saber el monto exacto que puedo otorgarte, registrate o accedé a tu cuenta y hacé click en la opción \"Pedí un Adelanto\"."
  }
}

ฉันยังได้รับข้อผิดพลาดเดียวกันในการทดสอบบอทบน Watson Conversation Workspace (ไอคอนกล่องโต้ตอบที่มุมขวาบน) มีแนวคิดใดบ้างที่จะแก้ไขปัญหานี้ ฉันควรหลีกเลี่ยงข้อมูลบางส่วนของฉันหรือไม่


person Emiliano Dalla Verde Marcozzi    schedule 01.08.2016    source แหล่งที่มา
comment
ดูเหมือนว่าปัญหาคือ '$chars' ฉันเปลี่ยนข้อความเป็น '$ 4,000' และใช้งานได้ดี! ไม่แน่ใจ แต่บางที (แค่เดา) sintax $char คือการอ้างถึงตัวแปรและเนื่องจาก $2,000 (2000) ไม่ใช่ตัวแปร จึงทำให้เกิดข้อผิดพลาดนั้น   -  person Emiliano Dalla Verde Marcozzi    schedule 01.08.2016


คำตอบ (2)


ตามที่เอมิเลียโนกล่าวถึงในความคิดเห็น เครื่องหมายดอลลาร์เป็นอักขระที่แนะนำการอ้างอิงถึงตัวแปรบริบท ดังนั้น Conversation จึงพยายามค้นหาค่าของ ตัวอย่างเช่น ตัวแปร $2000 คุณต้องหลีกเลี่ยงการอ้างอิงเหล่านั้น ดังนั้น คุณจะต้องระบุ \\$2000 คุณต้องมีเครื่องหมายแบ็กสแลชคู่เนื่องจากจริงๆ แล้วสตริงอยู่ในเครื่องหมายคำพูดใต้หน้าปก

person Charles Rankin    schedule 01.08.2016
comment
ขอบคุณ @CharlesRankin - person Emiliano Dalla Verde Marcozzi; 02.08.2016

ฉันสามารถหลีกเลี่ยงอักขระพิเศษส่วนใหญ่ที่อธิบายไว้ใน การอ้างอิงกล่องโต้ตอบโดยใช้อักขระ \ ตัวเดียวเมื่อใช้โปรแกรมแก้ไข Simple Watson Response ตัวอย่างเช่น \$2000, \#ftw และ \@8pm

หากคุณใช้โปรแกรมแก้ไข Advanced Watson Response คุณจะต้องใช้ \\ สองเท่าแทน ดังนั้นสำหรับตัวอย่างเดียวกันข้างต้น \\$2000, \\#ftw และ \\@8pm

น่าเสียดายที่ฉันไม่สามารถหลีกเลี่ยง <? และ ?> ที่ใช้กับนิพจน์ที่ซับซ้อนกว่านี้ได้สำเร็จ แม้ว่าหวังว่าสิ่งเหล่านั้นจะมีโอกาสเกิดปัญหาน้อยลงก็ตาม

person James Taylor    schedule 02.08.2016