Jadual Kandungan
Cara mengakses Feishu
Buat robot Feishu
Logik dan pelaksanaan dok
Akhirnya
Rumah Peranti teknologi AI Kod dilampirkan, langkah terperinci untuk menyambungkan ChatGPT ke Feishu

Kod dilampirkan, langkah terperinci untuk menyambungkan ChatGPT ke Feishu

Apr 14, 2023 pm 12:28 PM
chatgpt Feishu

Kod dilampirkan, langkah terperinci untuk menyambungkan ChatGPT ke Feishu

ChatGPT telah menjadi popular baru-baru ini, dan bos juga bersedia meminta kami menyambungkan ChatGPT ke Feishu Selepas penyelidikan pagi, akhirnya kami berjaya mendaftar dan menyambungkan robot Feishu ke ChatGPT .

Yang berikut akan berkongsi dengan anda langkah terperinci untuk mengakses Feishu.

Cara mengakses Feishu

Interaksi antara Feishu dan chatgpt adalah seperti berikut. Perkhidmatan tersuai kami bertindak sebagai orang tengah untuk memajukan mesej.

Kod dilampirkan, langkah terperinci untuk menyambungkan ChatGPT ke Feishu

Buat robot Feishu

1 Masukkan platform terbuka Feishu dan pilih untuk mencipta aplikasi binaan sendiri untuk perusahaan.

Kod dilampirkan, langkah terperinci untuk menyambungkan ChatGPT ke Feishu

2. Selepas mencipta aplikasi, klik untuk memasuki aplikasi dan menambah robot.

Kod dilampirkan, langkah terperinci untuk menyambungkan ChatGPT ke Feishu

3 Konfigurasikan kebenaran berkaitan mesej untuk robot Jika anda tidak pasti kebenaran yang diperlukan, anda boleh mendayakannya terlebih dahulu.

Kod dilampirkan, langkah terperinci untuk menyambungkan ChatGPT ke Feishu

4. Langganan acara memerlukan terlebih dahulu membangunkan antara muka untuk disahkan oleh Feishu. Antara muka perlu boleh diakses daripada rangkaian awam.

Kod dilampirkan, langkah terperinci untuk menyambungkan ChatGPT ke Feishu

Kod antara muka ini boleh dirujuk seperti berikut:

@PostMapping(value = "/message")
public FeishuEventDTO message(@RequestBody String body) {
log.info("收到消息:{}", body);
FeishuEventParams feishuEventParams = JSON.parseObject(body, FeishuEventParams.class);
FeishuEventDTO eventDTO = new FeishuEventDTO();
eventDTO.setChallenge(feishuEventParams.getChallenge());
return eventDTO;
}

@Data
public class FeishuEventParams {

private String challenge;
private String token;
private String type;
}

@Data
public class FeishuEventDTO {
private String challenge;
}
Salin selepas log masuk

Satu perkara yang perlu diambil perhatian ialah antara muka pengesahan ini dan berikut terima fly Antara muka mesej buku adalah alamat yang sama, tetapi isi mesej berbeza.

Maksudnya, antara muka pengesahan adalah penggunaan sekali sahaja dan perlu diubah suai selepas pengesahan.

Kami mula-mula menerbitkan antara muka ini kepada projek yang boleh diakses daripada rangkaian awam Contohnya, alamat antara muka ialah
​https://www.php.cn/link/. 4aee31b0ec9f7bb7885473d95961e9a6​

Kod dilampirkan, langkah terperinci untuk menyambungkan ChatGPT ke Feishu

OK, kini konfigurasi Feishu pada asasnya telah selesai.

Logik dan pelaksanaan dok

Biar saya bercakap dahulu tentang logik umum dok syarikat kami untuk rujukan anda.

Selepas pengguna menghantar mesej kepada Feishu, Feishu akan memajukan mesej itu ke perkhidmatan kami sendiri.

Tetapi akan ada masalah di sini, iaitu, apabila berbilang pengguna memulakan perbualan secara serentak, atau apabila ramai orang dalam kumpulan besar adalah robot @kami, kami perlu mengingati balasan setiap orang dan menanyakannya dalam chatgpt Selepas mendapatkan keputusan, balas orang ini dengan tepat.

