Omar ID EL MOUMEN
commited on
Commit
·
bdd682d
1
Parent(s):
67e4ad5
Add tool for RAG questions
Browse files
server.py
CHANGED
@@ -126,5 +126,32 @@ def search_3gpp_specifications(keywords: str, threshold: int, release: Optional[
|
|
126 |
|
127 |
return "\n--\n".join([f"3GPP {spec['type']} {spec['id']} version {spec['version']} - {spec['title']} is downloadable via this link: {spec['url']}\n{spec['scope']}" for spec in responseJson['results']])
|
128 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
129 |
if __name__ == "__main__":
|
130 |
mcp.run(transport="stdio")
|
|
|
126 |
|
127 |
return "\n--\n".join([f"3GPP {spec['type']} {spec['id']} version {spec['version']} - {spec['title']} is downloadable via this link: {spec['url']}\n{spec['scope']}" for spec in responseJson['results']])
|
128 |
|
129 |
+
@mcp.tool()
|
130 |
+
def ask_questions_to_3gpp_database(question: str, threshold: int = 65, release: Optional[str] = "", working_group: Optional[str] = "", spec_type: Optional[str] = "") -> str:
|
131 |
+
"""
|
132 |
+
Retrieve technical documents sections to help AI answer the user's technical question, if same topic already called, re-use the downloaded documents
|
133 |
+
3GPP specifications are used as source documents, using BM25 to filter the documents
|
134 |
+
Args: question: string, threshold: integer 0-100 [default 60], release: optional filter, string [only the number Rel-19 -> '19'], working_group: optional filter, string [options: C1,C2,...,C6,CP or S1,S2,...,S6,SP], spec_type: optional filter, string [either TS (Technical Specification) or TR (Technical Report)]
|
135 |
+
For each non-used optional filters, leave a empty string
|
136 |
+
After extracting the documents, answer to the question with a complete and detailed paragraph with the sources cited
|
137 |
+
"""
|
138 |
+
body = {"question": question, "threshold": threshold}
|
139 |
+
if release:
|
140 |
+
body['release'] = release
|
141 |
+
if working_group:
|
142 |
+
body['working_group'] = working_group
|
143 |
+
if spec_type:
|
144 |
+
body['spec_type'] = spec_type
|
145 |
+
|
146 |
+
response = requests.post("https://organizedprogrammers-3gppdocfinder.hf.space/list-rag-docs", headers={
|
147 |
+
"Content-Type": "application/json"
|
148 |
+
}, data=json.dumps(body), verify=False)
|
149 |
+
|
150 |
+
if response.status_code != 200:
|
151 |
+
return f"Unable to extract documents: {response.status_code}"
|
152 |
+
|
153 |
+
docs = response.json()['output']
|
154 |
+
return docs
|
155 |
+
|
156 |
if __name__ == "__main__":
|
157 |
mcp.run(transport="stdio")
|