Spaces:
Running
Running
| from huggingface_hub import InferenceClient | |
| import ast | |
| import nltk | |
| import matplotlib.pyplot as plt | |
| import gradio as gr | |
| client = InferenceClient("Qwen/Qwen2.5-72B-Instruct") | |
| def get_structures(sent): | |
| c_structure = ast.literal_eval(client.chat.completions.create( | |
| messages=[ | |
| {"role": "system", | |
| "content": "generate bnf description for buiding c-structure according to lexical-functional grammar framework, no explanation or additional text, use the following structure:\n" | |
| "c-structure: 'generated bnf description'" | |
| }, | |
| {"role": "user", | |
| "content": f"generate bnf description for c-structure of the following sentence: {sent}"}, | |
| ], | |
| response_format={ | |
| "type": "json", | |
| "value": { | |
| "properties": { | |
| "c-structure": {"type": "string"}}, | |
| } | |
| }, | |
| stream=False, | |
| max_tokens=512, | |
| temperature=0.7, | |
| top_p=0.1 | |
| ).choices[0].get('message')['content']) | |
| c_latex = ast.literal_eval(client.chat.completions.create( | |
| messages=[ | |
| {"role": "system", | |
| "content": "generate nltk respresentation for the LFG c-structure of the sentence according to provided bnf description, no explanation or additional text\n" | |
| "example: (S (NP 'Text') (VP 'text')))" | |
| }, | |
| {"role": "user", | |
| "content": f"description: {c_structure['c-structure']}"}, | |
| ], | |
| response_format={ | |
| "type": "json", | |
| "value": { | |
| "properties": { | |
| "c-structure": {"type": "string"}}, | |
| } | |
| }, | |
| stream=False, | |
| max_tokens=512, | |
| temperature=0.7, | |
| top_p=0.1 | |
| ).choices[0].get('message')['content']) | |
| tree = nltk.Tree.fromstring(c_latex['c-structure']) | |
| with open('output.txt', 'wt') as out: | |
| tree.pretty_print(stream=out) | |
| with open('output.txt', 'a') as f: | |
| f.write(f'c-structure:\n{c_latex["c-structure"]}\n\nBNF-description:\n{c_structure["c-structure"]}') | |
| return 'output.txt' | |
| interface = gr.Interface( | |
| fn=get_structures, | |
| inputs=gr.Textbox(label="Enter your sentence"), | |
| outputs=gr.File(), | |
| title="LFG AI-Parser", | |
| description="Enter a sentence and visualize its c-structure according to LFG.", | |
| ) | |
| if __name__ == "__main__": | |
| interface.launch(share=True) | |