python+cloudflare ai gateway实现国内调用google gemini api流式输出对话框代码
代码语言:python
所属分类:人工智能
代码描述:python+cloudflare ai gateway实现国内调用google gemini api流式输出对话框代码
代码标签: python cloudflare ai gateway 国内 调用 google gemini a
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
#!/usr/local/python3/bin/python3
# -*- coding: utf-8 -*
import os
import json
from google import genai
# FastAPI 相关的导入
from fastapi import FastAPI
from fastapi.responses import HTMLResponse, StreamingResponse
from pydantic import BaseModel
from typing import List, Dict, Any
# Google GenAI SDK 相关的导入
from google.genai import types
# --- 1. 初始化和配置 ---
#load_dotenv()
app = FastAPI()
AI_GATEWAY_URL ="https://gateway.ai.cloudflare.com/v1/{acountid}/{projectname}/google-ai-studio"
API_KEY ="a*******************"
# 检查配置是否齐全
if not AI_GATEWAY_URL or not API_KEY:
raise ValueError("请确保 .env 文件中已设置 AI_GATEWAY_URL 和 GOOGLE_API_KEY")
# --- 2. 初始化 Google GenAI 客户端 (使用代理) ---
# 这是关键:我们在这里初始化客户端,并传入 http_options 来指定代理
try:
client = genai.Client(
api_key=API_KEY,
http_options=types.HttpOptions(
base_url=AI_GATEWAY_URL
)
)
except ImportError:
raise ImportError("请运行 'pip install google-generativeai' 来安装所需的库。")
# --- 3. Pydantic 数据模型 (保持不变) ---
class Part(BaseModel):
text: str
class Content(BaseModel):
role: str
parts: List[Part]
class ChatPayload(BaseModel):
contents: List[Content]
# --- 4. HTML 模板 (保持不变) ---
HTML_TEMPLATE = """
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Gemini 流式聊天 - FastAPI + GenAI SDK</title>
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
<style>
:root {
--bg-color: #121212;
--surface-color: #1e1e1e;
--primary-color: #bb86fc;
--primary-variant-color: #3700b3;
--secondary-color: #03dac6;
--text-color: #e0e0e0;
--text-secondary-color: #a0a0a0;
--border-color: #333;
--font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue".........完整代码请登录后点击上方下载按钮下载查看















网友评论0