Memandangkan syarikat kami sedang menggunakannya untuk ujian dalaman dan tidak mahu pelaksanaannya terlalu rumit, idea yang kami pakai ialah: apabila setiap sesi pengguna dimajukan ke perkhidmatan kami, kandungan sesi disimpan dahulu ke baris gilir ConcurrentLinkedQueue global, dan kemudian mulakan urutan untuk terus menggunakan baris gilir ini.

Jenis baris gilir generik ialah objek yang dibina terlebih dahulu Objek ini menyimpan ID mesej mesej semasa, pengirim, kandungan soalan, dsb.

Setiap kali objek digunakan, kandungan soalan objek dihantar ke chatgpt Selepas mendapat keputusan respons, antara muka sesi balasan yang disediakan oleh Feishu dipanggil untuk membalas kepada pengguna. (Jika jumlah konkurensi agak besar, ia boleh dibuat tak segerak di sini).

Baiklah, itulah idea umum.

1. Buka projek kami dan perkenalkan balang yang disediakan oleh chatgpt.

<dependency>
<groupId>com.theokanning.openai-gpt3-java</groupId>
<artifactId>service</artifactId>
<version>0.10.0</version>
</dependency>
Salin selepas log masuk

2. Tulis semula antara muka pengesahan di atas dan tukar untuk menerima mesej Feishu. (Jangan ubah laluan antara muka)

@Slf4j
@RestController
@RequestMapping(value = "/query")
public class QureyController {

public static ConcurrentLinkedQueue<FeishuResponse> consumer 
= new ConcurrentLinkedQueue<>();

@PostMapping(value = "/message")
public String message(@RequestBody String body) {
log.info("收到飞书消息:{}", body);
JSONObject jsonObject = JSONObject.parseObject(body);
JSONObject header = jsonObject.getJSONObject("header");
String eventType = header.getString("event_type");
if ("im.message.receive_v1".equals(eventType)) {
JSONObject event = jsonObject.getJSONObject("event");
JSONObject message = event.getJSONObject("message");
String messageType = message.getString("message_type");
if ("text".equals(messageType)) {
String messageId = message.getString("message_id");
String content = message.getString("content");
JSONObject contentJson = JSON.parseObject(content);
String text = contentJson.getString("text");

FeishuResponse feishuResponse = new FeishuResponse();
feishuResponse.setMessageId(messageId);
feishuResponse.setQuery(text);
log.info("投递用户消息,{}", JSON.toJSON(feishuResponse));
consumer.add(feishuResponse);
} else {
log.info("非文本消息");
}
}

return "suc";
}
}
Salin selepas log masuk

Struktur FeishuResponse adalah seperti berikut.

@Data
public class FeishuResponse {

private String messageId;

private String query;

}
Salin selepas log masuk

3. Tulis urutan tugasan.

@Slf4j
public class AutoSendTask implements Runnable {
//你的chatgpt的key
public static final String token = "";
public static OpenAiService openAiService = null;

static {
openAiService = new OpenAiService(token, Duration.ofSeconds(60));
}

@Override
public void run() {
while (true) {
try {
FeishuResponse poll = consumer.poll();
if (poll == null) {
log.info("no query,sleep 2s");
TimeUnit.SECONDS.sleep(2);
} else {
String query = this.query(poll.getQuery());
this.reply(poll, query);
}
} catch (InterruptedException e) {
log.error("Thread exception...", e);
}
}
}

private String query(String q) {
log.info("开始提问:{}", q);
CompletionRequest completionRequest = CompletionRequest.builder()
.prompt(q)
.model("text-davinci-003")
.maxTokens(2048)
.echo(false)
.build();
StringBuilder sb = new StringBuilder();
CompletionResult completion = openAiService.createCompletion(completionRequest);
log.info("q:{},获取响应:{}", q, JSON.toJSONString(completion));
completion.getChoices().forEach(v -> {
sb.append(v.getText());
});
String rs = sb.toString();
if (rs.startsWith("?")) {
rs = rs.replaceFirst("?", "");
}
if (rs.startsWith("nn")) {
rs = rs.replaceFirst("nn", "");
}
log.info("格式化后的rs:{}", rs);
return rs;
}

private String reply(FeishuResponse poll, String rs) {
JSONObject params = new JSONObject();
params.put("uuid", RandomUtil.randomNumbers(10));
params.put("msg_type", "text");

JSONObject content = new JSONObject();
content.put("text", rs);
params.put("content", content.toJSONString());

String url = String.format("https://open.feishu.cn/open-apis/im/v1/messages/%s/reply",
 poll.getMessageId());
String tenantAccessToken = FeishuUtils.getTenantAccessToken();
String body = null;
try (HttpResponse authorization = HttpUtil.createPost(url)
.header("Authorization", "Bearer " + tenantAccessToken)
.body(params.toJSONString())
.execute()) {
body = authorization.body();
}

return body;
}

}
Salin selepas log masuk

