将知识库检索结果格式化为参考文档的格式
(kb_name: str, docs: List[Dict], api_base_url: str = "")
| 121 | |
| 122 | |
| 123 | def format_reference(kb_name: str, docs: List[Dict], api_base_url: str = "") -> List[Dict]: |
| 124 | ''' |
| 125 | 将知识库检索结果格式化为参考文档的格式 |
| 126 | ''' |
| 127 | api_base_url = "http://127.0.0.1:7861" |
| 128 | |
| 129 | source_documents = [] |
| 130 | for inum, doc in enumerate(docs): |
| 131 | filename = doc.get("metadata", {}).get("source") |
| 132 | parameters = urlencode( |
| 133 | { |
| 134 | "knowledge_base_name": kb_name, |
| 135 | "file_name": filename, |
| 136 | } |
| 137 | ) |
| 138 | api_base_url = api_base_url.strip(" /") |
| 139 | url = ( |
| 140 | f"{api_base_url}/knowledge_base/download_doc?" + parameters |
| 141 | ) |
| 142 | page_content = doc.get("page_content") |
| 143 | ref = f"""出处 [{inum + 1}] [{filename}]({url}) \n\n{page_content}\n\n""" |
| 144 | source_documents.append(ref) |
| 145 | |
| 146 | return source_documents |
| 147 | |
| 148 | |
| 149 |
no test coverage detected