You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
提交前必须检查以下项目 | The following items must be checked before submission
请确保使用的是仓库最新代码(git pull),一些问题已被解决和修复。 | Make sure you are using the latest code from the repository (git pull), some issues have already been addressed and fixed.
我已阅读项目文档和FAQ章节并且已在Issue中对问题进行了搜索,没有找到相似问题和解决方案 | I have searched the existing issues / discussions
问题类型 | Type of problem
模型推理和部署 | Model inference and deployment
操作系统 | Operating system
Linux
详细描述问题 | Detailed description of the problem
client = OpenAI(
api_key="EMPTY",
base_url="http://xxxxxxx:10002/v1/",
)
def create_uuid():
return str(uuid.uuid4())
def get_glm4(message):
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "获取目标地点的天气信息",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "目标地点的名称,必须是中文",
},
},
"required": ["city"],
}
}
},
]
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=message,
tools=tools,
tool_choice="auto",
temperature=0.8,
top_p=0.8,
)
return response.choices[0].message
def get_location_coordinate(location, city):
url = f"https://restapi.amap.com/v5/place/text?key={gaode_key}&keywords={location}®ion={city}"
r = requests.get(url)
result = r.json()
if "pois" in result and result["pois"]:
return result["pois"][0]
return None
def search_nearby_pois(longitude, latitude, keyword):
url = f"https://restapi.amap.com/v5/place/around?key={gaode_key}&keywords={keyword}&location={longitude},{latitude}"
r = requests.get(url)
result = r.json()
ans = ""
if "pois" in result and result["pois"]:
for i in range(min(3, len(result["pois"]))):
name = result["pois"][i]["name"]
address = result["pois"][i]["address"]
distance = result["pois"][i]["distance"]
ans += f"{name}\n{address}\n距离:{distance}米\n\n"
return ans
def get_weather_information(city):
url = 'https://restapi.amap.com/v3/weather/weatherInfo?parameters'
data = {
"key": gaode_key,
"city": city
}
r = requests.get(url, params=data)
result = r.json()
if "lives" in result and result["lives"]:
return result["lives"][0]
return None
def chat_but(input_):
messages.append({"role": "user", "content": input_})
response = get_glm4(messages)
if response.tool_calls is None:
messages.append({"role": response.role, "content": response.content})
else:
messages.append({"role": response.role, "content": response.tool_calls[0].function.arguments})
while response.tool_calls is not None:
print(response.tool_calls)
for tool_call in response.tool_calls:
args = json.loads(tool_call.function.arguments)
result = ''
if tool_call.function.name == "get_location_coordinate":
result = get_location_coordinate(**args)
elif tool_call.function.name == "search_nearby_pois":
result = search_nearby_pois(**args)
elif tool_call.function.name == "get_weather_information":
result = get_weather_information(**args)
if response.tool_calls is None:
messages.append({
"tool_call_id": tool_call.id,
"role": "tool",
"name": tool_call.function.name,
"content": result
})
else:
messages.append({"role": response.role, "content": response.tool_calls[0].function.arguments})
response = get_glm4(messages)
if response.tool_calls is None:
messages.append({"role": response.role, "content": response.content})
else:
messages.append({"role": response.role, "content": response.tool_calls[0].function.arguments})
return response.content
messages = [{"role": "system",
"content": "你是书生浦语2,一个无害的人工智能助手"}]
print(chat_but('我想了解今天上海的天气'))
print(messages)
env配置
# model related
MODEL_NAME=internlm2
MODEL_PATH=/home/xxxxx/InternLM/internlm2-chat-20b-quant4
EMBEDDING_NAME=
ADAPTER_MODEL_PATH=
QUANTIZE=4
CONTEXT_LEN=
LOAD_IN_8BIT=false
LOAD_IN_4BIT=false
USING_PTUNING_V2=false
STREAM_INTERVERL=2
PROMPT_NAME=
# device related
DEVICE=
# "auto", "cuda:0", "cuda:1", ...
DEVICE_MAP=auto
GPUS=
NUM_GPUs=1
DTYPE=half
# api related
API_PREFIX=/v1
USE_STREAMER_V2=false
ENGINE=default
Dependencies
# 请在此处粘贴依赖情况
# Please paste the dependencies here
运行日志或截图 | Runtime logs or screenshots
接口日志
接口返回:
The text was updated successfully, but these errors were encountered:
提交前必须检查以下项目 | The following items must be checked before submission
问题类型 | Type of problem
模型推理和部署 | Model inference and deployment
操作系统 | Operating system
Linux
详细描述问题 | Detailed description of the problem
env配置
Dependencies
运行日志或截图 | Runtime logs or screenshots
接口日志
接口返回:
The text was updated successfully, but these errors were encountered: