Langchain-Chatchat

Форк
0
73 строки · 1.4 Кб
1
from langchain.prompts import PromptTemplate
2
from langchain.chains import LLMMathChain
3
from server.agent import model_container
4
from pydantic import BaseModel, Field
5

6
_PROMPT_TEMPLATE = """
7
将数学问题翻译成可以使用Python的numexpr库执行的表达式。使用运行此代码的输出来回答问题。
8
问题: ${{包含数学问题的问题。}}
9
```text
10
${{解决问题的单行数学表达式}}
11
```
12
...numexpr.evaluate(query)...
13
```output
14
${{运行代码的输出}}
15
```
16
答案: ${{答案}}
17

18
这是两个例子:
19

20
问题: 37593 * 67是多少?
21
```text
22
37593 * 67
23
```
24
...numexpr.evaluate("37593 * 67")...
25
```output
26
2518731
27

28
答案: 2518731
29

30
问题: 37593的五次方根是多少?
31
```text
32
37593**(1/5)
33
```
34
...numexpr.evaluate("37593**(1/5)")...
35
```output
36
8.222831614237718
37

38
答案: 8.222831614237718
39

40

41
问题: 2的平方是多少?
42
```text
43
2 ** 2
44
```
45
...numexpr.evaluate("2 ** 2")...
46
```output
47
4
48

49
答案: 4
50

51

52
现在,这是我的问题:
53
问题: {question}
54
"""
55

56
PROMPT = PromptTemplate(
57
    input_variables=["question"],
58
    template=_PROMPT_TEMPLATE,
59
)
60

61

62
class CalculatorInput(BaseModel):
63
    query: str = Field()
64

65
def calculate(query: str):
66
    model = model_container.MODEL
67
    llm_math = LLMMathChain.from_llm(model, verbose=True, prompt=PROMPT)
68
    ans = llm_math.run(query)
69
    return ans
70

71
if __name__ == "__main__":
72
    result = calculate("2的三次方")
73
    print("答案:",result)
74

75

76

77

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

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

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

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