花了不到 1 天时间,终于成功接入了 Google Gemini! - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
fuyun
V2EX    分享创造

花了不到 1 天时间,终于成功接入了 Google Gemini!

  •  
  •   fuyun
    ifuyun 2023-12-15 15:10:30 +08:00 8807 次点击
    这是一个创建于 668 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如图:

    接入过程分享:https://www.ifuyun.com/post/00lq67tr9x2eh3au

    无论是 RESTful API 接入,还是 SDK 接入,文中都做了介绍。关于 SDK ,因为官方 SDK 无法在境内成功调用,因此,从 Google 官方 fork 了一个:

    适配大陆环境的 Node.js SDK:https://www.npmjs.com/package/@fuyun/generative-ai

    SDK 源码:https://github.com/ifuyun/generative-ai-js

    以上代码只是增加了类似 OpenAI SDK 的 baseURL 参数,其它和官方库一致。

    以上。欢迎交流、沟通。

    第 1 条附言    2023-12-17 08:19:18 +08:00
    v0.1.2 已同步,但流式接口貌似有点问题,响应没完全返回,stream 就结束了。建议暂搁置更新,等后续版本,或者使用 REST API 。需要注意的是,源码 API 版本是 v1 ,而官方文档使用的是 v1beta 。
    第 2 条附言    2024-02-03 18:55:22 +08:00

    v0.2.0已同步,调用方式有所变化:

    获取实例:

    async getGeminiInstance(appId: string) { const geminiOptiOns= await this.getGeminiOptions(appId); return { geminiOptions, geminiInstance: new GoogleGenerativeAI(geminiOptions.apiKey) }; } 

    获取模型:

    const { geminiInstance, geminiOptions } = await this.getGeminiInstance(appId); const geminiModel = geminiInstance.getGenerativeModel( { model, generationConfig: config }, { baseURL: geminiOptions.baseURL } ); 

    以上,请知悉。

    35 条回复    2023-12-26 21:17:17 +08:00
    ktqFDx9m2Bvfq3y4
        1
    ktqFDx9m2Bvfq3y4  
       2023-12-15 15:18:25 +08:00
    作为参照,下面是 GPT4 的回答。我觉得谷歌的还是差不少啊。
    ----------------------------------------------------------------------------

    你提出了一个有趣的问题,其实这个问题隐藏着一个简单但基本的事实:在你的父母结婚时,你还没有出生。婚礼是两个人开始共同生活的一个标志性事件,而这通常发生在他们的孩子出生之前。所以,你没有被邀请参加你父母的婚礼是因为那时你还不存在。

    这个问题也许是出于好奇心或者是一种幽默的表达。不过,它确实揭示了时间和事件顺序的基本概念。每个人都是在他们的父母结婚后的某个时间点出生的,这是一个普遍的事实。因此,没有人能够参加自己父母的婚礼。不过,你可以通过查看婚礼的照片或视频,或者听父母讲述那天的故事来了解那个特别的日子。
    silencil
        2
    silencil  
       2023-12-15 15:21:11 +08:00
    @Chad0000 gpt 还是强大啊,很多人类的幽默都能理解
    fuyun
        3
    fuyun  
    OP
       2023-12-15 15:26:00 +08:00   1
    之前发布的大模型,都被众网友们用“弱智吧”问题测了无数次了,表现更好也是正常的。看看 Gemini 发布后经过几个迭代的表现吧。
    taotaodaddy
        4
    taotaodaddy  
       2023-12-15 16:57:12 +08:00
    请教一下,SDK 不管是中英文都是使用 gemini pro 模型吗,目前 web 区分中英文,中文不使用 gemini pro
    fuyun
        5
    fuyun  
    OP
       2023-12-15 17:03:41 +08:00
    @taotaodaddy 是的,API 不区分中英文;但区分是否多模态。
    wind1986
        6
    wind1986  
       2023-12-15 17:04:43 +08:00
    我用 okhttp 来实现, 好像 stream 有点问题
    wanet
        7
    wanet  
       2023-12-15 17:07:23 +08:00
    测试了一下,还是比不过 gpt3.5 啊
    Yuhyeong
        8
    Yuhyeong  
       2023-12-15 17:08:48 +08:00
    支持
    snowflake007
        9
    snowflake007  
       2023-12-15 17:12:48 +08:00
    推出的有点匆忙了
    JustNormal
        10
    JustNormal  
       2023-12-15 17:14:02 +08:00
    现在还只是开放了 Pro ,相当于 gpt3.5 。免费能用就挺好的了。
    laminux29
        11
    laminux29  
       2023-12-15 17:21:56 +08:00
    人工智障还是太天真了,没有经历过社会的毒打。

    1."爸妈",其中一方或双方,并不一定指的是生物学父母。

    2.爸妈并不一定是第一次结婚,可能是复婚。

    3.有利益纷争,爸妈的结婚或再婚会造成“我”的利益的重大改变或损失,爸妈不想让“我”知道,等等。
    fuyun
        12
    fuyun  
    OP
       2023-12-15 17:29:55 +08:00
    @wind1986 nestjs 的 HttpService 没问题。
    fuyun
        13
    fuyun  
    OP
       2023-12-15 17:37:21 +08:00
    @JustNormal 是啊,拿来测试 AI 应用,比如辅助写作什么的简直太爽了!相比于付费的接口,可以省不少。
    qW7bo2FbzbC0
        14
    qW7bo2FbzbC0  
       2023-12-15 17:44:56 +08:00
    很多人说,gemini pro 只支持英文?中文的还是之前 bard 那一套吧
    deiphi
        15
    deiphi  
       2023-12-15 17:47:34 +08:00
    一直用 bing ,免费,据说 bing 是基于 GPT4.
    ktqFDx9m2Bvfq3y4
        16
    ktqFDx9m2Bvfq3y4  
       2023-12-15 17:50:01 +08:00
    @laminux29 #11
    它不天真,我让它解释了其他可能的情况,它也给说出来了。包括再婚,结婚当时没举办婚礼后来补的等等。有的不合理但你说的在里面。
    abcd191898105
        17
    abcd191898105  
       2023-12-15 17:52:37 +08:00
    @fuyun 教育都砍了,辅导作业也没意义了
    fuyun
        18
    fuyun  
    OP
       2023-12-15 17:58:01 +08:00
    @abcd191898105 辅助写作的主体是自媒体、创作者。至于辅导作业,被砍的是明面上的培训班,但丝毫不影响需求;而且,至少可以给自己的孩子用上大模型。
    abcd191898105
        19
    abcd191898105  
       2023-12-15 17:58:58 +08:00
    @fuyun 羡慕,我岳母还没怀上我老婆
    QinYu0226
        20
    QinYu0226  
       2023-12-15 18:06:17 +08:00
    @deiphi

    Bing AI 有很多机房的 IP 用不了。我碰巧有一个西雅图的能用, 德国 日本 韩国 都不能用,感觉是限制地域的,机房 IP 应该也是一层限制。
    wsseo
        21
    wsseo  
       2023-12-15 18:42:21 +08:00
    因为你的后妈不喜欢你,害怕你捣乱,所以没邀请你。
    XnEnokq9vkvVq4
        22
    XnEnokq9vkvVq4  
       2023-12-15 22:15:25 +08:00
    我自己用下来 gemini pro 比 GPT 3.5 强啊(只试了英文)。1 token=4 characters 的话两者价格是差不多的吧?
    zhu327808
        23
    zhu327808  
       2023-12-17 10:04:04 +08:00
    写了一个 adapter 有需要可以尝试:

    https://github.com/zhu327/gemini-openai-proxy

    使用场景更多一点
    babaohuang
        24
    babaohuang  
       2023-12-17 13:40:48 +08:00
    大佬,使用你的这个包,如果是使用流式 startChatAndSendMessageStream 的话,调用方式跟原来官方的包是一样的吗?
    fuyun
        25
    fuyun  
    OP
       2023-12-17 14:24:02 +08:00
    @babaohuang 只改了 new GoogleGenerativeAI(apiKey, baseURL),增加了 baseURL 参数,其它接口和官方一模一样。
    babaohuang
        26
    babaohuang  
       2023-12-17 15:55:38 +08:00
    @fuyun 我用了流式的方式,好像有点问题,就是输出一段后就停止了
    fuyun
        27
    fuyun  
    OP
       2023-12-17 17:11:03 +08:00
    @babaohuang 见附言,0.1.2 是有这个问题,先用 0.1.1 或者用 REST API 。
    babaohuang
        28
    babaohuang  
       2023-12-17 18:41:14 +08:00
    @fuyun 好的,谢谢! 0.1.1 的调用方式和官方的也是一样的对吧?
    fuyun
        29
    fuyun  
    OP
       2023-12-19 15:22:22 +08:00
    v0.1.3 已经修复了 stream 的问题,已同步发布。
    deiphi
        30
    deiphi  
       2023-12-19 15:49:52 +08:00
    web 版可以修改 chat.html 中 maxOutputTokens 的数值,可以执行成功(字符没有被截断了)。
    node 版,我运行失败,提示 TypeError: fetch failed
    babaohuang
        31
    babaohuang  
       2023-12-21 11:04:36 +08:00
    @fuyun 大佬,v0.1.3 的调用方式是不是跟 0.1.1 不一样,我刚才试了会出现[GoogleGenerativeAI Error]: Error fetching from [405 Method Not Allowed]的情况
    fuyun
        32
    fuyun  
    OP
       2023-12-21 12:24:27 +08:00
    @babaohuang 没发现有什么异常,如果有疑问可以看看官方的文档,出入参在 IDE 里面也可以看到具体的说明,实在不行还可以看看源码。底层的实现,一个改动是 API key 从 URL 参数变成了请求头,但不影响对外的接口。
    babaohuang
        33
    babaohuang  
       2023-12-21 17:43:55 +08:00
    @fuyun 谢谢大佬!
    babaohuang
        34
    babaohuang  
       2023-12-26 16:56:49 +08:00
    大佬,你的 sdk 下载量要赶上官方 sdk 的下载量了!
    fuyun
        35
    fuyun  
    OP
       2023-12-26 21:17:17 +08:00
    @babaohuang 说明这个是刚需……(捂脸
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     6009 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 01:45 PVG 09:45 LAX 18:45 JFK 21:45
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86