AI Inference - Qwen 30b Coder - drobné chybky

em.ve

Testuju tady 4bitový Qwen 30b Coder, běžící na lokálním serveru - trápím ho Pythonem:

Chci po něm, ať napíše metodu pro parsování vstupního parametru host:port
na commandlajně. Metoda má vrátit tuple (string,string), když je parametr
přítomen a None v případě chyby.
To celkem zvládne, nicméně jsem mu následně zadal, ať vrací v případě chyby ("",0):

Kód: [Vybrat]
def getComplexArgValue(arg):
    """
    Get the value of a command line argument that contains a colon separator.
   
    Args:
        arg (str): The argument name to search for (e.g., '-h')
   
    Returns:
        tuple: (host, port) if argument is found and has colon separator
        (None, 0) if argument is not found or format is invalid
    """
    try:
        for i, item in enumerate(sys.argv):
            if item == arg and i + 1 < len(sys.argv):
                value = sys.argv[i + 1]
                if ':' in value and value.count(':') == 1:
                    host, port = value.split(':')
                    if host and port:  # Both parts must be non-empty
                        return (host, port)
        return ("", 0)
    except (IndexError, AttributeError):
        return ("", 0)


Udělal přesně, co jsem mu zadal :) : V případě chyby vrátit ("",0).
Už ho ale "nenapadlo", že má korektní výsledek vracet rovněž ve formátu (string,int)

Když požádám o opravu:
here: return (host, port) you return (string,string). and here: return ("", 0) you return (string,int)

Tak se opraví:

Kód: [Vybrat]
def getComplexArgValue(arg):
    """
    Get the value of a command line argument that contains a colon separator.
   
    Args:
        arg (str): The argument name to search for (e.g., '-h')
   
    Returns:
        tuple: (host, port) if argument is found and has colon separator
        ("", 0) if argument is not found or format is invalid
    """
    try:
        for i, item in enumerate(sys.argv):
            if item == arg and i + 1 < len(sys.argv):
                value = sys.argv[i + 1]
                if ':' in value and value.count(':') == 1:
                    host, port = value.split(':')
                    if host and port:  # Both parts must be non-empty
                        return (host, int(port))  # Convert port to int
        return ("", 0)
    except (IndexError, AttributeError, ValueError):
        return ("", 0)

To není jeho první chybka, většinou musím jeho výstup různě drobně korigovat.
Naposledy třeba generoval řádky print(""), aby vzápětí začal generovat print ""
bez kulatých závorek.
 
Otázka zní: Zlepšilo by se jeho chování, kdybych použil 8b model?
ChatGPT taky občas něco domrví, i když s menší četností...