from .Linly import Linly from .Qwen import Qwen from .Qwen2 import Qwen2 try: from .Gemini import Gemini except Exception as e: print("Gemini模型加载失败,可能是因为没有google-generativeai库,但是Gemini模型不是必顂的,可以忽略") from .ChatGPT import ChatGPT from .ChatGLM import ChatGLM from .Llama2Chinese import Llama2Chinese # from .GPT4Free import GPT4FREE def test_Linly(question = "如何应对压力?", mode='offline', model_path="Linly-AI/Chinese-LLaMA-2-7B-hf"): llm = Linly(mode, model_path) answer = llm.generate(question) print(answer) def test_Qwen(question = "如何应对压力?", mode='offline', model_path="Qwen/Qwen-1_8B-Chat"): llm = Qwen(mode, model_path) answer = llm.generate(question) print(answer) def test_Gemini(question = "如何应对压力?", model_path='gemini-pro', api_key=None, proxy_url=None): llm = Gemini(model_path, api_key, proxy_url) answer = llm.generate(question) print(answer) def test_ChatGPT(question = "如何应对压力?", model_path = 'gpt-3.5-turbo', api_key = None, proxy_url = None): llm = ChatGPT(model_path, api_key, proxy_url) answer = llm.generate(question) print(answer) class LLM: def __init__(self, mode='offline'): self.mode = mode def init_model(self, model_name, model_path='', api_key=None, proxy_url=None, prefix_prompt='''请用少于25个字回答以下问题\n\n'''): if model_name not in ['Linly', 'Qwen', 'Qwen2', 'Gemini', 'ChatGLM', 'ChatGPT', 'Llama2Chinese', 'GPT4Free', '直接回复 Direct Reply']: raise ValueError("model_name must be one of ['Linly', 'Qwen', 'Gemini', 'ChatGLM', 'ChatGPT', 'Llama2Chinese', 'GPT4Free']") if model_name == 'Linly': llm = Linly(self.mode, model_path) elif model_name == 'Qwen': llm = Qwen(self.mode, model_path) elif model_name == 'Qwen2': llm = Qwen2(self.mode, model_path) elif model_name == 'Gemini': llm = Gemini(model_path, api_key, proxy_url) elif model_name == 'ChatGLM': llm = ChatGLM(self.mode, model_path) elif model_name == 'ChatGPT': llm = ChatGPT(model_path, api_key, proxy_url) elif model_name == 'Llama2Chinese': llm = Llama2Chinese(model_path, self.mode) elif model_name == 'GPT4Free': llm = GPT4FREE() elif model_name == '直接回复 Direct Reply': llm = self llm.prefix_prompt = prefix_prompt return llm def generate(self, question, system_prompt = 'system无效'): return question def test_Linly(self, question="如何应对压力?", model_path="Linly-AI/Chinese-LLaMA-2-7B-hf"): llm = Linly(self.mode, model_path) answer = llm.generate(question) print(answer) def test_Qwen(self, question="如何应对压力?", model_path="Qwen/Qwen-1_8B-Chat"): llm = Qwen(self.mode, model_path) answer = llm.generate(question) print(answer) def test_Gemini(self, question="如何应对压力?", model_path='gemini-pro', api_key=None, proxy_url=None): llm = Gemini(model_path, api_key, proxy_url) answer = llm.generate(question) print(answer) def test_ChatGPT(self, question="如何应对压力?", model_path = 'gpt-3.5-turbo', api_key = None, proxy_url = None): llm = ChatGPT(model_path, api_key, proxy_url) answer = llm.generate(question) print(answer) def test_ChatGLM(self, question="如何应对压力?", model_path="THUDM/chatglm-6b"): llm = ChatGLM(mode=self.mode, model_name_or_path=model_path) answer = llm.generate(question) print(answer) if __name__ == '__main__': llm_class = LLM(mode='offline') llm_class.init_model('直接回复 Direct Reply') question = '如何应对压力?' answer = llm_class.generate(question) # llm.test_Qwen() # llm.test_Linly() # llm.test_Gemini() # llm.test_ChatGLM()