MCPcopy Create free account
hub / github.com/OpenBMB/BMTools / Translator

Class Translator

bmtools/agent/translator.py:17–66  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

15 return lang_name
16
17class Translator:
18
19 def __init__(self,
20 openai_api_key: str = None,
21 model_name: str = "gpt-3.5-turbo"):
22 self.openai_api_key = openai_api_key
23 self.model_name = model_name
24 self.init_flag = False
25
26 def init_model(self):
27 llm = self.create_openai_model(self.openai_api_key, self.model_name)
28 prompt = self.create_prompt()
29 self.chain = LLMChain(llm=llm, prompt=prompt)
30 self.init_flag = True
31
32 def __call__(self, inputs: Dict[str, str]) -> Dict[str, str]:
33 if not self.init_flag:
34 self.init_model()
35
36 question = inputs["input"]
37 answer = inputs["output"]
38
39 src_lang = detect_lang(answer)
40 tgt_lang = detect_lang(question)
41
42 if src_lang != tgt_lang:
43 translated_answer = self.chain.run(text=answer, language=tgt_lang)
44 outputs = deepcopy(inputs)
45 outputs["output"] = translated_answer
46 return outputs
47 else:
48 return inputs
49
50 def create_openai_model(self, openai_api_key: str, model_name: str) -> OpenAI:
51 if openai_api_key is None:
52 openai_api_key = os.environ.get('OPENAI_API_KEY')
53 llm = OpenAI(model_name=model_name,
54 temperature=0.0,
55 openai_api_key=openai_api_key)
56 return llm
57
58 def create_prompt(self) -> PromptTemplate:
59 template = """
60 Translate to {language}: {text} =>
61 """
62 prompt = PromptTemplate(
63 input_variables=["text", "language"],
64 template=template
65 )
66 return prompt
67
68if __name__ == "__main__":
69 lang = {

Callers 2

translator.pyFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected