-
Notifications
You must be signed in to change notification settings - Fork 3
/
example.py
53 lines (43 loc) · 1.94 KB
/
example.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
46
47
48
49
50
51
52
53
import openai
# укажите кредиты Yandex CLoud если используете проксю с включенной аутентификацией
# FOLDER_ID = ""
# API_KEY_OR_IAM_KEY = ""
# key = f"{FOLDER_ID}@{API_KEY_OR_IAM_KEY}"
# или оставьте ключ sk-my, если создали проксю с авоматической аутентификацией
key = "sk-my"
# задайте адрес вашей прокси
proxy_url = "http://0.0.0.0:9041"
# создайте клиент OpenAI с измененным base_url
oai = openai.Client(api_key=key, base_url=f"{proxy_url}/v1/")
def generate_text_oai(system_prompt, user_prompt, max_tokens=2000, temperature=0.1, model=f"yandexgpt/latest"):
response = oai.chat.completions.create(
messages=[
{
"role": "system",
"content": system_prompt,
},
{
"role": "user",
"content": user_prompt,
}
],
model=model,
#max_tokens=max_tokens,
#temperature=0.1,
)
generated_text = response.choices[0].message.content
return generated_text
def get_embedding(text, model=f"text-search-doc/latest"):
return oai.embeddings.create(input = [text], model=model).data[0].embedding
def get_embedding_sync_batch(texts, model=f"text-search-doc/latest"):
return oai.embeddings.create(input = texts, model=model).data
if __name__ == "__main__":
# Поддерживаемые форматы моделей
model = 'yandexgpt/latest'
# или f'gpt://{FOLDER_ID}/yandexgpt/latest'
# или f'ds://{MODEL_ID}'
# Для эмбеддингов 'text-search-doc/latest'
# или 'emb://{FOLDER_ID}/text-search-doc/latest'
# или 'ds://{MODEL_ID}'
print(generate_text_oai("You are a helpful assistant.", "What is the meaning of life? Answer in one word."))
print(get_embedding("Hello Yandex!")[:3], '...')