e768098d0e
Flake8 Lint / flake8 (push) Waiting to run
Spell check CI / Spell_Check (push) Waiting to run
tools_continuous_delivery / Private PyPI non-main branch release (push) Has been skipped
tools_continuous_delivery / Private PyPI main branch release (push) Failing after 2m42s
Publish Promptflow Doc / Build (push) Has been cancelled
Publish Promptflow Doc / Deploy (push) Has been cancelled
38 lines
1.0 KiB
Python
38 lines
1.0 KiB
Python
from promptflow.core import tool
|
|
from chat_with_pdf.main import chat_with_pdf
|
|
|
|
|
|
@tool
|
|
def chat_with_pdf_tool(question: str, pdf_url: str, history: list, ready: str):
|
|
history = convert_chat_history_to_chatml_messages(history)
|
|
|
|
stream, context = chat_with_pdf(question, pdf_url, history)
|
|
|
|
answer = ""
|
|
for str in stream:
|
|
answer = answer + str + ""
|
|
|
|
return {"answer": answer, "context": context}
|
|
|
|
|
|
def convert_chat_history_to_chatml_messages(history):
|
|
messages = []
|
|
for item in history:
|
|
messages.append({"role": "user", "content": item["inputs"]["question"]})
|
|
messages.append({"role": "assistant", "content": item["outputs"]["answer"]})
|
|
|
|
return messages
|
|
|
|
|
|
def convert_chatml_messages_to_chat_history(messages):
|
|
history = []
|
|
for i in range(0, len(messages), 2):
|
|
history.append(
|
|
{
|
|
"inputs": {"question": messages[i]["content"]},
|
|
"outputs": {"answer": messages[i + 1]["content"]},
|
|
}
|
|
)
|
|
|
|
return history
|