Kelas alat untuk mendapatkan token Feishu adalah seperti berikut:

@Slf4j
public class FeishuUtils {

public static final String tokenUrl
= "https://open.feishu.cn/open-apis/auth/v3/app_access_token/internal/";
//构建一个cache 缓存飞书的token
static Cache<String, String> tokenCache =
CacheBuilder.newBuilder().expireAfterWrite(Duration.ofSeconds(3500)).build();
//这个是飞书应用的appid和key,可以在创建的飞书应用中找到
public static final String appId = "";
public static final String appKey = "";

public static String getTenantAccessToken() {
String token = null;
try {
token = tokenCache.get("token", () -> {
JSONObject params = new JSONObject();
params.put("app_id", appId);
params.put("app_secret", appKey);
String body;
try (HttpResponse execute = HttpUtil.createPost(tokenUrl)
.body(params.toJSONString()).execute()) {
body = execute.body();
}
log.info("获取飞书token:{}", body);
if (StrUtil.isNotBlank(body)) {
String tenantAccessToken = JSON.parseObject(body).getString("tenant_access_token");
tokenCache.put("token", tenantAccessToken);
return tenantAccessToken;
}
return null;
});
} catch (ExecutionException e) {
throw new RuntimeException(e);
}
return token;
}
}
Salin selepas log masuk

4 sahaja.

Kod dilampirkan, langkah terperinci untuk menyambungkan ChatGPT ke Feishu

Akhir sekali, atas sebab privasi, kesan perbualan kumpulan chatgpt tidak akan dipaparkan Mari tunjukkan kesan perbualan langsung dengan robot.

Kod dilampirkan, langkah terperinci untuk menyambungkan ChatGPT ke Feishu

Akhirnya

Memandangkan kami hanya memperkenalkan chatgpt dengan sikap cuba-cuba, kodnya agak kasar kalau ada apa-apa yang tak kena dengan penulisan, , saya harap semua orang akan faham.

Balang tambahan yang diperkenalkan dalam kod dalam artikel ini termasuk: jambu batu, hutool-all dan fastjson.

Atas ialah kandungan terperinci Kod dilampirkan, langkah terperinci untuk menyambungkan ChatGPT ke Feishu. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

ChatGPT kini membenarkan pengguna percuma menjana imej dengan menggunakan DALL-E 3 dengan had harian ChatGPT kini membenarkan pengguna percuma menjana imej dengan menggunakan DALL-E 3 dengan had harian Aug 09, 2024 pm 09:37 PM

DALL-E 3 telah diperkenalkan secara rasmi pada September 2023 sebagai model yang jauh lebih baik daripada pendahulunya. Ia dianggap sebagai salah satu penjana imej AI terbaik setakat ini, mampu mencipta imej dengan perincian yang rumit. Walau bagaimanapun, semasa pelancaran, ia adalah tidak termasuk

Gabungan sempurna ChatGPT dan Python: mencipta chatbot perkhidmatan pelanggan yang pintar Gabungan sempurna ChatGPT dan Python: mencipta chatbot perkhidmatan pelanggan yang pintar Oct 27, 2023 pm 06:00 PM

Gabungan sempurna ChatGPT dan Python: Mencipta Perkhidmatan Pelanggan Pintar Chatbot Pengenalan: Dalam era maklumat hari ini, sistem perkhidmatan pelanggan pintar telah menjadi alat komunikasi yang penting antara perusahaan dan pelanggan. Untuk memberikan pengalaman perkhidmatan pelanggan yang lebih baik, banyak syarikat telah mula beralih kepada chatbots untuk menyelesaikan tugas seperti perundingan pelanggan dan menjawab soalan. Dalam artikel ini, kami akan memperkenalkan cara menggunakan bahasa ChatGPT dan Python model OpenAI yang berkuasa untuk mencipta bot sembang perkhidmatan pelanggan yang pintar untuk meningkatkan

Bagaimana untuk memasang chatgpt pada telefon bimbit Bagaimana untuk memasang chatgpt pada telefon bimbit Mar 05, 2024 pm 02:31 PM

