feat(editor): ChatExcel

ChatExcel devlop part 5
This commit is contained in:
yhjun1026 2023-08-25 10:30:45 +08:00
parent b34338aa0c
commit f71f770e68
3 changed files with 19 additions and 14 deletions

View File

@ -34,7 +34,6 @@ def response_line_chart(speak: str, df: DataFrame) -> str:
plt.title("")
buf = io.BytesIO()
ax.set_facecolor("lightgray")
plt.savefig(buf, format="png", dpi=100)
buf.seek(0)
data = base64.b64encode(buf.getvalue()).decode("ascii")
@ -63,7 +62,6 @@ def response_bar_chart(speak: str, df: DataFrame) -> str:
plt.title("")
buf = io.BytesIO()
ax.set_facecolor("lightgray")
plt.savefig(buf, format="png", dpi=100)
buf.seek(0)
data = base64.b64encode(buf.getvalue()).decode("ascii")
@ -95,7 +93,6 @@ def response_pie_chart(speak: str, df: DataFrame) -> str:
# plt.title(columns[0])
buf = io.BytesIO()
ax.set_facecolor("lightgray")
plt.savefig(buf, format="png", dpi=100)
buf.seek(0)
data = base64.b64encode(buf.getvalue()).decode("ascii")

View File

@ -84,7 +84,9 @@ async def get_editor_sql(con_uid: str, round: int):
if int(once["chat_order"]) == round:
for element in once["messages"]:
if element["type"] == "ai":
return Result.succ(json.loads(element["data"]["content"]))
logger.info(f'history ai json resp:{element["data"]["content"]}')
context = element["data"]["content"].replace("\\n", " ").replace("\n", " ")
return Result.succ(json.loads(context))
return Result.faild(msg="not have sql!")

View File

@ -119,10 +119,16 @@ class BaseOutputParser(ABC):
ai_response = ai_response.replace("assistant:", "")
ai_response = ai_response.replace("Assistant:", "")
ai_response = ai_response.replace("ASSISTANT:", "")
ai_response = ai_response.replace("\n", " ")
ai_response = ai_response.replace("\_", "_")
ai_response = ai_response.replace("\*", "*")
ai_response = ai_response.replace("\t", "")
ai_response = (
ai_response.strip()
.replace("\\n", " ")
.replace("\n", " ")
.replace("\\", " ")
)
print("un_stream ai response:", ai_response)
return ai_response
else:
@ -154,7 +160,7 @@ class BaseOutputParser(ABC):
if i < 0:
return None
count = 1
for j, c in enumerate(s[i + 1 :], start=i + 1):
for j, c in enumerate(s[i + 1:], start=i + 1):
if c == "]":
count -= 1
elif c == "[":
@ -162,13 +168,13 @@ class BaseOutputParser(ABC):
if count == 0:
break
assert count == 0
return s[i : j + 1]
return s[i: j + 1]
else:
i = s.find("{")
if i < 0:
return None
count = 1
for j, c in enumerate(s[i + 1 :], start=i + 1):
for j, c in enumerate(s[i + 1:], start=i + 1):
if c == "}":
count -= 1
elif c == "{":
@ -176,7 +182,7 @@ class BaseOutputParser(ABC):
if count == 0:
break
assert count == 0
return s[i : j + 1]
return s[i: j + 1]
def parse_prompt_response(self, model_out_text) -> T:
"""
@ -193,9 +199,9 @@ class BaseOutputParser(ABC):
# if "```" in cleaned_output:
# cleaned_output, _ = cleaned_output.split("```")
if cleaned_output.startswith("```json"):
cleaned_output = cleaned_output[len("```json") :]
cleaned_output = cleaned_output[len("```json"):]
if cleaned_output.startswith("```"):
cleaned_output = cleaned_output[len("```") :]
cleaned_output = cleaned_output[len("```"):]
if cleaned_output.endswith("```"):
cleaned_output = cleaned_output[: -len("```")]
cleaned_output = cleaned_output.strip()
@ -204,9 +210,9 @@ class BaseOutputParser(ABC):
cleaned_output = self.__extract_json(cleaned_output)
cleaned_output = (
cleaned_output.strip()
.replace("\n", " ")
.replace("\\n", " ")
.replace("\\", " ")
.replace("\\n", " ")
.replace("\n", " ")
.replace("\\", " ")
)
cleaned_output = self.__illegal_json_ends(cleaned_output)
return cleaned_output