paper_generate / llm.py
weiwei1392's picture
change forward key
eafc886
raw
history blame
4.75 kB
from langchain.llms.base import LLM
from typing import Optional, List
from langchain.llms.utils import enforce_stop_tokens
import requests
FORWARD_KEY = 'fk198719-5WV1GhGHMAzpDwrmjkMXAPsDWamjfbgr'
class ChatGLM(LLM):
max_length: int = 10000
temperature: float = 0
top_p = 0.9
tokenizer: object = None
model: object = None
history_len: int = 10
history = []
URL = 'http://183.131.3.48:9200'
HEADERS = {'Content-Type': 'application/json'}
@property
def _llm_type(self) -> str:
return "ChatGLM"
def _call(self,
prompt: str,
history: Optional[List[List[str]]] = None,
stop: Optional[List[str]] = None) -> str:
if history:
history = [i for i in history if i[0] is not None] # clear out the system message
history = history[-self.history_len:]
params = {'tokenizers': self.tokenizer, 'prompt': prompt, 'history': history, 'top_p': self.top_p,
'max_length': self.max_length, 'temperature': self.temperature}
response = requests.post(self.URL, headers=self.HEADERS, json=params).json()
answer = response['response']
if stop is not None:
answer = enforce_stop_tokens(answer, stop)
# question = prompt.split('question:\n')[-1]
# self.history = self.history+[[prompt, response]]
return answer
class OpenAI3(LLM):
max_length: int = 10000
temperature: float = 0.2
top_p = 0.9
tokenizer: object = None
model: object = None
history_len: int = 10
history = []
HEADERS = {'Content-Type': 'application/json', 'Authorization': 'Bearer fk198719-Pmvv22OqZiovaxRq6YxCzkTcd6UVVX5O'}
URL ='https://openai.api2d.net/v1/chat/completions'
MODEL_NAME = "gpt-3.5-turbo"
@property
def _llm_type(self) -> str:
return "ChatGLM"
def _call(self,
prompt: str,
history: Optional[List[List[str]]] = None,
stop: Optional[List[str]] = None) -> str:
system, user = prompt.split('\n\nstop\n\n')
message = [{"role": "system", "content": system}, {"role": "user", "content": user}]
print(message)
# if history:
# history = [i for i in history if i[0] is not None]
# history = history[-self.history_len:]
# message = [[{"role": "user", "content": i[0]}, {"role": "assistant", "content": i[1]}] for i in history]
# message = sum(message, [])
# else:
# message = []
# message.append({"role": "user", "content": prompt})
params = {"model": self.MODEL_NAME, "messages": message, 'temperature': self.temperature}
response = requests.post(self.URL, headers=self.HEADERS, json=params).json()
answer = response['choices'][0]['message']['content']
if stop is not None:
answer = enforce_stop_tokens(answer, stop)
# question = prompt.split('question:\n')[-1]
# self.history = self.history+[[question, response]]
return answer
class OpenAI4(LLM):
max_length: int = 10000
temperature: float = 0.2
top_p = 0.9
tokenizer: object = None
model: object = None
history_len: int = 10
history = []
HEADERS = {'Content-Type': 'application/json', 'Authorization': 'Bearer fk198719-Pmvv22OqZiovaxRq6YxCzkTcd6UVVX5O'}
URL ='https://openai.api2d.net/v1/chat/completions'
MODEL_NAME = "gpt-4"
@property
def _llm_type(self) -> str:
return "ChatGLM"
def _call(self,
prompt: str,
history: Optional[List[List[str]]] = None,
stop: Optional[List[str]] = None) -> str:
system, user = prompt.split('\n\nstop\n\n')
message = [{"role": "system", "content": system}, {"role": "user", "content": user}]
# if history:
# history = [i for i in history if i[0] is not None]
# history = history[-self.history_len:]
# message = [[{"role": "user", "content": i[0]}, {"role": "assistant", "content": i[1]}] for i in history]
# message = sum(message, [])
# else:
# message = []
# message.append({"role": "user", "content": prompt})
print(message)
params = {"model": self.MODEL_NAME, "messages": message, 'temperature': self.temperature}
response = requests.post(self.URL, headers=self.HEADERS, json=params).json()
answer = response['choices'][0]['message']['content']
if stop is not None:
answer = enforce_stop_tokens(answer, stop)
# question = prompt.split('question:\n')[-1]
# self.history = self.history+[[question, response]]
return answer