Spaces:
Running
Running
from typing import List | |
from graphgen.models import Chunk | |
from graphgen.models import OpenAIModel | |
from graphgen.templates import COREFERENCE_RESOLUTION_TEMPLATE | |
from graphgen.utils import detect_main_language | |
async def resolute_coreference( | |
llm_client: OpenAIModel, | |
chunks: List[Chunk]) -> List[Chunk]: | |
""" | |
Resolute conference | |
:param llm_client: LLM model | |
:param chunks: List of chunks | |
:return: List of chunks | |
""" | |
if len(chunks) == 0: | |
return chunks | |
results = [chunks[0]] | |
for _, chunk in enumerate(chunks[1:]): | |
language = detect_main_language(chunk.content) | |
result = await llm_client.generate_answer( | |
COREFERENCE_RESOLUTION_TEMPLATE[language].format( | |
reference = results[0].content, | |
input_sentence = chunk.content | |
) | |
) | |
results.append(Chunk(id=chunk.id, content=result)) | |
return results | |