File size: 736 Bytes
bb159c0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
from typing import List
from attrs import define, field
from abc import ABC, abstractmethod


@define
class BaseLLM(ABC):
    api_key: str = field(default='')

    @abstractmethod
    def support_models(self) -> List[str]:
        pass

    @abstractmethod
    def base_url(self) -> str:
        pass


@define
class DeepSeekLLM(BaseLLM):
    _support_models = ['deepseek-chat', 'deepseek-coder']
    _base_url = 'https://api.deepseek.com/v1'
    _default_model = 'deepseek-chat'

    @property
    def support_models(self) -> List[str]:
        return self._support_models

    @property
    def base_url(self) -> str:
        return self._base_url

    @property
    def default_model(self) -> str:
        return self._default_model