AttnTrace / src /models /Deepseek.py
SecureLLMSys's picture
init
f214f36
Raw
History Blame Contribute Delete
2.07 kB
from openai import OpenAI
from openai import OpenAI
from .Model import Model
import tiktoken
from transformers import AutoTokenizer
import time
class Deepseek(Model):
def __init__(self, config):
super().__init__(config)
api_keys = config["api_key_info"]["api_keys"]
api_pos = int(config["api_key_info"]["api_key_use"])
assert (0 <= api_pos < len(api_keys)), "Please enter a valid API key to use"
self.max_output_tokens = int(config["params"]["max_output_tokens"])
self.client = OpenAI(api_key=api_keys[api_pos], base_url="https://api.deepseek.com")
self.llama_tokenizer = AutoTokenizer.from_pretrained("meta-llama/Meta-Llama-3-8B-Instruct")
self.encoding = tiktoken.encoding_for_model("gpt-3.5-turbo")
self.seed = 10
def query(self, msg, max_tokens=128000):
super().query(max_tokens)
while True:
try:
response = self.client.chat.completions.create(
model=self.name,
temperature=self.temperature,
max_tokens=self.max_output_tokens,
seed = self.seed,
messages=[
{"role": "system", "content": "You are a helpful assistant"},
{"role": "user", "content": msg},
],
stream=False
)
print(response.choices[0].message.content)
time.sleep(1)
break
except Exception as e:
print(e)
time.sleep(10)
return response.choices[0].message.content
def get_prompt_length(self,msg):
encoding = tiktoken.encoding_for_model("gpt-3.5-turbo")
num_tokens = len(encoding.encode(msg))
return num_tokens
def cut_context(self,msg,max_length):
tokens = self.encoding.encode(msg)
truncated_tokens = tokens[:max_length]
truncated_text = self.encoding.decode(truncated_tokens)
return truncated_text