| 14 | |
| 15 | |
| 16 | class OpenaiModel(ToolModel): |
| 17 | def __init__(self, model_path: str, template: str, system_prompt): |
| 18 | self.model_path = model_path |
| 19 | self.template = template |
| 20 | self.system_prompt = system_prompt |
| 21 | |
| 22 | def generate( |
| 23 | self, prompts: str, template: str = None, |
| 24 | generate_configs: GenerateConfigs =None, |
| 25 | ) -> list: |
| 26 | '''产出对应结果''' |
| 27 | template = self.template if template is None else template |
| 28 | |
| 29 | params = self.generate_params(generate_configs) |
| 30 | |
| 31 | messages = [{"role": "system", "content": self.system_prompt}, {"role": "user", "content": prompts}] |
| 32 | try: |
| 33 | result = openai.ChatCompletion.create(api_base=os.environ["OPENAI_API_BASE"], api_key=os.environ["OPENAI_API_KEY"], model=self.model_path, messages=messages, **params) |
| 34 | # print("prompt_tokens: {}, completion_tokens: {}".format(result["usage"]["prompt_tokens"], result["usage"]["completion_tokens"])) |
| 35 | return result["choices"][0]["message"]["content"] |
| 36 | except Exception as e: |
| 37 | result = str(e) |
| 38 | |
| 39 | def generate_params( |
| 40 | self, generate_configs: GenerateConfigs, |
| 41 | ): |
| 42 | '''generate param''' |
| 43 | kargs = generate_configs.dict() |
| 44 | params = { |
| 45 | "max_new_tokens": kargs.get("max_new_tokens", 128), |
| 46 | "top_k": kargs.get("top_k", 50), |
| 47 | "top_p": kargs.get("top_p", 0.95), |
| 48 | "temperature": kargs.get("temperature", 1.0), |
| 49 | } |
| 50 | return params |
| 51 |
nothing calls this directly
no outgoing calls
no test coverage detected