import os from openai import OpenAI from dotenv import load_dotenv load_dotenv() API_KEY = os.getenv("BAILIAN_API_KEY") BASE_URL = os.getenv("BAILIAN_API_BASE_URL") MODEL_NAME = "qwen3-32b" # 按实际支持的模型名填写 client = OpenAI(base_url=BASE_URL, api_key=API_KEY) system_prompt = ( "你是一个信息收集助手,需要和用户多轮对话,收集用户的姓名、年龄和感兴趣的行业。" "请严格按照顺序提问:先问姓名,再问年龄,再问行业。" "用户如果输入无关内容,请提醒用户先完成信息收集,不要回答无关问题。" "用户如果拒绝回答(如‘不告诉你’),请礼貌提醒必须填写。" "收集完毕后请总结结果。" ) if __name__ == "__main__": # OpenAI Python SDK 1.x 及兼容API,messages为list[dict]即可 history = [ {"role": "system", "content": system_prompt} ] while True: # 若仍有类型报错,建议升级openai库到1.0以上 response = client.chat.completions.create( model=MODEL_NAME, messages=history,# type: ignore extra_body={"enable_thinking": False}, ) content = response.choices[0].message.content ai_reply = content.strip() if content else "[无回复内容]" print(f"AI: {ai_reply}") # 判断是否收集完毕 if ("信息收集完成" in ai_reply) or ("收集完毕" in ai_reply) or ("结果" in ai_reply and "姓名" in ai_reply and "年龄" in ai_reply and "行业" in ai_reply): break history.append({"role": "assistant", "content": ai_reply}) user_input = input("User: ").strip() history.append({"role": "user", "content": user_input})