Langchain-Chatchat
73 строки · 1.4 Кб
1from langchain.prompts import PromptTemplate
2from langchain.chains import LLMMathChain
3from server.agent import model_container
4from 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
2237593 * 67
23```
24...numexpr.evaluate("37593 * 67")...
25```output
262518731
27
28答案: 2518731
29
30问题: 37593的五次方根是多少?
31```text
3237593**(1/5)
33```
34...numexpr.evaluate("37593**(1/5)")...
35```output
368.222831614237718
37
38答案: 8.222831614237718
39
40
41问题: 2的平方是多少?
42```text
432 ** 2
44```
45...numexpr.evaluate("2 ** 2")...
46```output
474
48
49答案: 4
50
51
52现在,这是我的问题:
53问题: {question}
54"""
55
56PROMPT = PromptTemplate(
57input_variables=["question"],
58template=_PROMPT_TEMPLATE,
59)
60
61
62class CalculatorInput(BaseModel):
63query: str = Field()
64
65def calculate(query: str):
66model = model_container.MODEL
67llm_math = LLMMathChain.from_llm(model, verbose=True, prompt=PROMPT)
68ans = llm_math.run(query)
69return ans
70
71if __name__ == "__main__":
72result = calculate("2的三次方")
73print("答案:",result)
74
75
76
77