Spaces:
Running on Zero
Running on Zero
File size: 1,633 Bytes
2680bd5 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | import numpy as np
import json
from typing import List
from os.path import join as pjoin
from .feature.bihand_motioncode import BihandMotionCoder
from .llm.llm_helper import get_llm_response, insert_json_to_prompt, insert_action_and_ori_descri_to_prompt, parse_json_from_response
def generate_annotation(skeleton_motion: np.ndarray, prompt_template:str, model: str='deepseek-reasoner', return_json: bool=False) -> str:
bihand_motioncoder = BihandMotionCoder(skeleton_motion)
bihand_motioncoder.generate_motion_codes()
feature_json = bihand_motioncoder.get_json()
prompt = insert_json_to_prompt(feature_json, prompt_template)
annotation = get_llm_response(
prompt,
model=model,
)
if return_json:
return parse_json_from_response(annotation)
else:
return annotation
def rephrase_annotation(action_label:str, original_description:str, prompt_template:str, model: str='gemini-2.5-pro') -> List[str]:
"""
Rephrase the original description based on the action label using a language model.
:param action_label: The action label to be included in the prompt.
:param original_description: The original description to be rephrased.
:param prompt_template: The template for the prompt.
:param model: The model to use for rephrasing.
:return: A list of rephrased descriptions.
"""
prompt = insert_action_and_ori_descri_to_prompt(action_label, original_description, prompt_template)
response = get_llm_response(prompt, model)
return list(parse_json_from_response(response).values()) # Assuming this function is defined elsewhere
|