Обновить
1024K+

Python *

Высокоуровневый язык программирования

491,13
Рейтинг
Сначала показывать
Порог рейтинга

Всем привет!

В этом туториале писал о том, как собрать свою обëртку для ChatGPT, используя Streamlit и API OpenAI.

Рассказываю, что случилось нового ?
Добавлен функционал для подсчёта токенов, стоимости сообщения и беседы. Реализовано с помощью функции:

import streamlit as st


def calc_cost(usage: dict) -> None:
    total_tokens = usage.get("total_tokens")
    prompt_tokens = usage.get("prompt_tokens")
    completion_tokens = usage.get("completion_tokens")
    st.session_state.total_tokens.append(total_tokens)
    # pricing logic: https://openai.com/pricing#language-models
    if st.session_state.model == "gpt-3.5-turbo":
        cost = total_tokens * 0.002 / 1000
    else:
        cost = (prompt_tokens * 0.03 + completion_tokens * 0.06) / 1000
    st.session_state.costs.append(cost)

Проверить работу нового функционала можно на сайте AI Talks. Репозиторий с кодом ожидающий ваших issue, pr и звёзд ⭐
Успехов! ?

Всего голосов 14: ↑14 и ↓0+14
Комментарии0

Интересные встроенные библиотеки питона:

Tempfile

Создаёт временный файл как в linux папка tmp:

import tempfile
with tempfile.NamedTemporaryFile() as tmp:
    print(tmp.name)
    tmp.write(...)

IO

Чтобы не использовать временные файлы, можно использовать временный буфер сразу в программе:

from io import BytesIO

imagefile = BytesIO()
animage.save(imagefile, format='PNG')
imagedata = imagefile.getvalue()

Struct

Позволяет создавать бинарные структуры и парсить их. Может ускорить передачу между клиентом и сервером:

>> from struct import *
>> pack(">bhl", 1, 2, 3)
b'\x01\x00\x02\x00\x00\x00\x03'
>> unpack('>bhl', b'\x01\x00\x02\x00\x00\x00\x03')
(1, 2, 3)
>> calcsize('>bhl')
7

CMD

С помощью этой библиотеки можно создать полноценный tui:

Welcome to the turtle shell.   Type help or ? to list commands.

(turtle) ?

Documented commands (type help <topic>):
========================================
bye     color    goto     home  playback  record  right
circle  forward  heading  left  position  reset   undo

(turtle) help forward
Move the turtle forward by the specified distance:  FORWARD 10
(turtle) record spiral.cmd
(turtle) position
Current position is 0 0

Удивительно что такие полезные пакеты находятся в стандартной комплектации питона.

И не нужно скачивать кучу пакетов из pip.

Всего голосов 18: ↑18 и ↓0+18
Комментарии0
12 ...
17