change:1.配置默认使用v3。2.asio中文转u8。3.com*hpp添加一个trim功能。
This commit is contained in:
		
							parent
							
								
									40ca781af3
								
							
						
					
					
						commit
						f99b2cbabb
					
				@ -75,6 +75,15 @@ public:
 | 
			
		||||
        std::lock_guard<std::mutex> lock(mutex_);
 | 
			
		||||
        buffer_.clear();
 | 
			
		||||
    }
 | 
			
		||||
    static std::string com_trim(const std::string& input)
 | 
			
		||||
    {
 | 
			
		||||
        size_t start = input.find_first_not_of(" \t\n\r\f\v");
 | 
			
		||||
        if (start == std::string::npos) {
 | 
			
		||||
            return "";
 | 
			
		||||
        }
 | 
			
		||||
        size_t end = input.find_last_not_of(" \t\n\r\f\v");
 | 
			
		||||
        return input.substr(start, end - start + 1);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    std::vector<char> buffer_;
 | 
			
		||||
@ -120,7 +129,8 @@ inline FrameData* com_parse(CMutBuffer& buffer)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    std::memcpy(&protk, buffer.get_data() + find + sizeof(header) + sizeof(type) + sizeof(len) + len, sizeof(protk));
 | 
			
		||||
    std::memcpy(&coptk, buffer.get_data() + find + sizeof(header) + sizeof(type) + sizeof(len) + sizeof(protk) + len, sizeof(coptk));
 | 
			
		||||
    std::memcpy(&coptk, buffer.get_data() + find + sizeof(header) + sizeof(type) + sizeof(len) + sizeof(protk) + len,
 | 
			
		||||
                sizeof(coptk));
 | 
			
		||||
 | 
			
		||||
    r = new FrameData();
 | 
			
		||||
    r->type = static_cast<FrameType>(type);
 | 
			
		||||
 | 
			
		||||
@ -2,6 +2,6 @@
 | 
			
		||||
BaseURL = https://api.lkeap.cloud.tencent.com/v1/chat/completions
 | 
			
		||||
ApiEnvKey = TENCENT_DEEPSEEK_KEY
 | 
			
		||||
UserName = user
 | 
			
		||||
ModelName = deepseek-r1
 | 
			
		||||
ModelName = deepseek-v3
 | 
			
		||||
AssistantName = assistant
 | 
			
		||||
MaxTokens = 50000
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										10
									
								
								server.cxx
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								server.cxx
									
									
									
									
									
								
							@ -1,4 +1,5 @@
 | 
			
		||||
#include "server.h"
 | 
			
		||||
#include "util.hpp"
 | 
			
		||||
#include <iostream>
 | 
			
		||||
 | 
			
		||||
Server::Server(asio::io_context& io_context, short port) : io_context_(io_context), acceptor_(io_context)
 | 
			
		||||
@ -18,12 +19,16 @@ void Server::start()
 | 
			
		||||
    asio::ip::tcp::endpoint endpoint(asio::ip::tcp::v4(), port_);
 | 
			
		||||
    try {
 | 
			
		||||
        acceptor_.open(endpoint.protocol());
 | 
			
		||||
        acceptor_.set_option(asio::socket_base::reuse_address(true));
 | 
			
		||||
        // acceptor_.set_option(asio::socket_base::reuse_address(true));
 | 
			
		||||
        acceptor_.bind(endpoint);
 | 
			
		||||
        acceptor_.listen();
 | 
			
		||||
        do_accept();
 | 
			
		||||
    } catch (const std::exception& e) {
 | 
			
		||||
#ifdef _WIN32
 | 
			
		||||
        std::cerr << ansi_to_u8(e.what()) << '\n';
 | 
			
		||||
#else
 | 
			
		||||
        std::cerr << e.what() << '\n';
 | 
			
		||||
#endif
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -123,8 +128,7 @@ void Server::th_client(const std::shared_ptr<asio::ip::tcp::socket>& socket, con
 | 
			
		||||
                    req.coptk = parse.completion_tokens;
 | 
			
		||||
                    use_tokens_ += req.protk;
 | 
			
		||||
                    use_tokens_ += req.coptk;
 | 
			
		||||
                    std::cout << "Already use " << use_tokens_ << " tokens.\r";
 | 
			
		||||
                    std::cout.flush();
 | 
			
		||||
                    std::cout << "Already use " << use_tokens_ << " tokens.\n";
 | 
			
		||||
                    memcpy(req.data, parse.message_content.c_str(), parse.message_content.size());
 | 
			
		||||
                    req.data[req.len - 1] = '\0';
 | 
			
		||||
                    send_frame(socket, req);
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										31
									
								
								util.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								util.hpp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,31 @@
 | 
			
		||||
#ifndef UTIL_HPP
 | 
			
		||||
#define UTIL_HPP
 | 
			
		||||
 | 
			
		||||
#ifdef _WIN32
 | 
			
		||||
#include <windows.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <string>
 | 
			
		||||
 | 
			
		||||
#ifdef _WIN32
 | 
			
		||||
std::string ansi_to_u8(const std::string& str)
 | 
			
		||||
{
 | 
			
		||||
    int wideCharLen = MultiByteToWideChar(CP_ACP, 0, str.c_str(), -1, nullptr, 0);
 | 
			
		||||
    if (wideCharLen <= 0) {
 | 
			
		||||
        return "";
 | 
			
		||||
    }
 | 
			
		||||
    std::wstring wideStr(wideCharLen, L'\0');
 | 
			
		||||
    MultiByteToWideChar(CP_ACP, 0, str.c_str(), -1, &wideStr[0], wideCharLen);
 | 
			
		||||
 | 
			
		||||
    int utf8Len = WideCharToMultiByte(CP_UTF8, 0, wideStr.c_str(), -1, nullptr, 0, nullptr, nullptr);
 | 
			
		||||
    if (utf8Len <= 0) {
 | 
			
		||||
        return "";
 | 
			
		||||
    }
 | 
			
		||||
    std::string utf8Str(utf8Len, '\0');
 | 
			
		||||
    WideCharToMultiByte(CP_UTF8, 0, wideStr.c_str(), -1, &utf8Str[0], utf8Len, nullptr, nullptr);
 | 
			
		||||
 | 
			
		||||
    utf8Str.resize(utf8Len - 1);
 | 
			
		||||
    return utf8Str;
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
#endif   // UTIL_HPP
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user