自己做的 ai 项目,本来是通过 go 写的后端代码,但是最近了解到微软的 autogen(基于 python)支持 agent 比较好,就想使用 autogen 来进行 agent 的开发,通过 go 的服务和 python 代码交互,于是就出现一个问题,go 的服务如何和 python 交互,我的需求不涉及到流式返回,也不涉及到太大的文件返回,现在有两种思路 1.通过 cmd 运行获取 std 输出 2.让 python 和 go 通过网络通信
1 zzhaolei 2024-05-23 12:25:54 +08:00 可以通过 go python binding 调用 py 的代码,但是很多项目都不维护了。 也可以考虑进程间通信那些方式来交换数据 |
2 deplives 2024-05-23 12:57:06 +08:00 面试题:进程间通信都有那些方式 |
![]() | 3 txzh007 2024-05-23 14:07:05 +08:00 走 socket 吧 |
![]() | 4 Ally 2024-05-23 14:10:42 +08:00 gRPC |
5 aababc 2024-05-23 14:15:26 +08:00 七牛的 许老师 最近在搞 llgo 好像就是这方面的内容,应该是直接在代码层面的。可以了解一下看看 |
6 NessajCN 2024-05-23 14:25:42 +08:00 named pipe unix domain socket tcp socket |
![]() | 7 sophos &nbp; 2024-05-23 14:28:43 +08:00 跨语言交互如果不是需要极端性能或者 ffi binding 方案很成熟,优选网络通信 http+json 或 grpc 都挺好 :-) python 和 go 都有很成熟的框架了 |
![]() | 8 yaott2020 2024-05-23 14:28:45 +08:00 via Android 加一种:CGO ,但是楼主应该不需要 |
![]() | 9 wen20 2024-05-23 14:33:20 +08:00 选 cmd 运行呗,不用改 python, 对接其他 python 命令规范还能保持一样。 |
![]() | 10 noooop 2024-05-23 14:36:06 +08:00 谢邀,用 zeromq ,正好我现在做一个开源库,基于 zmq 的大语音模型微服务框架。https://github.com/noooop/zerollama |
![]() | 11 noooop 2024-05-23 14:41:31 +08:00 |
![]() | 12 flyqie 2024-05-23 14:43:59 +08:00 via Android 进程间通信。 最好不要进 binding 这个大坑。 |
![]() | 13 zjsxwc 2024-05-23 14:45:37 +08:00 以前一个项目也是 go 与 python 相互调用,我用了 redis 里 topic 的 sub/pub |
![]() | 14 lambdaq 2024-05-23 14:59:11 +08:00 ![]() 路过。小 tip:头像为二次元大佬推荐的都比较靠谱~~~~ |
15 roundgis 2024-05-23 15:02:39 +08:00 via Android zeromq or redis |
![]() | 16 iyaozhen 2024-05-23 15:07:17 +08:00 面试造火箭还是有点用的 一般来说就 http 最方便了 python 起个服务,后面要转流式( base http/3 )也方便 |
17 xsen 2024-05-23 16:18:23 +08:00 |
![]() | 19 haiku 2024-05-23 17:18:29 +08:00 via Android grpc ,可以用 unix 。socket 减少网络延迟 |
![]() | 20 Peven 2024-05-23 18:15:40 +08:00 via iPhone grpc protobuffer |
21 void00000 2024-05-23 18:19:22 +08:00 简单就用 tcp 通信就行了,然后数据用 \n 结尾,方便易用 |
22 ilylx2008 2024-05-23 19:47:22 +08:00 不引入第三方基础设施比如 redis 的话, 可以使用 zmq ,类似的,也可以走 websocket 协议。 |
23 ilylx2008 2024-05-23 19:47:40 +08:00 grpc 相对 zmq 都麻烦很多。 |