python调用大模型api来进行对话
Openai的接口调用pip包下载1pip install openai配置skurl12OPENAI_API_KEYsk-xxxxxOPENAI_BASE_URLhttps://api.openai.com/v1接口调用1234567891011121314151617181920212223242526272829303132importosfromflaskimportFlask, jsonifyfromopenaiimportOpenAIconfigconfigparser.ConfigParser()config.read(config.cfg, encodingutf-8)OPENAI_API_KEYconfig.get(default,OPENAI_API_KEY, fallbackNone)OPENAI_BASE_URLconfig.get(default,OPENAI_BASE_URL, fallbackNone)app.route(/gpt_test)defgpt_test():简单调用一次 GPT返回一个固定问题的回答ifnotOPENAI_API_KEY:returnjsonify({error:OPENAI_API_KEY 未配置}),500try:# 这里用的是 chat.completions.create 风格respclient.chat.completions.create(modelgpt-4.1-mini,# 或者你有的任意模型比如 gpt-4.1, gpt-4o 等messages[{role:system,content:你是一个简洁回答的助手。},{role:user,content:简单用一句话介绍一下你自己。},],)answerresp.choices[0].message.contentreturnjsonify({answer: answer})exceptException as e:print(GPT 调用异常:,repr(e))returnjsonify({error:str(e)}),500二、阿里通义安装官方sdk1pip install dashscope使用dashscope.Generation.call基本可以复用1234567891011121314ALIYUN_API_KEYconfig.get(default,ALIYUN_API_KEY, fallbackNone)app.route(/llm_test/)defllm_test():测试与大模型的对话功能try:messages[{role:system,content:You are a helpful assistant.},{role:user,content:你是谁}]answerchat_with_model(messages)returnjsonify({answer: answer})exceptException as e:print(LLM error:,repr(e))returnjsonify({error:str(e)}),500这里有几类模型id都可以使用qwen3-maxqwen-plusqwen-turbo参考阿里云百炼如果需要使用到prompt比如我们有路径app/prompt_store/底下的prompt文件doc-llm-latest.md首先按照字符串处理的思路先读取出来12345678910111213141516171819frompathlibimportPath# run.py 所在目录BASE_DIRPath(__file__).resolve().parentPROMPT_DIRBASE_DIR/app/prompt_storePROMPT_LATEST_FILEPROMPT_DIR/doc-llm-latest.mddefload_latest_prompt()-str|None:读取 doc-llm-latest.md 的内容try:with PROMPT_LATEST_FILE.open(r, encodingutf-8) as f:returnf.read()exceptFileNotFoundError:print(f[WARN] Prompt file not found: {PROMPT_LATEST_FILE})returnNoneexceptException as e:print(f[ERROR] Failed to read prompt: {e!r})returnNone然后message格式补充1234567891011121314151617181920212223app.route(/llm_with_prompt/)defllm_with_prompt():使用最新的Prompt与大模型对话promptload_latest_prompt()ifnotprompt:returnjsonify({error:No prompt available}),500try:messages[{role:system,content: prompt},{role:user,content:请用一两句话概括一下这个文档测试规范的核心目标。}]answerchat_with_model(messages)returnjsonify({answer: answer})exceptException as e:print(LLM with prompt error:,repr(e))returnjsonify({error:str(e)}),500