llama-index

Форк
0
30 строк · 1.1 Кб
1
from typing import List
2

3
from llama_index.legacy.prompts.base import BasePromptTemplate
4

5

6
def get_empty_prompt_txt(prompt: BasePromptTemplate) -> str:
7
    """Get empty prompt text.
8

9
    Substitute empty strings in parts of the prompt that have
10
    not yet been filled out. Skip variables that have already
11
    been partially formatted. This is used to compute the initial tokens.
12

13
    """
14
    partial_kargs = prompt.kwargs
15
    empty_kwargs = {v: "" for v in prompt.template_vars if v not in partial_kargs}
16
    all_kwargs = {**partial_kargs, **empty_kwargs}
17
    return prompt.format(llm=None, **all_kwargs)
18

19

20
def get_biggest_prompt(prompts: List[BasePromptTemplate]) -> BasePromptTemplate:
21
    """Get biggest prompt.
22

23
    Oftentimes we need to fetch the biggest prompt, in order to
24
    be the most conservative about chunking text. This
25
    is a helper utility for that.
26

27
    """
28
    empty_prompt_txts = [get_empty_prompt_txt(prompt) for prompt in prompts]
29
    empty_prompt_txt_lens = [len(txt) for txt in empty_prompt_txts]
30
    return prompts[empty_prompt_txt_lens.index(max(empty_prompt_txt_lens))]
31

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

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

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

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