ym88659208ym87991671
Code writing | Документация для разработчиков

Code writing

Обновлено 24 мая 2024

Example of how to use LCEL to write Python code.

%pip install --upgrade --quiet  gigachain-core gigachain-experimental langchain-openai
from langchain_community.chat_models import GigaChat
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import (
ChatPromptTemplate,
)
from langchain_experimental.utilities import PythonREPL
template = """Write some python code to solve the user's problem. 

Return only python code in Markdown format, e.g.:

```python
....
```"""
prompt = ChatPromptTemplate.from_messages([("system", template), ("human", "{input}")])


model = GigaChat(credentials="<token>", model="<не ниже -large>")
def _sanitize_output(text: str):
_, after = text.split("<code>{python}")
return after.split("</code>")[0]


def _print_output(text: str):
print("Running code: \n" + text + "\n")
return text
chain = (
prompt
| model
| StrOutputParser()
| _sanitize_output
| _print_output
| PythonREPL().run
)
chain.invoke({"input": "чему равен 5 факториал?"}).strip()
    Running code: 
print(5*4*3*2*1)

    '120'
chain.invoke(
{"input": "Выведи самое большое трехзначное число, которое делится на 17"}
).strip()
    Running code: 
# Сохраним максимальное значение
max_num = 0
# Итерируемся по трехзначным числам
for i in range(100, 999):
# Если число делится на 17, то сохраняем его
if i % 17 == 0:
max_num = i
# Выводим результат
print(max_num)

    '986'
chain.invoke(
{
"input": "Я положил на счет 1000 рублей под 10% годовых. Каждый год я снимаю со счета 110 рублей. Сколько денег у меня будет через 10 лет с учетом капитализации?"
}
).strip()
    Running code: 
# Присваиваем переменной базовый депозит
deposit = 1000
# Присваиваем переменной процентную ставку
percentage = 0.1
# Присваиваем переменной сумму ежегодного снятия
withdrawal = 110
# Инициализируем переменную для хранения суммы денег на счету
money = deposit
# Инициализируем переменную для хранения количества лет
years = 0
# Запускаем цикл по количеству лет
while years <= 10:
# Увеличиваем сумму денег на счету на проценты
money += money * percentage
# Вычитаем из суммы денег на счету ежегодное снятие
money -= withdrawal
# Увеличиваем количество лет на единицу
years += 1
# Выводим результат
print(money)

    '814.6883293890003'
ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.