2024-03-22 20:39:25 +08:00

32 lines
1.0 KiB
Python

import base64
import os
from server.pydantic_v1 import BaseModel, Field
def save_base64_audio(base64_audio, file_path):
audio_data = base64.b64decode(base64_audio)
with open(file_path, 'wb') as audio_file:
audio_file.write(audio_data)
def aqa_run(model, tokenizer, query):
query = tokenizer.from_list_format([query])
response, history = model.chat(tokenizer, query=query, history=None)
print(response)
return response
def aqa_processor(query: str):
from server.agent.container import container
if container.metadata["audios"]:
file_path = "temp_audio.mp3"
save_base64_audio(container.metadata["audios"][0], file_path)
query_input = {
"audio": file_path,
"text": query,
}
return aqa_run(tokenizer=container.audio_tokenizer, query=query_input, model=container.audio_model)
else:
return "No Audio, Please Try Again"
class AQAInput(BaseModel):
query: str = Field(description="The question of the image in English")