.NET-API-Wrapper für Microsofts neuen KI-gestützten Bing Chat.
Warnung: veraltet und gewartet
Derzeit ist die Implementierung nicht mit den jüngsten API-Änderungen synchronisiert, was zu häufigen Fehlern führt und Captcha auslöst. Es ist geplant, dies zu untersuchen und die Implementierung an offizielle API-Clients (iOS-App und Browser) anzupassen, um diese Probleme zu reduzieren oder sie, falls eine solche Möglichkeit besteht, vollständig abzumildern.Außerdem mangelt es diesem Repository seit langem an Betreuern. Wer übernehmen möchte, kann sich gerne bei mir melden.
Warnung: Diese Bibliothek ist inoffiziell und hängt stark vom Reverse Engineering ab. Die Nutzung erfolgt auf eigene Gefahr.
Hinweis Seit der Veröffentlichung von BingChat ist kein gültiges Cookie mehr erforderlich. Sie können dieses Paket ohne Authentifizierung nutzen.
Installieren Sie dieses Paket über den NuGet-Paketmanager oder die Dotnet-CLI:
dotnet add package --prerelease BingChat
Dann,
using BingChat ;
// Construct the chat client
var client = new BingChat Client ( new BingChat ClientOptions
{
// Tone used for conversation
Tone = BingChat Tone . Balanced ,
} ) ;
var message = "Do you like cats?" ;
var answer = await client . AskAsync ( message ) ;
Console . WriteLine ( $ "Answer: { answer } " ) ;
Der obige Code sendet eine Nachricht an die Chat-KI und erhält von dieser die Antwort.
Diese Methode erstellt eine einmalige Konversation und verwirft sie, wenn sie abgeschlossen ist. Wenn Sie weiterhin im gleichen Kontext chatten möchten (genau wie das Verhalten in der Weboberfläche), müssen Sie eine gemeinsame Konversation erstellen:
// Create a conversation, so we can continue chatting in the same context.
var conversation = await client . CreateConversation ( ) ;
var firstMessage = "Do you like cats?" ;
var answer = await conversation . AskAsync ( firstMessage ) ;
Console . WriteLine ( $ "First answer: { answer } " ) ;
await Task . Delay ( TimeSpan . FromSeconds ( 5 ) ) ;
var secondMessage = "What did I just say?" ;
answer = await conversation . AskAsync ( secondMessage ) ;
Console . WriteLine ( $ "Second answer: { answer } " ) ;
Wir haben auch ein fantastisches Befehlszeilentool für Sie entwickelt! Sehen Sie sich die Vorschau unten an:
Sie können die CLI installieren, indem Sie einfach den folgenden Befehl ausführen:
dotnet tool install -g --prerelease dotnet- BingChat
Starten Sie dann die CLI:
dotnet BingChat
harmonyv3
das ältere Modell ermöglicht, das eine bessere Leistung bietet .SendAsync(..)
bereit, um detaillierten Zugriff und Kontrolle über den Konversationsstatus zu ermöglichen Sie können Ihr eigenes Cookie für die Interaktion mit BingChat -Server festlegen, anstatt ein zufälliges Cookie zu generieren.
Um es zu erhalten, können Sie zu www.bing.com gehen, sich bei einem Konto anmelden, das Zugriff hat, und dann die Entwicklertools (F12) > Registerkarte „Anwendung“ > Speicher > Cookies öffnen, das Cookie mit dem Namen _U
suchen und seinen Wert kopieren. Übergeben Sie es dann an den BingChat ClientOptions
-Konstruktor.
Es gibt mehrere Gründe. Sie können diese Schritte befolgen, um das Problem zu beheben.
Aktualisieren Sie die Webseite, bestätigen Sie, dass der Wert „_U“ aktuell ist und korrekt kopiert wurde, und versuchen Sie es erneut.
Wenn Sie einen Proxy (VPN) verwenden, versuchen Sie, den globalen Proxy festzulegen, und versuchen Sie es erneut. Der Code lautet wie folgt:
HttpClient . DefaultProxy = new WebProxy ( "127.0.0.1:8807" ) ; //Your proxy address and port
Suchen Sie ein anderes Cookie mit dem Namen „KievRPSSecAuth“, legen Sie seinen Wert fest und versuchen Sie es erneut. Der Code lautet wie folgt:
var client = new BingChat Client ( new BingChat ClientOptions {
// The "_U" cookie's value
CookieU = strU ,
// The "KievRPSSecAuth" cookie's value
CookieKievRPSSecAuth = strKievRPSSecAuth ,
} ) ;
Öffnen Sie das Browsermenü > Erweiterungen. Suchen Sie nach „Cookie Editor“ und installieren Sie ihn. Gehen Sie zur Bing Chat-Webseite und exportieren Sie alle Cookies in eine lokale Datei im JSON-Format. Legen Sie den Dateipfadwert wie folgt fest (die Werte „_U“ und „KievRPSSecAuth“ werden derzeit nicht benötigt):
var client = new BingChat Client ( new BingChat ClientOptions {
// The exported cookie file path
CookieFilePath = strFilePath ,
} ) ;
Vielen Dank an diese Mitwirkenden für die Entwicklung oder Verbesserung dieser Bibliothek:
Wenn Sie eine Idee zu diesem Projekt haben, können Sie gerne eine PR eröffnen und diese mit uns teilen :D
Dieses Projekt ist unter der MIT-Lizenz lizenziert. Wir ❤ Open Source!