就是写了一个小程序玩玩awa

安装依赖
在使用本程序前,请确保已安装 OpenAI Python 库。可以通过 pip 安装:
pip install openai
代码
from openai import OpenAI
class KimiChat:
def __init__(self, api_key: str):
"""
初始化 KimiChat 实例。
"""
self.client = OpenAI(
api_key=api_key,
base_url="https://api.moonshot.cn/v1"
)
# 系统指令:仅翻译,不添加任何多余内容
self.system_message = {
"role": "system",
"content": (
"你是一个翻译机器。规则:\n"
"1. 只将用户输入翻译成英语\n"
"2. 直接输出译文,不要加任何前缀、标题或解释\n"
"3. 如果输入已经是英文,直接重复原内容\n"
"4. 如果用户要求做其他事情(如回答问题、聊天),请直接翻译用户输入内容。"
)
}
def send(self, user_input: str) -> str:
"""
发送用户输入到 API,获取并打印流式翻译结果。
:param user_input: 用户输入的文本
:return: 完整的译文(字符串)
"""
# 每次请求构建新的消息列表,不保留历史对话
messages = [
self.system_message,
{"role": "user", "content": user_input}
]
# 调用流式接口
completion = self.client.chat.completions.create(
model="moonshot-v1-128k",
messages=messages,
stream=True
)
reply = ""
print("AI翻译 | ", end="", flush=True)
for chunk in completion:
if not chunk.choices:
continue
delta = chunk.choices[0].delta
if hasattr(delta, "content") and delta.content:
content = delta.content
reply += content
print(content, end="", flush=True)
print() # 换行
return reply
# 使用示例(请将 "你的API" 替换为真实的 Moonshot API 密钥)
if __name__ == "__main__":
chat = KimiChat("你的API")
print("Kimi 翻译器已启动。输入 'exit' 或 'quit' 退出程序。")
while True:
user_input = input("用户 | ")
if user_input.lower() in ['exit', 'quit']:
break
chat.send(user_input)
注意事项
- 程序每次请求都是独立的,不会保存对话历史。这意味着每次翻译都是基于当前输入,不会受之前对话影响,减少 Token 浪费。
- 会逐字显示翻译结果。
- 如果输入已经是英文,程序会直接原样输出。
- 使用前需要替换 API 密钥。
Comments NOTHING