V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
fuyun
V2EX  ›  分享创造

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

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

    如图:

    接入过程分享: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 条附言  ·  323 天前

    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
    Chad0000
        1
    Chad0000  
       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.
    Chad0000
        16
    Chad0000  
       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
    因为你的后妈不喜欢你,害怕你捣乱,所以没邀请你。
    hanqian
        22
    hanqian  
       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  
       362 天前
    大佬,你的 sdk 下载量要赶上官方 sdk 的下载量了!
    fuyun
        35
    fuyun  
    OP
       362 天前
    @babaohuang 说明这个是刚需……(捂脸
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2328 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 15:56 · PVG 23:56 · LAX 07:56 · JFK 10:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.