Langkah pemasangan: 1. Muat turun perisian ChatGTP dari laman web rasmi ChatGTP atau kedai mudah alih 2. Selepas membukanya, dalam antara muka tetapan, pilih bahasa sebagai bahasa Cina 3. Dalam antara muka permainan, pilih permainan mesin manusia dan tetapkan Spektrum bahasa Cina; 4 Selepas memulakan, masukkan arahan dalam tetingkap sembang untuk berinteraksi dengan perisian.

Bagaimana untuk membangunkan chatbot pintar menggunakan ChatGPT dan Java Bagaimana untuk membangunkan chatbot pintar menggunakan ChatGPT dan Java Oct 28, 2023 am 08:54 AM

Dalam artikel ini, kami akan memperkenalkan cara membangunkan chatbot pintar menggunakan ChatGPT dan Java, dan menyediakan beberapa contoh kod khusus. ChatGPT ialah versi terkini Generative Pre-training Transformer yang dibangunkan oleh OpenAI, teknologi kecerdasan buatan berasaskan rangkaian saraf yang boleh memahami bahasa semula jadi dan menjana teks seperti manusia. Menggunakan ChatGPT kami boleh membuat sembang adaptif dengan mudah

Bolehkah chatgpt digunakan di China? Bolehkah chatgpt digunakan di China? Mar 05, 2024 pm 03:05 PM

chatgpt boleh digunakan di China, tetapi tidak boleh didaftarkan, begitu juga di Hong Kong dan Macao Jika pengguna ingin mendaftar, mereka boleh menggunakan nombor telefon mudah alih asing untuk mendaftar. Perhatikan bahawa semasa proses pendaftaran, persekitaran rangkaian mesti ditukar IP asing.

Cara menggunakan ChatGPT dan Python untuk melaksanakan fungsi pengecaman niat pengguna Cara menggunakan ChatGPT dan Python untuk melaksanakan fungsi pengecaman niat pengguna Oct 27, 2023 am 09:04 AM

Cara menggunakan ChatGPT dan Python untuk melaksanakan fungsi pengecaman niat pengguna Pengenalan: Dalam era digital hari ini, teknologi kecerdasan buatan secara beransur-ansur menjadi bahagian yang amat diperlukan dalam pelbagai bidang. Antaranya, pembangunan teknologi pemprosesan bahasa semula jadi (Natural Language Processing, NLP) membolehkan mesin memahami dan memproses bahasa manusia. ChatGPT (Chat-GeneratingPtrainedTransformer) ialah sejenis

Bagaimana untuk membina robot perkhidmatan pelanggan pintar menggunakan PHP ChatGPT Bagaimana untuk membina robot perkhidmatan pelanggan pintar menggunakan PHP ChatGPT Oct 28, 2023 am 09:34 AM

Cara menggunakan ChatGPTPHP untuk membina robot perkhidmatan pelanggan yang pintar Pengenalan: Dengan perkembangan teknologi kecerdasan buatan, robot semakin digunakan dalam bidang perkhidmatan pelanggan. Menggunakan ChatGPTPHP untuk membina robot perkhidmatan pelanggan yang pintar boleh membantu syarikat menyediakan perkhidmatan pelanggan yang lebih cekap dan diperibadikan. Artikel ini akan memperkenalkan cara menggunakan ChatGPTPHP untuk membina robot perkhidmatan pelanggan yang pintar dan menyediakan contoh kod khusus. 1. Pasang ChatGPTPHP dan gunakan ChatGPTPHP untuk membina robot perkhidmatan pelanggan yang pintar.

Gabungan sempurna ChatGPT dan Python: membina chatbot masa nyata Gabungan sempurna ChatGPT dan Python: membina chatbot masa nyata Oct 28, 2023 am 08:37 AM

Gabungan sempurna ChatGPT dan Python: Membina chatbot masa nyata Pengenalan: Dengan perkembangan pesat teknologi kecerdasan buatan, chatbots memainkan peranan yang semakin penting dalam pelbagai bidang. Chatbots boleh membantu pengguna memberikan bantuan segera dan diperibadikan sambil turut menyediakan perkhidmatan pelanggan yang cekap kepada perniagaan. Artikel ini akan memperkenalkan cara menggunakan model ChatGPT OpenAI dan bahasa Python untuk mencipta robot sembang masa nyata dan memberikan contoh kod khusus. 1. SembangGPT

See all articles