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