llama-index

Форк
0
46 строк · 1.3 Кб
1
"""DashScope api utils."""
2

3
from http import HTTPStatus
4
from typing import Any, Dict, List, Sequence
5

6
from llama_index.legacy.core.llms.types import (
7
    ChatMessage,
8
    ChatResponse,
9
    CompletionResponse,
10
)
11

12

13
def dashscope_response_to_completion_response(
14
    response: Any, stream: bool = False
15
) -> CompletionResponse:
16
    if response["status_code"] == HTTPStatus.OK:
17
        content = response["output"]["choices"][0]["message"]["content"]
18
        if not content:
19
            content = ""
20
        return CompletionResponse(text=content, raw=response)
21
    else:
22
        return CompletionResponse(text="", raw=response)
23

24

25
def dashscope_response_to_chat_response(
26
    response: Any,
27
) -> ChatResponse:
28
    if response["status_code"] == HTTPStatus.OK:
29
        content = response["output"]["choices"][0]["message"]["content"]
30
        if not content:
31
            content = ""
32
        role = response["output"]["choices"][0]["message"]["role"]
33
        return ChatResponse(
34
            message=ChatMessage(role=role, content=content), raw=response
35
        )
36
    else:
37
        return ChatResponse(message=ChatMessage(), raw=response)
38

39

40
def chat_message_to_dashscope_messages(
41
    chat_messages: Sequence[ChatMessage],
42
) -> List[Dict]:
43
    messages = []
44
    for msg in chat_messages:
45
        messages.append({"role": msg.role.value, "content": msg.content})
46
    return messages
47

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.