한국 고객들이 잘 활용할 수 있도록 영상을 제작하고, 활용 방법 설명
Prompt Flow 실습 환경 만들기 (4월 2일까지)
Prompt Flow Fork 떠서 아래 내용으로 수정하여 문서 작성하기. (4월 1일)
3개의 패키지 추가 필요, 0.2.4 부터 VectorDB가 안나옴.
pip install keyrings.alt pip install bs4 pip install promptflow-vectordb==0.2.3 |
from promptflow import tool # The inputs section will change based on the arguments of the tool function, after you save the code # Adding type to arguments and return value will help the system show the types properly # Please update the function name/signature per need @tool def my_python_tool(search_result: dict): # print(search_result[0]['original_entity']['text']) # 검색된 여러개의 문서에서 original_entity의 text 부분만 배열로 만들어서 반환 return [entity['original_entity']['text'] for entity in search_result] |
# 참고 @tool def generate_prompt_context(search_result: List[dict]) -> str: def format_doc(doc: dict): return f"Content: {doc['Content']}\nSource: {doc['Source']}" SOURCE_KEY = "source" URL_KEY = "url" retrieved_docs = [] for item in search_result: entity = SearchResultEntity.from_dict(item) content = entity.text or "" source = "" if entity.metadata is not None: if SOURCE_KEY in entity.metadata: if URL_KEY in entity.metadata[SOURCE_KEY]: source = entity.metadata[SOURCE_KEY][URL_KEY] or "" retrieved_docs.append({ "Content": content, "Source": source }) doc_string = "\n\n".join([format_doc(doc) for doc in retrieved_docs]) return doc_string |
system: Summary result for question in Korean. Never use your knowledge and only use the text displayed in ```. If the question asks for a comparison, display it as a table. user: question: {{question}} search_results: ``` {% for item in search_results %} {{item}} {% endfor %} ``` |
# system: You are a chatbot having a conversation with a human. Given the following extracted parts of a long document and a question, create a final answer with references ("SOURCES"). If you don't know the answer, just say that you don't know. Don't try to make up an answer. ALWAYS return a "SOURCES" part in your answer. {{contexts}} # user: {{question}} |
RAG 시나리오 고민중.