forked from kolyan288/Chem-LLM
-
Notifications
You must be signed in to change notification settings - Fork 1
/
llm_utils.py
45 lines (34 loc) · 1.23 KB
/
llm_utils.py
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
37
38
39
40
41
42
43
44
45
import importlib
from rdkit.Chem import MolFromSmiles
import numpy as np
class MyDoc:
def __init__(self, doc):
self.page_content = doc
self.metadata = {'source': 'None',
'title': 'None',
'description': 'None',
'language': 'ru'}
def __can_import(module_names, function_name):
"""
Вспомогательная функция для функции feature_extract
"""
return_nan = lambda x: np.nan
for module_name in module_names:
try:
module = importlib.import_module(module_name)
if hasattr(module, function_name):
feat = getattr(module, function_name)
return feat
except ImportError as e:
print(f"Ошибка импорта: {e}")
return return_nan
return return_nan
def feature_extract(prop, mol):
module_names = ['rdkit.Chem.GraphDescriptors', 'rdkit.Chem.Crippen']
feat = __can_import(module_names, prop)
return feat(MolFromSmiles(mol))
if __name__ == '__main__':
import rdkit
mol = 'CC(=O)C=CC=C'
lol = feature_extract('иди на', mol)
print(lol)