import openai from .base_model import BaseLLMModel from .. import shared from ..config import retrieve_proxy class OpenAI_Instruct_Client(BaseLLMModel): def __init__(self, model_name, api_key, user_name="") -> None: super().__init__(model_name=model_name, user=user_name) self.api_key = api_key def _get_instruct_style_input(self): return "\n\n".join([item["content"] for item in self.history]) @shared.state.switching_api_key def get_answer_at_once(self): prompt = self._get_instruct_style_input() with retrieve_proxy(): response = openai.Completion.create( api_key=self.api_key, api_base=shared.state.openai_api_base, model=self.model_name, prompt=prompt, temperature=self.temperature, top_p=self.top_p, ) return response.choices[0].text.strip(), response.usage["total_tokens"]