Toolkit for Chat API
Project description
基于 OpenAI API 的 Chat 对象,支持多轮对话以及异步处理数据等。
安装方法
pip install chattool --upgrade
使用方法
设置密钥和代理链接
通过环境变量设置密钥和代理,比如在 ~/.bashrc 或者 ~/.zshrc 中追加
export OPENAI_API_KEY="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
export OPENAI_API_BASE="https://api.example.com/v1"
export OPENAI_API_BASE_URL="https://api.example.com" # 可选
注:环境变量 OPENAI_API_BASE 优先于 OPENAI_API_BASE_URL,二者选其一即可。
示例
示例1,多轮对话:
# 初次对话
chat = Chat("Hello!")
resp = chat.get_response()
# 继续对话
chat.user("How are you?")
next_resp = chat.get_response()
# 人为添加返回内容
chat.user("What's your name?")
chat.assistant("My name is GPT-3.5.")
# 保存对话内容
chat.save("chat.json", mode="w") # 默认为 "a"
# 打印对话历史
chat.print_log()
示例2,批量处理数据(串行),并使用缓存文件 chat.jsonl:
# 串行处理(按需保存)
msgs = ["1", "2", "3", "4", "5", "6", "7", "8", "9"]
results = []
for m in msgs:
chat = Chat()
chat.system("你是一个熟练的数字翻译家。")
resp = chat.user(f"请将该数字翻译为罗马数字:{m}").get_response()
results.append(resp.content)
chat.save("chat.jsonl", mode="a")
示例3,异步并发与流式输出:
import asyncio
from chattool import Chat
async def run():
# 并发问答
base = Chat().system("你是一个有用的助手")
tasks = [base.copy().user(f"请解释:主题 {i}").async_get_response() for i in range(2)]
responses = await asyncio.gather(*tasks)
for r in responses:
print(r.content)
# 流式输出
print("流式: ", end="")
async for chunk in Chat().user("写一首关于春天的短诗").async_get_response_stream():
if chunk.delta_content:
print(chunk.delta_content, end="", flush=True)
print()
asyncio.run(run())
开源协议
使用 MIT 协议开源。
更新日志
- 当前版本
4.1.0,统一ChatAPI(同步/异步/流式),默认环境变量配置,改进重试与调试工具 - 历史:
2.x-3.x阶段逐步完善异步处理与批量用法 - 更早版本沿革请参考仓库提交记录
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
chattool-4.2.0.tar.gz
(68.8 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
chattool-4.2.0-py3-none-any.whl
(83.7 kB
view details)
File details
Details for the file chattool-4.2.0.tar.gz.
File metadata
- Download URL: chattool-4.2.0.tar.gz
- Upload date:
- Size: 68.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9cb7924044e1e8f493eea5cbb7ab0bd6eeb477132c903a72738c2d6eb7d94489
|
|
| MD5 |
7f8b61a1b008e4f424c7f58818e71b8b
|
|
| BLAKE2b-256 |
222e158d39d3db64f3e4d40aacc73b74f5ce948f326e85a7997fdf603a57ef6a
|
File details
Details for the file chattool-4.2.0-py3-none-any.whl.
File metadata
- Download URL: chattool-4.2.0-py3-none-any.whl
- Upload date:
- Size: 83.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5446c4eff9ae2ced4f13e1f826ee5431857ee29bf99643a2a4014c6a12a41782
|
|
| MD5 |
e954e4e6edc65d6e126f7addd3745d72
|
|
| BLAKE2b-256 |
3a47c6013144824bcea153afc7c87beea21232d4b6626708187e50ae903239fd
|